怎樣考察有八年經驗程序猿的水平(C#)?
從實際編碼的角度
一、對細節的深入程度,比如哪些措施對性能產生影響,這步可以考察他有哪些程序優化經驗;
二、對未知問題的反應,如給其一個場景,看其如何著手一步步逼近結果,這步可以知道他解決新問題的方式(也就是究竟是「一年經驗用了十年還是真的有十年經驗」);
三、在不涉及商業機密的情況下問其所做過的模塊或項目,其在當時承擔的絕色,其最終如何達到目的,如果在多個項目中都沒有參與到重要角色中去,這裡肯定談得不深;
四、問其對其它開發語言的了解程度,一個只盯著自己一畝三分田的開發人員不是一個合格的開發人員;
五、知道多少開源的框架(避免重複造輪子);
六、結合本公司的技術特點,比如使用到的資料庫及前端等問一下。
如何以上還不足以了解他,那就是你的問題了。
--------------------------------------------------
其它請參考:.NET牛人應該知道些什麼
8年應該把C#相關的核心全部搞清楚了。細分的話大概是以下幾大塊:
1. 軟體工程基礎。包括OO基本知識(繼承/介面/類/公共私有保護內部方法對象/靜態/...),SOLID原則。2. C#基礎,包括CLR的運作原理(託管vs非託管代碼),內存分配/垃圾回收機制,對象/實例的作用域,等等3. 演算法/數據結構基礎,各種排序,Dictionary/List/Array/HashSet/ObservableCollection/IEnumerable等等東西的異同等4. C#特有的功能。比如lambda表達式,比如linq,比如擴展方法(extension methods),比如運算符重定義,等等5. 其他編程思想體系,比如AOP,比如MVC,等等
6. 通訊,包括WCF建立,HTTP通訊,等等7. 資料庫操作基礎。兩個東西,一個是普通的SqlConnection加上Reader,另一個是Entity Framework(或者類似的替代品)。要很清楚兩者的優缺點分別在哪裡。8. 根據你做的東西需要考他具體的細節部分。比如http://ASP.Net的話要考http://ASP.Net和/或Razor,WPF的話要靠MVC模式的WPF,Windows程序的話考COM,等等。9. VS本身的應用。包括各種#if, #region等等編譯指令等10. 單元測試的基礎概念,TDD11. 編譯的基礎知識。比如X64/X86/AnyCPU的區別,再比如GAC的定義,以及搜索DLL的優先順序12. 反射13. 並發處理,async和await還有Task等等這是純粹在C#範圍內的。然後還有一些相關的知識,比如SQL,比如HTML/CSS/Javascript等等。
如果這些知識點都可以掌握的話,那下一步應該是讓他寫一個具體程序。這裡除了正確性,更關鍵的是看他寫程序的風格,以及思路是否清晰。還有就是命名變數是否有好習慣,等等。
然後也可以問問他平時都從什麼途徑吸收新知識。然後可以讓他隨便介紹一下他近期內學習並開始使用的一個新框架,等等。
當然,最後最關鍵的就是待人接物的能力。和你其他的手下都合不來的話,這人再強也不行。
這些都有了,大概就差不多了。專業的事情當然要讓專業的人來干,HR只是拉皮條的。
離個題,突然想起一句話:
「別說你有十年經驗,你只是一年經驗用了十年而已。」
出自:大衛談學習4:為何你會一年經驗用十年?
工作那麼多年,技術早就用爛了,值錢的是經驗。開發經驗、部署經驗、調試經驗……項目經驗、產品經驗……那都是一身是傷
平常閑的沒事的時候寫過什麼好玩的阿?
先招一個10年經驗的碼農
簡化一下思路:
1 主動溝通:分享、開源參與的如何,網路活動、線下活動有無自己的身影?
考察點:學無止境、積極主動和外界交流的態度。
2 學習途徑:遇到新技術、新控制項,是如何學習的,去GCDN 讀一下發帖的網友,就初步能判斷出 其是否有開發的潛力,有的人,確實很好,問題、規範的溝通。
3 自我沉澱:有無網路痕迹,如前幾天我加一個QQ群,竟然寫明了0年QQ齡的人拒絕加入(幸虧我QQ齡超過12年了 :)),一個人無法看清未來,但是從過去的痕迹推測出未來。
最後,這裡有一份考試題,據說是大牛們做的,俺辛辛苦苦做了很多年的.net開發,有很多打不上來。 《程序員級別鑒定書(.NET面試問答集錦) 》
再最後,鄙視對工作超過5年的程序員們進行筆試和機試,程序猿是能考試出來的嗎? 很多年前我入門的時候,筆試題正確答案6分(100分滿分),但是我的面試官依然選擇了我,緣分啊。
Google使用的熟練程度?
看他的代碼風格,命名是否規範,是否邏輯清晰,層次明確。最好能讓他當場寫代碼。編程功底一目了然,光聽他說是沒用的。
推薦閱讀:
※如何評價 Unity 2018?
※如何解決.NET程序容易被反編譯的問題?
※剖析並利用Visual Studio Code在Mac上編譯、調試c#程序
※跟Unity學代碼優化
※聊聊寫博客的這兩年&&《Unity 3D腳本編程:使用C#語言開發跨平台遊戲》正式出版