11个用于学习编程的最佳GitHub存储库


GitHub 拥有超过200,000,000个存储库,但其中只有一小部分是特定领域的宝贵资源。
在许多包含学习项目、开源软件和创意集合的存储库旁边,您有时会发现一些珍宝。主要归功于 GitHub 的原生降价支持,该平台甚至经常托管几乎所有内容的完整书籍或学习资源集合。

在本文中,我将分享 11 个可以帮助您成为更好的软件开发人员的最佳存储库。

1.专业编程
专业编程是一个经典的资源集合。

你会得到很多关于优秀书籍的提示,更多值得阅读的文章,以及几乎所有你能想象到的东西的链接。

这个存储库需要相当长的时间才能完成,但是如果你真的努力成为一个更好的软件开发人员,那么它里面的每一块都是值得消耗的。

2. 30秒的代码
30 秒的代码包含 JavaScript 代码片段。
如果你现在问自己一个片段是什么,可以这样理解:对于你可以想象的很多问题,至少有一个可能的解决方案。一个片段以一种易于理解的方式展示了这个解决方案,向你展示了代码,另外描述了一点,就是这样。
如果您遇到困难,此存储库是完美的书签。只需跳入其中,看看是否已经有解决您的问题的方法。

3.基于项目的学习
基于项目的学习是一个编程教程列表,向有抱负的软件开发人员展示如何从头开始构建应用程序。它包含许多不同语言的项目。
实践是学习软件开发的最佳方式。反复解决特定问题可以强化你的知识,让你的大脑有理由记住你在工作中应用的所有概念。
这个存储库是一个优秀的项目集合,您可以通过这些项目来提高您的问题解决能力并在您选择的语言方面变得更有能力。只需不时选择一个项目并定期进行工作,直到完成。当然,您不需要一次完成所有事情,甚至根本不需要做所有事情。

4.系统设计入门
系统设计入门是许多经验不足(但更有经验)的软件开发人员一直在寻找的系统设计指南。
系统设计是实践尤其能让你变得更好的领域之一。理论往往缺乏现实世界的用例和你在野外遇到的问题。
然而,这个存储库是如何用 Python 教授非常实用的系统设计领域的一个令人难以置信的例子。如果您设法完成了对这个存储库的浏览,那么您将成为一个非常危险的软件工程师,他比许多同行更了解自己的系统设计方式。
如果您真的对系统设计感兴趣,请每天至少留出一些时间,专注于处理这个存储库。确保你对它有足够的关注,因为系统设计很难掌握。

5.编程面试大学
成为大公司的软件开发人员可能是一项具有挑战性的任务。
技术面试可能令人生畏,而且通常与实际工作完全不同。有些人甚至说你需要一套完全不同的技能才能通过技术面试,而不是完成这项工作。
Coding Interview University 是一个存储库,旨在准确地指导您完成在技术面试情况下胜任的过程,同时还教您许多重要的计算机科学基础知识。
该指南明确指出它是针对软件工程而不是 Web 开发的,因此在尝试时请记住这一点。
如果您决定阅读本指南,请将其作为您唯一关注的重点。它是专门为专门的学习过程设计的路线图,因此最好尽量避免其他主题的过多干扰。

6.每个程序员都应该知道
无论您对技术了解多少,您可能永远不会知道足够多。
尽管这句话听起来很刺耳,但这是真的。如今,技术作为一个领域太广泛了,甚至无法遥不可及地了解一切。然而,这不应该阻止你学习更多。
每个程序员都应该知道的是每个软件开发人员应该知道的(主要是)技术知识的集合。通过浏览此存储库,您可能会学到一些新技巧,仅此一项就证明在此集合上花费一些时间是合理的。
这不是您需要定期遵循的指南。这是一种学习资源,您可以不时或在您想学习一些有趣和新的东西时参考。

7.路线图.sh
roadmap.sh是详细路线图的集合。
路线图基本上是一个指南,如果您想做特定的事情或学习特定的专业,请遵循指导。
在这种情况下,roadmap.sh包含十个非常详细的路线图,向您展示如何准确地设计学习路径以精通以下领域:

  • 前端
  • 后端
  • 开发运维
  • react
  • 安卓
  • Python
  • go
  • java
  • DBA(Postgres 数据库管理员)

您需要注意,这些路线图通常设计为相对严格地遵循。尽管他们不时提供替代路径,但如果您想通过,您仍然需要定期投入工作。这意味着如果您决定进入其中之一,您应该腾出一些时间。

8.建立你自己的 X
你有没有想过如何实现特定的东西?您是否曾经尝试过创建自己的操作系统并错过了一些重要的指导?
构建你自己的 X 试图缩小在实现一些基本但也有一些非常高级的主题方面的知识差距。它基本上包含为好奇的黑客准备的深入研究项目。
无论是操作系统、体素引擎,还是像命令行工具这样简单的东西,这个存储库很可能已经涵盖了您。
所有项目都可以在旁边创建。只需不时留出几分钟或更长时间,继续从事您选择的项目。您实际上想在这些项目中投入多少时间取决于您。

9.多种语言的免费学习资源列表
书籍可以成为知识的源泉。作者的大部分知识都浓缩成纸上的墨水——数百页的实用建议和学习机会。
在这种情况下,许多语言的免费学习资源列表是一个非常庞大的免费电子书集合,供任何软件开发人员使用和学习。最好的部分是该存储库不仅涵盖英语书籍,还涵盖许多其他语言。
无论您的母语是阿拉伯语、荷兰语、德语、印地语、越南语还是其他语言,您都可以找到您要找的书。而且,如果您的母语不包含您要查找的书,那么英语部分——以其庞大的规模——可能仍然有一个有效的替代方案供您阅读。
书籍的伟大之处在于,您通常可以每天​​只阅读一章,有时甚至多读几章,仍然可以获得宝贵的知识。这取决于您想花多少时间阅读这些书。

10.很棒的指南
Awesome Guidelines 有点不同。它不是将知识提炼成集合或书籍本身,而是为您提供程序员经常需要的一些最基本的基础:编码和格式指南。
如果您现在是跳过此存储库之前的一步,请稍等,让我解释一下。
代码的阅读频率比实际编写的频率高。仅此一项就证明了以某种方式格式化您的代码是合理的——至少在某种程度上,您和与您一起工作的每个人都可以就代码的外观达成一致。
学习甚至像特定的编码指南这样重要的东西可以极大地帮助您更快地理解您没有自己编写的代码。如果你能更快地理解它,你可能会更快地修复它。所有这一切都利用了你的学习过程,因为你永远不应该忘记一件事:代码就像任何文本一样好老师。您总是可以通过阅读代码来学习一两个技巧。
每当您打开 IDE/编辑器时,还记得拉出这些指南之一。甚至可以尝试根据这些配置你最喜欢的 linter,你就可以开始了。

11.域驱动六边形
Domain-Driven Hexagon 专注于教你如何设计软件。它明确关注领域驱动设计,这是一种专注于创建特定领域软件的设计方法。
在浏览此存储库时,您将特别了解如何将领域驱动设计整合到软件系统的所有方面和层中——从特定功能的实现到应用程序之间的接口,再到持久层。
本指南中的章节通常很小,因此非常适合在一天中的几分钟内阅读。只要您有几分钟的空闲时间,请继续阅读并了解更多信息。