本文寫給那些有一兩年工作經驗的即將參加面試的朋友,希望我的這點經驗可以對大家有所協助。
我是公司公司技術部的項目負責人,最近公司由於人員更替所以進行了招聘,我主要負責面試.NET程式員的技術。
說到面試那就先說一下簡曆吧。我從4月10日至4月17日看了大約300多份簡曆。很多簡曆寫得又臭又長,而且有很多吹的太大了,有點不著邊。這樣的簡曆一概PASS掉。對我這樣一個從事技術工作,讓我看簡曆覺得像是看長篇小說的人來說是十分痛苦的。有人竟然寫業餘愛好寫了快1000多字。
我覺得好的簡曆應該抓住重點,突出自己的強項,很多人的簡曆寫得沒有什麼突出,什麼都會,像萬金油這樣什麼都會的人沒有個四五年的磨礪除了超人之外根本就不可能。對於經驗只有一兩年的人來說我認為一張4K的紙足夠一份簡曆了。至於自己的項目經驗還是到與面試官交流的時候說比較好。多說幾句,像簡曆中什麼格言啊,信念之類的玩意還是免了吧!畢竟這是心理的玩意說出來就帶有假的成分。
接下來就是面試了,能得到電話通知面試的人可以說已經有了進入公司的30%機會了,50%就要靠自己的能力與面試的時候的表現了,剩下的20%就是看公司了,招聘與買白菜差不。如果公司覺得你“物有所值”那才能進公司,對於一般的公司而言面試往往不是能力最強的人能進公司而是公司認為最物有所值的人進公司,說的白話一些就是最實惠的那棵白菜才能進公司。這20%就留給您慢慢揣摩吧,估估價看看自己咋樣才能物有所值呢。現在我來說一下50%的表現吧,我給要面試程式員的人出了一套題目,改題目是50%的C#語言基礎與資料庫基礎,30%的對於ASP.NET的應用。20%的考了設計一個項目。說到基礎的我這裡在說一下現在用的.NET中的
C#是一個完全物件導向的語言。說道物件導向我覺得應該有一定的理解,什麼是物件導向?為什麼我們要用物件導向?繼承、封裝、多態這三個物件導向的特點分別是
什麼意思?起碼能用自己的話敘述清楚。在這裡我簡單的說一下,具體的可以參考網上的資料:
1.物件導向可以使得我們在做項目的時候可以更好的應對需求的變化。引入類、對象更符合人的抽象思維。
2.繼承是為了實現代碼複用,子類可以使用父類的方法。封裝實現了程式碼後置。多態重新了類的行為。
這些都不是什麼深奧的理論,只有理解了這些基礎的才能寫好代碼。
雖然現在的IDE編程環境越來越先進,代碼提示功能越來越好,但是有些基礎的還是記憶一下的好,出的題目中有一個是寫出委託聲明時關鍵字:Delegate,結果很多人
都空著不會寫。。。還有很多人工作了兩年,做了四五個WEB項目到現在都分不清楚JavaScript對象與DOM對象。對於只是注重應用而忽視理論基礎的人真是一種悲哀,也許他
永遠不會去想它們之間到底有什麼區別。
再說答題吧,在做題的過程中有人沒用十分分鐘就把題做完了,我一看真正對的不多,但是思路大部分都正確,這種人屬於那種能做事但是做不好的人,沒有認真做事的態度。。。。PASS掉。如果項目中有這樣的人那是比較麻煩,麻煩就是他覺得他做好了可是實際沒有做完,搞不好還要返工,說不定還要讓我陪著加班!
大多數面試的都是電腦系畢業的(非應屆生),但是對於“資料結構”這個詞似乎都像在聽天書。真是一種悲哀!但是我很欣慰終於找到“一大幫”比我還不懂資料結構的人。有一半多的人對於“樹”這種資料結構一點概念都沒有。常用的資料結構有哪幾種竟然95%的人一無所知。經常聽到有人抱怨大學學到的都沒有什麼用,這樣的想法的人腦子基本都是進了水,大學不能指望學什麼經驗但是應該把基礎打好。什麼電腦群組成原理、編譯原理、資料結構、資料庫理論等這些即使學不好,但是起碼大腦中得有這些概念吧。否則我真的很難想象那人到底能長到什麼水平。
關於設計一個項目我在此指的是物件導向的設計原則、設計模式。這些對於一個沒有做過中大型項目的人來說是很少接觸到的,尤其是一個經常採用模板開發的軟體公司的程式員來說接觸的可能性就更少,23種設計模式都搞懂更是有點強人所難了,但是我認為為什麼要引入設計模式應該知道,而且設計模式的主要思想是什麼?而且要有間接層的概念。物件導向的設計原則是應該瞭解的,而且知道各個原則的含義,否則我會認這人沒有什麼水平。在.NET FrameWork的類庫中應用了很多設計模式,如果注意一下就會發現很多。
說完這些附帶說一下吧,面試的時候不要帶有什麼小動作之類的,我面試的時候有人一眼都不看我總是在看天花板,還有人一邊說話一邊手裡拿著筆在我眼前轉,搞的我眼花繚亂的。還有人一邊翹著二郎腿一邊回答我的問題。這些實在有傷大雅。這樣的情況我一般都認為這些人壓力經常過大,經常緊張,我也經常PASS掉這些人。大多數程式員都不善言辭,當我問他們做過哪些項目的時候倒是可以說清楚,但問到相關模組很多回答比較含混,這說明他們腦子沒有清晰的思路,做過去就坐過去了沒有什麼總結。我這裡不是要求他們能記住詳細的模組,主要是看一下他做的某個項目時候有給他留下深刻印象的地方,遇到過什麼難題又是怎麼解決的。茶壺裡煮餃子的還算好的,多數是什麼都不記得了。而且不少人對於技術的這種追求僅限於小技小巧上面,什麼JS彈個框,實現個特效動畫之類。如果工作了一兩年還在追求這種事兒的話。八成水平也高不哪去。看了這些也許大家明白點了吧,一個人能否真正被一家公司錄取能力只佔50%說不定還要少。但是我認為如果一個人有對於技術執著的追求,那麼其他不好的習慣(僅僅個人習慣,而非編碼習慣)我可以都不在乎。畢竟從事這一行不單單的為了吃飯,更是對技術的一種追求,一種自我挑戰。
以上這些只是我面試別人的時候的一些經驗,希望對於要參加面試的可以有所協助。也許有一些並不適合某些人,因為有一些公司是人資部來決定是否面試的,那樣簡曆就應該寫的越是詳細越好,而且牛皮吹大的沒有關係,越是不懂行的你就得越下功夫忽悠,並不一定向我這樣。
有些說的不對的地方也希望大家指出。