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

白板與編程面試:為什么不在電腦上編程更有幫助

開發 后端 開發工具
表面上看,原來的開發人員在寫代碼時需要多少協助并不重要。他們可能在寫代碼之前,在腦子里就已經想好所有細節了。或者也有可能他們寫每一行代碼的時候都查閱了API文檔、實例、或者語法指導。

在技術評估中的檢查方法

白板編程可以檢查出兩方面的技能:

  1. 從一開始就可以寫簡潔的代碼,以及
  2. 知其代碼之所以然。

這兩大技能對于一個出色的軟件開發人員是至關重要的。通過進行白板編程,這兩種技能都能被準確地檢驗出來。

從一開始就寫簡潔的代碼。

不管我們是否喜歡,現代軟件工程主要在于知道足夠的模式,并在正確的規則中使用正確的模式。

幾天甚至幾周后的工作的結果,通常只是修改幾百行的代碼。

表面上看,原來的開發人員在寫代碼時需要多少協助并不重要。他們可能在寫代碼之前,在腦子里就已經想好所有細節了。或者也有可能他們寫每一行代碼的時候都查閱了API文檔、實例、或者語法指導。

但是當我們深入探究的時候,就會發現這其中有很大差異。

理解概念要比理解現象更重要。

一段代碼變得越復雜,僅僅依靠一些開發模式的知識去開發就會變得更難,甚至理解代碼都會很艱難。

好的白板編程練習,可以檢查出一個人到底是理解概念,還是通過記住大量模式來掩蓋其基礎知識的匱乏。

當我們問到“你最擅長哪種編程語言?”我們其實并不是想要簡潔的代碼。我們只是在尋找一個切入點,能深入了解一個人,看看他到底有多大能耐。

這里簡單總結一下根據“候選人熟悉哪一領域”來決定“在面試中需要涉及哪些方面”:

  • 面向對象編程——多繼承,虛擬方法,對象構建與析構順序,異常處理。
  • 前端——異步邏輯與終止,REST API,驗證用戶輸入。
  • 算法與數據結構——動機,用法,平均及最差情況下的復雜度。
  • 后端與架構——內存模型,垃圾處理機制,多線程,線程鎖機制,benchmarking, profiling。
  • 函數式編程——Lambdas,curring,排序操作,一元。
  • 內核層次——文件系統,網絡,POSIX,協議,標準的檢驗與分析工具。

測試——單元測試,逆向測試和端對端測試,必要測試,基于模型的測試,測試驅動的和行為驅動的開發,集成測試。

和候選人談到上面這些的時候,***的方法是從舉一個例子開始。***的例子就是讓他們自己寫一個短小簡單的例子。

實際中,候選者寫的大多數代碼片段都是不***的。這就提供了一個絕好的機會,看看候選者到底有多少知識。

白板編程很有用,是因為:

  • 有限的寫代碼空間。
  • 有限的寫代碼速度。
  • 修改很麻煩,***要避免。
  • 沒有補全,語法高亮和其他IDE的牛逼功能。

想明白代碼到底要干嘛。

過一遍代碼片段是如何運行的,這是非常好的練習。做技術面試的時候,絕對不要跳過。

如果代碼寫的是一個算法,有人可以寫出所有步驟,有人可以考慮到特殊情況,有人可以寫出不變式(invariants)并能證明。有人可以根據每個獨立循環結構和遞歸調用解釋其復雜性。

如果代碼是面向對象編程,有人可以明確指出其具體功能,對象在何時如何被創建,如何被銷毀,什么時候以什么樣的順序會調用構建與析構函數,以及異常出現會怎樣,內存布局看起來是什么樣的。

I代碼是否整潔,或是否包含明顯的bug,這非常重要。

觀察候選人認真解釋代碼每一步實現的功能,可以了解他們的思考與說話方式。以及他們在其他領域有多深的了解。

***,這些都是在技術面試中要用到的檢驗技巧。而不是使用API和使用IDE完成特定任務的技巧。

白板編程很有用,是因為:

  • 白板上的內容或多或少是不變的。
  • 用不同顏色的筆標出“候選人的原始代碼”、“面試官的評論”、“候選人評論”,可以很好的將對話可視化。

不用白板是否有辦法做到上面這些技巧呢?

能,也不能。

對于寫整潔的代碼,我覺得可以讓候選人在自己的筆記本電腦上寫。

但是要有這些條件:

  • 代碼要用投影儀投射在大屏幕上
  • 字體要非常大。
  • 關掉大多數IDE的牛逼功能。

要知道,在不熟悉的操作系統、鍵盤甚至是編輯器上,相比在白板上編程可能會更難。要么讓他們在自己的電腦上寫程序,要么確認你提供的環境他們能夠接受。

至于理解代碼的部分,白板要更有利。

理想情況下,如果是投影儀的影像就是投放到白板上,我會讓候選人把投放投射的白板上,面試官再拿幾支記號筆。

不過我要說明白,電腦上不允許使用“快速修改”之類的功能。

如果只有兩個人的話,打印機又在旁邊,那就用用大字體打印出代碼,然后用幾支彩色筆去分析也非常好。

教學可以幫助練習這些技巧。

我經常被問到,一個人要如何掌握上面的這些技巧。我的答案就是:教學(teaching)。

這對面試官和應聘者都是有益的。

我自己對我的知識水平有一個簡單標準。如果我可以對一個領域不做準備就能進行討論的話,我就算是有豐富的知識了。

在軟件領域,這就意味著不用點退格就寫出***的代碼,然后能一步一步解釋它是做什么的。

如果你是那種經常要被叫過去解釋一個算法或者API的人,那你基本上就不會對白板編程面試感到有困難。

白板編程是面試的必要環節么?

不可否認,白板編程很有幫助。但沒有它也可以。

如果有一個大屏幕可以顯示代碼,如果屏幕本身就是個白板,可以在上面用彩色筆進行注釋。

我個人喜歡鼓勵別人走到白板前。而且這樣做有什么不好呢?

原文鏈接: dima korolev   翻譯: 伯樂在線 - TonyRideBike

譯文鏈接: http://blog.jobbole.com/65625/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2015-06-03 10:14:20

2015-06-29 14:03:07

2012-07-18 02:05:02

函數語言編程語言

2024-10-29 09:53:08

2020-12-18 11:55:27

編程面試

2018-05-23 00:20:29

2024-07-08 00:01:00

GPM模型調度器

2022-05-06 08:00:00

APIBallerina編程語言

2023-06-26 07:31:29

中文編程編碼

2021-04-06 15:20:05

編程語言JavaIT

2015-04-08 10:46:11

2019-04-22 09:58:25

C語言Web操作系統

2014-07-02 09:56:33

2013-11-26 10:14:15

面向對象函數式

2020-09-10 08:47:41

編程代碼開發

2021-01-27 13:28:55

編程語言Python

2012-07-11 11:05:16

編程

2017-02-07 09:37:46

2018-05-30 14:49:51

編程語言API語法

2023-10-09 18:39:13

Python代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 麻豆久久精品 | 一区二区三区视频免费看 | 久久久久久久久毛片 | 黄网站涩免费蜜桃网站 | 一区二区三区四区在线 | 蜜桃视频在线观看免费视频网站www | 91超碰在线观看 | 色综合成人网 | 日韩在线小视频 | 午夜av电影 | 色婷婷综合网 | 干干干操操操 | 亚洲成人中文字幕 | 九九国产 | 亚洲精品久久久久久下一站 | 久久久久九九九九 | 久草在线| 亚洲综合无码一区二区 | 91视视频在线观看入口直接观看 | 91视频三区| 天天草夜夜骑 | 自拍偷拍中文字幕 | 91综合网| 99精品久久久国产一区二区三 | 亚洲精品一区在线 | 五月婷六月丁香 | 欧美一级在线 | 99精品视频在线 | 成人在线视频免费观看 | 中文字幕精品一区 | 中文一区二区视频 | 91 久久| 日韩欧美精品一区 | 亚洲伊人精品酒店 | 日韩高清电影 | 欧美精品中文字幕久久二区 | 欧美日韩一区二区三区四区 | 亚洲免费观看视频网站 | 日韩av一区二区在线 | 成人在线视频免费播放 | 99久久免费精品国产男女高不卡 |