當你決定離職之前,你就應該開始為下一份工作做準備了。
那么,該準備什么呢?
我建議是第一是跟語言無關的部分,也就是所謂的基本功。具體也就是我們大學本科里面最頭疼的那些東西,數據結構算法,還有一些計算機網絡的基本知識。
鑒于這個東西實在很枯燥,我不建議大家去看那些黑皮書,反正我是真的是看不下去啊。
那么問題來了,看什么?
書籍我推薦:大話數據結構。
視頻我推薦:小甲魚的的課程。網易云課堂:數據結構和算法
首先,書里面的代碼雖然是用c語言寫的,但我相信語言大家都還是有一點c語言基礎的,再者說語言里面很多東西都是通用的。而且正好可以嘗試用java再寫一遍,這樣效果更好。如果不想買書的,可以上網找找pdf版本,找不到我這里也有,不過還是建議買一本。而視頻為什么是這個呢?因為小甲魚就是按照這個書來講的,配合大話數據結構相得益彰,就是相當于教師加上教材。書里面看不懂的地方都可以好好再聽一遍小甲魚的講解應該就差不多了。小甲魚除了講基本的數據結構,還穿插了很多的經典算法問題的解決方案,最棒的地方是都是c語言寫的啊,我們想要現成的都沒有,所以跟著看,自己寫啦。
學習完基本的數據結構,就Java的數據結構相關的類實現原理,比如LinkedList,ArrayList,HashMap,TreeMap這一類的。結合api去看,很多你之前不懂得地方會恍然大悟。
除了數據結構,需要長時間準備還應該有設計模式。
雖然說有23種設計模式,但是我覺得大家掌握最常用和經典的十個左右就差不多了。剩下的大概了解即可。
兩者隨意選一本即可,或者兩本對照著看也是可以的。
看的時候記住最重要的一點:
不要光顧著看!
不要光顧著看!
不要光顧著看!
比如你學習完了觀察者模式,已經大概了解了其實現原理。那么現在合上書本,仔細在你的項目中想一下,哪里是符合觀察者模式的應用場景的?
你又是怎么實現的?如果要改應該怎么改呢?
如果你找到了符合的地方,那么你就把原來的設計用觀察者模式重新寫下來。
注意,不要隨便用在生產上,你現在只是要充分理解這個模式,而和實際結合是最好的學習方式。而當你寫完了到底要不要放在生產上,你可以先和你的技術組長說一下,設計模式切記不要生搬硬套。
如果你沒有在你的項目中想到合適的應用場景,那么沒關系,你就自己想一個區別于書上的例子,自己獨立完成。
每個模式都自己寫一遍實現邏輯,估計當你寫的時候肯定有不理解的地方,這時候就是你撕開的地方了,到底為什么這么寫,這么寫好在哪里,完成了時候就已經基本掌握這個模式了。然后還有最后一步,那就是寫博客。
不知道大家有沒有聽過學習的金字塔?
簡單來說,學習的方式不同最后能記住的東西差了很多。
第一種,“聽講”,這種我們最常用的方式,學習效果最低的,內容只能留下5%。
第二種,通過“閱讀”方式學到的內容,可以保留10%。
第三種,用“聲音、圖片”的方式學習,可以達到20%。
第四種,是“示范”,采用這種學習方式,可以記住30%。
第五種,“小組討論”,可以記住50%的內容。
第六種,“做中學”或“實際演練”,可以達到75%。
最后一種在金字塔基座位置的學習方式,是“教別人”或者“馬上應用”,可以記住90%的學習內容。
看到這里明白了吧?
寫博客就是把你的理解交給別人,是最好的學習方式,而且你把你的博客放在電子簡歷上,絕對是很棒的加分項。 我的面試官最后跟我說,錄用我的原因也有一部分是看了我的博客,覺得我是一個愛好學習的人,在我技術和其他人差不多的情況下,更加愿意給我機會。
簡歷
我一開始也忽略了簡歷的重要性。
隨便花了十幾分鐘填了一個在線模板就開始投遞了,結果是可以預料的。都石沉大海。
我們首先要知道一件事情,即使是一家小公司發布一個招聘的職位,那么收到的簡歷也可能幾百個。HR會在這幾百個甚至上千個里面選幾個出來面試,所以哪怕你技術再好,如果簡歷不能體現出你的水平,連見到面試官的機會都沒有,那怎么能找到理想的工作呢?
那么問題來了,簡歷怎么寫呢?
我偷懶用的在線的模板,當然如果你的內容寫的不錯,問題還是不大的,但是建議還是不要用現成的模板,拉鉤的就挺坑,最上面是一張大大的照片還有教育經歷也占了很大地方,結果最重要的項目經驗要到第二頁才能看到。
簡歷一般都有幾個模塊,工作經歷,教育經歷,項目經驗,自我描述,技能評價等等。
教育經歷我就不說了,這個沒什么技術含量。
工作經歷
寫上你的上一家公司,從事的職位(java后端開發),如果你在這三年的時間換了兩家以上的公司,我建議你還不要都寫上,HR是不喜歡那種經常跳槽的,在這個年限,一般最好是一家到兩家。這些按照實際情況寫就好了,都是死的東西,接下來就要寫上你的職責了。
有的人和我最開始寫的一樣
java 后端開發,最多加上一句 負責接口的編寫和實現。
這么寫和沒寫一樣
這么寫和沒寫一樣
這么寫和沒寫一樣
那應該怎么寫呢?
1、根據業務需求調整數據模型,設計程序接口,實現接口業務邏輯,編寫接口文檔。
2、根據前端組html及css,編寫jsp頁面及js腳本。
3、日常版本的發布及緊急回退。
4、處理日常bug和在生產發生的緊急問題。
5、新同事及實習生的業務培訓。
6、配合性能測試優化代碼和sql。
7、參與新需求評審。
上面是我后來修改的的,你覺得兩者差了多少呢?
一定要具體,并且分條陳述,作為一個技術崗位,要體現出你的專業素養。
項目經歷
這個千萬要寫,當然工作也這么久了都會有項目經歷,但是也要有一個主次。
第一個放你最熟悉的,最好是近期的,你從頭開始做的項目,你能如數家珍侃侃而談的哪種。這也是面試官面試的時候主要和你談的地方,是除了技術問題之外最重要的一塊。(后面寫面試的時候我會詳談)
那么項目怎么寫呢?
我建議業務寫一兩句就好,如果你的項目介紹通篇都是滿滿的業務,那么幾乎注定了你的簡歷不會進入被篩選的范圍內。
你想一下,你自己應聘的是什么崗位?
技術崗!
那么你應該寫什么?
簡單的介紹項目的規模,有多少技術人員,是互聯網項目還是企業軟件,這些就可以了。
接下來你需要寫關于項目技術的那部分。
項目用了什么框架?spring 還是struts2 ,持久化是用的是mybaits還是hibernate等等,有沒有使用RPC框架(Dubbo /HSF)?數據庫用的是什么?有沒有用到redis?
版本控制工具是svn還是git,有沒有前后端分離?有沒有寫js ,如果有,你都用到了哪些前端組件, 能寫的都列出來,還有項目是這么分層的?有幾個子模塊,平時發布版本是用的自動化工具嗎?(jennkins) ,項目管理用的是什么?(maven)等等,也就是說要讓hr第一眼就能看到這是一個有經驗的開發人員。
下面是我的一個項目,寫的也不是很好,僅供參考。
- 基于阿里云平臺和中間件技術研發,應用包括云服務器 ECS,云數據庫 RDS,Redis,DRDS對象存儲OSS,開放搜索(OpenSearch),企業級分布式應用服務 EDAS(HSF服務框架)等技術。
- 使用maven進行項目管理,根據業務分成多個web子模塊,方便開發測試和部署。
- spring +mybaits 框架開發,mysql分布式數據庫。
- 基于OpenSearch 的全平臺商品名稱搜索,基于redis的商品類目存儲。
- 使用cas實行單點登錄,shiro 認證、授權、加密和會話管理。
- poi ,jxl 導入導出excel,itext 生成pdf,Zxing生成二維碼。
- ajax 前后端交互,jquery及多個前端組件包括layer,jquery validate,autocomplete,jdate,datatable分頁等。
- 統一用jenkins發布,敏捷開發,jira 平臺處理日常及生產問題。
自我介紹
這個模塊就不要寫什么工作努力了,與人和善,團隊協作這樣的空話了。
你可以寫你在項目中的作用,你解決了什么樣的問題?得到了客戶怎樣的認可?可以寫寫你經歷過的加班,怎么努力的保證了項目上線,這些都能體現出你的價值,你的閃光點。
除了主語言,還會什么其他的語言/技術,或者喜歡逛技術論壇,最好附上自己的回答,寫技術博客(放上你的博客地址),當然如果有GitHub 上的項目就再好不過了。
好了,說了這么多,簡歷大概就是這個樣子了。
投遞
現在招聘網站很多,專注it的就有拉勾啊,100offer ,boss直聘,獵聘,智聯招聘等等。
我建議不要太過廣泛的投遞,(我就吃到了這個苦頭,最多一天收到十幾個預約面試的電話)在投遞前至少看一下公司的性質,是否和你的期望相符,還有公司的地址距離你是否太遠,公司是否上市等等。
至于具體選擇哪家,各有千秋吧。
非利益相關,我只說我用的,我最開始用的是拉勾網。但是反饋很少,我大概看了一下,很多其實都是要求3-5年的工作經驗,是招聘中高級的程序員,而我勉強算三年的工作經驗,所以只收到了一個面試的預約。
后來,我就在智聯招聘上開始投遞,投遞的范圍也僅限于初中級的工作經驗一到三年的,我還用了那個十五天的簡歷置頂,效果還是很明顯的。我其余四家的面試都是智聯招聘上找到我的。
在這里我先說一下,投遞的第一天可能沒有人聯系,那是很正常的。
因為HR處理簡歷是有一個周期的,每天都有很多的簡歷,你的可能要過一兩天才能被看到,但如果三天還沒有人聯系你,你就要思考下,是不是你的簡歷寫的哪里有問題了。
面試
如果你收到了面試邀請,那么恭喜你,你已經成功了一小半。
HR 一般會和你確定時間,并且給你發一封郵件,你需要收到后回復,并且查看一下面試的地點,同一天最多安排兩家,并且查詢好路線,因為都是第一次去,所有找路一定會花更多的時間,所以至少提前留出一個小時以上的時間。現在天氣也已經很暖和了,在外面也不冷了,提前到達總比氣喘吁吁的直接面試好很多。
有的公司會有筆試,但是不用太介意,回答你會的就好,這個只是一個初步的篩選,無論筆試成績怎么樣,都會讓你去面試的,面試才是最重要的地方。
技術面試針對我們這種有一定工作經驗的,已經不會問你比如 java 有幾種基本類型這樣的問題了,主要集中在java的高級特性上面。一般分為兩個階段。
第一個階段是主語言本身以及它的高級特性,第二個階段是講述自己的項目,并在中間穿插著問題。
主語言本身以及它的高級特性
Java的數據結構相關的類實現原理,比如LinkedList,ArrayList,HashMap,TreeMap這一類的。(前期的準備)
Java并發包當中的類,它們都有哪些作用,以及它們的實現原理,這些類就是java.concurrent包。(重中之重,一定要仔細看看)
IO包和NIO包中的內容。這部分里面NIO會是重點。(這個問的不是很多)
設計模式 這個一般都會問,讓你說說熟悉的設計模式。(前期的準備)
Java的虛擬機的內容。這部分主要包括三部分,GC、類加載機制,以及內存。
項目
業務上把你在項目中的責任著重體現出來,對項目的架構以及為什么這么設計要有認識。
一定要斟酌你說出的技術,最后挑那些你確實用過的地方去說,這樣才能防止你說出一個技術,面試官深入把你問倒的情況。但是如果真的有一兩個地方不熟悉也不要緊,你可以及時打住,并且坦誠的承認自己在這塊積累不夠。不要在一個問題上硬挺,不懂裝懂。
還有最重要的一點,一定要說出你的閃光點。
比如你解決了哪個很嚴重的生產問題,比如你應用了那些設計模式在你的項目里面,比如你有什么巧妙的解決一些棘手問題的技巧。
相信我,你仔細回想,是一定可以找到至少這樣一個閃光點的。
哪怕你說我能加班,我997,我熬夜通宵也把任務完成了。這也是你的閃光點啊,說明你責任心強。
你不要等待面試官發問,很多問題你都可以引導面試到提問的。
這里還有一點也是被問比較頻繁的。
就是項目中是怎么高并發訪問的問題的?
你是怎么去提高性能瓶頸的?
常規的優化手段都有哪些?
面試的時候并沒有固定的套路,你要懂得隨機應變,好的心理素質和知識儲備是兩大法寶,以不變應萬變,但無論怎樣,都要保持好的心態。
失敗是很正常的。
但是你要相信,只要你沒有虛度光陰,是一定能找到相對理想的工作的,每一次的失敗中你都要冷靜的想一下自己到底是哪里的儲備不夠,并且立刻去了解這部分知識,從失敗中汲取經驗,成功就不遠了。
offer
最后,如果你收到了不止一個offer,盡快推掉不準備接受的其他的offer,這樣不要耽誤人家的招聘。記得要禮貌的拒絕,并表示歉意。
預祝大家都能找到理想的工作。
-
工程師
+關注
關注
59文章
1571瀏覽量
68599 -
JAVA
+關注
關注
19文章
2974瀏覽量
104981
發布評論請先 登錄
相關推薦
評論