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

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

                                                       

《程序員面試白皮書》是一本我但願本身在大學就能看到的一本書。在我讀大學的時候,跟不少同窗同樣也走過很多彎路:艱難地啃着計算機必修課,被裏面的指針和對象搞的暈頭轉向,對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、S三、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外企或互聯網公司爲求職目標的讀者閱讀。

相關文章
相關標籤/搜索