1. 程式人生 > >作為IT面試官,我如何考核計算機專業畢業生?作為培訓班老師,我又如何提升他們?

作為IT面試官,我如何考核計算機專業畢業生?作為培訓班老師,我又如何提升他們?

    我最近幾年一直在做技術面試官,除了面試有一定工作經驗的社會人員外,有時還會面試在校實習生和剛畢業的大學生。同時,我也在學校裡做過兼職講師,上些政府補貼課程(這些課程有補貼,學生不用出錢),所以我會在不同的場合承擔兩種截然相反的職責。

    幸好我的公司不會從我講課的學校裡招生,而且我講課和麵試的時間段是錯開的,所以我可以免處於“自相矛盾”的尷尬境地。不過我面試官經歷倒能讓我不斷思考,該如何更高效地提升畢業生的水平。在本文裡,一方面將講述我在面試過程中衡量計算機相關專業畢業生的標準和方式,另一方面將從培訓老師的角度,向在校生和畢業生朋友提些提升自己競爭力的建議。

1 名校光環很重要,在校成績更重要

    除了一些在校生或畢業生有專案經驗外,大多數同學可能最多也就有課程設計和畢業設計的經驗,也就是說,實際開發程式設計能力大家基本差不多,那麼總得用些看的著的標準來衡量。

    第一,是否是名校,能進名校至少說明能力不差,而且名校裡的老師能力普遍好些,學習氛圍或許濃厚些。不敢說非名校出身的一定不行,但可以說,在名校裡找到合適候選人所費的代價能少些。   

    第二,除了名校外,再看成績,如果某同學四年一直在拿獎學金,或者成績很好,這至少能說明態度好,積極上進,相反如果某同學連學位證畢業證都拿不到,那麼何以證明自己?如果再有某些能證明自己的加成因素,比如競賽拿獎,那麼這也是加分項。

    不可否認,其實各大公司在招實習生時,更傾向於在名校找,而招畢業生時,名校因素也能起比較大的作用,畢竟人家高考時佔得先機,有因必有果。不過非名校的同學並不是一點機會也沒。

     比如在招畢業生時,某位同學可能是二本,但他一方面成績好,另一方面有碾壓別人的商業專案經驗,那麼公司更會看實際的動手能力。不過我也見到不少學習一般的同學,平時更在自暴自棄,比如無休止地玩遊戲,這些同學總會為自己的放縱而付出代價。

2 論大學課程對提升競爭力的幫助

    這裡來分析些大學裡學到的課程。

    第一是公共課,比如數學英語等。除非進特別好的公司,可能更在考研的時候需要數學技能,而機器學習或資料分析場景裡,確實會用到一些數學知識,但未必很深。英語能力就很重要,畢竟英語好就多了一個外企的選項,而且最好鍛鍊自己的口語能力,至少能用英語自我介紹或做簡單對話。工作後英語能力可能不會用到,但用到時再操練,就晚了。

    第二是計算機理論課,比如資料結構,網路通訊,作業系統,編譯原理等。其中尤其得重視資料結構,而且最好用某種語言實現下,比如用java實現列表,堆疊和各種排序演算法等,這在面試時會直接考。其它課程,能讓我們瞭解有這回事,比如編譯原理能讓我們瞭解狀態機,系統學下總有好處。

    第三是程式設計類課,比如java,python程式設計等,或資料庫程式設計,這些很重要,因為直接能提升除錯程式碼的能力。學這些課時,一定得敲程式碼,否則你就連最基本的程式設計能力也沒有了。

    最為面試官,如果有條件,一般會要求提供成績單,如果沒條件,那麼就考察程式設計能力,比如讓用java實現個小演算法,或者問些資料結構等基礎知識。當我作為培訓老師時,一定會要求學生自己敲程式碼,自己嘗試排查問題,同時灌輸資料結構的知識點。

3 如果只有理論經驗,估計懸

    在面試大學生時,我見過不少候選人理論方面說得天花亂墜,比如jsp或servlet的概念,或者網路通訊的流程,但沒有任何商業專案的經驗,同時甚至不會寫程式碼,這類人,哪怕學校再好,不會要。    

    我在部落格園等論壇上,看到不少朋友只是做理論知識的搬運工,不能停留在這個階段。接下來,第一該除錯程式碼,第二該找機會實踐,第三更得從實踐框架方面的儘管,比如SSM,或者Spring Cloud。怎麼提升自己的實踐能力?

    第一,在自己的電腦上搭建各種開發環境,比如jdk,mysql資料庫,eclipse,甚至linux虛擬機器,怎麼搭建?看資料。其實這就是在提升動手和學習能力。

    第二,比如java,python,c#,資料庫等方面,每方面買些本書,就照著書上敲程式碼執行。有問題自己嘗試解決,或者問別人,剛開始可能步步踩坑,但這就能提升除錯程式碼的實際能力。在實踐這個步驟時,可能會遇到裝環境的問題,也可能幾天無法解決一個問題然後很上火,但一定要咬牙堅持,每人都得經歷這個過程,現在不經歷就得畢業後受苦。

    第三,趕緊找份實習機會,比如找有專案的老師,或者乾脆自己出去找軟體公司實習,剛開始不要錢都行,如果要上課,就和人家說晚上或週末去,或者寒暑假時去。在真刀真槍裡幹個3個月,比自己摸索效率快多了。

    我在做培訓老師的時候,會逼著同學動手練習,剛開始真叫慘不忍睹,連個分號都會有問題,但最多實踐個2小時,至少能複製貼上程式碼,再堅持練習3到5次課,還能自己通過debug分析問題。至於實際專案經驗,培訓班裡無法獲取,但我會建議同學自己趕緊找實踐機會。

4 商業專案經驗優於學習專案經驗,演算法能力只是錦上添花

    在我之前的博文裡,反覆在說這個觀點,這裡再重複下,能實際掙錢的叫商業專案。在商業專案裡,除錯程式碼單元測試之類的就不說了,寫sql或者程式設計的技巧就更不說了。此外,大家更得關注在商業專案裡通過日誌排查問題的能力,以及如何把開發好的程式碼部署到伺服器上的能力。

    這裡舉個實實在在的例子,我見過一批非常上心的畢業生,可惜學校一般,但簡歷上有至少3個月的商業專案經驗,比如大四3月後一直在做,有些大三下學期就在做,而且問下來都行,絕非是培訓班給出了蒙人專案。這些人屬於能直接幹活,而且上進心態度也不錯,他們絕對屬於搶手貨,被幾個組搶著要。

    我在輔導別人面試時,也見過不少同學之前只背面試題和演算法題,這不是不重要,但商業專案經驗更重要。而且,面試題和演算法題可以通過刷題得到答案,你會別人也會,就體現不出你的優勢了。相反實踐經驗未必每人都有,我就不理解為什麼放著能碾壓別人的途徑不走。那麼怎麼找實踐機會呢?說點具體的方法。

     你到學院裡打聽下,有些老師是有專案的,尤其是帶碩士和博士的老師。如果有給你上過課的老師那最好,如果沒,你可以自己去找,或者通過老師同學去找,就說想跟著幹,剛開始先看。一般老師看到有廉價勞力來,不會拒絕。剛開始的時候,你可以多請教學長,比如如何搭建環境,到後來可以爭取個小功能點,然後慢慢就做大了。而且,如果可以,寒暑假也可以跟著老師幹,這樣最多,陸續能積累個1年專案經驗。

     其實這已經算商業專案經驗了,你寫到簡歷中絕對夠算。畢竟自己老師還好些,如果要到外面找實際機會,就到處發簡歷,同時也說明剛開始可以少要錢。剛開始甚至會因為能力不行被公司拒,但堅持下來,也能獲得實際專案經驗。 

5 框架性的能力優於零散的程式設計能力

    在面試過程中,我見過不少畢業生單論知識點還行,但無法缺乏框架性的能力。比如單問java核心方面問題,或者web方面問題,或者資料庫方面的,都行,但普遍缺乏框架程式設計能力。所要求的框架能力也不高,比如只要能在已經搭建好的SSM框架基礎上,照現有程式碼實現新需求。框架能力如何提升?

    第一搭建環境,這個是最難的,比如在idea上搭建個基於maven的ssm腳手架專案,這不簡單,或者搭建個spring cloud實現簡單功能的環境也不容易。我在培訓班上輔導時,很多同學就卡在這塊。但網上對應的資料也不少,多用點時間總能做到。

    第二就找個專案執行,專案未必要業務點很多,能全棧就行,比如包括前端頁面,後端的spring mvc,mybatis,能串起來跑就行。

    還是這句話,如果有實踐機會,這都不是問題,但我見過不少有實際專案經驗的同學,可能也只是專注其中一塊,比如SSM框架裡的service層,只在其中寫業務程式碼,而不關注全棧,這就屬於關注點不對了。

6 再囉嗦一下,畢業生要不要上培訓班

    培訓班能給畢業生帶來哪些幫助?

    第一,提升專案實踐方面的技能。第二,好歹能提升學習專案。第三,面試輔導,第四,推薦工作。

    而企業如何衡量畢業生?實際專案經驗,動手能力外加專業基礎。一些小公司可能沒資本要求名校。

    對於在校生,你在大學階段能獲取到專案經驗嗎?能通過各種方式提升專業技能嗎?可以,在上文裡給出了若干方法。

    所以,如果你尚處大一大二大三,尚有機會自強,那麼先努力一下。但你已經快畢業,但由於種種原因競爭力不強,同時是跨城市找工作,那麼你可以自己考慮,不過還是這句話,在上培訓班前,首先得上自己積極上進,而且培訓班不是萬能的,不能把所有的希望都寄託在這上面。

7 總結:趕早不趕晚,不過在任何時候努力都不算晚

    總結下本文給出的觀點:第一,商業專案最值錢,而且通過商業專案能快速提升自己的技能。第二,除了上課外,儘量讓自己有多些實際專案經驗。第三,框架經驗優於零散技術經驗。 

    所以努力不嫌早,在大二階段就可以為自己規劃了。不過努力也不嫌晚,那麼就算到了畢業的時候,因各種原因導致競爭力低下,這時候發奮圖強,經過一段艱苦時間也能慢慢變好。但就怕自暴自棄或甘於墮落,比如上學時無節制地玩,工作後寧可荒廢也不看技術,這種就屬於咎由自取了。

   如果大家感覺本文有幫助,請推薦本文,也歡迎大家通過評論來交流。

版權說明:

    有不少網友轉載和想要轉載我的博文,本人感到十分榮幸,這也是本人不斷寫博文的動力。關於本文的版權有如下統一的說明,抱歉就不逐一回復了。

    1 本文可轉載,無需告知,轉載時請用連結的方式,給出原文出處,別簡單地通過文字方式給出,同時寫明原作者是hsm_computer。

    2 在轉載時,請原文轉載 ,謝絕洗稿。否則本人保留追究法律責任的權利。