成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試時,為什么寫代碼不如讀代碼?

原創 精選
開發
所有編程工作都更需要代碼閱讀,而不是編寫代碼。

編譯 | 云昭

在招聘開發人員時,我們需要考核多輪面試來確保候選人的能力合格。在眾多的能力之中,我認為,原始編碼能力,幾乎可以說是最重要的品質。我可以很快地訓練一個人掌握某個領域的知識,但即便再廣泛深入實踐的訓練,也很難彌補缺乏原始編碼能力的短板。

那么如何在面試中,較快測試出候選者的原始編碼能力呢?我發現傳統的 coding 辦法并不好用,反而某些別的方式更能發掘到人才。

傳統方法的弊端

典型的 Coding 筆試是這樣開始的:“編寫一個函數,反轉字符串中單詞的字母順序。”然后在接下來的半小時或更長的時間里,候選人在白板上劃掉一些東西(或者也可以是共享的線上文檔)。

這種方法看起來能篩掉不少人,但其實作用很“弱”,根本達不到測試能力的要求。

首先,同樣的問題也會被傳來傳去,考生通常會非常努力地練習記憶答案。你是在考核他們的編程技能還是記憶答案的能力?

其次,這些問題通常是“吊詭”問題,需要某種深刻的洞察力才能提出 O(log(n)) 解決方案。在面試的時間范圍內,即使是最聰明的候選人,也幾乎從來沒有真正的洞察力。

這樣,面試主動權的天平向有利于面試官的方向傾斜。誰喜歡在法官面前笨拙地編寫代碼,而面試官卻將決定你未來幾年的職業前景?

最后,在白板甚至文本文檔上編寫代碼既不自然又緩慢。沒有人在白板或記事本上“畫”代碼作為日常工作的一部分。大家真正做的是:在一個 IDE 中用大量的 Google 來編寫代碼。

我在實踐中是如何做到這一點的

在實踐中,我面試候選人的過程一般是這樣的:

對于每一個新的面試周期,我都會創建一組預測輸出的練習,這些練習一開始很容易,然后變得更難。我當前的設置從一個基本函數調用開始,然后是多級函數調用,然后是遞歸,然后是 side effects 。這些通常都是“假裝”的功能,旨在讓應聘者迅速取得成功,并為我提供面試剩余部分的一些線索。

對于更高級的問題,我會從我寫的東西中提取代碼。目前,我考核的“難題”,是探索對“讀”操作和異步操作的同時進行的抽象能力,其他的,比如閱讀一段未標記的例程,它們執行大家相當熟悉的算法,例如排序或樹遍歷,以及從錯誤輸出中查找錯誤等。

舉個具體的例子

在向應聘者提問之前,我會根據與同事校準面試題,以便對如何衡量應聘者的技能有一個現實的期望。校準這些問題也有助于我完善它們,剔除令人困惑的部分。

在面試開始時,我會提前解釋:

一、我不是在考核語法知識。可以把我當成真人版的“谷歌”,我會告訴你一些函數或操作符的功能。

二、我不指望你能完成,因為沒人能完成。20 分鐘后我們會停下來。

三、我也不希望你得到正確的答案。如果答案是錯的,我很想看到你回去調試你的想法。這對我來說和其他東西一樣有價值。

面試過程如下:

  1. 我展示了一行被注釋的代碼,它將調用某個函數并返回一個輸出。
  2. 候選者閱讀代碼并預測輸出。
  3. 我取消對這行的注釋并運行程序,這樣他們就可以看到答案了。
  4. 如果答案與他們的預測不同,他們會回去解釋原因。

我會給候選人 20 分鐘的時間,讓他們盡可能地去運行更多的代碼。這給了我額外的時間去問后續問題。在面試報告中,我寫下他們運行了多少行代碼,以及他們表現出的優勢和劣勢。

顯然,這些編碼技巧并不是面試中唯一需要考查的東西。領域知識和文化契合度很重要,但我發現,閱讀代碼能很好地剔除那些不具備最重要的基礎能力的應聘者。

面試者如何提升技能

每年都有大量的開發者前來應聘,他們可能想知道如何提升自己的技能,以便在這樣的面試中表現出色。我的答案很簡單:多動手寫代碼,因為常規的練習是無法替代的。

如何練習?最簡單的方法是啟動一些你感興趣的、非瑣碎的次要項目。一個游戲,一個網站,一個應用程序等等。每周花 4-8 個小時研習這些代碼,讓它成為你喜歡使用的東西,并能引以為榮。此外,這樣也方便應聘者將來的面試呈現,比如將源代碼放在 github上,以便未來的雇主可以看到候選人平時的功底積累和工作方式。

希望這能有所幫助。

面試應當結合實際

事實上,所有編程工作都更需要代碼閱讀,而不是編寫代碼。能夠清晰地思考,并辨別出別人的胡說八道是至關重要的。

通過讓某人反轉字符串或排序數組來面試他們,簡直是在考核錯誤的能力。我不在乎你以前是否見過這個問題,是否像許多算法測試一樣記住了答案——唯一重要的是你能否思考、理解問題、設計和實施解決方案。能夠閱讀真實世界的代碼并說出它的優點和缺點,這比粉碎一個冒泡式的練習更能說明你的能力。

基于瀏覽器的編碼環境使情況變得更糟。在工作中,開發者所習慣的編輯器使用自動完成的建議、腳本、宏、代碼片段等進行調整。而在代碼考試中,卻經常使用 CoderPad 之類的東西,它不具備上述調整功能,而且不時會造成瀏覽器窗口關閉或其他情況,浪費更多的時間。

后記    

開發者參與面試時,往往會被要求手寫一段代碼,這種做法在網絡上一直持有反對的聲音:“考察的背題能力”、“代碼寫得好,不代表能當面寫算法”等等。通過文中“閱讀一段代碼,要求候選人預測輸出”的面試過程,不失為一種有效的初步技術篩選手段,能節省淘汰不適合者的時間成本。 輸入代碼是工作中最不重要的部分。閱讀、理解和解決問題才是工作中更被重要的能力。畢竟如果讓面試者參加40-60 分鐘的編碼挑戰,你實際上只是在選擇速度最快的打字員。

從這種角度上看,面試時,閱讀代碼比手寫代碼更重要!

責任編輯:薛彥澤 來源: 51CTO
相關推薦

2012-07-11 11:05:16

編程

2012-08-20 14:09:29

面試

2020-12-23 13:26:53

代碼麻省理工學院語言

2020-09-24 06:41:33

通信IT行業

2014-07-21 13:04:34

代碼

2010-08-09 16:30:53

面試

2010-08-10 16:21:48

面試薪資

2010-11-09 10:24:46

面試

2020-03-30 16:45:06

代碼看不懂

2025-02-25 08:36:56

2022-07-27 11:05:31

面試經驗

2019-12-23 15:17:21

JVM結構

2015-11-23 17:27:19

程序員寫代碼

2021-10-18 05:42:23

代碼編碼開發

2024-08-05 00:00:00

RocketMQKafka磁盤

2013-03-04 09:46:06

2009-02-27 10:30:09

面試聯想智力

2010-08-04 14:11:58

面試木訥

2012-12-28 15:53:53

面試應屆畢業生

2013-08-23 14:22:45

SA系統管理員運維
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费激情 | 久久夜视频 | 久久久久1 | 久久精品久久久久久 | 久久久国产一区二区三区 | 国产精品自产拍在线观看蜜 | 91免费在线 | 一级免费黄色 | 久久一区二区视频 | 国产99免费视频 | 午夜欧美一区二区三区在线播放 | 中文字幕日韩欧美一区二区三区 | 九九亚洲 | 99亚洲精品 | 久久久久久久久久爱 | 成人高清在线视频 | 欧美精品乱码久久久久久按摩 | 精品成人免费一区二区在线播放 | 国产精品视频入口 | 中国一级大毛片 | 欧美日韩一区不卡 | 国产成人久久 | 久久精品黄色 | 久久精品国产免费看久久精品 | 国产在线永久免费 | 免费观看一级毛片视频 | 亚洲国产精品一区二区三区 | 日本精品在线一区 | 伊人伊成久久人综合网站 | 中文字幕在线观看国产 | 精品人伦一区二区三区蜜桃网站 | 真人女人一级毛片免费播放 | 日日夜夜天天 | 国产精品福利视频 | 久久91精品 | 2021狠狠天天天 | 亚洲免费在线 | 一区二区三区福利视频 | 亚洲一区二区三区国产 | 欧美簧片 | 久久精品国产免费一区二区三区 |