在行情一般的情況下,就說說23級應屆生如何找java工作

Java應屆生找工作,不能單靠背面試題,更不能在簡歷中堆砌和找工作關係不大的校園實踐經歷,而是更要在面試中能證明自己的java相關商業項目經驗。其實不少應屆生Java求職者不是說沒真實Java項目經驗,而是不知道怎麼挖掘,總之當下,應屆生求職java,沒真實項目,難度會增大。

1 應屆生找Java工作的常見誤區

先說下不少應屆生在找Java工作時的一些認知誤區以及實際情況。

1 不是誰技術好,誰實習經驗長,誰背的面試題多,誰就能找到好工作。事實上,Java應屆生應當在簡歷上寫清楚儘量多的java商業項目經驗,這樣的簡歷纔會得到更多的面試機會。在這個基礎上,還要在面試中證明自己足量的商業項目經驗以及掌握必要的技術,這樣就能更好地找到工作。

2 雖然說,校招java程序員時,未必要求應屆生有java真實的項目經驗,事實上大多數的應屆生在投簡歷和麪試階段,都只能證明自己的學習項目經驗,但如果應屆生求職者能證明自己的商業項目經驗,一定能產生代差優勢。

3 這點其實說得有些悲觀,java應屆生,如果學歷是本科,學校是一本,剛畢業就進大廠的機會就能多些。如果學校是二本,那麼進大廠不是說沒可能,但可能性會大大降低。至於大專應屆生,找工作的目標一般是僅限於小公司。

4 不少應屆生朋友會在簡歷上,通過學校的課程,學習成績,畢業設計項目或自學階段的項目來證明自己的實力,但是面試官,尤其是好公司的面試官,在挑簡歷時首先看學校是不是一本或名校,然後再看商業項目經驗。

所以可以這樣說,如果學校一般,甚至學歷是大專,如果只簡歷上寫熟悉的技術,以及學過的課程,不展現商業項目的實習能力,簡歷過篩選這得靠運氣,過面試也得靠海投。而不少211,985院校的java應屆生,可能單靠學校和學歷,就能超越不少一般學校的求職者。

在下文裏,本人不想羅列一些Java面試八股文,因爲這些哪怕背熟了意義也不大,就會從簡歷和麪試這兩個方面,講講java應屆生的求職技巧。甚至,如果臨近畢業,自己java技能感覺不熟,本人還給出了在短時間內彌補技能和麪試說辭的技巧。

2 面試前如何高效準備Java技能

先說下,Java應屆生找工作的兩個要點是,第一能證明自己有半年(甚至更長)的實習經驗,第二能證明自己至少能用spring boot開發項目。

如果當下感覺自己spring boot技術不熟,千萬別直接背八股文,也別輕易去github上去下載一個java項目來跑,更也別貿然去報個班,而是可以直接通過自學,先學會spring boot+數據庫做增刪改查業務的技能。這塊要達到什麼樣的效果呢?

1 能建立一個spring boot項目,數據庫可以用mysql,但其中建一個表就行。在spring boot項目裏,需要寫控制器層,service層和repo層代碼,實現用spring boot框架實現增刪改查的操作,當然在其中包含的必要的技術,比如註解或java語法,這些得掌握。

2 java核心語法層面,別系統學,就針對spring boot做增刪改查業務的點,用到什麼學什麼。比如用到了集合,異常處理或類,基本上就遇到什麼學什麼。這好比是通過看英文文章來熟悉常用單詞,這比單純系統背單詞,效果要好太多。

3 別全面去學分佈式組件或spring cloud微服務技術,當然這塊如果掌握最好,如果當下不掌握,在校階段去學這些比較值錢的技術,未必能學好,而且在面試中也未必能證明自己在項目裏用過。

其實上文給出的學習要求是比較低的,可能會有不少應屆生朋友質疑,學太簡單了未必能找到工會作。但本人更想說的是,第一,在項目裏會用技術和在面試中證明自己會用技術,這是兩回事,後者的難度是遠小於前者的。第二,應屆生在學習階段,由於沒有接觸到真實項目,所以真會做太多的無用功。同時,結合下文的描述,大家能看到,其實學到上述這個程度,真能去找工作。

3 應屆生準備Java簡歷的實戰要點

下面再說下應屆生該如何寫簡歷,其中的要點剛已經說了,儘量寫上足夠多的商業項目經驗。這裏需要額外說下,如果在簡歷中寫課程成績之類的,這其實很虛,如果寫學習項目或畢業設計項目,這塊意義也不大,但如果有編程方面的獲獎經驗或其它加分項,這倒可以寫上。

商業項目是指,真正在實習公司裏做過的項目,或者是用於掙錢的項目。其中包含的關鍵要素是公司或掙錢。商業項目該怎麼寫?

1 寫上時間範圍,這個項目所在的公司,以及項目名稱,如果不是在公司裏做的,寫上能證明是商業項目的文字。同時寫一些你做過的業務模塊。

比如是,2022年2月到2022年10月,在上海xx公司實習,做了報銷管理系統。本人做的是業務報銷和信息錄入模塊。

再如,2022年2月到2022年10月,本人是幫教研室老師做了一個政府信息管理系統,這個項目是來自xx渠道,這個項目是掙錢的,本人拿到了xx收益。本人做的是信息錄入和關鍵字查詢等模塊。

2 寫用到的技術,技術不求多,因爲不是靠技術來證明項目是商業項目。

比如是,用到了spring boot,jpa,mysql,logback,redis等。

3 這點很關鍵,要寫些商業項目區別於學習項目的點,這些點最好還是你參與過或你知道。

比如是,這個項目裏,本人是用junit做測試,用logback寫日誌,用jenkins部署,參與過部署到linux上的工作,同時本人還看過線上日誌,排查過業務問題。

如果這個項目是能看得到摸得着的項目,比如是web項目或app項目,直接寫到簡歷上,如果不是,那麼可以寫,這是個公司內部項目,對方客戶已經上線。注意,商業項目會上線,學習項目一般沒這個過程。

4 如果有分佈式微服務方面的亮點可以加上,但應屆生如果寫明瞭商業項目,哪怕只用到spring boot增刪改查技術,這比學習項目要強太多。

比如可以寫,這個項目裏,本人用到了redis做緩存,用kafka做消息中間件,解決過JVM問題。

從上文的描述裏大家能看到,在簡歷中是通過多個方面來證明這是商業項目,但是別擴展寫功能,別把簡歷這部分的項目描述寫成是項目使用說明書,因爲面試官不關心這個。

有些話本人不想說得太直接,不過,在面試中通過真實項目說出來的spring boot增刪改查技術,其實效果和上文提到的,spring boot+單表的增刪改查技術,其實兩者是差不多的。求職者一方面需要說明其中包含的spring boot的處理流程,無非是從控制器到service到repo再到數據表,另一方面求職需要說明其中包含的註解。

至於前端技術,比如vue.js或android框架,當然熟悉最好,不熟悉的話,應屆生面試時就一句話,“本人在這個項目裏只做後端”,這就可以了,因爲能有商業後端項目經驗的應屆生真不多。

4 真實 Java項目長什麼樣?

簡歷上如果包含半年等的商業項目經驗,其實真能爭取到不少面試機會了,下面再說說應屆生朋友該如何準備Java面試。

應屆生朋友應該是通過介紹項目,來證明商業項目的真實性。由於商業項目是用於掙錢的,而且商業項目正是因爲要從客戶那邊收錢,所以其在確定需求,開發,測試,部署和問題排查等方面,和學習項目存在很大的差異。Java應屆生朋友,不僅應該從技術層面,更應該從項目開發的諸多細節,來證明自己做過商業項目。

先可以說下真實項目的敏捷開發流程和常用的項目管理工具。

學習項目一般是從零跑通一個項目,只要能從前端發請求看到預期的效果,這個項目就算成了,但真實的項目一般會採用敏捷開發模式,哪怕是有些公司的田園敏捷開發模式,一般也是採用“迭代”開發的流程。

比如一個項目從開始做,到真實完成,假設需要半年,包含大概50個功能點,那麼就會把這些功能點,均攤到6個開發週期,每個週期大概是一個月,這樣每個月發佈一次,把本月需要完成的功能點和本月修改掉的bug一起發佈上線。

具體的,比如一個月有4周,會在第一週的前半周,和產品方或客戶方談好需求,一般這是項目經理主導做的,談好以後分配任務給諸多程序員,分配任務時一般用jira來記錄,當然如果發現bug了,也會用jira來記錄bug。

開發前,一般會基於git的主分支(master或dev或current)上創建一個新分支,比如202210dev分支,諸多程序員在這個分支上開發,然後約定個開發結束時間,這樣到了這個月的第三週結束後,這個開發分支上就包含了本次發佈所需要的的代碼,然後這個發佈版本就會凍結住,凍結的意思是,發佈的版本需要穩定,不能隨便再向裏面提交併合併代碼,在此基礎上測試人員就開始測試。

一旦測試人員測出問題,項目經理會做個評估,如果不影響本次發佈,就會在下個週期裏修改掉,如果影響很大,那麼需要走“解封”流程,解開本次已經凍結住的git分支,修改後再凍結住。

這樣到了本次迭代週期的發佈日,一般是業務量比較少的時間點,比如週末凌晨,運維人員會把從git上拉下待發布的分支,用maven或各種工具打成jar包,然後通過jenkins工具,或乾脆手動複製粘貼,放到linux環境上,再用java -jar命令啓動,啓動後開發和測試人員發現沒問題後,本次發佈就算成功,然後再開始下個爲期一個月的開發週期,這樣一直到本項目全部完成。

5 如何在面試中證明自己真做過java項目

所以求職者如果要證明自己的項目是真實項目,可以從如下若干個角度來準備說辭。

1 我們項目是用敏捷開發模式,然後大致敘述下開發週期,同時加一句,我們項目組,會每天開會討論進度,如果有阻塞性的問題,或者技術問題,得趕緊提出來。

2 我們項目組用到了git和maven來管理代碼和依賴包,同時看些git拉分支,合併代碼和處理衝突的細節,也可以看下用maven打包以及創建公司私有倉庫的做法。

3 我們項目是用jira來管理任務和bug,真實項目一般都用jira,所以哪怕是零基礎的,jira未必要搭建,未必要實踐,但需要了解下通過jira創建任務和創建bug的細節。

4 我接到開發任務後,一定會在開發分支,比如202210dev分支,在此基礎上再創建一個我自己用的任務分支,比如202210dev001,其中001是任務號,在此分支上開發功能點。開發好以後,我會用junit寫單元測試案例,也會用postman發請求,這個屬於程序員自己要做的測試,當測試通過後,再提交到202210dev001分支上。

5 這裏請注意,得說下代碼review。我在202210dev001分支上的代碼,得合併到202210dev這個發佈分支,合併前,項目經理會指定其它開發者review我的代碼,如果有功能或代碼規範的問題,我會修改掉。測試人員如果發現我做的模塊有功能問題後,會給我開個bug,一般也是用jira開,我會修,當然我把修改掉bug後的代碼合併到發佈分支前,依然需要經過code review這個過程。

6 我自己做好我的業務模塊後,會用junit寫測試案例,如果junit不熟悉可以不說,但一定要說用postman發請求測試。在版本發佈的時候,我會留守在公司,遇到問題我會排查和解決。

應注意,上述提到的技術要點,哪怕對於零基礎的應屆生朋友,絕不是高不可攀,而是能通過一些簡單的項目實踐能掌握。

在商業項目裏,開發者未必是全棧都做,而是隻做後端開發,而且後端開發一定要加入很多細節。

在不少應屆生朋友做的學習項目裏,開發者其實是全包的,從前端到後端spring boot,再到建數據表,這些工作都要做。但在真實項目中,如果你的職責是後端代碼,那麼其實是無需關注前端的。

而且在項目組裏,你其實真未必是從零開始做。比如你入職被分配到一個財務系統裏,這個系統一定是開發到一定程度了, 所以你其實是無需參與表設計的工作,也無需參與搭建前端後端框架的事。你的事情其實就是用spring boot開發業務,在上文的基礎上,你還可以用如下的說辭證明你做的是商業項目,而不是學習項目。

1 我只負責用後端開發,即用spring boot開發控制器,service和repo層,我這個接口是用@requestmapping來匹配前端請求,前端是html頁面+vue。

2 我開發的api需要用swagger來展示接口,swagger其實不難,大家可以看下。在我開發的api裏,要用logback寫日誌,以便排查線上問題。對應的,我每開發好一個接口後,要用junit來寫單元測試案例,這裏強烈建議大家學下junit,這不難,而且瞭解一下其中mock數據的動作。

3 我們的環境分測試環境和生產環境,其中生產環境就是對外提供服務的,但我們的代碼開發好以後,會部署到測試環境,測試環境也是linux。一般學習項目甚至只在windows上開發,但真實項目一般分測試和生產兩個環境。

4 我開發的時候,如果需要其它組提供接口,比如支付系統裏要調用對賬模塊的api,那麼我會和其它組的人溝通,對應地,對方組開發好以後,會用swagger來展示接口。這裏你可以展示在項目開發中必不可少的溝通技能,相比之下在學習項目,一定沒這個流程。

上述說辭對應屆生朋友來說絕非難點,但是很多應屆生是忽視的,所以如果應屆生朋友用些時間學習並練習一下說辭,絕對能很好地證明自己做過商業項目。

在真實項目裏,一定會遇到線上問題,你可以說下排查分析線上問題的細節。

這塊大家可以說,收到告警信息後,可以通過vi命令,去觀察linux上的系統日誌,或者甚至可以直接從linux上把代碼拉到windows,再用記事本來打開。或者是用postman發請求遇到問題,也直接去看日誌。應屆生朋友一般不會處理太難的問題,所以可以說解決過因參數不對導致的問題。

比如是業務問題,是參數不對,那麼能根據日誌上的告警信息,定位到具體的類和代碼行,然後解決。再如,在日誌裏看到是空指針,然後也是定位到具體的類和具體的行,然後解決。

如果應屆生能通過準備日誌方面的說辭,證明自己排查過線上問題,那麼也能很好地證明自己的商業項目經驗。

6 更可以通過引導,拋出事先準備好的素材

在準備好上述商業項目的說辭後,應屆生朋友背些java八股文倒也不是不可以,不過一方面,java八股文資料太多,另一方面,如果在說好項目和相關的技術後,有些面試官問的八股文就會簡單很多。所以這塊八股文方面,本人不做展開。

但是與其被動背題等面試官來問,更可以準備說辭然後面試時主動說。這塊怎麼做呢?可以先通過如下兩篇文章掌握基本的java核心或數據庫方面的亮點,這塊應屆生應該也能掌握。

https://zhuanlan.zhihu.com/p/617063567

https://zhuanlan.zhihu.com/p/617816413

隨後在你介紹好真實項目以後,校招面試官大概率會問比較基礎的問題,比如集合,異常處理或數據庫索引等。被問及時,你要主動多說,比如問及finally和final的差別時,你說好以後,再說一句,我們項目做異常處理時就用finally,而且我們項目處理異常有一定的規範,規範點上文已經提到。

或者被問及,你們項目用什麼數據庫,怎麼連數據庫,你可以說,用mybatis連數據庫,同時再說,我還知道索引和事務,然後展開說。

這樣的話,你在展示商業經驗後,外帶通過這些準備好的說辭,一定是有算對無算,哪怕你真實沒做過項目,哪怕你其實除了準備過的點以外對java很不熟,那麼你過面試也不是不可能。

所以應屆生朋友在找工作時,絕對應該是優先展示商業項目經驗,外帶通過積累亮點素材和主動引導。事實上,本人最近一直在幫一些應屆生朋友做入職輔導,用的就是上述的一些經驗。

這裏容本人自誇一下,很多找本人的應屆生之前是海投簡歷但很難收到面試機會,更別論去面試了,但經過本人輔導後至少能拿到面試機會,而且基本上能找到工作,後來他們甚至得考慮,自己能力一般,入職後如何過試用期。

7 再聊聊應屆生找java工作的薪資話題

其實應該這樣說,應屆生朋友如果能找到java工作,那麼就能拿到當地比較普遍的薪資,這看似是正確的廢話,但更可以這樣理解。

1 比如在上海,23年對java應屆生的行情是8k到12k左右,所以本科應屆生不論Java技術掌握怎麼樣,只要能過Java面試,就能拿到這個薪資。

2 但如果應屆生Java能力一般,無法過面試,那麼哪怕是降價要5k薪資,對方公司也不會錄用。

3 還是這句話,java應屆生能拿多少薪資,和本身所掌握的java技術關係不大,是由學校,學歷,能證明出的java真實項目的時長以及面試時能展示的java技能決定的,說穿了一方面看學校,另一方面看面試。所以不少應屆生朋友希望通過多學技術從而拿到高薪,這不大現實,畢竟學技術是一方面,展示真實項目經驗是另一方面,而面試的表現則再是一個方面。

4 應屆生朋友如果只背八股文,只去看技術,不去準備面試技巧,哪怕找到工作,薪資估計也會被低估,甚至還很難找到工作。

 

 

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