程序員面試被要求手寫代碼?你與高級程序員之間的差別就在這里

前言

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

  不知道你們怎么樣,反正小編在畢業(yè)初期面試的時候大多都是手寫代碼,手寫代碼相對于使用編譯器來說更加考驗面試者的能力,畢竟大家在習慣了編譯器一些的快捷提示工能之后,真的有可能提筆忘“碼”哦!

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

  image.png

  當你在聽七八十年代程序員們的故事時,一定會有這么一件趣事:

  當年電腦還沒有普及到每家每戶,如果想編程,最好的辦法就是跑網(wǎng)吧去,可上網(wǎng)費貴啊,就只能買個本子,拿起水筆,把代碼寫好,最后再到網(wǎng)吧里去輸入、調(diào)試、運行,這樣可以節(jié)省很多上網(wǎng)的費用。

  一位大一的新生堅信手寫代碼可以讓自己更好的學習編程,于是踏上了這條不歸路。起初,手寫代碼確實幫他打下了堅實的基礎(chǔ),然而很快他就被一個程序,十幾頁的代碼調(diào)試給搞瘋了,開始四處求助,最終他放棄了這種學習方式。

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

  縱觀當今的互聯(lián)網(wǎng)巨頭,似乎面試涉及手寫代碼的也是寥寥無幾。當然,有時你還是無法逃避手寫代碼的命運。

  據(jù)采訪,一位參加過騰訊面試的程序員就遭遇到了手寫代碼。三面是視頻面試,面試官出了一道算法題:打印三角螺旋數(shù)組,限時20分鐘。

  那么,為什么還是會有公司愿意測試手寫代碼呢?

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


  變量名,傳參數(shù)是不是很隨意?隨意取名是維護的噩夢;

  接口、函數(shù)設(shè)計能力;

  界面、功能設(shè)計能力;

  代碼結(jié)構(gòu)是否層次分明,思路是否清晰,?

  代碼可讀性;可維護性如何?

  細節(jié)處理是否到位?

  與面試官溝通的次數(shù);

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

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

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


  通常面試的時候,都會出現(xiàn)這么一個情景:

  “你覺得這個代碼的復雜度是多少?”

  “好像是%#%¥&”

  “為什么呢?”

  “因為我產(chǎn)生了很多臨時字符串”

  “那你覺得還有優(yōu)化的空間嗎?”

  “如果這般如此如此,再如此如此,應(yīng)該可以干掉臨時字符”

  “好吧,那你把你的想法寫出來看看?!?/p>

  “……”

  對于手寫代碼這個問題,頂級程序員或者未來的頂級程序員,與普通程序員的差距就在于,普通程序員面試完之后會一直沉浸在抱怨和譴責這家公司中,而頂級程序員,則已經(jīng)開始行動了。

  你對此有什么看法?歡迎大家在評論區(qū)發(fā)表自己的看法哦!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容