《Coding Interview University》 是一个由 jwasham 创建的开源项目,旨在帮助准备技术面试的开发者,特别是那些希望成为软件工程师的候选人。这个项目提供了一整套全面的学习路径,涵盖了计算机科学的基础、算法与数据结构、系统设计、编程语言以及其他与面试相关的技术主题。
https://github.com/jwasham/coding-interview-university/tree/main
编程面试大学
原先我为了成为一个软件工程师而建立这份简单的学习主题清单, 但这份清单随着时间的推移而膨胀成今天这样。在做完这份清单上的每个目标后,我成为了 Amazon 的软件开发工程师! 你或许不需要像我一样学习这么多。但是,让你成为一位称职工程师所需要的知识都在这里了。
我每天自学812小时,这样持续了好几个月。这是我的故事:为什么我为了 Google 面试而自学了8个月。
请注意: 你不需要像我一样那么努力学习。我在一些不必要的事情上浪费了很多时间。关于这个问题下面有更多信息。我会帮助你节省宝贵的时间,让你达到目标。 在这份清单内的主题会让你拥有足够的知识去面对几乎每家软件公司的技术面试,包括科技巨头:Amazon、Facebook、Google,以及 Microsoft。
祝你好运!
这是?
这是我为成为一家大公司的软件工程师制定的多月学习计划。
要求:
- 一点编程经验(变量、循环、方法/函数等)
- 耐心
- 时间
注意,这是一份关于 软件工程 的学习计划,而不是前端工程或全栈开发。 这些职业路径有很多详细的路线图和课程资料可以在其他地方找到(请参阅 https://roadmap.sh/ 获取更多信息)。
在大学计算机科学专业中,有很多知识需要学习,但是只掌握大约75%的内容就足够应对面试了,这也是我在这里涵盖的内容。 如果你想进行完整的自学计算机科学项目,可以参考Kamran Ahmed的计算机科学路线图:https://roadmap.sh/computer-science
目录
学习计划
学习的主题
获得工作机会
---————- 以下所有内容均为可选项 —————-
可选的额外主题和资源
为何要用到它?
如果你想在一家大公司担任软件工程师,这些是你必须了解的事情。
如果你错过了计算机科学的学位,就像我一样,这将帮助你迎头赶上,并节省四年的时间。
当我开始这个项目时,我对堆栈和堆没有任何了解, 也不知道大O表示法或者关于树的任何东西,也不知道如何遍历图形。 如果让我编写一个排序算法,相信我它会很糟糕。 我曾经使用过的每种数据结构都是内置在语言中的,并且我完全不知道它们在底层是如何工作的。 除非运行中的进程出现“内存不足”错误,否则我从来没有管理过内存,并且那时候就需要找到一种解决方法。 在我的生活中,我使用过一些多维数组和成千上万个关联数组,但从未从头开始创建数据结构。
这是一个漫长的计划,以至于花费了我数月的时间。若你早已熟悉大部分的知识,那么也许能节省大量的时间。