自學黨/野生猿,項目經驗上哪搞?


幾個頭痛的問題

最近不是求職季嘛,經常聽小夥伴們提及的幾個重要的話題是什麼呢?

  • 第1種情況:在唸書期間沒進過實驗室,沒有參加過比賽,也沒有實習經歷,那找工作時,簡歷上、面試時,項目經驗這一塊怎麼弄呢?
  • 第2種情況:讀研的小夥伴,期間以看論文,做研究類工作爲主,或者說搞的是A研究,做的是A相關的項目,畢業有意願從事計算機相關的崗位,簡歷上沒項目怎麼辦?
  • 第3種情況:已經參加工作了的小夥伴,說之前一直做的A工作或者A崗位,現在有轉開發相關崗位的意願,簡歷上也沒項目經驗怎麼辦呢?

老實講,這幾個問題是蠻頭痛的,而且還不太好說。

我自己也有親身體會,之前記得分享過自己的的社招轉行經歷,當時應該屬於上面說的第3種情況,基本上也是頭鐵硬轉的,自學黨嘛,談不上有什麼實際的互聯網開發經驗。老實講自己的運氣還算可以,但是有些東西好像也不算單純偶然。

嘗試聊聊個人當時的幾點準備和想法吧,就這個問題上,希望能有用。


應屆生?項目經驗?

我發現提到類似剛纔上面那些問題的小夥伴們,很多其實都是應屆畢業生(包括本、碩),表示沒有項目經驗有點慌。

u1s1,應屆生校招面試時,對項目經歷的要求倒還好,不用太過焦慮

有一個比這個更重要的事情那就是基礎的準備!有些小夥伴有疑問了,天天掰扯基礎基礎,到底啥是基礎啊?!

這個在之前的兩篇學習路線的梳理文中都有提及,而且基礎都是通用的:

主要包括:

  • 編程語言
  • 數據結構與算法題
  • 計算機網絡
  • 操作系統
  • 數據庫/SQL
  • 設計模式
  • 應用框架

自己有很多朋友同學都是一線面試官,就這個問題還專門和他們交流過。面試官心裏非常清楚,要求應屆生有比較厚重的項目經驗是不現實的,更是完全沒有必要的。應屆生可塑性強,只要以上基礎紮實,公司都是非常願意培養的。

面試過程中,有項目/比賽/實習等類似經歷都是加分項,這沒錯,但別忘了前提是建立在基礎表現得紮實的情況下,如果拋去這個前提,所謂的項目經歷怕只會畫蛇添足,並不能起到決定性作用。

再打個很實際的比喻,找過工作的小夥伴們可能也有體會。面試時,項目經驗/實習經歷吹得再多,一道手寫算法題寫不出來照樣涼;但反之,如果項目經歷雖稍欠,但對於面試官提出的基礎問題和算法題一答一個準,則十有八九能上岸。

所以我覺得不能本末倒置,基礎纔是應該着力去抓的。

如果距離校招還有不少時間,那在校期間如果有比較合適的實驗室項目/比賽/實習,當然可以嘗試一下,這也是一段難得的經歷,可以寫進簡歷。但如果真的馬上臨近校招了,還是應該先把基礎準備紮實。

對有些碩士生而言,其實大部分在讀研階段導師都還是會安排任務的,甚至包括各種開週會、寫報告,這些過程中所做的研究其實都可以成爲項目經驗的一部分,只不過需要自己好好挖掘、提煉、整理、表達出來。

再者,就算讀研期間沒有項目,那畢業論文總該是有的,也總應該是做了一個研究,或者完成了一件事情。這些其實也可以好好挖掘一下,表達成項目經驗寫進簡歷。

其實面試時,對於面試官來說,大概率不太會關心所做項目的具體內容。很多時候只是通過聊項目的方式,來感知我們的學習能力、表達能力,以及思維的清晰程度。

所以就看會不會 表達了!


善於利用開源項目

優秀的開源作者們積攢了數十年的財富

所有的知識、見識、智慧和藝術

像是專門爲我們準備的禮物

我們爲什麼不 白瞟 利用呢?

就個人感受而言,開源項目對於我成長的幫助是非常之大的。因爲像我這種非科班自學黨,練手的幾乎唯一途徑那就是大量研究、吸收別人的開源項目,眼界很大程度上也是靠這個來提升。

之前也已經推薦過很多相關的開源項目了:

那又有小夥伴可能會疑問,如何把一個開源項目吸收成自己的,以應付面試呢?

個人覺得不能靠死記硬背,也不可泛泛而看,而應該是有主有次,重在吸收技術關鍵點和整體架構思路。所以如果要做個總結,我願意以這樣一個大致流程去吸收別人的開源項目:

  • 首先正式開始啃開源項目之前,基礎不可少,比如語言底子、網絡協議、基本工具、基本應用框架、甚至包括一些設計模式等等,否則人家開源項目很難下牙。
  • 正式看一個開源項目時,首先可以全局梳理一下該項目用到的所有技術點、組件以及對應的作用和解決的問題,沒聽過的先去了解,不會的先單獨補,各個擊破先。
  • 接下來很重要的一步是:把項目運行跑起來!只要能跑起來看到效果,也就成功了一半,頓時信心大增。
  • 針對某幾個關鍵技術點,或者關鍵模塊各個擊破,規劃好一個順序,仔細研究其源代碼,跟進去細看。過程中可以藉助於思維導圖的輔助來做總結、串聯和回顧,並且做好筆記輸出,否則即使當時頗有心得,事後又像走迷宮一樣再踩一遍坑。當然該過程肯定是有個反覆的,想一遍搞定不太可能。幾輪一折騰,應該說對這個開源項目就比較熟悉了。
  • 最後一步纔是考慮把這個開源項目轉化成自己的。比如可以考慮做代碼上的優化,功能上的優化,甚至加入一些創新一點的想法,當然咱也可以把它推翻重來。

善於做好技術輸出

個人覺得,無論應屆校招還是社招轉行,在沒有項目經驗的情況下,要想博得面試官的青睞,別的不說,做技術的態度肯定要有,這樣最起碼能證明自己是有方面的意願和行動,否則如何說服別人呢。

那如何體現一個人的技術態度呢?

一個最直接,最有說服力的方式那就是亮出你的技術博客或者GitHub鏈接,或者其他作品鏈接,這個再面試時是一個很大的加分項。其實面試官可能真的沒有在意裏面具體寫的什麼內容,但是我們熱愛技術、熱愛分享的樣子已經被面試官着着實實地看在眼裏了。

所以學完一個東西,一定一定記得要留下點什麼,這些都是後續發展的資本。

再比方說,由於轉行真的沒有實際的企業項目經驗,但是咱通過自學,有自己的技術心得或者作品,那面試官跟咱也有得聊了,而且大概率是我們自己熟悉的領域,這樣豈不是也爲自己贏得了機會。

這個在之前做過的那麼多期搭建博客、寫博客的視頻裏,就是這個意思,因爲我自己覺得受用很大,所以覺得可以嘗試。


善於利用知名框架和項目

再比方說,還是由於應屆或者轉行確實沒有實際項目經驗,但如果我們研究過企業級開發所涉及的常用框架、項目或者技術的核心原理,深入到源碼級別,那面試時也是可以和麪試官侃上幾個回合的。

常見的比如SpringRedisNginx… 等等這種很多互聯網公司都會使用的知名技術、框架或者項目,只要有一個很懂原理,能夠在源碼級別和麪試官侃侃而談,那上岸的機會還是有的。畢竟這些知名框架中的任何一個,都能折射出很多的底層知識和內功。

不過我想,如果能到這個地步,一般來說自己應該也會有很漂亮的技術輸出,甚至個人作品了,這種情況下還是非常受歡迎的。


挖掘已有項目的亮點

當然這一條指的是已經參加工作的小夥伴,比如我當時,從通信領域的某一個搬磚崗想轉互聯網,雖然說項目的業務和技術棧都有差別,但是前公司項目並不是完全不能用,照樣可以寫進簡歷,只不過需要做一下挖掘,開發領域共性的東西提煉一下。

而且也可以有意識地把之前參與過的項目裏,一些有技術含量的東西深耕挖掘一下,有些東西可能不是我們做的,但是還是可以問、可以打聽、可以提前準備,然後結合代碼花點時間理解和喫透,從而變成自己的,這樣也就可以寫了。

而且有些情況下,也可以結合一些開源項目裏看到的比較先進的技術點,可以想着如何融合到現有做過的項目裏去,只要自己能理解,也就能轉換成自己的項目經驗。


後 記

聊了這麼多,必須要說的是,這些能夠得以實施的前提是,最起碼還有時間來準備和周旋。如果實在沒時間準備這些了,那還不如鞏固基礎,先保證能拿到基本分爲宜。

成年人的世界裏好像真的沒有容易的事情,既然我們想在沒有項目經歷的情況下跨過這道門檻,那過程中肯定就沒有輕鬆的事情,掉點毛也正常。然而等熬過了這段,自己真的會成長。

一起共勉吧。

注:本文在開源項目:JavaCollection 中已收錄,包含自學編程路線、心路歷程、面試題和麪經、及系列技術文章等,資源持續更新中…


每天進步一點點

慢一點才能更快

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章