中级农民
- 积分
- 105
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-11-27
- 最后登录
- 1970-1-1
|
2018(7-9月)-CS硕士+短暂实习或全职不超过3个月 | Other| 码农类General全职@airbnb
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
之前的帖子里有同学对我的学习方式感兴趣,在这里再补充一点。
原帖在这:https://www.1point3acres.com/bbs ... amp;_dsign=fa37dbf2
我的背景是数学本科,因为数值分析和research,会c/c++。毕业的时候算法,data structure几乎都不会。
入学前的暑假开始学算法,用了LC,Algorithm 4th edition from Princeton,Thinking in Java,Geeks for Geeks。
一个暑假刷LC,按tag刷的,基本一类刷得掌握了再刷另一类,从array到string到dfs,bfs等。
我个人刷题喜欢直接看答案,不硬想。请各位同学酌情模仿。
但是每个题我会看好几种答案,比较优缺点。答案每一行都要看懂为什么这么做,然后抄一个我觉得最好的写法。
在刷题的同时学了很多算法,Binary search,sorting,dfs,dfs,topological sort。基本上是看到某一题要用哪个就会把那一类全看一遍。
也学了很多data structure,从最基本的arraylist linkedlist hashmap treemap到稍微一些的union find,trie。
同理,每一种都会知道区别,什么时候用哪个。对于不在STD里的,都要保证能白纸写出来。.1point3acres
暑假的速度大概是一天五题,不是很多,但是因为0基础,所以要学的东西还是很多,比如学一下Union find看一下coursera上的Princeton大爷公开课就很久过去了。
同时看Thinking in Java来多了解Java的语言特征。比如什么inheritance啊polymorphism啊generic啊等等。.1point3acres
暑假结束的时候,一共刷了200左右LC,几乎没有刷hard,只刷了经典的LRU。我觉得准备的这些找实习已经够用了,开学以后就每天刷几题保持手感,多看面经。
实习的时候几乎没有准备过design,所有考design的实习我都跪了。。。
因此第一年的选课都选了system或者software engineering相关的课,课上学了很多os,networks,cloud等。在第一年里疯狂补充CS基础知识。
第一年下半年的时候后来也没有特意去刷题了,基本都在专心学CS,还选了AI,NLP的课。
. Waral dи,
第二年暑假实习的时候接着开始刷题。在每天下班的时候刷题,一般一天5题左右,其中刷了很多重复的题。
另外开始跟着Princeton algo 第二部分学稍微高深一点的算法,每一个算法/DS的目标都是要做到能白板写。
我当时学的有从成名算法LZW,Huffman,KMP,BM,Rabin-Karp到Redblack tree,KD tree,BIT,Segment tree等等。
后来发现上面这行一个都没考。。。所以我建议同学们可以不用看,知道红黑树能干嘛就差不多了。。。. .и
我觉得暑假的时候还是把自己做的project了解透彻。因为会写在resume最显眼的地方,面试和尬聊的时候还得靠这个吹。. From 1point 3acres bbs
hr,面试官,manager肯定是想了解candidate最近的以及在业内的experience,所以intern project效果肯定比别的都好。. 1point3acres.com
. From 1point 3acres bbs
到暑假结束的时候基本该会的都学了,我觉得就多刷点题而已了。 ..
像system design这种是突击不出来的,我被问到的system design问题基本都靠上课讲的答,从OS到distributed,cloud到networks,web这些都要了然于胸。
没有上过课的同学建议看一下地里给推荐的Design data intensive applications,我觉得和上课内容差不多。
如果还有别的问题请大家留言,我尽力为各位解答。. Waral dи,
|
上一篇:Goldman sachs hirevue 下一篇:微软口头offer后大概多久出正式offer?
|