大多数人都高估了他们一天能做的事情,但低估了他们一年能做的事情
这是我用来准备后端开发校招面试的一个笔记本。按照计算机基础知识的不同版块,记录了面试中常见的问题以及比较规范的答案,大部分问题都带有更加细节的知识点追问。我用它来收集整理自己遇到的一些面试题,并且在面试前回顾,就像考试之前复习知识点一样。
你可以将其作为模拟面试的问题来源,测试你的熟练程度;也可以当作面试前的知识点梳理,对一些细节问题进行填补;
当然,这个笔记本也同样适用于那些能够通过简历筛选,但是对计算机基础所知甚少的人,如果你之前从未在学校修过或者自学过这些课程,你依然可以通过这份笔记从容不迫地应对面试。
在这份笔记中(没有包含数据结构与算法),对于面试来说,最基础也最高频的是计算机网络和操作系统部分;数据库部分需要了解数据库的基础,但MySQL和redis是加分项;设计模式不是必须的;Git/命令行/RESTful是加分项,不会也没太大关系;编程语言因人而异,我用的是Python。当你浏览每个版块的目录时,你可能会觉得并没有涉及到多少问题,但其实,每个问题下的一连串追问才是这些笔记的精华所在。如果你觉得你已经对目录中的问题了然于胸,你可以点进这些问题,多看看它们的 follow-up questions.
这个仓库目前还在不断完善之中,有些问题还没加入到笔记,有些问题的思路和答案可以做得更好!如果你有很棒的想法,欢迎提 issues 或者 pull requests!
1. 计算机网络
2. 操作系统
3. 数据库
4. 设计模式
5. 工具
6. Python
为什么给我的笔记本起名为 Waking Up?当你看到这个词的时候,你脑中浮现出的可能是早上从床上醒来的画面,或者是自己在告诉自己说“醒醒吧,认清现实”的这样一个场景。
但是其实这个名字来源于电影《Lone Survivor》中的配乐《Waking Up》,让我联想到海豹突击队的坚毅、全力以赴、为了训练而付出汗水;在电影中,这段配乐出现的场景,是两名队员在基地外面的大草原上晨跑。