自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自學(xué)三個(gè)月,成功面試路線圖

新聞
又快到「金三銀四」了,一定不少同學(xué)在摩拳擦掌,怎樣更好的準(zhǔn)備從而拿到更高的級(jí)別和更好的報(bào)酬,咱們來(lái)看一位曾在 Facebook和微軟工作,面試過(guò)數(shù)百人的工程師給的經(jīng)驗(yàn)總結(jié)。

又快到「金三銀四」了,一定不少同學(xué)在摩拳擦掌,怎樣更好的準(zhǔn)備從而拿到更高的級(jí)別和更好的報(bào)酬,咱們來(lái)看一位曾在 Facebook和微軟工作,面試過(guò)數(shù)百人的工程師給的經(jīng)驗(yàn)總結(jié)。

三個(gè)月?真的可以?

人們常問(wèn)我,新人或者幾年不曾面試的人,成功通過(guò)代碼面試,合理的時(shí)間一般至少要多久?

我覺(jué)得三個(gè)月是個(gè)合理的時(shí)間。真的,三個(gè)月。如果剛面試不久,也至少需要準(zhǔn)備4-6周,如果你過(guò)去一年多都沒(méi)面試過(guò),那不能比三個(gè)月再少了。

說(shuō)回正題,下面是像 Facebook, Google, 微軟等大公司面試程序員時(shí)主要問(wèn)的五個(gè)部分:

  • Coding 面試 (主要考查問(wèn)題解決能力、數(shù)據(jù)結(jié)構(gòu)和算法)
  • 操作系統(tǒng)和并發(fā)相關(guān)
  • 系統(tǒng)設(shè)計(jì)(PS:類似于設(shè)計(jì)一個(gè)電商系統(tǒng),秒殺系統(tǒng)之類的)
  • 面向?qū)ο?/li>
  • 文化契合度

和其他需要持續(xù)準(zhǔn)備的長(zhǎng)期目標(biāo)一樣(比如跑個(gè)馬拉松),遵循一些規(guī)則很重要,因?yàn)樗鼤?huì)鼓勵(lì)你在動(dòng)力可能減弱的日子里保持在正軌上。

為此,我創(chuàng)建了一個(gè)12周的準(zhǔn)備計(jì)劃,你可以跟著準(zhǔn)備。跟著這個(gè)計(jì)劃12周后,基本會(huì)覆蓋到上面提到的幾個(gè)部分。

咱們開(kāi)始吧。 

 

Week 0 - 你應(yīng)該使用什么編程語(yǔ)言?

選擇一種編程語(yǔ)言并堅(jiān)持下去。經(jīng)常有人問(wèn):如果我知道不止一種,該怎么選?比如 Python 比 Java 好嗎?

答案是你該選擇自己最熟悉的編程語(yǔ)言。大多數(shù)面試官并不在意你是否精通主流編程語(yǔ)言。我看到有人在面試中決定「換」一種不同的語(yǔ)言,這很糟糕,別這樣,早選好一種,堅(jiān)持下去。 

[[315980]] 

Week 1 - 復(fù)習(xí)你最熟悉的語(yǔ)言的基礎(chǔ)

復(fù)習(xí)一下你選擇的語(yǔ)言,即使你在日常編碼時(shí),常用到你喜歡的語(yǔ)言,也還是會(huì)忘記不少內(nèi)容。

我見(jiàn)過(guò)不少人努力回想這些內(nèi)容:

  • 怎么讀寫文件
  • 怎樣從控制臺(tái)讀內(nèi)容
  • 字符串怎么分隔
  • String 的 length 是個(gè)方法還是屬性
  • 如何定義和使用二維數(shù)組

有一次我還看到候選人不記得判斷一個(gè)數(shù)是正數(shù)還是負(fù)數(shù)(我覺(jué)得他知道只是一下想不起來(lái))

你花在回想所選編程語(yǔ)言語(yǔ)法等細(xì)節(jié)上的時(shí)間不如將其放在展示你解決實(shí)際問(wèn)題的能力上,那才是面試官更想看到的。

像Lyft和Salesforce等一些公司,會(huì)要求你用筆記本電腦解決問(wèn)題。您得編寫能通過(guò)測(cè)試用例的完整代碼。在這些 case 里,您可能做類似:

  • 處理命令行參數(shù)
  • 解析 CSV 或者 文本文件

當(dāng)然,你可以直接 Google,但這會(huì)花你不少時(shí)間,但并不能讓你脫穎而出。

而像 Amazon 和 Google 在內(nèi)的大多數(shù)公司,會(huì)讓你在白板上解決問(wèn)題。這種考察的能力,和你在IDE里編寫代碼的經(jīng)驗(yàn)是完全不同的?,F(xiàn)在就得開(kāi)始練習(xí)實(shí)際編寫代碼來(lái)鍛煉一下了。 

[[315981]] 

Week 2&3 - 數(shù)據(jù)結(jié)構(gòu)和算法

需要開(kāi)始復(fù)習(xí)一下像數(shù)據(jù)結(jié)構(gòu)和算法這些計(jì)算機(jī)科學(xué)的概念了。實(shí)際上,你曾經(jīng)在大學(xué)時(shí)上過(guò)課但從沒(méi)認(rèn)真學(xué)過(guò)的那些概念實(shí)際上對(duì)編程面試非常有用。

要復(fù)習(xí)這些主題:

  • 復(fù)雜度分析(大O)
  • 數(shù)組
  • 隊(duì)列
  • 鏈表
  • 樹(shù)
  • 圖( BFS 和 DFS)
  • Hash Table
  • 排序
  • 查找 

[[315982]] 

Weeks 4&5 練習(xí)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)和算法

在您復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí),開(kāi)始練習(xí)一下和這些數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的相對(duì)簡(jiǎn)單的編碼問(wèn)題。

通常這些問(wèn)題在大公司面試?yán)锊⒉怀R?jiàn)。即使問(wèn),也只能算熱身問(wèn)題。這些反而在電話面試?yán)锔R?jiàn)。但練習(xí)這些問(wèn)題能幫助你內(nèi)化數(shù)據(jù)結(jié)構(gòu),解決幾周后要練習(xí)的更難的問(wèn)題。

對(duì)于數(shù)組,可以復(fù)習(xí)像下面的這些內(nèi)容:

  • 從數(shù)組中刪除偶數(shù)(奇數(shù))
  • 合并兩個(gè)有序數(shù)組
  • 找到數(shù)組中的第一個(gè)非重復(fù)整數(shù)
  • 查找數(shù)組中第二大的數(shù)

用下面的問(wèn)題來(lái)復(fù)習(xí)鏈表:

  • 計(jì)算鏈表的長(zhǎng)度
  • 在單向鏈表中查找
  • 鏈表反轉(zhuǎn)
  • 查找鏈接的中間值

通過(guò)以下的問(wèn)題來(lái)復(fù)習(xí)棧/隊(duì)列:

  • 對(duì)棧中的值進(jìn)行排序
  • 創(chuàng)建返回最小值復(fù)雜度是O(1)的棧
  • 用一個(gè)數(shù)組實(shí)現(xiàn)兩個(gè)棧

復(fù)習(xí)樹(shù)的問(wèn)題:

  • 在二叉搜索樹(shù)中查找最小值
  • 計(jì)算二叉樹(shù)的高度
  • 在二叉搜索樹(shù)中找到第N大的值

復(fù)習(xí)圖的問(wèn)題:

  • 實(shí)現(xiàn)廣度優(yōu)先查找
  • 實(shí)現(xiàn)深度優(yōu)先查找
  • 檢查圖中的回路

復(fù)習(xí)堆的問(wèn)題:

  • 在 list 里找到第 N 小的元素
  • 在 array 里找到第 N 大的元素 

 

Weeks 6,7,8 - 練習(xí)更復(fù)雜的編碼問(wèn)題

你已經(jīng)練了兩周的簡(jiǎn)單問(wèn)題,現(xiàn)在該練一些更難些的,在實(shí)際面試中更可能問(wèn)到的問(wèn)題了。

下面這些準(zhǔn)則,在解決這些問(wèn)題時(shí)要注意遵循:

  • 一般來(lái)說(shuō),解決任何給定問(wèn)題的時(shí)間不應(yīng)超過(guò) 20-30分鐘。所以現(xiàn)在你自己也要計(jì)個(gè)時(shí)。
  • 如果不能在給定時(shí)間內(nèi)解決問(wèn)題也別灰心。即使花幾個(gè)小時(shí),也先別看答案,這能幫助你建立信心,然后能更專注的在以后更快的解決。
  • 開(kāi)始考慮每種解決方案的的運(yùn)行時(shí)和內(nèi)存的復(fù)雜度。實(shí)際面試的時(shí)候必須能清楚地說(shuō)明,因此最好現(xiàn)在開(kāi)始。

以下一些可以參考的問(wèn)題:

  • 實(shí)現(xiàn)二叉樹(shù)
  • 找到兩個(gè)鏈表的交點(diǎn)
  • 對(duì)句子中的進(jìn)行逆序
  • 檢查兩個(gè)二叉樹(shù)是否相同
  • 克隆(深拷貝)有向圖
  • 確定數(shù)組中是否存在三個(gè)等于給定值的整數(shù)。

這些你得花2到3周時(shí)間。如果遇到問(wèn)題或者被卡住了,別太擔(dān)心。一段時(shí)間后你一定能解決。在練習(xí)開(kāi)始幾天看著難的問(wèn)題之后會(huì)變得容易起來(lái)。 

[[315983]] 

Weeks 9&10 - 系統(tǒng)設(shè)計(jì)面試

系統(tǒng)設(shè)計(jì)的面試在現(xiàn)在已經(jīng)成了面試中必不可少的一部分,特別是你要申請(qǐng)高級(jí)職位的時(shí)候,這些面試會(huì)直接影響你的面試「等級(jí)」。

學(xué)習(xí)一些 CAP 、 一致性、 分區(qū)、負(fù)載均衡等分布式相關(guān)的概念很有必要。

在系統(tǒng)設(shè)計(jì)中,面試官一般會(huì)讓你設(shè)計(jì)一個(gè)「彈性」的應(yīng)用,他會(huì)根據(jù)這些來(lái)評(píng)估你設(shè)計(jì)可擴(kuò)展服務(wù)不同部分的能力。比如下面這些方面:

  • Web 服務(wù)器是怎么做負(fù)載均衡的?
  • 數(shù)據(jù)庫(kù)是怎樣分片的?
  • 大文件是怎樣存儲(chǔ)的?
  • 為了穩(wěn)定性和吞吐量,網(wǎng)絡(luò)是如何設(shè)計(jì)的

而對(duì)應(yīng)考察這些方面的問(wèn)題,會(huì)體現(xiàn)在類似這種問(wèn)題中:

  • 請(qǐng)?jiān)O(shè)計(jì)一個(gè) Instagram (圖片分享)
  • 請(qǐng)?jiān)O(shè)計(jì)一個(gè) Facebook Newsfeed (新聞Feed)
  • 請(qǐng)?jiān)O(shè)計(jì)一個(gè) Uber

PS: 關(guān)于系統(tǒng)設(shè)計(jì)的問(wèn)題,我的公眾號(hào)「Tomcat那些事兒」里后面會(huì)陸續(xù)分享,包含數(shù)據(jù)庫(kù)分片、一致性、數(shù)據(jù)庫(kù)設(shè)計(jì),負(fù)載均衡等設(shè)計(jì)可擴(kuò)展應(yīng)用必備的技術(shù),敬請(qǐng)期待。 

[[315984]] 

Week 11 - 操作系統(tǒng)和并發(fā)

今天,即使最便宜的筆記本電腦和手機(jī),也都有多個(gè)核。無(wú)論你是開(kāi)發(fā)移動(dòng)應(yīng)用,還是 Web 服務(wù),了解線程、鎖、同步等概念都很有用。

像系統(tǒng)設(shè)計(jì)面試的問(wèn)題一樣, 多線程和并發(fā)問(wèn)題在衡量你的面試等級(jí)也很有用。初級(jí)工程師一般只是簡(jiǎn)單了解。而一個(gè)相對(duì)高級(jí)的工程師應(yīng)該在這些問(wèn)題上能做的更好。 

[[315985]] 

Week 12 - 面向?qū)ο笤O(shè)計(jì)

一些常見(jiàn)的問(wèn)題類似:

  • 設(shè)計(jì)一個(gè) ATM程序
  • 設(shè)計(jì)一個(gè)電梯程序
  • 設(shè)計(jì)一個(gè)停車場(chǎng)程序

在面向?qū)ο笤O(shè)計(jì)的問(wèn)題中,面試官一般會(huì)考察你對(duì)軟件設(shè)計(jì)模式的理解,以及你對(duì)從需求抽象出 Class 的能力。你得花大部分時(shí)間來(lái)解釋不同的組件,它們的接口,以及組件之間是如何交互的。

文化契合度面試

這一部分有時(shí)候可能是最重要的,但許多人并沒(méi)太注意。例如,在 Amazon,文化深深植根于他們的錄用過(guò)程中,一些深度認(rèn)同和踐行文化的人最終決定是否錄用你。(PS: 和阿里的HR 是否有一拼)

這種方式思想其實(shí)也很簡(jiǎn)單:如果你態(tài)度很好,你學(xué)新技能也沒(méi)什么問(wèn)題,因此編碼和系統(tǒng)設(shè)計(jì)時(shí)的一些問(wèn)題也是可以忽略的。但如果一個(gè)人對(duì)產(chǎn)品感興趣但看樣子和團(tuán)隊(duì)不太好合作,可能也不會(huì)錄用。

文化契合度面試的一些基本規(guī)則:

  • 表現(xiàn)出你對(duì)產(chǎn)品的興趣,和對(duì)它的理解
  • 要做好準(zhǔn)備「在與同事或者與經(jīng)理發(fā)生沖突的時(shí)候是怎么解決的」這類問(wèn)題的答案。不要說(shuō)工作幾年,不會(huì)有沖突之類的
  • 說(shuō)一下如果面試成功,你在公司想要做什么
  • 說(shuō)一下做為工程師你最近或最有影響力的一些成就。
  • 說(shuō)一些你遇到特別難解決的bug。

總結(jié)

準(zhǔn)備面試會(huì)花費(fèi)你大量的時(shí)間和精力,但如果這能幫助你脫穎而出,那也是值的。在準(zhǔn)備的過(guò)程中要牢記你的最終目標(biāo)是找到一個(gè)個(gè)人滿意的高薪工作,將有助于你堅(jiān)持下去。

 

責(zé)任編輯:武曉燕 來(lái)源: Tomcat那些事兒
相關(guān)推薦

2013-08-28 11:21:05

2014-04-29 10:32:44

編程課程編程

2009-08-24 11:14:57

思科認(rèn)證CCNA思科認(rèn)證CCNP心得

2011-06-15 13:50:30

云計(jì)算數(shù)據(jù)中心ODCA

2024-12-23 13:59:14

2022-01-26 18:17:30

微軟Windows 11Windows

2009-03-19 10:40:02

職業(yè)分析經(jīng)驗(yàn)行業(yè)

2020-11-24 10:47:22

云計(jì)算云遷移IT

2010-12-31 10:05:22

Exchange

2009-03-12 16:32:00

CCNACCNP思科認(rèn)證

2011-05-11 16:29:38

iOS

2011-03-08 10:10:48

BlackBerry

2010-05-31 16:01:20

百度廣告管家

2012-02-08 09:49:02

惠普webOS開(kāi)源

2013-02-25 15:02:05

Windows Blu

2017-10-30 11:04:19

美團(tuán)無(wú)人新零售

2010-12-31 13:22:36

2010-07-23 14:34:38

2024-06-26 09:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)