1. 程式人生 > >從面試官甄別專案經驗的角度,說說如何在簡歷中寫專案經驗(java後端方向)

從面試官甄別專案經驗的角度,說說如何在簡歷中寫專案經驗(java後端方向)

    在大多的JD(職位介紹)裡,會寫明該職位需要xx時間的相關經驗,換句話說就是需要在簡歷中看到一定年限的相關商業專案經驗,否則估計連面試的機會都沒。

    在本文裡,不討論這種門檻是否合理,而會以Java相關經驗為例,說說面試官甄別真實商業專案的方式,並以此為基礎講述在簡歷中描述專案的要點,並進一步給出在面試中介紹專案的相關技巧。 

1 和學習專案相比,商業專案為什麼值錢?

    為什麼在篩選簡歷和麵試過程中要甄別學習專案還是商業專案?

    1  學習專案裡,只要跑通正常流程,無需考慮異常處理機制,也無需經過高併發情況下的壓測。

    2  學習專案裡,資料庫方面,只需增刪改查,而商業專案裡會涉及到優化甚至叢集。

    3  學習專案裡,模組間功能呼叫基本就靠寫類寫介面,而商業專案裡,需要考慮微服務高併發場景,甚至需要考慮服務失效。

    4 學習專案裡,最多搭建個web伺服器,把程式碼一扔,直接跑就能看出效果,而商業專案需要專門部署,還需要寫日誌,以及根據日誌除錯問題。

    總之,商業專案有很多事情,比如黑盒白盒單元化迴歸測試,運維部署,和需求方扯皮,和其它team討論介面等等,這類事情在學習專案裡甚至都想不到。

    而一些培訓班讓學員做的專案,在幫助學員提升相關技能方面,或者有些作用,但僅此而已。如果直接在簡歷中當商業專案寫,甚至還會起到反作用。而不少培訓班所謂的就業培訓老師,讓他們自己去面試java之類的開發崗,還未必能成,可想而知他們煞有介事的“包裝簡歷”和“模擬面試”的效果了。

    本人內心自認為尚不算陰暗,不會因為看穿此類專案經驗而竊竊自喜,相反更會內心沉重:候選人也算上進,但他們費錢費時間費經歷準備的簡歷和麵試技巧毫無用處,而我職責使然又沒法讓他們過。正因如此,在後文裡將給出相關的甄別技巧,說難聽點,至少吹牛也得打草稿吧。 

2 一些編造專案經驗的方法其實是掩耳盜鈴

    我聽說有些培訓班所謂的就業輔導,是給學員zh若干專案模板和問題,讓學員練習,並通過模擬面試讓學員說起來像模像樣。甚至有些培訓班自己還有公司,所以提供的專案也算有據可查。培訓完以後,就由老師帶隊到北上廣去應聘。

    有時候甚至不用面試,一些有經驗的面試官直接能從簡歷上甄別出這些虛假專案。比如專案名是xx金融管理系統,xx財務系統,xx學籍管理系統等,時間不會超過半年,技術方面就很敷衍地寫一些常規技術,比如spring mvc,redis,jdbc等。

    或者為了慎重,在面試裡可以通過如下問題來確認。

    1 你專案是如何部署在什麼環境上?釋出流程是什麼?如果出現線上問題,如何排查?很多培訓班專案或學習專案也就隨便找臺機器執行通就瞭解,所以候選人接觸不到基於linux部署以及基於maven和jenkins的打包部署流程,這個問題可以問出很多編造的專案。

    2 在專案裡,程式碼review和單元測試,是怎麼做的?同理,很多培訓班專案只考慮功能,不考慮這塊。

    3  這個專案現在是否上線?大多數培訓班專案一般都不會上線,同時會有很多不上線的理由。

    4  抽出專案裡用到的一個高大上的技術,比如dubbo,問負載均衡和失效轉移的問題。在不少培訓班專案裡,對這些分散式元件,僅僅是呼叫而已,不大會考慮分散式部署的問題,當然估計也沒資深的老師能把這塊講透。

    很多創業公司,或規模很小的公司,有時候會招不到人,所以是沒資格挑挑揀揀的。這時遇到專案經驗造假的人,只要技能尚可,或者甚至只要動手能力強,就會錄用,至少我在身邊看到的一些小公司是這樣的。但錄用管錄用,面試官其實是知道候選人專案底細的。 

3 商業專案如果寫得很敷衍,就會被當成學習專案(簡歷中商業專案該怎麼寫)

    針對之前講述的甄別方式,這裡會給出若干在簡歷中寫商業專案的技巧,一方面,如果很敷衍地寫,你的專案經驗就會被當成學習專案,另一方面,如果在簡歷上包含足夠多面試官感興趣的要素,你的簡歷通過篩選的可能性就越大,也就是說,能得到更多的面試機會。 

    1 講清楚必要的要素,比如專案週期,人數,專案名,客戶是誰,用到什麼技術,但就憑這點,無法證明是商業專案。

    2 講清楚部署和上線的方式,比如在雲端,或linux上如何部署,用到哪些命令?上線前測試怎麼做的?是否用到灰度測試,把這塊講清楚了,會讓人感受到你不僅會開發,更有運維方面的技能。

    3 講清楚管理專案質量的方式,比如單元測試工具,通過sonar等工具提升程式碼質量的方式。

    4 寫明目前專案已經上線,再可以提一下,如果平時遇到產線問題,是通過什麼工具排查和解決的。

    自然,如果在專案裡用到了其它好的技術,比如用elk收集日誌,用zabbix進行壓測,這種就屬於不寫白不寫的。

    我之前在面試時,發現很多候選人其實做了很多事情,各種技能掌握得也非常到位,但在簡歷中絲毫沒體現出來,這就很吃虧,因為這可能就錯過了不少面試機會。 

4 在校生和畢業生,該如何準備專案經驗

    不少畢業生在找工作時,苦於沒實際專案經驗,一方面確實可以在大三大四時幹些實際專案,但如果確實在找工作時沒專案,那該怎麼辦呢?

    1 這時候沒辦法了,得加班加點,用最多一個月的時間,執行通一個全棧的專案,比如vuejs+Spring Boot+mybatis,這個過程中有問題,趕緊通過看視訊看資料等各種手段彌補,專案未必要大而全,甚至只包含簡單幾個增刪改查功能也行,但第一要了解全棧流程,第二要了解必要的技術語法。這個過程一定不能省。

    2 挖掘畢業設計和之前的課程設計,看下其中哪些需求點和商業專案很類似,這些需求點能否用基於java的技術實現?如果可以,這好歹也算是專案經驗。

    3 我知道不少網站能提供專案,不要多,就執行通一兩個即可,但其中需要包含java全棧技能,因為這些專案有足夠多的指導文件,除錯通過應該不難,這絕對可以算學習專案。

    對畢業生而言,招聘要求不會太高,一般沒商業專案,只有學習專案也會讓過。在通過上述方式掌握若干學習專案以後,按如下思路準備簡歷上的專案。

    1 介紹專案技術時,如果可以,儘可能多地寫些打包部署除錯等技能,這塊應該不難,比如在自己機器上裝個jenkins或ant或sonar,然後實踐一下。

    2 多寫些解決的實際問題,比如mytabis裡事務是怎麼調通的,總之,別浮於技術,再深入寫些技術的實現細節。

    3 從異常處理、資料庫批處理優化、資料庫索引、設計模式甚至虛擬機器調優角度,寫下專案的實現細節,這塊屬於基本的jdk和資料庫知識點,也應該不難實現。

    這樣一寫,雖然還是沒法讓學習專案變成商業專案,但由於深入細節,好歹能超過大多數學習專案,相比於其它同學,你就會有更多的面試機會。

    當然,如果有機會,最好還是得找些實際商業專案做下,很多點只有做了才知道,很多技能只有做了才能掌握。 

5 工作若干年轉行時,沒商業專案經驗該怎麼辦?

    對於工作後想轉行做java的同學,這裡給出如下的建議。

    1 如果工作忙,如果平時自己感覺沒時間學java,可以報個比較好的培訓班,畢竟培訓班裡有成套的知識體系,這比自己學要省事省時間。

    2 看下你之前的工作經驗,能否和java沾邊,比如之前做測試或者運維,多少能碰點java,在寫專案經驗時,就可以著重偏向java。

    3  我知道有些同學,比如之前3年是在做c#,通過培訓掌握些java技能,然後就把之前的經驗全寫成基於java的,雖然如果面試過關,這無法用任何方式甄別出,但這塊涉及誠信,請大家自己斟酌考慮。

    4 對於轉行的同學,第一份工作得看重實際機會,比如找個外派活,找個小公司,這些公司的招聘要求稍微低些,或許能幫助相關同學成功轉行。

     不過話說回來,工作3年轉行還行,如果工作5年以後再轉行,那就需要非常慎重了。

6 總結:不自暴自棄,畢竟不是每個公司都有資格挑人

    固然說,努力要乘早,在校階段就應該儘可能找實習機會,但任何時候努力都不會嫌晚,用文字提到的方法,初學者最多用1個月的努力時間,就能在簡歷中歸納出一個學習專案。而對於比較初級的職位,或者一些小公司,有時候候選人只要靠刷題就能進去,更何況掌握了若干學習乃至商業專案。所以,哪怕在當前階段感覺自己什麼都不懂,也絕不能自暴自棄,比如頹廢無節制地用無聊的視訊來打發時間,而應該立即找書找資料找專案提升自己。  

    通過本文給出了若干甄別商業專案的方法,大家可以對照比對你簡歷上的商業專案是否會被誤殺,而本文給出的在簡歷上描述專案的技巧,更經過了不少畢業生的實踐檢驗,應該具備足夠的可操作性,最後希望此文能幫助到大家。 

版權說明:

    如果要轉載本文,請先徵得本人同意。

 

&n