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