成人免费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

面試應屆畢業生

2022-12-01 11:14:40

低代碼工具產品
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 性一交一乱一伦视频免费观看 | 91高清免费| 国产观看 | 成人性视频在线播放 | 免费观看毛片 | 五月婷婷丁香婷婷 | 中文字幕亚洲一区 | 国产高清无av久久 | 日韩av网址在线观看 | 天堂在线中文字幕 | 99精品视频在线 | 亚欧性视频 | 久久这里有精品 | 国产成人精品午夜 | 福利在线看 | 在线视频一区二区 | 日本不卡高清视频 | 国产日韩欧美在线 | 国产乱码精品1区2区3区 | 久久久精品网站 | 国产一区 日韩 | 中文字幕一区在线 | 日韩成人免费视频 | 2019精品手机国产品在线 | 日本韩国欧美在线观看 | 日韩av免费在线观看 | 国产福利久久 | 99久久久无码国产精品 | 国产精品国产三级国产播12软件 | 精品久久久久久久久久久 | 精品久久国产 | 日本精品视频 | 麻豆精品久久 | 久草热视频 | 国产一级在线视频 | 在线观看日韩av | 免费在线黄| 国产在线视频一区 | 91在线视频播放 | 国产一区二区在线播放 | 欧美综合久久 |