1. 程式人生 > >我的2019秋招記憶(完整版)

我的2019秋招記憶(完整版)

本文主要包括三部分內容,這三部分內容也是我在三個時期完成的。

第一部分是我在參加2018春招時所寫,主要記錄了我在研究生期間學習Java後端的心路歷程。

第二部分內容是我參加2019秋季招聘過程中所作,記錄了秋招路上所經歷的一切。

第三部分內容則是我在秋招塵埃落定之後,對之前所學所想而做出的總結。

第一部分:Java後端學習之路

第二部分:我的秋招回憶錄

第三部分:我的秋招經驗分享(研發方向)

一、Java後端學習之路

這部分內容是我在準備2018年春招的時候寫的。主要記錄了我在研究生期間從Java初學者到專注於Java後端技術棧的開發者的學習歷程。

主要分享了學習過程中的一些經驗和教訓,讓後來人看到,少走彎路,與君共勉,共同進步。如有錯誤,還請見諒。

不論你是不是網民,無論你遠離網際網路,還是沉浸其中;你的身影,都在這場偉大的遷徙洪流中。超越人類經驗的大遷徙,溫暖而無情地,開始了。

《網際網路時代》

1:選擇方向

1 小時候接觸計算機和電腦比較早,對計算機和網際網路有情懷,有興趣,本科時在專業和學校裡選擇了學校,當時專業不是計算機,只能接觸到一點點計算機專業課程,所以選擇了考研,花半年時間複習考進了一個還不錯的985,考研經歷有空會發到部落格上。

2 本科階段接觸過Java和Android,感覺app蠻有趣的,所以研一的時候想做Android,起初花大量時間看了計算機專業課的教材,效果很差。但也稍微瞭解了一些計算機基礎,如網路,作業系統,組成原理,資料庫,軟工等。

3 在沒確定方向的迷茫時期看了大量視訊和科普性文章,幫助理清頭緒和方向。期間瞭解了諸如遊戲開發,c++開發,Android,Java甚至前端等方向,其中還包含遊戲策劃崗。

4 後來綜合自身條件以及行業發展等因素,開始鎖定自己的目標在Java後臺方向。於是乎各種百度,知乎,查閱該學什麼該怎麼學如此類的問題,學習別人的經驗。當然只靠搜尋引擎很難找到精品內容,那段時間可謂是病急亂投醫,走了不少彎路。

2:夯實基礎

1 研一的工程實踐課讓我知道了我的基礎不夠紮實,由於並非科班,需要比別人更加勤奮,古語有云,天道酬勤,勤能補拙。趕上了17年的春招實習招聘,期間開始各種海投,各種大廠面試一問三不知,才知道自身差距很大,開始瘋狂複習面試題,刷面經,看經驗等。死記硬背,之乎者也,倒也是能應付一些小公司,可謂是臨陣磨槍不快也光。

2 不過期間的屢屢受挫讓我冷靜思考了一段時間,我再度調研了崗位需求,學習方法,以及需要看的書等資料。再度開工時,我的桌上開始不斷出現新的經典書籍。這還要歸功於我的啟蒙導師:江南白衣,在知乎上看到了他的一篇文章,我的Java後端書架。在這個書架裡我找尋到了很多我想看的書,以及我需要學習的技術。

3 遙想研一我還在看的書:教材就不提了,脫離實際並且年代久遠,而我選的入門書籍竟然還有Java web從入門到精通這種爛大街的書籍,然後就是什麼Java程式設計思想啦,深入理解計算機系統,演算法導論這種高深莫測的書,感覺有點高不成低不就的意思。要麼太過難懂要麼過於粗糙,這些書在當時基本上沒能幫到我。

3:書籍選擇

1 江南白衣的後端書架真是救我於水火。他的書架裡收錄了許多Java後端需要用到的技術書籍,並且十分經典,雖不說每本都適合入門,但是隻要你用心去看都會有收穫,高質量的書籍給人的啟發要優於普通書籍。

2 每個門類的書我都挑了一些。比如網路的兩本(《tcp ip卷一》以及《計算機網路自頂向下》),作業系統兩本(一本《Linux核心設計與實現》,一本高階作業系統,推薦先看完《深入理解計算機系統》再來看這兩本),演算法看的是《資料結構與演算法(Java版)》,Java的四大件(《深入理解jvm虛擬機器》,《java併發程式設計藝術》,《深入java web技術內幕》,《Java核心技術 卷一》這本沒看)。

3 當然還有像《Effective Java》,《Java程式設計思想》,《Java效能調優指南》這種,不過新手不推薦,太不友好。接著是spring的兩本《Spring實戰》和《Spring原始碼剖析》。當然也包括一些redis,mq之類的書,還有就是一些介紹分散式元件的書籍,如zk等。

4 接下來就是擴充套件的內容了,比如分散式的三大件,《大型網站架構設計與實踐》,《分散式網站架構設計與實踐》,《Java中介軟體設計與實踐》,外加一本《分散式服務框架設計與實踐》。這幾本書一看,絕對讓你開啟新世界的大門,醍醐灌頂,三月不知肉味。

5 你以為看完這些書你就無敵了,就滿足了?想得倒是挺美。這些書最多就是把我從懸崖邊拉回正途,能讓我在正確的道路上行走了。畢竟技術書籍這種東西還是有門檻的,沒有一定的知識儲備,看書的過程也絕對是十分痛苦的。

6 比如《深入理解jvm虛擬機器》和《java併發程式設計藝術》這兩本書,我看了好幾遍,第一遍基本當天書來看,第二遍挑著章節看,第三遍能把全部章節都看了。所以有時候你覺得你看完了一本書,對,你確實看完了,但過段時間是你能記得多少呢。可以說是很少了。

4:談一談學習方法

1 人們在剛開始接觸自己不熟悉的領域時,往往都會犯很多錯誤。剛開始學習Java時,就是摸著石頭過河。從在極客學院慕課上看視訊,到看書,再到看部落格,再到工程實踐,也是學習方式轉變的一個過程。

2 看視訊:適合0基礎小白,視訊給你構建一個世界觀,讓你對你要做的東西有個大概的瞭解,想要深入理解其中的技術原理,只看視訊的話很難。

3 看書:就如上面一節所說,看書是一個很重要的環節。當你對技術只停留在大概的瞭解和基本會用的階段時,經典書籍能夠讓你深入這些技術的原理,你可能會對書裡的內容感到驚歎,也可能只是一知半解。所以第一遍的閱讀一般讀個大概就可以。一本書要吃透,不僅要看好幾遍,還要多上手實踐,才能變成自己的東西。

4 看部落格,光看一些總結性的部落格或者是科普性的部落格可能還不夠,一開始我也經常看這樣的部落格,後來只看這些東西,發現對技術的理解只能停留在表面。高質量的部落格一般會把一個知識點講得很透徹,比你看十篇總結都強,例如講jdk原始碼的博文,可以很好地幫助你理解其原理,避免自己看的時候一臉懵逼。這裡先推薦幾個部落格和網站,後面寫複習計劃的時候,會詳細寫出。

部落格:江南白衣、酷殼、戰小狼。

網站:併發程式設計網,importnew。

5 實踐為王,Java後端畢竟還是工程方向,只是通過文字去理解技術點,可能有點紙上談兵的感覺了。還有一個問題就是,沒有進行上手實踐的技術,一般很快就會忘了,做一些實踐可以更好地鞏固知識點。如果有專案中涉及不到的知識點,可以單獨拿出來做一些demo,實在難以進行實踐的技術點,可以參考別人的實踐過程。

5: 實習,提高工程能力的絕佳機會

1 這段時間以後就是實習期了,三個月的W廠實習經歷。半年的B廠實習,讓我著實過了一把大廠的癮。但是其中做的工作無非就是增刪改查寫寫業務邏輯,很難接觸到比較核心的部分。

2 於是乎我花了許多時間學習部門的核心技術。比如在W廠參與資料平臺的工作時,我學習了hadoop以及資料倉庫的架構,也寫了一些部落格,並且向負責後端架構的導師請教了許多知識,收穫頗豐。

3 在B廠實習期間則接觸了許多雲計算相關的技術。因為部門做的是私有云,所以業務程式碼和底層的服務也是息息相關的,比如平時的業務程式碼也會涉及到底層的介面呼叫,比如新建一個虛擬機器或者啟動一臺虛擬機器,需要通過多級的服務呼叫,首先是HTTP服務呼叫,經過多級的服務呼叫,最終完成流程。在這期間我花了一些時間學習了OpenStack的架構以及部門的實際應用情況,同時也玩了一下docker,看了kubenetes的一些書籍,算是入門。

4 但是這些東西其實離後臺開發還是有一定距離的,比如後臺開發的主要問題就是高併發,分散式,Linux伺服器開發等。而我做的東西,只能稍微接觸到這一部門的內容,因為主要是to b的內部業務。所以這段時間其實我的進步有限,雖然擴大了知識面並且積累了開發經驗,但是對於後臺崗位來說還是有所欠缺的。

5 不過將近一年的實習也讓我收穫了很多東西,大廠的實習體驗很好,工作高效,團隊合作,版本的快速迭代,技術氛圍很不錯。特別是在B廠了可以解到很多前沿的技術,對自己的視野擴充套件很有幫助。

6:實習轉正,還是準備秋招?

1 離職以後,在考慮是否還要找實習,因為有兩份實習經歷了,在考慮要不要靜下心來刷刷題,複習一下基礎,並且回顧一下實習時用到的技術。同一時期,我瞭解到騰訊和阿里等大廠的實習留用率不高,並且可能影響到秋招,所以當時的想法是直接複習等到秋招內推。因此,那段時間比較放鬆,沒什麼複習狀態,也導致了我在今年春招內推的階段比較艱難。

2 因為當時想著沉住氣準備秋招,所以一開始對實習內推不太在意。但是由於AT招人的實習生轉正比例較大,考慮到秋招的名額可能更少,所以還是不願意錯過這個機會。因為開始系統複習的時間比較晚,所以投的比較晚,擔心準備不充分被刷。這次找實習主要是奔著轉正去的,所以只投了bat和滴滴,京東,網易遊戲等大廠。

3 由於投遞時間原因,所以面試的流程特別慢。並且在筆試方面還是有所欠缺,刷題刷的比較少,線上程式設計的演算法題還是屢屢受挫。這讓我有點後悔實習結束後的那段時間沒有好好刷題了。

7:調整心態,重新上路

1 目前的狀態是,一邊刷題,一邊複習基礎,投了幾家大廠的實習內推,打算選一個心儀的公司準備轉正,但是事情總是沒那麼順利,微軟,頭條等公司的筆試難度超過了我的能力範圍,沒能接到面試電話。騰訊投了一個自己比較喜歡的部門,可惜崗位沒有匹配上,後臺開發被轉成了運營開發,最終沒能通過。阿里面試的也不順利,當時投了一個牛客上的螞蟻金服內推,由於投的太晚,部門已經招滿,只面了一面就沒了下文,前幾天接到了菜鳥的面試,這個未完待續。

2 目前的想法是,因為我不怎麼需要實習經歷來加分了,所以想多花些時間複習基礎,刷題,並且鞏固之前的專案經歷。當然如果有好的崗位並且轉正機會比較大的話,也是會考慮去實習的,那樣的話可能需要多擠點時間來複習基礎和刷題了。

3 在這期間,我會重新梳理一下自己的複習框架,有針對性地看一些高質量的博文,同時多做些專案實踐,加深對知識的理解。當然這方面還會通過寫部落格進行跟進,寫部落格,做專案。前陣子在牛客上看到一位牛友CyC2018做的名為interview notebook的GitHub倉庫,內容非常好,十分精品,我全部看完了,並且參考其LeetCode題解進行刷題。

4 受到這位大佬的啟發,我也打算做一個類似的程式碼倉庫或者是部落格專欄,儘量在秋招之前把總結做完,並且把好的文章都放進去。上述內容只是本人個人的心得體會,如果有錯誤或者說的不合理的地方,還請諒解和指正。希望與廣大牛友共勉,一起進步。 

二、我的秋招回憶錄

憶往昔崢嶸歲月稠。   

恰同學少年,風華正茂;書生意氣,揮斥方遒。  

心路歷程,不是雞湯  

我之前用發了一篇秋招總結,雖然也寫了很多東西,但是還是覺得少了點什麼。

現在想想,好像是乾貨分享出去了,但是還有情感沒有抒發,甚至連流水賬都沒有整理。那今天咱就抒抒情,各位看官莫見怪。

準確來說,我是在2018四月份左右開始準備秋招的。

當然,我在2017年有過兩段實習經歷,分別在網易和百度,這1年半的時間裡我也有了一些學習積累,以及實踐經驗,對後續我參加秋招都是有很大幫助的。

因為這些經歷不僅豐富了我的簡歷,也讓我能有專案去和麵試官交流,把握更多主動權,另外,長期的部落格積累,以及專案實踐,也會有很好的正面作用。

拋開這些不說,秋季招聘其實也是一場考試,應對考試的方法也只有複習,不管你之前簡歷再光鮮,部落格和GitHub再NB,筆試面試題答不上來那也是徒勞。所以,對付考試的那一套,我們也得掌握。

春招落幕,抉擇時刻  

四月份其實是春招還在進行的時期,春招的時候我本來不打算參加的,因為擔心轉正的不確定性,但是當時招聘滿天飛,沒忍住就投了幾家公司,最後只有阿里和京東給了offer。

糾結了很久以後,沒去阿里,原因是擔心擁抱變化,另外部門和評級我也不太滿意。

當時我說:不要把命運交給別人來決定。現在想想確實還是挺正確的,說不定我去實習就被擁抱變化了,哪有現在的逍遙快活啊。

於是,春招告一段落,緊接著,我就開始進行秋招準備了。

複習計劃,朝9晚10  

在春招中我發現了很多問題,以前學過的東西要麼忘了,要麼理解不深,另外還有很多東西連看都沒看過。

從那時起,我就開始擬定各種學習計劃,剛開始先做三個月的計劃,從四月到七月提前批開始前我要做什麼,接著我又會在每個月都做詳細的計劃。

就這樣,我把看書,寫部落格,刷題和做專案等內容都加入到了計劃中,然後開始逐步消化。

這三個月的複習還是非常累的,春招的時候和舍友一起刷了一些LeetCode題目,後來舍友都去實習,宿舍只剩我一個人,然後我便開始了非常規律的複習生活。

每天我都會刷幾道題,然後看一個知識點,晚上寫個部落格啥的。

這段時間我感覺積累的還是挺多的,並且學習的效率也比較高,更重要的是由產出,我在這一時期也搭了個自己的小站點,其實就是Hexo + GitHub。

另外在做專案方面,我看的是葉神的專案課,很受用,美滋滋。

提前批啟,初露鋒芒  

這個節奏持續了一段時間,剛好我回了趟家,6月我都在家裡複習。等到了6月底的時候,開始有提前批招聘出現,我是見一家投一家,想趕緊練練手。

七月份是我很重要的一個月。我幾乎投了所有公司的提前批,當時先面了深信服。

接著又嘗試了阿里中介軟體所謂的不進流程的提前批,接著面了螞蟻金服,百度各個部門的提前批,以及各種小公司。

當然,在這之前我把簡歷搞定了,基本上能讓我滿意。這個階段我光面百度就面了10多次,阿里也有7,8次了。

基本上各種亂七八糟的問題都遇到過了,然後我開始寫面經,看別人的面經,繼續刷題,寫部落格,然後面試面試面試。

面試多了以後,自我介紹和專案描述基本就形成肌肉記憶了,寫演算法題依舊蛋疼,但是也都能瞎扯一扯。基礎知識點大概都能答得差不多,稍微差缺不漏一下,疲倦的一天就又過去了。

很多同學和我說,他們準備的太晚了,本來想著一邊面試一邊複習,後來發現筆試面試一多根本沒時間複習。確實是這樣的,提前批還好,電面視訊面搞定,遇到筆試和線下面試,一天都沒時間複習。

秋招不止,考試不息  

就這樣來到了8月份,8月份我主要面了騰訊和頭條等公司,這兩個公司的風格很像,注重計算機基礎,對語言問的比較少,於是我都面的比較一般,最後運氣好都過了,也是挺開心的。

在8月份的面試中,我的心態是比較輕鬆的,畢竟螞蟻和百度面的還行,所以面這兩家的時候也比較放鬆。另外我還去杭州面了一次網易,面完之後順便去玩了兩天。

9月份,其實在八月中旬就初見端倪了,2019秋招正式開始,大批公司發出招聘資訊,牛客網上好不熱鬧,宣講,筆試面試鋪天蓋地。

這段時間我已經比較佛繫了,也就偶爾幫小夥伴一起做做題什麼的。中間面了一兩家比較剛興趣的公司,還有一面貌似已涼的網易遊戲。

信超越者,必拿offer  

現在已經9月底了。很多同學的校招已經結束了,還有一些同學仍在戰場,我身邊有些朋友直到上週才收到第一個offer,所以,別急,總有屬於你的那個offer。

另外,非網際網路公司的技術崗位,大家也可以考慮一下,9月10月這樣的公司會越來越多,除此之外,還有一票知名外企,包括亞馬遜,微軟,大摩等等。

開個公號,分享經驗  

有很多小夥伴好奇我為啥做這個公眾號,其實我也是某天突發奇想,貌似就是7月底的時候,突然感覺自己棒棒噠。

提前批比較順利,心態也比較放鬆,於是就想寫點東西分享給參加秋招的小夥伴,畢竟自己也在參加秋招,感同身受,更有說服力吧。

於是我把一些經驗,感悟,以及面經都寫在了公眾號中,然後也分享到了牛客網。

當然,由於我年少無知,幾次想在牛客上發公眾號都被警告了,也讓我消停了好一陣子。

當然公眾號也還在更新,我也希望把它做好,所以也希望大家可以給我一些反饋,我會相應地做改進。畢竟是第一次試水,有不成熟的地方還請多多包涵。

在座各位,前程似錦。  

中秋節剛過,國慶節又要到來了。正如每一年的秋招一樣,年復一年,在時間面前我們也是渺小的塵埃。

秋招結束不代表著結局,而是新的旅程開始,馬上,畢業論文,offer選擇,入職準備,畢業旅行等事項也要提上日程了。

不知道明年我們看待學弟學妹的秋招時,會是怎樣的一種心境呢。

我的部落格:https://blog.csdn.net/a724888

三、我的秋招經驗分享(研發方向)

時間過得很快,已經到了九月中旬,從16年讀研到現在將近兩年的時間裡,從一個Java初學者慢慢成長為一個合格的開發者,中間也遇到了很多困難。

我不是科班出身,所以是跨專業考研,所以在演算法,計算機基礎方面都比較不紮實,在兩年的時間中也花了很多時間去彌補。當然最主要的還是在Java後端方面的學習,我嘗試過很多學習渠道,也踩了很多坑,在專案裡劃過水,也在實習裡打過雜,一路磕磕絆絆到秋招。

在春招期間我其實就下定決心不實習而選擇直接走校招了,當時已經拿到了阿里的實習offer,只不過沒有去,一來是因為害怕被擁抱變化,二來是對部門和評級不太滿意。

所以從四月開始,我就全面開始準備秋招了,於是我做了一個三個月的學習計劃,爭取在阿里提前批開始前複習完畢,所以在七月的時候基本上做好了充分的準備,後續的時間基本上都花在投簡歷,筆試面試以及查缺補漏上了。好在今年研發崗的競爭比較小,所以也拿了幾個大廠的offer,秋招總算圓滿結束。

在學習和求職的道路上,牛客網幫助了我很多,為了回饋牛客網和各位牛友,我也想分享一下自己的秋招經歷以及一些學習經驗,希望能夠幫助到有需要的人,特別是做研發方向的同學。

老規矩,先上圖。

本文主要包括以下內容:

  • 1 秋招小結

  • 2 面經分享

  • 3 Java後端技術專欄

  • 4 Java工程師書單

  • 5 學習資源分享

  • 6 大牛部落格推薦

一:秋招小結

從七月初第一次投遞簡歷,到九月初,整整兩個月的時間,大大小小投了幾十家公司,其中很多都是提前批,內推,也經歷了許多的筆試,面試。

期間也拿了幾個offer,包括百度,螞蟻金服,騰訊,華為,頭條,網易(網易雲音樂沒給offer,調到了其他部門)。有幾家直接收到拒信的,包括拼多多,深信服。還有幾家在等待結果,包括攜程,快手,鬥魚等。  

當然也有一些還沒面試完的公司以及待安排面試的公司,這裡就不展開說了。

八月底基本上提前批就已經結束了,所以一般這段時間正式校招也開始了,各種大規模的筆試也很多,所以大家即使沒有拿到offer也不要灰心,畢竟校招是一場持久戰,基本上要到九月十月才能下結論。

我之前分享了很多公司的面經,其實大部分都是提前批的,很多都是直接免筆試的,因為我對演算法並不是很在行,所以感覺還是比較幸運的。

包括頭條拿到了白金碼,也很感謝那位給我白金碼的牛友。另外牛客上的招聘資訊,筆經面經也讓我受益匪淺,所以還是很感謝牛客這個平臺,我也希望能夠寫一些東西來回饋牛客網和各位牛友。

二 : 面經分享

具體的面經都比較長,這裡大概介紹一下面試的情況,然後我會放上面經的連結供大家查閱。

1 阿里面經  

崗位是研發工程師,直接找螞蟻金服的大佬進行內推。

我參與了阿里巴巴中介軟體部門的提前批面試,一共經歷了四次面試,拿到了口頭offer。

然後我也參加了螞蟻金服中介軟體部門的面試,經歷了三次面試,但是沒有走流程,所以面試中止了。

最後我走的是螞蟻金服財富事業群的流程,經歷了四次面試,包括一次交叉面,最終拿到了螞蟻金服的意向書,評級為A。

阿里的面試體驗還是比較好的,至少不要求手寫演算法,但是非常注重Java基礎,中介軟體部門還會特別安排Java基礎筆試。

2 騰訊面經  

崗位是後臺開發工程師,我沒有選擇意向事業群。

SNG的部門撈了我的簡歷,開始了面試,他們的技術棧主要是Java,所以比較有的聊。

一共經歷了四次技術面試和一次HR面試,目前正在等待結果。

騰訊的面試一如既往地注重考查網路和作業系統,並且喜歡問Linux底層的一些知識,在這方面我還是有很多不足的。

3 百度面經  

崗位是研發工程師崗位,部門包括百度智慧雲的三個分部門以及大搜索部門。

百度的提前批面試不走流程,所以可以同時面試好多個部門,所以我參加百度面試的次數大概有12次左右,最終應該是拿了兩個部門的offer。

百度的面試風格非常統一,每次面試基本都要到電腦上寫演算法,所以那段時間寫演算法寫的頭皮發麻。

4 網易面經  

面試部門是網易雲音樂,崗位是Java開發工程師。

網易是唯一一家我去外地面試的公司,也是我最早去實習的老東家。

一共三輪面試,耗時一個下午。

網易的面試比我想象中的要難,面試官會問的問題都比較深,並且會讓你寫一些結合實踐的程式碼。

5 頭條面經  

崗位是後臺研發工程師,地點選擇了上海。

我參加的是位元組跳動的內推面試,當時找了一個牛友要到了白金碼,再次感謝這位頭條大佬。

然後就開始了一下午的視訊面試,一共三輪技術面試,每一輪都要寫程式碼,問問題的風格有點像騰訊,也喜歡問一些底層知識,讓我有點懵逼。

6 快手面經  

崗位是Java開發工程師,面試我的部門好像是基礎架構部門。

快手是兩輪視訊面試加上一輪hr面試。

7 拼多多面經  

崗位是業務平臺研發工程師。

當時在學校裡參加了面試,過程是比較順利的,問的問題也都比較有難度。

自我感覺良好,但是最後卻收到了拒信,還是挺可惜的。

三:Java後端技術專欄

對於校園招聘來說,最重要的還是基礎知識。下面的部落格專欄出自我的技術部落格:

https://blog.csdn.net/a724888

這些專欄中有一些文章是我自己原創的,也有一些文章是轉載自技術大牛的,基本都是是我在學習Java後端的兩年時間內陸續完成的。

總的來說算是比較全面了,做後端方向的同學可以參考一下。

深入淺出Java核心技術  

本專欄主要介紹Java基礎,並且會結合實現原理以及具體例項來講解。同時還介紹了Java集合類,設計模式以及Java8的相關知識。

深入理解JVM虛擬機器  

帶你走進JVM的世界,整合高質量文章以闡述虛擬機器的原理及相關技術,讓開發者更好地瞭解Java的底層執行原理以及相應的調優方法。

Java併發指南  

本專欄主要介紹Java併發程式設計相關的基本原理以及進階知識。主要包括Java多執行緒基礎,Java併發程式設計基本原理以及JUC併發包的使用和原始碼解析。

Java網路程式設計與NIO  

Java網路程式設計一直是很重要的一部分內容,其中涉及了socket的使用,以及Java網路程式設計的IO模型,譬如BIO,NIO,AIO,當然也包括Linux的網路程式設計模型。

瞭解這部分知識對於理解網路程式設計有很多幫助。另外還補充了兩個涉及NIO的重要技術:Tomcat和Netty。

JavaWeb技術世界  

從這裡開始開啟去往JavaWeb世界的大門。什麼是J2EE,什麼是JavaWeb,以及這個生態中常用的一些技術:Maven,Spring,Tomcat,Junit,log4j等等。

我們不僅要了解怎麼使用它們,更要去了解它們為什麼出現,其中一些技術的實現原理是什麼。

Spring與SpringMVC原始碼解析  

本專欄主要講解Spring和SpringMVC的實現原理。 Spring是最流行的Java框架之一。

本專欄文章主要包括IOC的實現原理分析,AOP的實現原理分析,事務的實現原始碼分析等,當然也有SpringMVC的原始碼解析文章。

本專欄介紹MySQL的基本知識,比如基本架構,儲存引擎,索引原理,主從複製,事務等內容。當然也會講解一些和sql語句優化有關的知識。

同時本專欄裡也介紹了Redis的基本實現原理,包括資料結構,主從複製,叢集方案,分散式鎖等實現。

本專欄介紹分散式的基本理論和相關技術,比如CAP和BASE理論,一致性演算法,以及ZooKeeper這類的分散式協調服務。

在分散式實踐方面,我們會講到負載均衡,快取,分散式事務,分散式鎖,以及Dubbo這樣的微服務,也包括訊息佇列,資料庫中介軟體等等。

本專欄涵蓋了大後端的眾多技術文章,當你在Java後端方面有一定基礎以後,再多瞭解一些相關技術總是有好處的。

除了Java後端的文章以外,還會涉及Hadoop生態,雲端計算技術,搜尋引擎,甚至包括一些資料探勘和AI的文章。

總的來說選取了一些不錯的基礎類文章,能讓你對大後端有一個更直觀的認識。

四:Java工程師書單

我之前專門寫了一篇文章介紹了Java工程師的書單,可以這裡重點列舉一些好書,推薦給大家。  

完整內容可以參考這篇文章:

《計算機網路:自頂向下》這本從應用層講到物理層,感覺這種方式學起來更輕鬆。

《圖解演算法》《啊哈演算法》

這兩部書籍非常適合學習演算法的入門,前者主要用圖解的形式覆蓋了大部分常用演算法,包括dp,貪心等等,可以作為入門書,後者則把很多常用演算法都進行了實現,包括搜尋,圖,樹等一些比較高階的常用演算法。

《劍指offer》這本書還是要強烈推薦的,畢竟是面試題經常參考的書籍,當然最好有前面基本的鋪墊再看,可能收穫更大,這本書在面試之前一般都要嚼爛。如果想看Java版本的程式碼,可以到我的Github倉庫中檢視。

《Java程式設計思想》這本書也是被譽為Java神書的存在了,但是對新手不友好,適合有些基礎再看,當然要選擇性地看。我當時大概只看了1/3

《Java核心技術卷一》 這本書還是比較適合入門的,當然,這種厚皮書要看完還是很有難度的,不過比起上面那本要簡單一些

《深入理解JVM虛擬機器》 這本書是Java開發者必須看的書,很多jvm的文章都是提取這本書的內容。JVM是Java虛擬機器,賦予了Java程式生命,所以好好看看把,我自己就已經看了三遍了。  

《Java併發程式設計藝術》 這本書是國內作者寫的Java併發書籍,比上面那一本更簡單易懂,適合作為併發程式設計的入門書籍,當然,學習併發原理之前,還是先把Java的多執行緒搞懂吧。

《深入JavaWeb技術內幕》 這本書是Java Web的集大成之作,涵蓋了大部分Java Web開發的知識點,不過一本書顯然無法把所有細節都講完,但是作為Java Web的入門或者進階書籍來看的話還是很不錯的。  

《Redis設計與實現》 該書全面而完整地講解了 Redis 的內部執行機制,對 Redis 的大多數單機功能以及所有多機功能的實現原理進行了介紹。這本書把Redis的基本原理講的一清二楚,包括資料結構,持久化,叢集等內容,有空應該看看。

《大型網站技術架構》 這本淘寶系技術指南還是非常值得推崇的,可以說是把大型網站的現代架構進行了一次簡單的總結,內容涵蓋了各方面,主要講的是概念,很適合沒接觸過架構的同學入門。看完以後你會覺得後端技術原來這麼博大精深。  

《分散式服務框架原理與實踐》 上面那本書講的是分散式架構的實踐,而這本書更專注於分散式服務的原理講解和對應實踐,很好地講述了分散式服務的基本概念,相關技術,以及解決方案等,對於想要學習分散式服務框架的同學來說是本好書。

《從Paxos到Zookeeper分散式一致性原理與實踐》 說起分散式系統,我們需要了解它的原理,相關理論及技術,這本書也是從這個角度出發,講解了分散式系統的一些常用概念,並且帶出了分散式一哥zookeeper,可以說是想學分散式技術的同學必看的書籍。

《大資料技術原理與應用》 作為大資料方面的一本教材,廈大教授寫的這本書還是非常讚的,從最基礎的原理方面講解了Hadoop的生態系統,並且把每個元件的原理都講得比較清楚,另外也加入了spark,storm等內容,可以說是大資料入門非常好的一本書了。

五:技術大牛推薦

1 江南白衣 這位大大絕對是我的Java啟蒙導師,他推薦的Java後端書架讓我受益匪淺。  

2 碼農翻身 劉欣,一位工作15年的IBM架構師,用最淺顯易懂的文章講解技術的那些事,力薦,他的文章幫我解決了很多困惑。  

3 CoolShell 陳皓老師的部落格相信大家都看過,乾貨很多,酷殼應該算是國內最有影響力的個人部落格了。

4 廖雪峰 學習Git和Python,看它的部落格就夠了。

5 HollisChuang 阿里一位研發大佬的部落格,主要分享Java技術文章,內容還不錯。

6 樑桂釗 阿里另一位研發大佬,部落格裡的後端技術文章非常豐富。

7 chenssy 這位大佬分享的Java技術文章也很多,並且有很多基礎方面的文章,新手可以多看看。

8 Java Doop 一位魔都Java開發者的技術部落格,裡面有一些不錯的講解原始碼的文章,數量不是很多,但是質量都挺不錯的。

六:學習資源分享

學習Java後端兩年的時間裡,接觸過很多的資料,網站和課程,也走了不少彎路,所以這裡也總結一些比較好的資源推薦給大家。

0 CSDN和部落格園,主流的技術交流平臺,雖然廣告越打越多了,但是還是有很多不錯的博文的。

1 importnew 專注Java學習資源分享,適合Java初學者。

2 併發程式設計網,主要分享Java相關進階內容,適合Java提高。

3 推酷 一個不錯的技術分享社群。

4 segmentfault,有點像國內的Stack Overflow,適合交流程式碼問題的地方。

5 掘金,一個很有極客範的技術社群,強推,有很多技術大牛分享優質文章。

6 開發者頭條,一個整合優質技術部落格的社群,裡面基本上都是精選的高質量博文,適合技術學習提升。

7 v2ex,一個極客社群,除了交流技術以外還會有很多和程式設計師生活相關的話題分享。

8 知乎 這個就不必多說了。我在知乎上也有Java技術和校招的專欄,有興趣的同學可以看看:

https://www.zhihu.com/people/h2pl

9 簡書 簡書上有些技術文章也很不錯,有空大家也可以去看看。

10 Github

有一些GitHub的專案還是非常不錯的,其中也有倉庫會分享技術文章。

我的GitHub:https://github.com/h2pl

▼更多精彩內容