系统设计学习
2019獨角獸企業重金招聘Python工程師標準>>>
這里原帖地址:?http://www.mitbbs.com/article_t/JobHunting/32492515.html
以下為轉載內容
===========================我是分割線==================
稍微總結一下
1. 入門級的news feed
http://www.quora.com/What-are-best-practices-for-building-somet
http://www.infoq.com/presentations/Scale-at-Facebook
http://www.infoq.com/presentations/Facebook-Software-Stack
一般的followup question是估算需要多少server
另外這個帖子有討論
http://www.mitbbs.ca/article_t/JobHunting/32463885.html
這篇文章稍微提到要怎么approach這種題,可以稍微看看
http://book.douban.com/reading/23757677/
2. facebook chat,這個也算是挺常問的
http://www.erlang-factory.com/upload/presentations/31/EugeneLet
https://www.facebook.com/note.php?note_id=14218138919
http://www.cnblogs.com/piaoger/archive/2012/08/19/2646530.html
http://essay.utwente.nl/59204/1/scriptie_J_Schipers.pdf
3. typeahead search/search suggestion,這個也常見
https://www.facebook.com/video/video.php?v=432864835468
問題在這個帖子里被討論到,基本上每個問題,在視頻里都有回答
http://www.mitbbs.com/article_t/JobHunting/32438927.html
4. Facebook Messaging System(有提到inbox search, which has been asked before)
messaging system就是一個把所有chat/sms/email之類的都結合起來的一個系統
http://www.infoq.com/presentations/HBase-at-Facebook
http://sites.computer.org/debull/A12june/facebook.pdf
http://www.slideshare.net/brizzzdotcom/facebook-messages-hbase/
https://www.youtube.com/watch?v=UaGINWPK068
5. 任給一個手機的位置信號(經緯度),需要返回附近5mile 的POI
這個這里有討論,這題貌似nyc很愛考...
http://www.mitbbs.ca/article0/JobHunting/32476139_0.html
6. Implement second/minute/hour/day counters
這題真不覺得是system design,但萬一問道,還是要有準備,貌似在總部面試會被問
道....
這個帖子有討論
http://www.mitbbs.com/article_t/JobHunting/32458451.html
7. facebook photo storage,這個不太會被問起,但是知道也不錯
https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf
https://www.facebook.com/note.php?note_id=76191543919
8. facebook timeline,這個也不太是個考題,看看就行了
https://www.facebook.com/note.php?note_id=10150468255628920
http://highscalability.com/blog/2012/1/23/facebook-timeline-bro
除了這些,準備一下這些題目
implement memcache
http://www.adayinthelifeof.nl/2011/02/06/memcache-internals/
implement tinyurl(以及distribute across multiple servers)
http://stackoverflow.com/questions/742013/how-to-code-a-url-sho
determine trending topics(twitter)
http://www.americanscientist.org/issues/pub/the-britney-spears-
http://www.michael-noll.com/blog/2013/01/18/implementing-real-t
copy one file to multiple servers
http://vimeo.com/11280885
稍微知道一下dynamo key value store,以及google的gfs和big table
另外推薦一些網站
http://highscalability.com/blog/category/facebook
這個high scalability上有很多講system design的東西,不光是facebook的,沒空的
話,就光看你要面試的那家就好了..
facebook engineering blog
http://www.quora.com/Facebook-Engineering/What-is-Facebooks-arc
http://stackoverflow.com/questions/3533948/facebook-architectur
其他家的
http://www.quora.com/What-are-the-top-startup-engineering-blogs
==================================================================
在說說怎么準備這樣的面試
首先如果你連availability/scalability/consistency/partition之類的都不是太有概
念的話,我建議先去wikipedia或者找一個某個大學講這門課的網站稍微看一下,別一
點都不知道
這個鏈接也不錯
http://www.aosabook.org/en/distsys.html
如果你這些基本的東西都還知道,那么我覺得你就和大部分毫無實際經驗的人差不多一
個水平...
能做的就是一點一點去準備,如果你還有充足的時間的話,建議從你面試的那家公司的
engineering blog看起,把人家用的technology stack/product都搞清楚,然后在把能
找到的面試題都做一遍唄....我們做coding題說白了不也是題海戰術...而且你如果堅
持看下去,真的會看出心得,你會發現很多地方都有相同之處,看多了就也能照葫蘆畫
瓢了...
再有就是面試的時候應該怎么去approach這種題,我說說我的做法
1. product spec/usage scenario 和面試者confirm這個東西到底是做什么的
可以先列出來幾個major functionality,然后有時間的話,再補充一些不重要的
把你想的都寫下來
2. define some major components
就是畫幾個圈圈框框的,每個發表一番您的高見....然后講他們之間怎么interact
以上是question specific的東西,
這個講完了,我們可以講一些每道題都是用的,比如說
怎么scale/怎么partition/怎么實現consistency,這些東西,可以套用到任何題上
當然了,我們遇到的題和解題的方法可能都有些出入,不見得每道題有一個路數下來,
最重要的是,講題的時候要有條理,畫圖要清楚,保持和面試官的交流,隨時問一下人
家的意見。
轉載于:https://my.oschina.net/simon203/blog/262526
總結
- 上一篇: FireEye:2012年下半年高级威胁
- 下一篇: Windows PowerShell:(