最近公司在招聘.NET開發人員,面試了一些人,有一些感悟,分享出來,以供參考。
面試的人員中,有一些是三五年的開發人員;也有幾個是10年左右的技術負責人,不但自己架構過項目,還有帶領導過團隊。和他們交流,總體給我的感覺是,只要能實現功能,跑起來就萬事大吉了,當然,我同意這種想法,能滿足需求的程序就是好程序。這是站在用戶的角度,甚至公司的角度看,有交付,有收款,很好。但站在開發人員角度是不夠的,比如在面試時就不夠了,當然面試只是面子而已,里子是設計一個高質量,低耦合的應用,或應用組就不行了,即使設計出來,后期的維護,擴展,升級,都是高成本。
可能你會說我的要求太高,那就看看具體的問題吧,別的不說,只說C#語言部分,因為這是基礎的基礎。
C#的class中有哪些成員?
大部分回答是方法,屬性,常量,變量(字段)
C# class中成員訪問修飾符都有哪些?
大部分回答是public,private,protected,還有回簽static的
接口和抽象類的區別
回答五花八門,有回答只使用接口,不使用抽象類;有回答都一樣,都不能實例化;還有更優秀的回答,能實現功能就行了,問這些理論干什么?
其實正確答案搜索一大把。這里的意思并不是大家按標準的答案死記硬背下來,只是覺得上面的三個問題是作為一個真正的開發人員應該掌握的,它們就像你工具箱里的工具,如果你只有很少的工具,或很原始的工具,那么你創造出來的產品也好不到那里去,甚至可能出現指鹿為馬的現象。
其實在前10幾年互聯網技術快速發展的時代,各大廠商對開發人員需求量之旺盛來說,給大家的錯覺可能是,開發人員知道分布式,微服務,高并發,高可用等一些高大上的技術就夠了,我并不是說這些東西沒必要學,但我覺得對于一個開發人員來說,特別是面向對像語言的開發人員來說,首先應該把語言基礎掌握(不是百度,谷歌),把oop掌握,讓最基本的代碼有靈魂了,再去踏踏實實學習更高階的技術。
我并不是高手,只是覺得既然當了程序員,應該把語言基礎關過了。再多說一句,如果只百度,只谷歌,新人的成本更低,三十歲就該憂慮了。
一家之言,僅供參考!!!