在科技行业,面试比实际工作还难,这听起来像个笑话,但在大多数情况下它可能就是这样的,因此,在这篇文章中,我们将和大家分享7个Github知识库,这些知识库包含以下信息:
- Web是如何工作的(DNS、HTTP等主题)
- 数据结构与算法
- 如何设计大型系统(系统设计)
- APP保护
- JavaScript算法
1. Coding Interview University
这是最全面的面试准备资源之一,该仓库一开始是创建者的学习计划,他是一名软件工程师,在这个仓库里,你可以找到有关数据结构、算法、动态编程、面向对象编程、设计模式等信息。
建议你查看这个仓库并自己去阅读它,同时它是综合性的,你不需要学习所有的东西,或者一次学习所有的东西。但即便如此,这本书对于准备面试的程序员来说是非常方便的。
项目地址:https://github.com/jwasham/coding-interview-university
2. Tech Interview Handbook
另一个有用的资源是Tech Interview Handbook,它包含有关技术面试的很多细节,但又不仅仅局限在面试上,它还包括工作申请(简历、求职信),面试过程(行为问题,面试中应该问什么问题),以及面试后的考虑(薪资谈判)等。因此在这份项目里你可以学到的不仅仅是数据结构、算法和其它技术科目,这是一个很方便的资源,强烈建议你去试试。
项目地址:https://yangshun.github.io/tech-interview-handbook/
3. The System Design Primer
对于小的项目,你可能没有太多的计划和过多的思考,然而,构建大型系统则是另外一回事,学习如何设计可扩展的系统将帮助你成为一名软件工程师。该仓库是一个从互联网上收集的资料和资源的集合。创建者将来自不同来源的资源和材料放在一起,同时,这个仓库是不断更新的,所以不妨密切关注一下,Repo中包含一个学习指南,如何处理系统设计问题,并解决问题。我强烈推荐它来学习更多关于设计可扩展应用程序的知识。
项目地址:https://github.com/donnemartin/system-design-primer
4. Interview Resources
Interview Resources没有关于如何使用它的描述或指南,它只列出到其他资源的链接,并根据他们的主题将这些链接分组,例如,算法部分包括书籍、编程实践、指南等。我特别喜欢这个存储库,因为它包含了大量的资源,而且,我喜欢它们按类型分类,除此之外,它还有一个优点,那就是在末尾有类似的存储库。这些都是准备面试的附加资源。
项目地址:https://github.com/Olshansk/interview
5. How to Secure Anything
安全性在过去、现在和将来都是构建应用程序的一个重要主题,如果应用程序不安全可能会导致灾难性的后果,因此,安全问题不能掉以轻心,这个仓库的优点是这些信息适用于保护任何东西——而不仅仅是应用程序。创建者表示这个仓库旨在记录一个保护任何东西的过程。
项目地址:https://github.com/veeral-patel/how-to-secure-anything
6. How Web Works
在我的第一份开发者工作面试中,面试官问我:在浏览器中输入URL时会发生什么?”当时这个问题把我难住了,同样的,未来的你可能也会遇到同样的问题。你可以在名为“How Web Works”的Repo中找到这些问题的答案,你还可以找到关于DNS、HTTP协议和服务器如何工作的信息,或者关于DOM树、呈现树、页面绘制等信息,该项目是学习Web工作原理和基础知识的存储库,此外,该存储库还包含了很多链接,用于深入研究某些主题。
项目地址:https://github.com/vasanthk/how-web-works
7. JavaScript Algorithms
这个仓库更适合JavaScript开发者,不过,如果你了解这些概念并知道如何在JavaScript中实现它们,你很可能也知道如何在其他语言中实现它们。每个数据结构和算法都有其单独的介绍,Repo中还包括进一步介绍的材料链接,因此,如果你不理解一个概念,你可以按照附带的资料进一步学习,话虽如此,我想说的是,有些信息可能是不够充分的,你还需要自己补充,但总而言之,这个仓库非常适合算法和数据结构学习。
项目地址:https://github.com/trekhleb/javascript-algorithms