1. 程式人生 > >java開發,入職半年。對未來迷茫,如何發展?

java開發,入職半年。對未來迷茫,如何發展?

工作三年多,就個人方面而言,很多的工作都是面試造核彈,工作擰螺絲。但是不要因為自己是個擰螺絲的就不學哪些難啃的技術。當專案出問題的時候,就是考驗技術沉澱的時候。我也迷茫過好長一段時間,學了忘,學了沒用,到底應該怎麼成長才能成為一個別人眼中的大神,大牛。

個人建議,在JAVA方面,先學好JAVA SE。不管如何,基礎才是上層建築的一切。推薦去看jdk原始碼,推薦1.6或者1.7版本。因為1.8版本的原始碼中會有很多lambda表示式。如果這塊不瞭解,看起來和看天書沒啥區別。先看我們日常開發中最常用的類,util包下面的,list,map,剛開始看的時候肯定會非常的難受,舉個例子,arraylist。很多基礎操作已經寫在父類中了。點來點去的會看暈。那麼就先看list介面。看看它都定義了哪些操作,然後看abstractlist。看看其中實現了哪部分操作,哪些方法留給子類去實現了。剛開始看的時候力求每塊程式碼都看懂,多問問自己為什麼。作者為什麼要這麼寫,用意在哪裡,優點在哪裡。看原始碼是一件很痛苦的事情,但是堅持下來會發現自己每天都在學習,每天都在成長,我自己hashmap原始碼看了足足一個月才大致理解其中的思想。我看jdk原始碼已經堅持了兩年了,雖然做不到每天都看。但是有空就會點進去看看,並且把自己理解的程式碼和自己的理解都整理成筆記。我記得有人說過,閱讀優秀書籍就如同在和優秀的人面對面交流。在閱讀原始碼同樣適用,在看jdk原始碼就是和一群頂級的JAVA開發者交流。我們去看,去理解,去體會,潛移默化,我們會模仿他們的寫法,理解他們的思想。一個小建議,看原始碼的時候最好準備一份類圖。比如util包,就去搜一下collect的類圖。從頂向下看也行,從低向上看也沒什麼問題,不過一開始看的時候,最好就鑽研其中的一個類,因為很多時候我們會發出疑問,為何要這樣設計,感覺這段程式碼沒啥用啊之類的。雖然從頂向下看這些問題會不在存在,但是剛工作半年確實理解不了。容易讓人放棄。

看原始碼最重要的不是學習技巧,而是思想,換位思考,假如我們是jdk的開發者,我會怎麼寫,如何設計一個類,哪些方法是共有的,那些方法需要提取成共有方法,哪些方法可以使用模板模式,抽象兩個字說起來簡單,但是想要做好抽象好難啊。當你把你自己經常用的類看完之後,那麼就可以按照包去讀原始碼,四大包,lang,io,net,util包。

原始碼閱讀一定程度之後,你就會發現繼續閱讀對於自己的提升好像不是很大了,這個時候,閱讀原始碼將會成為你的一個習慣。你看到優秀的開源框架就會忍不住去閱讀,不要剋制自己。勇敢的去讀吧。書讀百遍,其義自見。

後面說一點學習技術過程中自己遇到的問題,希望能幫助到你。剛開始的時候,我會著急,會恐慌,這麼多類我哪裡學習的完啊,外面技術日益月新,我還在研究這個。怎麼辦,說不要著急有點站著說話不腰疼了,想學就去學。但是一定要有自己堅持的事情,哪怕因為某一段時間忙,沒空。總會有空,有空就去研究,就去寫筆記。水滴穿石這個道理永遠不過時。技術這麼多,我們確實學不過來。而且我們也不需要要求自己每一個技術都很精通。但是在用的時候我們要做到快速上手,快速精通。這個就靠內功了。我對於內功的理解就是基礎+思想,基礎就是我們對於計算機體系的理解和世界觀,思想就是方法論或者說是經驗。

在閱讀到併發包的時候,結合JAVA併發程式設計實戰這本書去閱讀。你會看到不一樣的併發世界,雖然很多人詬病翻譯不好。但是我通過閱讀原始碼發現翻譯不好的地方不也是人生一大趣事。

後面就可以去學習jvm方面的一些知識,這個不衝突。你也可以繼續閱jvm原始碼。jvm個人推薦深入理解jvm,那本藍色的書,作者姓周來著。在地鐵上突然想不起來叫啥了。還有一本深入g1 gc這個是主要講解g1垃圾回收器的。jvm方面我研究的也不是很深就不展開說了。對了,有一本阿里出版的,揭祕JAVA虛擬機器,紅色的封面,有一頭熊咆哮的這本書需要一些彙編基礎,但是要求不高,看著很過癮,很帶勁。

計算機基礎方面,我推薦

1.編碼:隱匿在計算機背後的語言,個人十分推崇這本書,作者用燈泡,導線,開關實現計算底層的東西,不要被嚇住了,作者寫的淺顯易懂。設想我們自己乳溝對於計算機的理解達到作者這個地步,那麼真的可以做到手中無劍的地步了。

2.計算機是如何跑起來的,給自己的奶奶講解什麼是計算機的必備書籍,和編碼那本書有著異曲同工之妙。

3.同上,如何系列的,都是一個日本作者寫的,好幾本,程式是如何跑起來的,網路是如何連結的。都是很不錯的書籍

4.好吧,我也要說資料結構。不是說這個不重要。而是這個太重要了,我不知道該怎麼去描述,自己能力有限,對於這塊不敢過多言語。關於資料結構的書很多,我個人閱讀是大學的那本JAVA實現的資料結構

5.演算法 每次提到這個就想起來我買的那本演算法導論,都是淚。推薦你去看演算法 第四版,封面是紅色,入門門檻比較低。

就先說這麼多吧,馬上要到站了。對了,有機會一定要多面試,面試是一種非常鍛鍊自己的方式,不要錯過任何一場面試,你在面試的過程中,和對方講自己所學,通過對方提問彌補自己的不足。我就非常喜歡面試。畢業三年來已經面了兩百多家公司了。很有收穫

技術這條路有的時候很孤獨,或許就你一個人在路上。但是一定要堅信,付出總會有收穫



歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481
群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!