1. 程式人生 > >如果當前沒有拿得出手的簡歷,也別慌,努力的話最多兩年情況就能改變

如果當前沒有拿得出手的簡歷,也別慌,努力的話最多兩年情況就能改變

    在之前的一篇博文分析若干沒面試機會和沒體現實力的簡歷裡,我講了些有實力有專案經驗但簡歷沒寫好的情況。不過對於有些同學,當前情況確實不容樂觀,比如做了若干年後想轉行,或者非計算機相關專業想要做IT工作,或者有“頻繁跳槽”等情況,總之簡歷拿不出手。這個時候,也不用慌。

    我本身做過兼職IT培訓,也在外企和網際網路公司做過技術面試官,見到過不少候選人,如果簡歷上去掉最近一兩年的經歷,絕對連面試的機會也沒,但他們最後確實成功入職。對於這些人,我非常敬佩,我平時也得學習他們積極上進的精神。在本文裡,就將專門介紹這些同學成功的訣竅。

1 面試有技巧,但能力和當前經歷是關鍵

    我之前寫了不少講面試技巧的部落格,也出了兩本面試相關的書, Java Web輕量級開發面試教程和Java核心技術及面試指南,其中一方面是講述如何歸納總結提升能力,另一方面講述面試技巧,講過如何挖掘提煉簡歷,但從沒講過如何弄虛作假修改簡歷(以後也不會講)。面試技巧對大家有什麼幫助呢?

    1 能力本身就已經到位,通過面試技巧能更好地表述自己。

    2 能力可上可下,通過面試技巧能揚長避短。

    3 能力稍有欠缺,通過面試能知道自己需要補充哪方面知識點。

    但如果能力或當前經歷不行,面試技巧的幫助意義就不大。比如是個Java後臺開發崗,小A最近1年都沒做Java,那麼再怎麼說也無法改變這個事實,又如小B最近2年乾的是測試、實施或其它和開發無關的工作,那麼簡歷再怎麼寫,也無法改變“最近沒有Java專案開發經驗”的事實。在這個時間點,刷題和練面試說辭可能就意義不大了,因為簡歷發出去後,比較好的公司未必會給面試機會,這個時間段,更多地就該找個能提供實踐機會的公司。

2 轉行和積累經驗,從小公司外派公司做起

    大的或好的IT公司,可能會簡歷的要求會比較高,比如要有若干年的相關專案經驗,或者最近用到的技術棧需要和職位需求相匹配,但不是所有的公司就這樣。

    比如外派,就被一個外包公司外派到xx銀行、xx公司或xx現場,也就是去做乙方。這類職位,往往只要甲方公司面試成即可,而甲方公司給出的工資可能會低於本公司同類崗位,所以要求未必高,只要能幹活就行,所以面試時要求會適當降低。

    又如樓層公司和創業公司,可能無法提供穩定性,工資也可能低於平均行情,但這類公司往往很難找到合適的開發崗,所以面試要求也不高,也能幹活就行。

    相比之下,找這類能提供實踐機會的公司,先考慮在本公司外派(即外包公司接到活在本公司幹),再考慮外派到甲方場地。畢竟這兩類公司規模都不小,而且外派到甲方甚至還有可能轉成甲方正式員工。如果再不行,考慮樓層公司和創業公司,說實在話,這些公司過了幾年未必還在,但提供實踐機會綽綽有餘。 

3 如何證明自己“能幹活”

    上面提到的標準是“能幹活”,相比大公司“技術熟練”的標準,這已經是很低了,下面我們來對比下。

 

能幹活

技術熟練

專案經驗

能通過若干個學習專案瞭解框架技術(比如Spring Boot)的流程,有商業專案最好,不論商業專案年限

一定要有商業專案經驗,且有年限要求,且商業專案裡用到的技術點需要和職位要求很匹配

技能點

會用常用的API方法幹活

更得了解底層

資料庫

會增刪改查,最多外帶索引等非常基本的優化技能

瞭解比較多的效能優化技能,對資料庫叢集等高階知識點要有一定了解

分散式架構

會基本的操作,比如用nginx做負載均衡的配置方式,且未必要有商業專案經驗

得在商業專案裡用過,且得了解一定的底層細節

綜合評價

能在專案經理帶領下幹活,有問題提出來,別拖進度即可

熟悉專案開發各流程,有問題儘量先自己解決,在專案裡可以獨當一面

    從上表來看,“能幹活”的標準真不高,那麼如何體現出這點呢?

    1 儘量多帶相關技能的商業專案經驗,如果沒有,用學習專案湊也行。

    2 在平時學習中多掌握些常規的用法,比如Java多執行緒,Java集合,以及框架知識點,在簡歷中專案描述裡,多列些相關技能點,面試時能說的上來。

    3 資料庫方面,至少用過1種主流資料庫,複雜SQL語句沒問題,最好能掌握一些快取資料庫和NoSQL技能(未必要有商業專案經驗)。

    4 讓人在讀完簡歷後,感覺到你之前確實做過相關專案,至於這個專案是畢業設計專案還是培訓班專案還是商業專案,那當然最好是商業專案了。正因為你有過類似專案經驗,那麼這些外派公司(或小公司等)能感覺你至少進來以後就能幹活。 

4 瞭解簡歷痛點,用時間去沖淡

    簡歷上如果出現關鍵性的問題,一些大公司可能未必給面試機會。

    1 比如最近處於失業狀態,且時間超過2個月,這證明工作意願不強或者能力不行。

    2 最近換工作太頻繁,這說明穩定性不強。

    3 相關年限不足,或者最近半年沒用到相關技能。

    不過上述痛點可以用時間來沖淡,比如你最近2年比較穩定,而且乾的都是相關技能的活,那麼比如2年前有不穩定情況,或者有一定時間的不在職狀態,只要你最近的專案裡用到的技能非常匹配,你至少有面試機會。只要你面試表現出色(這個階段就有基礎準備了),那麼之前的不穩定性就無關緊要了。

   這裡,前提是“正視現實”,正視後不能再得過且過,而是得認真踏實,其實這樣過個兩年,簡歷就能非常好看,而且也有挖掘的潛力了。

5 培訓班是用錢買時間買經驗,但是否上,得看自己情況

    說到這裡,不可迴避的話題是培訓班,是否要上?

    第一,培訓班是花錢買時間,你出了這些錢,培訓班能幫忙省去不少試錯的時間。不過如果當前你有機會通過各種手段進公司實踐,那麼自然以進公司為主。況且,目前有不少視訊教程,這個費用相比培訓班而言,要少很多,如果你有足夠的自制力和執行力,通過自己看視訊學也是一種方法。

    第二,培訓班不是萬能的,在進培訓班前,最好先嚐試下通過修改簡歷海投簡歷找到一份實踐的機會。還是這句話,關鍵要看自己努力程度,如果你平時得過且過,那麼誰也沒法幫助到你,包括培訓班。

    第三,哪怕真的要進培訓班,哪怕培訓班號稱包就業,你在培訓班裡也得刻苦賣力,不能指望出了錢就萬事大吉。

    有句話叫:最瞭解你的人不是你的朋友,而是你的敵人,我在技術面試的時候,見過有些培訓班會千方百計地包裝畢業生,合理包裝本沒問題,但如果招個過度誇張但實際能力不行的,技術面試官就會被說,所以說技術面試官和培訓學校相互敵對並無不妥。我面試多了,甚至能從簡歷上看出這位候選人來自哪個培訓學校,甚至也能通過候選人在面試的表現風格,推斷出是哪個培訓學校哪位面試輔導老師幫忙輔導的面試。 

    話雖這樣說,但如果候選人本身專案經歷可以,而且技術可以,我並不會因為候選人來自培訓學校而有歧視,如果招的是外包(Vendor)崗,面試要求更低。如果你真的進培訓班,那麼如下的這些建議對你會有用。

    1 準備簡歷時,別用給定的模板專案描述,因為同期畢業生,如果用同一個專案模板,專案經歷會很雷同。也就是說,你最好用你自己的話把專案經歷說一遍再寫下來。

    2 別太多注重智力題演算法題,這些都是輔助的。多準備些專案描述,尤其是結合專案描述說清楚職位要求的技術。

    3 別僅僅停留在“會用技術” ,再準備些亮點,哪些算亮點呢?(SQL虛擬機器等)調優、(Spring Cloud等)框架元件、底層程式碼、專案管理髮布流程(比如maven,jenkins)或在linux專案裡看日誌的技巧。

    4 專案千萬別高大全,比如為期3個月的培訓班,你做出了一個物流專案,這誰都不信,三個月的時間,最多在一個維護專案上修修補補也夠了。

    5 有些培訓學校的老師,可能自認為能把控面試過程,所以手下的學生在面試過程中會揣摩面試官問題的用意,然後自動地回答推斷中的下一個問題,總之在面試中會過於強勢,用個不恰當的成語來形容:張牙舞爪,比較恰當的成語是:色厲內荏。面試過程中始終得謙虛,哪怕聽出面試官問題的用意,說些面試官愛聽的話即可,或者通過三言兩語點出相關問題,等面試官來問。

    寫到這裡,發現上述建議不僅是對培訓班有用,而且再次囉嗦一下,當前技術不行更得抓緊,拿出高考一半的勁頭看程式碼看視訊看技術就行了。

    在這段的最後,我列些會讓培訓專案和學習專案穿幫的問題,問題答案大家自己想。

    1 問專案細節。這個專案規模多大,盈利多少?客戶是誰?最後有沒有上線?有多少開發多少測試?最後客戶是怎麼驗收的?

    2 問部署細節,這個專案部署在什麼系統上?用什麼工具打包部署?資料庫伺服器如何設定?資料庫伺服器如何做到熱備冗餘?

    3 問專案的管理和開發方式。這個專案的開發方式是什麼?假設回答是敏捷開發,那麼再問其中有哪些實施要點。

    4 問真實專案必不可少的要素,比如一個專案上線後,總會通過閘道器接入,大多有熱備冗餘和負載均衡,如果是Java專案,可能會執行在tomcat或spring boot等環境中。我就問,專案的閘道器是用什麼?如何實現熱備冗餘和負載均衡?如何部署到web伺服器上,部署後配置檔案如何管理?部署後如何看線上日誌?如果出現問題,如何把新程式碼釋出到線上?

6 大公司好公司的技術要求?這些就是努力方向

    寫到這裡,我們的一個核心觀點是,如果當前專案經歷和技能不行,通過各種方式狂補,再通過海投簡歷等方式,的確能找到實踐機會,但這僅僅是個過渡。 

    剛才也提到了,這個時間段能應聘到的崗位,大多可能是外派或者是規模比較小的公司,但人總要往高處走,在第3部分的表格裡,大家已經能看到大公司好公司的要求,這裡再從面試說下大公司的要求,這些就是大家的努力方向。

    1 熟悉主流框架技術,不僅要能山寨程式碼,業務上出了問題更需要通過debug定位問題,當然無需定位到框架層面,定位到業務程式碼、資料庫程式碼和ORM等程式碼即可。這其實不難,做過半年以後,該學的都能學到,而且通過視訊等方式,瞭解底層程式碼也不是難事。

    2 進一步瞭解些分散式或微服務的技術,比如Spring Cloud系列,服務治理Eureka,負載均衡Ribbon,容錯Hystrix等,又如阿里系的分散式元件。如果有專案實踐機會,再通過看視訊等手段,這些也不難學。

    3 不僅要會做專案,而且要了解專案的管理方式,比如敏捷開發,專案打包部署手段,通過sonar管理程式碼質量。

    4 遇到問題了,能通過debug等方式定位問題並提出解決方案,這就要求有remote定位問題的能力,並要求能會基本的linux檔案操作的命令。

    5 從總體感受上來看,候選人除了技術能力到位以外,看上去還得有責任心,表達可以,有一定的分析和解決問題的能力,在專案裡能獨當一面,且有上進心。雖然這些描述性文字很多,但如果IT人事要不斷上進,而不是坐等被淘汰,這些要求其實並不過分吧。 

    說句得罪人的話,目前公司數量太多,而且各層次的公司都有,所以只要經過努力,再不行再經過培訓學校加持,各能力段的要找到份實踐機會其實並不難。我知道在有些公司裡,員工只要稍微熟悉些業務後,就會不斷重複勞動,如果主觀上不努力,可能就無法接觸到專案之外的技術,而且做久了,如果態度不端正,就有可能在舒適區裡混日子。

    但話說回來,有實踐機會是個質的飛越,因為很多技術在沒有接觸到的前提下,還是比較枯燥的,但如果有實踐機會,平時多少能接觸到相關技能,學習的效率就能大幅度提升,換句話說,哪怕之前什麼都不懂,只要進了一個小公司,有了機會接觸到相關技能,後面的學習大多就是靠敲多程式碼多看技術文章了。 

7 自信,最重要的是自信,從動盪公司到穩定公司乃至好公司,最多隻要2年

    如果在小公司幹久了,可能一直處於動盪階段,或者格局有限,會導致員工自信心不足,比如我見過一個工作年限在10年左右的人,各類公司都幹過,但都比較動盪,論能力好歹能達到大型網際網路公司資深開發的水平,但當我要推薦他去面試時,會給自己找很多技術不足的理由。

    其實不少比較上進的IT人,邁過了最初的困難期找到了對口的工作,而且在工作2年後也積累了不少經驗,這時就應該大膽地去嘗試更好的機會,如果是因為自己沉迷於舒適區的安逸而不肯上進,這個屬於咎由自取,但如果因為自信心不足,這就有些可惜了。

    所謂面試造核彈,工作擰螺絲,一些大型網際網路公司還有一些好的公司,其實對能力要求並不如想象中那麼高,而且有2到3年實踐經歷以後,就可以通過簡歷技巧和麵試技巧來讓自己在大公司裡找到工作。但如果一旦因為自信等原因在底層公司裡呆久了,錯過發展機會是小事,把自己的技術棧、視野和發展前景限制在一個很小的區域,這才是大事。

    要知道在一些大公司的平臺上,技術選型和專案管理方式是在小公司裡無法想象的,大公司的牛人所在的技術高度也是在小公司無法感受到的,所以大公司能給到的發展高度也絕非是在一些小公司裡能想象到的。 

8 總結,求推薦,版權說明

    最困難的階段是開始階段,本人在篩選簡歷和麵試的過程中,也能深深感受到眾多上進的IT人在這個階段的無力感——知道該學什麼就能靠時間和體力勞動來堆積,但不知道怎麼學的話,這種迷茫感或許只有當事人才能感受到。

    在這個階段,得多靠實踐多靠學習提升技能,而不是再一味地優化簡歷。在方法得到的前提下,踏實上進加自信心,2年後絕對有機會進好的公司。而本文給出的一些方法,多少有些操作性。

    本人前後用了週末3個小時寫成此文。如果大家感覺本文有所幫助,請幫忙推薦此文,如果感覺文章內尚有不足,也請通過評論多多幫助本人,本人不勝感激。

    關於轉載有如下的說明。

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

    2 在轉載時,請原文轉載 ,如要在轉載修改本文,請事先告知,謝絕在轉載時通過修改本文達到有利於轉載者的目