程序員面試被要求手寫代碼,手寫代碼真的行的通嗎?

崔亞玲


程序員在面試過程中被要求通過手寫代碼來完成一個邏輯的實現是比較常見的做法,不同級別的程序員會面臨不同的要求,比如研發級程序員通常要面臨算法的設計和實現過程,而應用級程序員則需要面臨功能模塊的實現。為了減輕面試者的面試壓力,在手寫代碼的過程中是可以寫“偽代碼”的,尤其是關於算法設計和實現的過程,主要考察的是面試者的設計能力和設計思路。

通常來說,在面試程序員的過程中,有兩種情況可能會面臨手寫代碼的考察,一種是面試初級程序員開發崗位,另一種是面試研發級程序員崗位。面試其他崗位的程序員,通常會把關注的重點放在項目經驗和知識結構上,考察手寫代碼的情況並不常見,意義也並不大。

面試初級程序員時,通過手寫代碼的考察,能夠直觀的呈現出面試者對於編程語言的熟練程度,同時也能通過代碼結構考察面試者對於代碼的管理能力和是否有一個良好的編程習慣。通常情況下,面試中對於初級程序員的手寫代碼要求並不會很複雜,通常只是完成一個小功能的實現,比如根據已知數據結構完成業務邏輯數據的管理等等。

面試研發級程序員時,通過手寫代碼能夠考察出程序員是否掌握專業的設計能力,最常見的就是通過算法的設計和實現來解決某個具體的問題,比如最常見的分類問題等。比如面試大數據分析方向的研發級程序員時,通常會給出基於機器學習方面的題目。比較常見的做法是給出一個數據分析場景,然後面試者完成算法的設計(選擇)和實現過程,從而考察面試者的研發能力。

對於程序員來說,通過手寫代碼的過程能比較直觀的呈現出自己的動手能力和對編程語言及算法的熟練程度,是一個全面呈現個人能力的好機會。

我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有互聯網方面的問題,也可以諮詢我,謝謝!


IT人劉俊明


在軟件行業混了十幾年,參加過很多技術面試,作為面試官也面試了很多面試者,正常的來講技術類的面試主要分為三種,筆試,面試,上機寫代碼。現在就這幾種面試的方式根據從業的經驗做一些總結。

筆試

筆試主要針對應屆生,當然一些規模大的企業面試的流程比較繁瑣,一般第一關都是先讓做筆試,筆試的題目一般比較簡單,大部分針對剛畢業的學生看看基本的理論能夠了解多少,這種筆試的模式倒是難倒了很多人,很多程序員因為做一個專業方向做的時間比較長了,很多相關的編程知識已經忘記的差不多了,所以見到這種筆試直接放棄,也不能這部分人不能從事軟件開發,起碼不能作為優秀程序員的標準對待,所以在平時編程過程中要注重基本功的複習,畢竟基礎理論知識是一個程序員的必備基本功。

曾經參加過一個面試,有一個一塊去的老程序員,看到還有筆試直接放棄,選擇直接走人了,然後面試接待人員問為啥不去答題,這位直接回答到,年齡大了對這些基礎已經忘的差不多了,所以選擇不做了,說完就離開了面試公司。在現實中很多程序員離開百度就不會自己寫代碼了,大部分的時間從網上搜上一段代碼修改成自己能用的代碼模塊,離開了網絡很多人就不會寫代碼了。

面試

很多軟件公司基本上直接不用筆試,很多人覺得直接聊上幾句話就能識別出一個人能力,答案是肯定的,面試主要從兩個聊入手,一個編程基礎細節,一個是項目經驗細節,因為編程細節太多,所以基本上幾個細節下來一個人的水平能力如何就能非常清晰的識別出來,所以有些公司乾脆筆試都不用了,起碼一半的公司直接通過面試就能搞定。

很多剛入行的程序員會背誦一些常見的面試理論和麵試題目,這種應付筆試還是有點用,但在面試天馬行空的問題中,這種準備幾乎就是徒勞的。偶然碰上幾個問題,但大部分來講需要有真材實料。

手寫代碼也是面試中發生的,有的時候問到一個問題的時候,為了表達更加準確,直接用代碼在紙上寫出來,這種情況在面試中也是很常見的事情。

上機寫代碼

谷歌招聘技術人員都會直接採用這種模式,這種方式直接就能看出代碼的直接編寫能力,可以非常直觀的看到代碼質量以及編寫代碼的一些習慣,這種方式在國內很多技術公司也在採用,主要這種方式在實際操作過程中,相比前兩種操作難度更大一些。雖然只看代碼能力有點偏,但可以結合面試這樣就能從總體上考察出一個人的綜合能力,能夠獲取更加客觀的評價。

在行業內也發生這種事情,發現公司有上機寫代碼的測試,直接選擇放棄,這也是一類的程序員的典型,代碼都不是發自內心的寫的,大多都是從網上直接摘錄修改的,真要直接在電腦上敲代碼什麼思路也沒有,典型的基本功不過硬的表現。

作為一個面試人員,只要去面試就要遵守面試公司的規則,即使真的寫不出來,也沒有必要當面拒絕,發現自己的缺點後續努力去修補,坦然面對自己的不足,不是什麼丟人的事情。

希望能幫到你。


大學生編程指南


手寫代碼,我個人是不推薦的。我們小公司也有一套筆試題,是從一個大公司拿來的,因為題出的實在太爛,我又沒時間出題,所以基本上不會看答題的情況。

但是我會問一下其中幾個加密算法分類的選擇題,剛好那個題問題在一頁,選項在另一頁。直接問原題,紙上的答案正確,又不能現場答對的,我會按流程面試完,然後直接淘汰。

筆試題可以出,但是儘量不要出一些自己都看不懂的,我司的筆試題就是這樣。編程題也應該以偽代碼為主。

增加筆試的環節,目前看來是很有必要的,現在很多的培訓機構會包裝一些沒有從業經驗的人出來,簡歷、面試題都會有準備。一般技術面試官水平通常比較高,而且時間也比較寶貴,用來應付這些人,是很大的一種浪費。


冰玉210659147


各位好,我是小碼農薛堯。

一般企業面試的話,手寫代碼一般不會寫業務邏輯,一般的都會是寫一些算法,一些算法他是考慮你個人技術基礎是否紮實,所以這個我覺得很合理,但是他如果寫的是業務中的某一個功能,我覺得那個是為難你,這個我覺得不提倡。


一般有些人面試的話是問一些手寫的代碼,基本上它是以算法為基礎,基本上問一些排序排序的實現,某個排序冒泡呀,還是快速排序之類的。或者寫一些設計模式,按照自己的想法寫一些設計模式,這樣我覺得是考察一個基本程序員的基礎是否紮實,是否瞭解一些編程基礎。

這是自己的個人理解,但是現實中遇到手寫代碼的次數還是很多的,但是沒有具體的業務邏輯,是某一種算法,或者是設計模式。


小碼農薛堯


如果能手寫代碼,要編譯器幹什麼,乾脆大家寫代碼的時候直接在紙上寫。這樣的企業不去也罷。同事面試的時候,也需要根據面試者的經驗和能力進行分別對待,不要不管什麼人都是一樣的題,一樣的問題,很有損公司在面試者的地位。

個人覺得,優秀的人完全可以從幾個問題摸清楚這個人的能力。這沒必要弄一些沒有技術含量的,寫一個單例模式,寫一個排序。一個人的能力不在於這點,要看他分析問題的思路。個人覺得,思路決定一個人的編程能力。

有的人來說,是主要考察個人的算法。算法在大項目確實很重要,但是一定要根據自己的實際需求或者企業需求著重對待。別你開發一個茅草屋的項目,你卻拿著人家面試大數據級別p8級別的題考人家。

總之一句話,我們時刻提升自己的能力尤其是我們做互聯網這個行業的,遇到不適合,不合適的我們找自己合適的就行了,不喜歡手寫代碼就直接走人就行,既然你想手寫代碼,那就代表你此刻還是需要這份工作的。

根據實際情況出發。


程序書寫人生


我也碰到過,但我個人覺得這種方式不好。手寫? 大括號就把你寫懵逼,而且通常不能一次寫好,怎麼改啊? 所以我認為,紙上寫實現思路還差不多。


柳柏生活日記


如果面試官,我希望通過多種手段包括考試來考核,但是如果我是面試者,手寫代碼就意味著我不會來這家公司,就算我寫了,也只是對應聘的尊重而已。

手寫代碼是驗證代碼硬實力的手段之一,但是也體現了公司的文化是很封閉的。而我工作的時候是需要網絡的,需要工具的,需要調試的,我還需要一個開放的工作環境。你可以說大牛隻需要記事本,但是現在用牛耕地的真的不多,再厲害的老牛也比不上機械化的效率,沒必要為了體現自己力氣大而放棄效率,編程還有很多方面需要做,需求分析、項目整體規劃、架構設計等等。

總的來說,我認為面試涉及代碼一塊的部分可以用“偽代碼”說一說就好,能講好思路和技術點就可以了。


Amber833


手寫代碼在面試中要求很正常,能夠檢查程序員的hands-on能力,在工作中並不是要求大家手寫,在平時大家多認真review自己的代碼,基本就能夠符合面試要求。

面試也可以寫偽代碼。寫偽代碼的習慣也是很重要的,面試這麼要求大家肯定是有用意的,大家認真對待,不會了也沒關係,不要惱羞成怒進行牴觸。


IT編程分享


經歷過手寫,面試官並不會把你的手寫代碼實際的拿到機器上去編譯運行,然後是否報錯,但都會看一下,然後問你解決思路,為什麼你這麼寫,就夠了


bylii方便麵


因為筆試簡單,高效;如果上電腦考試,要備幾臺電腦


分享到:


相關文章: