GitHub 是共享各种技术、框架、库和集合的头号平台,越来越多的人到该平台寻找最有用的库。本文作者全栈工程师 Simon Holdorf 列举了十个能够为所有软件工程师提供巨大价值的 GitHub 库。这些库均具备大量 GitHub 星数,显示其关联性、流行性和效用。
其中一些库可以帮助大家学习新知识,还有的可以帮助构建很酷的东西,不论如何所有库都能够帮助你成为更好的软件工程师。
1. Build Your Own X
-
GitHub 星数:61,300
-
GitHub 地址:https://github.com/danistefanovic/build-your-own-x
该库囊括了大量教程,教你如何构建自己的技术。同时,这里还有关于如何构建命令行工具、操作系统、搜索引擎、3D 渲染器等的示例。
想创建自己的编程语言,或属于自己的 Docker、Git 吗?这个库是你的不错选择。
2. Free Programming Books
-
GitHub 星数:139,000
-
GitHub 地址:https://github.com/EbookFoundation/free-programming-books
尽管该库的名字是 Free Programming Books(免费编程书籍),但它提供的内容不止于此。该库有多语言版本,包含免费在线课程、交互式编程资源、问题集和有竞争力的编程,以及 podcast 和编程练习。
不过其中大部分内容是编程书籍,书籍数量十分可观。
3. Oh My Zsh
-
GitHub 星数:106,000
-
GitHub 地址:https://github.com/ohmyzsh/ohmyzsh
Oh My Zsh 是一个社区驱动的开源框架,旨在管理 Zsh 配置。Zsh 既是交互式 shell,也是很多开发者使用的强大脚本语言。
Oh My Zsh 具备强大的插件和美观的主题,允许用户进行 Zsh 设置自定义。你需要花费一些功夫启动和运行它,不过网上有很多不错的教程和其他开发者的示例,可以帮助你找到最适合的设置。
4. Coding Interview University
-
GitHub 星数:104,000
-
GitHub 地址:https://github.com/jwasham/coding-interview-university
该库是针对成为大企业(亚马逊、谷歌或 Facebook)软件工程师的短期学习计划(只需几个月即可完成)。它适合的人群是软件工程新人(不过仍需了解计算机科学知识),并对如何成为可靠性工程师或运维工程师提供建议。
作者创建该库的初衷是制定个人 to-do list 来追踪自己的学习过程。每天学习 8-12 小时,学习数月后,他最终得到了梦想中的工作,成为亚马逊的软件开发工程师。
Coding Interview University 可以帮助你准备谷歌、微软、Facebook 等企业的技术面试。充分利用它吧。
5. Gitignore:.gitignore 模板合集
-
GitHub 星数:97,100
-
GitHub 地址:https://github.com/github/gitignore
该库的作用和名字一样:有用的.gitignore 模板集合。每在 GitHub 上创建一个新项目库,你必须具备一个.gitignore 文件来过滤上传内容。.gitignore 文件内容随着项目和语言的变化而变化。该库包含适用于几乎所有语言和框架(如 Rails、Python、Perl、Laravel、Java 等)的模板,甚至具备适用于 Fortran 的模板!
6. System Design Primer
-
GitHub 星数:86,200
-
GitHub 地址:https://github.com/donnemartin/system-design-primer
这个库非常适合软件工程师,可以帮助他们学习如何设计大规模系统,进而成为更好的工程师。该库针对这一宽泛主题提供大量资源,并进行了系统化组织。
由于系统设计通常是众多企业技术面试的必备内容,因此该库还可以帮助工程师准备技术面试。它包含学习指南、面试建议、面试问题及解决方案、交互式学习Anki卡牌集合,以及交互式编程挑战。
7. Public API
-
GitHub 星数:73,100
-
GitHub 地址:https://github.com/public-apis/public-apis
该库包含可用于项目和应用的免费 API 列表,覆盖各种主题,如商业、动画、动物、新闻、金融、游戏等。
其中 cats API 和 dogs API 提供猫狗的图像。还有一些更有用的 API,如 Gmail API 或 Google Analytics API。
这个库集合了大量 API,读者可以自行查看。
8. The Art of Command Line
-
GitHub 星数:70,100
-
GitHub 地址:https://github.com/jlevy/the-art-of-command-line
开发者经常忽略如何处理命令行,但对于工程师而言使用命令行有助于提高生产效率和灵活性。该库包含在 Linux 环境中使用命令行的有用建议,同时还包含适合 Windows 或 macOS 系统的内容。通用建议适用于其他基于 UNIX 的操作系统。该库对入门者和经验丰富的开发者均适用。
尽管该库似乎没有得到积极维护,但它仍能提供非常好的建议,帮助开发者使用命令行。读者可以 fork 该库,并自行维护。
9. JavaScript 算法和数据结构
-
GitHub 星数:64,700
-
GitHub 地址:https://github.com/trekhleb/javascript-algorithms
该库包含多个 JavaScript 常用算法和数据结构示例。每个示例被标注为「入门」或「高级」,以表明难度。此外,该库还包含哈希表、堆区(heap)、队列(queue)、栈区(stack)、math、字符串(strings)、集合(sets)等的示例。
10. Developer Roadmap
-
GitHub 星数:98,600
-
GitHub 地址:https://github.com/kamranahmedse/developer-roadmap
该库包含的大量图表展示了成为前端、后端或研发工程师需要采取的不同学习路径以及要学的技术。初看令人觉得吃不消,但这个库对在这一快速变化的行业中的趋势和工程师需要的技能提供了很有用的指导。
该库每年都会更新,以反映生态系统变化。
【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】