Crack system level interview(new grad分享自己准备system level面试的经验)

avatar 368217
孔蒂
5440
13
相信很多时候,大家对于算法轮interview的套路都已经比较清楚了,就是刷刷leetcode见见各种题型。作为一个各种system level interview体质的人,今天我想以个人的角度,谈一下怎么准备system level的interview。

# 适用对象
很多hedge fund,以及一些做的很底层的tech company比如说vmware之类的。

# 分类
我大致觉得这类面试主要有这些角度:computer system, operating system, network。以及因为很多时候这些公司对C++的要求,还有大量的C++语法问题。我各个分类每个说一下。

## Computer System
这方面,我只推荐一个:15-213。有时间刷书没时间过网上的ppt,纯功利的角度不需做任何作业。这门课是cmu一门神课,相信大家都有所耳闻,我敢说只要你仔细过完这门课的ppt,80%system level的interview都没问题了。集中可以在第五章-第十章,注意知识的融会贯通,弄清楚virtual memory啥的原理,一起一个程序runtime的memory layout。这些都是面试时候的高频考题。同时再刷书的时候注意一些C的syscall的运用以及原理,如pipe dup, malloc。

## Operating System
从个人角度,我觉得刷掉15-213已经够你90%的os知识了,但是前本书有个很大的不足,就是一些很细节的问题讲的不是很清楚。推荐uw的一门课cse451 courses.cs.washington.edu 以及textbook(Operating Systems: Principles and Practice),它的textbook是我觉得写os写的最清楚的一本。没时间刷ppt就行了,这一块主要要注意file system的原理,multi process的模型如producer consumer(这些模型要务必可以裸写),以及process thread啥的原理。总的来看一般面试不会问的太深。这一块浅尝辄止大概知道原理就行了,找自己不熟悉的topic逐个击破。

## Networking
大多数来讲,你需要熟悉三个协议: IP for network layer, and TCP, UDP for transport layer。基本上网络的问题就是围绕着这一块展开。
这块没有捷径,需要找个textbook或者学校ppt完整过一遍,了解tcp的congestion control, flow control。ip的routing protocol。textbook 推荐computer network a top down approach。
ppt的话我看的不多,推荐ucsd的cse123。这一块市面上又很多讲的很清楚的资源。同时你需要熟悉简单的socket api:比如accept listen, connect,以及他们对应在tcp three way handshake的状态。这些看起来很scary但集中精神一个晚上,你就能全掌握了。
本帖隐藏内容需要登录后才能查看。

最重要的是,由于很多人日常用不到这些知识,这些东西很容易忘,面试前或者是没事的时候一定要勤复习以及巩固,如果大家还有问题,欢迎在下面留言。和大家共勉!
  • 169
13条回复