1. 程式人生 > >程式設計師面試被要求徒手寫程式碼?你與頂級程式設計師差別就在這!

程式設計師面試被要求徒手寫程式碼?你與頂級程式設計師差別就在這!

在面試中,你被要手寫程式碼,原本自信心爆棚的你突然間提筆忘字。在一張紙上反覆塗塗畫畫,最後勉強的寫出了一個功能。結果卻漏洞百出。面試過程相當不順利,丟下筆,敷衍的結束了這場面試,回去對周圍的朋友苦澀地說:這都什麼時代了,還要求手寫程式碼?這家公司落後了。

然而,這就是你與頂級程式設計師最根本的差距。那麼頂級程式設計師們手寫程式碼都特別厲害嗎?隨便一動筆就是行雲流水,一瀉千里?不不不!也許,他們根本就沒手寫過程式碼。

如果有想學習java的程式設計師,可來我們的java學習扣qun:72340,3928免費送java的視訊教程噢!小編是一名5年java開發經驗的全棧工程師,整理了一份適合18年學習的java乾貨,送給每一位想學的小夥伴,歡迎大家一起學習哦。

當你在聽七八十年代程式設計師們的故事時,一定會有這麼一件趣事:

當年電腦還沒有普及到每家每戶,如果想程式設計,最好的辦法就是跑網咖去,可上網費貴啊,就只能買個本子,拿起水筆,把程式碼寫好,最後再到網咖裡去輸入、除錯、執行,這樣可以節省很多上網的費用。

一位大一的新生堅信手寫程式碼可以讓自己更好的學習程式設計,於是踏上了這條不歸路。起初,手寫程式碼確實幫他打下了堅實的基礎,然而很快他就被一個程式,十幾頁的程式碼除錯給搞瘋了,開始四處求助,最終他放棄了這種學習方式。

在物資匱乏的年代,手寫程式碼幾乎成了程式設計師的必備技能,可那時候的人,更多的是迫於無奈才手寫的程式碼,這是初學者學習的一個好方法,可當你深入學習時,再想手寫,一定會造成很大的麻煩。

 

縱觀當今的網際網路巨頭,似乎面試涉及手寫程式碼的也是寥寥無幾。當然,有時你還是無法逃避手寫程式碼的命運。

據採訪,一位參加過騰訊面試的程式設計師就遭遇到了手寫程式碼。三面是視訊面試,面試官出了一道演算法題:列印三角螺旋陣列,限時20分鐘。

那麼,為什麼還是會有公司願意測試手寫程式碼呢?

不管是機寫程式碼還是手寫程式碼,只要是寫程式碼,都可以從中看出一個人的程式碼水平和習慣。

 

變數名,傳引數是不是很隨意?隨意取名是維護的噩夢;

介面、函式設計能力;

介面、功能設計能力;

程式碼結構是否層次分明,思路是否清晰,?

程式碼可讀性;可維護性如何?

細節處理是否到位?

與面試官溝通的次數;

這些問題在機寫時,就很容易被掩蓋。

比如思路是否清晰,在電腦上,很輕易的就會被抹去,而手寫就不一樣了,如果你的思路不夠清晰,不夠嚴謹,那麼就會在紙上看到各種重複書寫的疤痕。

其實,每家公司讓面試者手寫程式碼,目的都略有不同,有些是想考察面試者的編碼習慣、有些則是考察面試者邏輯思維是否清晰,有些是起到驗證的目的,有些呢則是考察面試者的嚴謹性。

 

通常面試的時候,都會出現這麼一個情景:

“你覺得這個程式碼的複雜度是多少?”

“好像是%#%¥&”

“為什麼呢?”

“因為我產生了很多臨時字串”

“那你覺得還有優化的空間嗎?”

“如果這般如此如此,再如此如此,應該可以幹掉臨時字元”

“好吧,那你把你的想法寫出來看看。”

“……”

對於手寫程式碼這個問題,頂級程式設計師或者未來的頂級程式設計師,與普通程式設計師的差距就在於,普通程式設計師面試完之後會一直沉浸在抱怨和譴責這家公司中,而頂級程式設計師,則已經開始行動了。