程序員如何做好應聘?簡歷、面試和Offer

其實每個工程師都討厭Bug、代碼不整潔、性能太差、用戶界面不人性化等,這些都是一些技術細節,是可以慢慢體會和提高,總能找到答案去改進的。但在工作中,我應該學習和使用什麼樣的技術?爲什麼要自動化測試?如何搭建一個產品,看起來比較靠譜?我怎麼去選擇一份工作?如果我在一家大公司工作,如何跳槽到創業公司?我如何談判取得更多的薪金或獎金?什麼是股票激勵?這些問題倒是更棘手,本文將給出一些介紹和輔助工具。

《程序員面試白皮書》是一本我希望自己在大學就能看到的一本書。在我讀大學的時候,跟很多同學一樣也走過不少彎路:艱難地啃着計算機必修課,被裏面的指針和對象搞的暈頭轉向,對i++和++i區別死活不理解,爲操作系統的調度策略而抓狂,很難對專業書產生興趣,只是想着去應付考試和學分。當我們畢業後,雖然有了計算機學位和實際工作經歷,但其實還是不知道最想得到什麼。我當時心中有個情節,就是希望能去最好的公司,比如Google,因爲聽說那裏面都是最聰明的人,有着最好的待遇和福利,做着最有影響力的事情。當我鼓起勇氣去嘗試的時候,我失敗了,並且要進入6個月的冷藏期(失去在一段時期內繼續面試的機會)。而我發現當時的面試表現是那麼的稚嫩和糟糕,我開始懊惱,開始反省,開始重新準備,這樣纔有了我下一個面試機會和其他的Offer。當然如果一切可以重新再來,我可以更有自信更好地發揮我的能力,也許當時的理想公司就會給我Offer。

整個招聘流程主要如下:申請某個公司你感興趣的職位,投出你的簡歷。HR從簡歷庫中篩選符合要求的簡歷,安排面試。面試主要分爲電話面試和現場面試,如果面試表現優秀,HR會同你討論待遇、福利、起始時間等具體信息。針對上述流程,讓我們一一分析其中的關鍵環節。

簡歷

簡歷是求職的第一關,儘管簡歷不能決定最後的錄取結果,但是一份結構清晰、內容充實且具有針對性的簡歷,可以給你帶來寶貴的面試機會。本節將從格式、內容安排和描述技巧等方面介紹如何生成一份對HR有吸引力的簡歷。可以根據不同的職位描述適當更改簡歷的某些內容,但不建議準備太多份區別過大的簡歷,以免自己投遞的時候產生錯誤。如果你真的需要這麼多簡歷以應對不同職位,則應當考慮下自己的優勢在哪些方面,適當減少求職目標。注意,下文的描述注重在北美求職的簡歷結構,其中大部分要點具有普適性,但是如果在國內求職,有些地方可能需要根據實際要求進行更改。

1.1.1  格式

除非你想面試用戶體驗或者設計相關的職位,否則簡歷的格式儘量以簡介清晰爲主。標題及名字等重要信息可以適當加粗或者增大字體,其他文字描述儘量統一字號。字體選定一種即可,不建議用不同的字體去突出不同的內容:不同的字體會顯得版面雜亂,並且對排版造成困難。英文簡歷Calibri是比較適宜的字體,中文可以用宋體。簡歷可以用Word、Latex、Pages或者InDesign製作,但是最後務必導出成PDF,確保在不同的平臺上,對方看到的格式一致。

1.1.2  內容安排

簡歷是一個提供信息、展示自己的平臺。對於剛畢業、沒有什麼工作經驗的人來說,簡歷一般控制在一頁爲宜,如果是PhD,需要適當列舉一些相關的文章發表信息,那麼簡歷可以擴展至兩頁。這裏就給一個示例,它在一頁紙的長度中精煉地描述了求職者的教育背景、實習經歷、技能和專業背景,如圖1-1所示。

圖1-1  一頁紙的簡歷

簡歷的第一要務是讓對方能夠認識並聯繫上你,所以名字、郵件、電話、地址等基本信息缺一不可。特別的,對於在美國本地求職的人而言,郵編很重要,因爲網上的申請系統往往會根據郵編將申請者按地域劃分。對於很多公司而言,他們會優先考慮本地的申請者。所以當你申請的公司在當地有總部/分部時,務必寫上本地的郵編。

這裏有個小技巧,由於絕大部分科技公司都在加州,特別是北加州硅谷附近,所以如果有朋友在加州的話不妨寫朋友的地址。這樣做的確可以提高被選中面試的機率,甚至有些小公司可能會跳過一輪電話面試直接邀請你去公司面試。現在絕大部分面試過程都是通過電話或郵件確定,除了最後給你發Offer,招聘的中間部分都不會給你提供地址寄送任何文件。如果公司決定給你Offer,你也完全有機會和HR確認/更新你的實際地址。這樣做的缺點是,可能去公司面試的時候你需要自己安排機票住宿,如果真到了這一步,權且就當花錢買個機會了。

基本信息之外,對於剛畢業的學生而言最重要的信息包括學校、專業和學位。學習成績對於大部分公司而言只是加分項,如果GPA低於3.3,可以考慮不包括成績。當然,如果GPA是你的亮點之一,那也完全可以包含此信息。在這方面,Oracle是出了名的名校控,如果你高GPA、名校出身,基本上半隻腳已經踏入了Oracle。相對而言,其他公司並沒有這樣的要求。此外,對學生而言可以列舉一些在校學過的相關課程。只需要列舉課程名即可,內容數量以5項左右爲宜,課程名儘量選擇大家熟知的,比如算法、數據結構、操作系統等,如果是研究生課程,可以加上“高級(advanced)”關鍵字。

簡歷中另一個十分關鍵的內容是之前做過的項目描述,包括工作經歷、實習經歷或者課程項目經歷,這些部分的目的在於展示你具有相關經驗,具有較強的技術實力,能夠加入團隊一起完成一個複雜的項目。這裏,我們主要介紹如何選擇合適的項目,在描述技巧部分,會進一步介紹如何描述使得你的項目更有趣。就項目內容而言,你需要優先選擇和職位描述相關的項目,相關性包括:需要相似的知識,需要使用相同的軟件或開發環境,需要類似的編程語言或編程模式,需要實現類似的功能等等。這些項目最能體現你的價值,使得你從一堆申請者中脫穎而出。如果沒有相似的經歷,那麼你可以列舉一些比較複雜的項目,突出你的綜合能力。這些可以包括:畢業設計、課程的學期作業、網上參與合作的開源項目等。列舉的目的主要是突出你的技術水準優秀,具有與他人合作的能力。就項目種類而言,你需要優先選擇業界的工作實習經歷,只要它們和你所求職位的描述大體在同一個行業即可。畢竟,有實際的工作經驗可以傳達下列信息:你對業界有一定的瞭解,熟悉業界的開發模式和開發週期,能夠適應公司的工作環境。

簡歷的最後部分可以用來列舉你的技能,包括熟悉的編程語言、開發環境、技術強項等。這部分的目的在於讓HR能夠從簡歷庫中匹配到你的信息。通常,每個職位都有一些技術要求,HR會通過查詢關鍵字,從簡歷庫中選擇匹配程度高的簡歷。這部分可以大大增加簡歷被匹配上的可能性。列舉的原則是,並不需要特別熟悉,只要實際用過就可以在此列舉。注意,如果你有幸被安排了面試,一定要回到這個部分,確保你所列舉的部分至少都能回答一些基本的問題,千萬不要給人做假的感覺。往往,HR並不一定了解你項目部分的描述是否與職位要求一致,因此,你這部分所列舉的技能需要儘量用業界標準的語言,列舉名詞即可。

1.1.3  描述技巧

描述的技巧主要體現在項目描述方面。項目描述主要突出你做了什麼,實現了什麼樣的目的。項目名稱一般需要讓讀者大致瞭解你做了什麼,然後以如下模版,“通過……開發方式(或者技術),做了……,最終實現了……的結果”,描述項目的具體內容。就英文簡歷而言,一般以過去時爲主,以動詞開頭,描述你做過了什麼,實現了什麼目的。舉例如下:

Software Engineering Internship,XX Company,6/1/2014 – 9/1/2014

Interned with the server team.

Implemented a distributed access control algorithm in C++, which improved login time by around 50%.

英文簡歷常見的另一個問題是如何翻譯專有名詞,比如在國內大學獲得的種種榮譽等。此時,一定要參考網絡資料,確保讀者的理解和你想要表達的意思一致。甚至可以用一句話簡單描述這是怎樣的榮譽,或者用百分比表示只有top的學生才能獲得該項榮譽。舉例如下:

Excellent Student Award

Granted to recognize overall outstanding performance.

另一個很好學習途徑,就是去LinkedIn上看一些優秀人士的個人主頁,特別是你想去的公司的工程師的背景。一般都會很清晰地構建他的目標和過去經歷,不需要照搬內容,但可以給你啓發,當你去投這些公司時,你就知道什麼樣的簡歷更容易被他們欣賞。

面試

根據面試的不同對象,在招聘過程中你可能需要面對 HR、技術面試官和老闆。針對不同的角色,你應該準備不同的面試方式。具體分析如圖1-2所示。


圖1-2  面試須知

1.2.1  HR

HR是你與公司的連接點。通常,HR負責安排協調面試,主要通過郵件聯繫。HR也有可能會直接打電話聯繫你,目的是瞭解你的基本情況,包括身份、畢業/離職時間等。HR通常會介紹職位要求和公司的基本情況,並且在面試當天接待你,瞭解你是否有其他面試安排或者其他公司的Offer。此外,HR還負責面試你的溝通能力,向老闆反饋性格方面與團隊的契合度以及對公司感興趣的程度。因此,每次與HR的溝通也需要熱情、職業。適合向HR瞭解的信息包括:公司的整體氛圍、面試的流程安排、最近公司人員流動情況等。

1.2.2  技術面試官

技術面試官主要負責衡量你的技術水平,以及判斷你是否符合職位要求。總體而言,對科技公司,技術面試官的意見最爲重要。技術面試包括電話面試和現場面試,前者主要偏向概念性的問答,也包括通過協作網站直接寫代碼等。現場面試通常包括白板寫代碼,解決一個算法問題或者設計問題等。本書的主要目的就是幫助你通過這輪面試。

一些面試的小技巧如下:一定要先溝通,明確自己瞭解題意,不要過分考慮或者欠考慮。首先可以給出一個比較容易想到、但並不是最優的解決方案,再逐步優化。在思考的時候也要把思路講出來,哪怕不是很成熟的方案。一旦遇到困難,可以先自己設法解決,如果五分鐘沒有思路,可以向面試官求助。適當的提示並不會影響你面試的最終結果。當開始寫程序的時候,儘量注意語法格式、變量命名等,避免寫僞代碼,越接近真實代碼越好。寫完以後自己檢查下有沒有明顯的錯誤,可以列舉幾個簡單的測試數據,與面試官一起檢驗一下整個運行過程。

面試是一個合作解決問題的過程,溝通一定是面試的關鍵:需要通過溝通展示你的邏輯性、理解能力和表達能力。在面試的最後,通常對方會給你提問的機會,你可以問的問題包括:團隊平時使用什麼樣的技術,通常的工作壓力和工作時間,公司最讓人興奮的地方;在當前職位工作了多少年,面試官之前的工作經歷與現在相比有什麼異同等。

面試考察的基本功,包括以下方面:

程序風格:能正確使用縮進,括號要對齊,變量名可以起的有意義;

編碼習慣:異常檢查,邊界處理;

溝通:讓面試官時刻明白你的意圖,不要閉着眼睛不停地寫。因爲你的算法未必對。對了你也未必寫得出來。中間稍微有點問題,你就失敗了。對於面試官來說,他根本不知道你的解題進行到哪一步了;

測試:主動寫出合理的測試用例(Test case),一些常見的用例,如null檢查。一般你沒寫的話,面試官會讓你寫,但如果你主動寫出來,說明你有好的習慣,容易加分。

技術面試的流程通常如下,可供參考。

當你拿到一個具體問題時,可以按照以下流程回答:

1.明確題意:通過與面試官交流明確需要解答的問題。這部分主要爲了讓自己放鬆心態,並且給面試官留下你具有良好團隊意識和交流能力的印象。

2.描述大體思路:描述你打算用什麼算法,什麼數據結構。主要是爲了讓面試官瞭解你的思維過程,如果你給出的解答與他想要的答案偏差太多,可以及時糾正。同時,描述思路也給了你自己思考的機會。

3.實現算法:先處理邊界條件。對於重要的算法模塊,加一些註釋或者與面試官進行交流。目的是讓面試官始終了解你在做什麼,算法框架是什麼。

4.跑一個測試:用一個測試用例走一遍你寫的程序。目的在於和面試官一起確保你的算法是有效的,可以在過程中及時發現並糾正自己的錯誤。同時,給面試官留下你有寫單元測試(unit test)習慣的良好印象。

5.描述算法複雜度,回答面試官的問題。

1.2.3  老闆

團隊的老闆通常最後一個出場面試,或者陪同面試者一起吃午飯。老闆負責收集整理所有人的反饋,並且決定是否發Offer。通常而言,老闆可能不會問過於技術的問題,而是側重考察你的協作溝通能力。老闆的問題可能包括:如何面對工作中的難題/壓力,你之前做過的項目,爲什麼適應這個職位等等。與老闆溝通需要表現出你對他們團隊的熱情,並且在回答中儘量體現自己爲什麼適合這個職位。面試是一個相互的過程,通過與老闆的面試,你需要了解這些問題:團隊的成員構成,一般情況下項目如何分配,老闆對你的期望,老闆對團隊在公司中發展的一些展望等等。

另外,準備一些常見的行爲問題:比如你有沒有過失敗的經歷,如果你老闆給你不喜歡的任務怎麼辦,你想象中要成爲什麼樣的人。這裏一方面可以結合自身精力,另一方面多關注公司的介紹頁面,包括公司創始人背景、企業文化、招聘的要求。這些都可以提前做好功課,儘量體現出來你的激情、負責、勤奮等優秀品質。

Offer

如果走到這一步,那麼祝賀你,你成功了!在這一步,你需要一些談判技巧,爲自己爭取更多的利益。首先,你要做的是與HR覈對信息,包括你的地址、入職時間等。

通常,HR會簡單介紹你的待遇福利,當你確認無誤後,HR會生成正式文檔讓你簽名。在這個階段,你可以讓HR解釋Offer條約中你不理解的部分,並且協商你的待遇。協商的最常見方式是,當你有其他公司的Offer,你希望最想去的公司能夠match其他公司的最高值。注意,在這個階段,HR是與你站在一條戰線上:HR也不希望你輕易地拒絕他們的Offer。因此,你完全有理由提出你自己的要求。一般在你有其他公司Offer的情況下,HR都能爭取到一些更多的利益。從爭取難度而言,入職時的簽字獎金最容易爭取,股票和基準工資則比較難有提升。當然,工資待遇是重要的一方面,但在你決定是否接受Offer的時候,綜合考慮公司的發展前景、團隊在公司中的地位、老闆與你交流時你的感受、團隊氛圍等也是必不可少的因素。

對於美國的絕大部分公司,Offer上都不會寫僱傭時間,這意味着雙方都可以隨時終止合同。通常情況下,大公司不會輕易裁員,哪怕裁員也會有一定的補助。另一方面,這也說明你可以隨時離職,甚至在入職之前,也即毀約。一般來說,不建議這種做法:更合理的做法是嘗試與HR溝通,告知對方自己還有其他的面試/Offer,需要推遲一段時間做決定。如果實在萬不得已,有其他更好的選擇,你需要儘早與HR溝通,希望對方理解。一定不要拖到最後告訴對方自己不去了,這樣的做法很不職業,也不禮貌。

當你接受Offer之後,可以向老闆要一些材料,自己先準備一下,以便工作開始的時候能夠更快上手。一般新到一個公司都會有數週甚至數月的上手時間,團隊會專門有人幫助你瞭解他們的項目。新的旅程就此開始!但這僅僅是開始,未來也許是更大的挑戰,能不能融入團隊中,能不能抵抗住壓力,工作內容是否符合自己的興趣,這些都是未知數。所以我們說沒有絕對正確的選擇,只要用你的才華和汗水付出纔有實際意義!

常見問題

問題1:如何知道一些靠譜的公司?

首先,瞭解一下“牛人”都選擇去哪些公司。如果公司名氣不大,可以去流量排名上去看他處於什麼地位,公司有沒有上市,它的融資規模,還可以從Linkedin看它的員工是否優秀。

在硅谷,大家非常熱情地談創業談機會,我們也通過自己的一些觀察和積累,看到了不少最近幾年才涌現出來的熱門創業公司。給大家一個列表,這個是華爾街網站的全世界創業公司融資規模評選([http://graphics.wsj.com/billion- dollar-club/](http://graphics.wsj.com/billion- dollar-club/)
)。它本來的標題是“Billion Startup Club”(十億美金創業公司俱樂部),不到一年的時間,截至2015年1月17日,現在的排名和規模已經發生了很大的變化,如圖1-3所示。

第一,估值在10Billlon(百億美金)的公司達到了7家,而一年前一家都沒有。第二,第一名是中國人家喻戶曉的小米,第三,前20名中,絕大多數(八成)在美國,在加州,在硅谷,在舊金山!比如Uber、Airbnb、Dropbox、Pinterest。第四,裏面也有不少以相似模式取得成功的公司,如Flipkart就是印度市場的淘寶,Uber與Airbnb都是共享經濟的範疇。所以大家還是可以在移動(Uber)、大數據(Palantir)、消費級互聯網、通信(Snapchat)、支付(Square)、O2O App裏面尋找大的機會。

圖1-3  十億美元創業公司俱樂部

問題2:硅谷的Startup有什麼技術方案?

分類介紹如下,如圖1-4所示。

編程語言:Python、Scala、Swift for iOS、C/C++、Java等主流開發語言;

前端:Play、Video.js、Jade、HTML5等;

框架容器:Docker、Mesos、Vagrant等;

日誌監控:Datadog、Sumologic、Akka、Kafka等;

後臺數據處理:Hive、Scalding、EMR、Big Query等;

圖1-4  硅谷常用技術矩陣

虛擬機:EC2等雲服務;

服務器:Nginx等;

配置工具:NPM、Zookeeper、Puppet、Gradle等;

信號通知:SQS等;

代碼託管:Github、SVN等版本控制工具;

數據存儲:Cassandra、MySQL、S3、Redshift等;

內部工具:Phabricator、Slack、Google Docs、RelateIQ、Jira等協作工具。

以Coursera爲例,作爲創業公司,Coursera力圖保持敏捷和高效。從技術上來說,所有的內容都是在基於AWS開發,可以想象隨意啓動雲端服務,做一些實驗。公司大致分成產品組、架構組和數據分析組。因爲公司比較新,所以沒有什麼歷史遺留遷移的問題。大家大膽地使用Scala作爲主要編程語言,採用Python作爲腳本控制,比如產品組就是提供課程產品,裏面大量使用Play Framework、Javascript的Backbone作爲控制中樞。而架構組主要是維護底層存儲、通用服務、性能和穩定性。筆者所在的數據組,一部分是對商業產品、核心增長指標做監控、挖掘和改進;另一部分是搭建數據倉庫,完善與各個部門的無縫數據流動,也用到很多技術;例如使用Scalding編寫MapReduce程序,也有人做AB testing框架、推薦系統,儘可能用最少人力做有影響力的事情。其實除了開源世界,Coursera也積極使用第三方的產品,比如Sumologic做日誌錯誤分析,Redshift作爲大數據分析平臺,Slack做內部通信。而所有的這些的目標就是想解放生產力,把重心放到用戶體驗、產品開發和迭代上去。

問題3:什麼時候才知道準備好面試?

可以從如下幾個方面來衡量。

算法是否過關,是否能寫出遞歸和動規;

Coding是否過關,是否能在編譯器中寫出Bug Free;

Design是否過關,是否能給出Tradeoff;

項目經歷整理,能夠流利說出架構、難點、自己的貢獻;

加分項:Github、Blog、參與Open Source。

問題4:如何拿到美國工作簽證?

要來美國工作,一般是要求具有H1B(工作簽證)的身份,獲得該身份需要有僱主向勞工局提出申請(sponsorship)。根據現在的形式,每年的名額都是一搶而空,那麼這就需要抽籤決定。在4月1日之前提出申請,4月1日之後開始抽籤,如果是在美國獲取碩士以上的學位,可以有優先級,抽取概率更高,而根據今年情況,普通的抽中機率是50%。即便沒有抽中,如果是擁有美國的碩士學位,可以使用OPT照樣工作,並且可以省社會安全稅(Social Security Tax)。而如果是海外的學位,只能等來年再抽籤。

像Google、Facebook這種全球性公司,他們也會提供其他國家辦公室的機會,工作一年後再通過L1或者H1B繼續到美國工作。另外如果你抽中了H1B,那麼如果以後再跳槽,則可以通過辦理轉職(transfer)沿用之前的名額,而不需要再次抽籤。H1B每3年可以續一次,最多6年。如果H1B到期時已經申請綠卡,那麼還是可以延長H1B的有效時間,直至綠卡生效。

問題5:我不是算法大牛,不是ACM隊員,聽說Google,Facebook有很多牛人才能進,那我怎麼能拿到好Offer?

首先要有信心,算法不是想象那麼難。原因有以下兩個方面:

第一,因爲面試常見的算法就那麼幾種。只要你努力去總結歸類相似題目,只做很少的題,就可以舉一反三掌握很多的題。不要盲目關注數字。做題質量非常重要。標準是:你做過的題目,讓你再做一次,你就能“完美解決”。

第二,即使你知道一道題的解法,你未必能寫好。因爲你可能每次寫出來的程序都很隨性,這樣會漏洞百出。程序員是一個非常講究嚴謹性的職業,如果你在總結題目的時候能夠找到這些題目的模板,把模板提煉好,碰到類似的題目,可以一邊寫模板,一邊想想怎麼在模板上做一點簡單的改動。這樣既節省時間又保證不會出錯。

問題6:從其他專業轉做計算機專業的該怎麼準備?

1.讓自己更專業。例如,你的簡歷只能放和計算機有關的東西,其他東西再牛也不能發揮用處(如學生會主席)。如果簡歷還是很空,就多去做項目。實在沒項目,就把非計算機專業的項目改寫得更接近。

2.在某一方面達到工程師實力。臨時轉行時間短,找一個容易入手的準備,如果你以前做的事情跟數據有關,就申請數據分析師(Data Analyst)。如果你本來就會一些基本技術,可以做前端,用JavaScript、HTML和CSS,去真正做一個自己博客。如果對產品感興趣,就玩Django、Ruby on Rails這樣的網站框架,瞭解一個網站是怎麼搭建起來的。如果對移動開發感興趣,就寫幾個在iOS或者Android上的App。這樣做的好處是,簡歷不空,如果問到,可以駕輕就熟。如果不相關,坦誠相見,說由於我是轉行的,在這方面不熟悉,可以嘗試一下。也可以直接告訴面試官,我是轉行的,我對計算機很感興趣,做了這麼這麼幾個項目。於是面試官不會問你難題。而實際上你早就準備好了,超出面試官預期,會得到一個面試高分!

問題7:面試時候如何表現自己體現溝通能力?

首先你要站在面試官的角度思考問題。面試官要招你進去當同事,你希望同事怎麼樣?

你可以反覆和面試官交流自己的想法,得到面試官認可以後再動手寫。可以講講你是怎樣想到這個思路的。從而展現你的溝通能力。記住,你並不是要說服他接受你的想法,而是要把你的想法解釋給他聽。面試官提出質疑的時候,第一,不要覺得面試官什麼都不懂,怎麼這都不知道(其實他只是看一下你是否真的懂);第二,面試官比你經驗豐富得多,很有可能就是你犯錯了,趕緊想想是不是真的有問題。

問題8:面試中出了Bug怎麼辦?

避免Bug很重要,這個需要我們平時不斷地練習,按照上述的方法準備,還是可以避免一些“坑”的。但碰巧你可能不在狀態,寫出了Bug被面試官指出,是不是就掛了呢?

首先別擔心,出Bug很正常,也許面試官來面試你之前正在Debug。衡量一個程序員能力的標準,並不是他能想出多牛的算法,而是程序員在遇到問題的時候分析和解決問題的能力。而出Bug的時候,正是展現你是否是一個合格程序員的時候!

Debug的流程如下所示:

1.通過測試用例定位Bug所在位置;

2.不要立即修改代碼,重新梳理邏輯。因爲很有可能還有其他Bug;

3.走完所有邏輯之後,心裏有數怎麼改了,再動手開始改;

4.用測試用例再走一次新的代碼;

5.在整個過程中,不停地告訴面試官你在做什麼(在不影響正常寫程序的情況下)。

這樣,成功排解Bug,不但不會減分,還會因爲你優秀的Debug能力和與此同時展現出來的溝通能力而加分。

問題9:如何做出最後選擇Offer?

在考慮Offer之前,先對公司做個研究,比如這家公司是什麼規模,產品是什麼,Glassdoor員工如何評價的,你的職位你喜歡嗎?這就跟選學校一樣,如果選錯了,也是需要走很多彎路。我們個人的參考是首先這家公司是上升期的,產品是否有愛,團隊是否比較強,能否學到東西。對公司分類,例如Hortonworks這種是純技術性的,面向企業級的,可能沒多少人知道,而Uber是大衆消費性,很多朋友都用過。現在的熱點是移動互聯網,大家也可以多考慮這一塊。

如果上市的公司,會給限制性股票,分3~4年行使期權,創業公司一般給期權,不同就是限制性股票是白送的,不需要自己掏腰包,期權需要自己買入,不同時期價格不同,但股票交的稅非常高,有些期權是長期避稅的。最後也要考慮你的興趣和對風險的承受能力,如果去大公司做個螺絲釘,實現共產主義生活也無可厚非。去小公司壓力大,成長快。但也要做好失敗的準備,看看當年Zynga教訓。

《程序員面試白皮書

董飛, 逸超 著

本書作者來自硅谷一線的IT公司,書中包含了作者親身的經驗和體驗,書中收集的題目部分來自互聯網上分享的面試經驗、在線編程網站leetcode,以及一些著名的面試參考資料。

本書適合想要從事正規的程序員、架構師以及相關IT公司的專業人士和學生參考,尤其適合那些以一線IT外企或互聯網公司爲求職目標的讀者閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章