硅谷工程師的4個(gè)等級(jí)

2014年12月24日 10:23 來源:CocoaChina 作者:佚名 我要評(píng)論(0)

標(biāo)簽:工程師(68469)程序員(29779)

  SnapChat CEO斯皮格爾(EvanSpiegel)前陣子說的那句話到現(xiàn)在還到處被全球鄉(xiāng)民瘋轉(zhuǎn),如果你還沒有看過,可以參考一下:“我是一個(gè)年輕、受過教育的白人。我非常非常的幸運(yùn)。而人生是不公平的。因此,如果人生是不公平的——努力工作根本不是重點(diǎn),重點(diǎn)是知道這個(gè)世界運(yùn)作的法則?!保ˋnd life isn’t fair.So if life isn’t fair–it’s not about working harder,it’s about working the system.)

  這個(gè)23歲以前就(算是)白手起家的大富豪說的沒有錯(cuò),就像一篇塬出于中國網(wǎng)民的長文《寒門再難出貴子》所說的:

  “努力是需要有方向的,需要有指導(dǎo)的,如果在一個(gè)錯(cuò)誤的思維指導(dǎo)下,也許累死你的努力換來的就是一個(gè)只能餬口微薄收入?!?/p>

  是的!努力是需要有方向的(本篇重點(diǎn)真的不是叫你去找個(gè)富二代或是有錢人嫁了/娶了XD),摸清楚游戲規(guī)則與方向后的努力才能開外掛,才能事半功倍,讓我們先從軟件工程師開始討論吧!

  談到工程師,你可能以為只要是阿宅又會(huì)寫程序,就是程序設(shè)計(jì)師了,其實(shí),筆者在這裡工作了幾年后,發(fā)現(xiàn)在硅谷,軟件工程師以等級(jí)來說,可以分為以下幾種:

  會(huì)寫些code的

  會(huì)修別人寫出來的尸體的

  會(huì)搞些軟體架構(gòu),又會(huì)帶人的,以及最后的

  投入大型ApacheProject開發(fā)的。

  在硅谷,這幾個(gè)等級(jí)的工程師能力跟待遇相差很大,但是差距最大的部分,其實(shí)是機(jī)會(huì)。很多搞不清楚這幾個(gè)等級(jí)的程序猿們,會(huì)花上一輩子的時(shí)間在第一種與第二種工程師間徘徊,盡管工作非常努力,也很努力學(xué)習(xí)新的技術(shù),很多時(shí)候卻感到時(shí)不我予,等到年紀(jì)大一點(diǎn)了,拼不過年輕小伙子,自然慢慢就被淘汰掉了,給外人造成工程師做不老的錯(cuò)誤印象。

  所以一旦你踏進(jìn)軟件工程師的領(lǐng)域,你只能咬著牙,一關(guān)關(guān)打上去,這就是你必須面對(duì)的偉大航道。

  會(huì)寫些code的

  盡管很多人會(huì)說念資工系沒有用,或是非資工系也會(huì)寫程序等等…,在硅谷這裡,念資工系還是比較吃香,不然你自己去Facebook找人的網(wǎng)頁,SoftwareEngineering部分,看看有幾個(gè)職缺不需要BSorMSdegreeinComputerScience?

 ?。ê猛娴氖?,這裡99%的一流公司不會(huì)只想要征碩士,跟***那種很假的大公司感覺很不一樣)

  或者說你之前也有聽過可以半路出家寫程序,比如說去參加GeneralAssembly課程出來直接拿高薪等等的這種說法。我自己沒有遇過半路出家拿高薪的那些人,但是就我所知,如果你不是資工背景出來的,之前也沒有寫程序的相關(guān)經(jīng)歷,通常需要幫公司作“無償實(shí)習(xí)”來累積你在市場(chǎng)的經(jīng)驗(yàn)與人家對(duì)你的信任,然后才能正式當(dāng)上全職的軟件工程師。

  硅谷公司雖然相對(duì)比較不重視學(xué)歷,但是你還沒有經(jīng)驗(yàn)或是作品集證明自己之前,他們也是很在意出身的。相反地,在你工作叁五年后,你沒有累積經(jīng)驗(yàn)而只提出身,就慢慢會(huì)讓大家看不起了。

  還有一個(gè)很直接的方法確認(rèn)你是不是真正的軟件工程師,你去找一個(gè)當(dāng)?shù)氐墨C頭,問他是不是愿意幫你推薦你的履歷,如果他肯的話,你就100%是了。

  不管你是怎麼做成軟件工程師的,總之,你工作是在寫些Code的,就算是了。

  會(huì)修別人寫出來的尸體的(Debug別人的Code)

  一般而言,能夠做到修改別人的尸體(寫壞的程序,但是不包含回家作業(yè)XD),大概就有資格叫做資深(Senoir)工程師了。

  寫code簡單,改自己的code簡單,但是修改/修正別人的code其實(shí)就不容易了,尤其是那種一點(diǎn)都不寫注解的XD。你不僅要熟稔他使用的語言與技術(shù),還要參透他思考邏輯與盲點(diǎn),比自己自干要困難很多。

  以現(xiàn)在軟體專案的規(guī)模,你一定要跟人合作,你當(dāng)然可以請(qǐng)寫那段code的人自己去維護(hù)自己寫出來的那段程序碼,但是萬一這個(gè)人生病/請(qǐng)假/擺爛/離職了怎麼辦呢?產(chǎn)品與專案還是要繼續(xù)走,于是“會(huì)修別人寫出來的尸體的”能力就顯得非常重要了。

  基本上,到了這個(gè)等級(jí),你Linkedin的信箱漸漸的就會(huì)有很多獵人頭的留言,留職缺,希望找你去面試,只要你學(xué)校學(xué)的那些資料結(jié)構(gòu)與演算法還算熟稔,面試的氛圍也掌握得很好,年薪談到大于十萬美金應(yīng)該不是問題。

  會(huì)搞些軟體架構(gòu),又會(huì)帶人的

  稍微有點(diǎn)sense的軟件工程師就知道“作Amazon”與“做出Amazon網(wǎng)站”的差別,而這差別,正是定義這等級(jí)軟件工程師的最大因素。

 ?。ㄟ@裡說的Amazon,指的是Amazon購物網(wǎng)站,不是AWS)

  “作Amazon”與“做出Amazon網(wǎng)站”最大的差別在于服務(wù)的規(guī)模(scale),200個(gè)用戶跟2,000萬個(gè)用戶所需要的科技與演算法完全不一樣。

  拿商品推薦系統(tǒng)這個(gè)簡單的功能來說吧,我們假設(shè)你有專屬的推薦演算法,當(dāng)顧客登入網(wǎng)站的時(shí)候,你必須要用推薦演算法算過你所有的庫存商品,來推薦顧客可能會(huì)喜歡的產(chǎn)品,推高購物網(wǎng)站的營收。

  假設(shè)你目前有1萬個(gè)商品,在你有200個(gè)用戶時(shí),你只要算200萬次,一臺(tái)好一點(diǎn)的機(jī)器可能就可以處理了,但在你有2千萬客戶時(shí),你至少需要算2千萬x1萬=200,000,000,000次,這還不包括接下來排序所需要的運(yùn)算,你要怎麼設(shè)計(jì)這個(gè)系統(tǒng)?

  假設(shè)你使用100臺(tái)機(jī)器來處理,其中有幾臺(tái)運(yùn)算時(shí)錯(cuò)賽了,你要怎麼辦?你的結(jié)果會(huì)不會(huì)受到影響?還有,你當(dāng)然不能在顧客登入時(shí)才當(dāng)場(chǎng)算,因?yàn)檫@樣絕對(duì)來不及,那麼你要怎麼儲(chǔ)存這些每晚重新運(yùn)算過的結(jié)果?如果Amazon想要把網(wǎng)頁的產(chǎn)生時(shí)間壓在幾毫秒下,你只能把這些結(jié)果存在記憶體,而不是硬碟中,那你要怎麼設(shè)計(jì)與設(shè)定這個(gè)大型的記憶體系統(tǒng)(假設(shè)我們用memcached)?

12下一頁全文

本文導(dǎo)航