程序員面試被要求手寫代碼,你與頂級程序員的差別在哪?
面試時,被要求手寫代碼,自信心爆棚的你,忽然有了提筆忘記的感覺,在一張紙上反覆塗塗畫畫,勉強寫出了一個功能,結果漏洞百出,面試過程相當不順利,丟下筆,對接下來的面試敷衍了事,結束後,繼而向周邊的朋友大吐苦水:都什麼年代了,還要求手寫代碼?這公司真落後。
然而,這就是你與大神級別程序員,最根本的差距。難道頂級程序員們,手寫代碼都特別厲害?隨便一動筆就是行雲流水,一瀉千里?當然不!也許,他們根本沒手寫過代碼。
當你在傾聽遠古時代(七八十年代)程序員們的故事時,一定會有這麼一則趣事:當年電腦還沒有普及,如果想編程,行得通的就是跑網吧去,可上網費貴啊,只能買個筆記本,提起水筆,把代碼寫好,然後在到網吧里去輸、去調試、運行,這樣可以節省很多上機的費用。
一位大一學生堅信,手寫代碼可以幫助自己,更好的學習編程,於是踏上了這條不歸路。起初,手寫代碼確實幫打下了堅實的基礎,然而很快,他就被一個程序,十幾頁的代碼調試給搞瘋了,並開始四處求助,最終這名學生,放棄了手寫代碼的學習方式。
在物資匱乏的年代,手寫代碼幾乎成了程序員們的必備技能,可那時,更多的是迫於無奈。手寫代碼,不失為初學者的一個好方法,可當你深入學習時,再想手寫,一定會造成很大的麻煩。
縱觀如今的互聯網巨頭們,似乎面試涉及手寫代碼的也是寥寥無幾,google、BAT都是如此。當然,有時候還是逃脫不了手寫代碼的命運。
一名參加了騰訊面試的程序員,就遭遇的手寫代碼。三面是視頻面試,面試官出了一道演算法題:列印三角螺旋數組,限時20分鐘。
那麼,為什麼有些公司,還是願意考手寫代碼呢?
不論機寫還是手寫,只要是寫代碼,都能看出一個人的代碼水平和習慣。
變數名,傳參數是不是很隨意?隨意取名是維護的噩夢;
介面、函數設計能力;
思路是否清晰,代碼結構是否層次分明?
代碼可讀性;可維護性如何?
細節處理是否到位?
與面試官溝通的次數;
這些問題在機寫時,很容易被掩蓋,比如思路是否清晰,在電腦上,很輕易的就會被抹去,而手寫不一樣,如果你是一個思路不清晰,不嚴謹的人,那麼就會在紙上,留下各種疤痕。
其實,每家公司讓面試者手寫代碼,目的都略有不同,有些是想考察面試者寫代碼的習慣、有些是考察邏輯思維,有些是起到驗證的目的,有些呢則是考察面試者的嚴謹性。
面對手寫代碼,頂級程序員或者未來的頂級程序員,和普通程序員的差別在於,普通程序員面試完,一直沉浸在無限的抱怨和譴責這家公司中,而頂級程序員,則已經開始行動了。
TAG:極客教程 |