1. 程式人生 > >我是如何從通訊轉到Java軟體開發工程師的?

我是如何從通訊轉到Java軟體開發工程師的?

轉載出處    https://blog.csdn.net/eson_15/article/details/84137539

我的CSDN和公眾號的讀者裡面有絕大部分都是在校學生,有本科的,也有專科的,我在微信裡收到很多讀者的提問,大部分問題都跟如何學習程式設計有關,有換專業自學的、有迷茫不知道如何學習的、有報培訓班沒啥效果的等等,我能感受到他們的誠意和焦慮,所以我覺得我很有必要寫下這篇文章。

 

1. 本科的腳踏實地

高考之後填志願,那時候其實我也不懂,就覺得電子資訊工程好像還不錯,於是就填了。在大學四年,除了學校學了C語言之外,我沒有學習任何第二門程式語言,而且C語言也只是初級的水平。我在大學都幹了啥?

我在大一,就決定讀研,所以我一直在努力學習,高等數學、線性代數、概率論、大學物理、還有一些數電、模電、訊號與系統、通訊原理等等專業課。老實說,我非常認真,一部分是因為自己的學習習慣,另一部分也是因為自己要讀研,所以我每一步都走的很踏實。在我的同齡人裡,執行力和毅力能跟我比的,沒幾個,這點我不吹牛逼。

大學沒少拿獎學金,最起碼可以抵消我四年的學費,微控制器也玩了不少,51、52到後面的ARM9都玩過,當時還買了好幾塊板子,寫程式跑,那時候對嵌入式還蠻感興趣的。

但是畢業後,我有點後悔。為什麼呢?我沒怎麼學程式設計啊!除了會寫一些簡單的C程式碼,其他程式設計技能為零。

 

2. 研究生的覺悟

考入同濟之後,我的專業是電子與通訊工程。從研一開始,我很明確我自己想要什麼,研究生也是要上課的,基礎課、專業課等等。研究生也有課題,需要看各種論文,需要寫論文,其實還是蠻忙的。

我研究生對自己的唯一要求就是提升自己的程式設計技能。一開始我在看C++,語法看完了之後,看了一點基於C++的資料結構和演算法。我真正開始決定學Java是在研一下學期,當時在eBay跟一些大佬們聊了蠻多,倒不是學到了什麼牛逼的技術,而是開拓了自己的視野,開始有了自己的一些想法。

後來我在實驗室裡悶頭苦學了一年左右,從Java語法基礎開始,到集合框架原始碼(那時候還是基於JDK1.7的)、到網路程式設計(基礎)、到資料結構和演算法,學完了這些基礎知識後,開始學習Servlet/jsp(現在已經過時了)、再到Spring、Struts2、Hibernate(SSH框架,現在也過時了)、再到Spring、SpringMVC、Mybatis(SSM框架,這個現在還在用)、再到Java併發基礎、再到一些元件等等,再到後面我開始學習微服務相關的東東,學習Spring Boot,Spring Cloud等等。這期間,我做了4個專案實戰。我是如何自學的?

 

3. 我是如何自學Java的?

如果要說自學Java,我覺得我有資格說上幾句。我一開始看了一個星期左右的書,然後我把書扔在了一邊,看不進去啊!我自認為自己的腦袋瓜還算可以,但是我看不進去。這也是初學者的通病,有好多讀者也跟我說:武哥,我書也看了,可是感覺還是不會。我TM也是這麼過來的,哈哈。

所以我當時看了視訊,我看的是畢向東的Java視訊,現在已經有更加新的視訊了。找一個好視訊,從頭到尾認認真真跟著學一遍,做好筆記,那也是我開始寫部落格的開始。為什麼要記筆記?為什麼要寫部落格?我在前面一篇文章中也提到了:為什麼我在CSDN堅持寫了3年多的部落格?

人都有個尿性,如果你做一件事情,一直看不到明顯的效果,你就會慢慢懈怠,慢慢懷疑自己到底對不對,適不適合。程式設計也一樣,為什麼我不建議初學者上來就抱著別人跟你推薦的所謂的經典書籍去啃?什麼《Thinking in Java》、《Effective Java》等等,你啃的了嗎?你啃不了是對的,否則你就是神了。你啃不了,你就會放棄。我就很討厭那些貼吧論壇裡一上來就給一些初學者推薦很多經典書籍的人,顯得自己很博學很牛逼的樣子,其實沒啥卵用。

包括Java併發、SSH、SSM框架、元件等等,我全部看的視訊。當然,一些原始碼我是自己啃的。當你有了基礎,上路了,你再去看書,不僅僅就是看懂看不懂的問題了,那是真正的提升。

但是這些還不夠,你學了這些東西不能派上用場。必須要專案實戰,網上有很多免費的實戰視訊,但是我覺得不好,因為那時候我已經有基礎了,我知道如何去選擇我的學習資源了,我在這還是要強調一點,不要吝嗇給自己投資,我當時也買了好幾個專案實戰視訊跟著學習,提升很多實戰經驗。我在前面一篇文章:同樣是程式設計師,為什麼別人比你更優秀?中第一點就提到了這個。

當然了,我這邊也有很多優質的視訊資源,也許已經大家夠用了,不用像我當初那樣去花錢了,我那時候自學,就沒有遇到像我這樣懂得分享的人。所以缺視訊資源的讀者,可以找我要,我就是單純的分享,為了幫助更多的朋友。

但是有很多人堅持不下來。我在文章的開頭也說了,在同齡人裡,執行力和毅力能和我比的沒幾個,我也是從小白一步步過來的,花了整整一年左右的時間去自學。我做了好幾個專案,我敢說我在學校這一年學到的東西,不比別人在外面工作兩年的能力差。所以有很多人覺得工作年限長就牛逼,見識多,但是在我看來,這不一定。

我曾經好幾個月直接睡實驗室裡,每天除了看論文,完成導師的任務,其他時間全部用來學習,晚上搞到十一二點,否則一年時間不可能學那麼多東西,而且我大部分還寫成了部落格,要知道,寫部落格是很花時間的。如果你能像我這樣堅持,這樣嚴格要求自己,我不相信學不會一個東西。你就算今天學不會,你一個月之後呢?一個月不行,你一年總行了吧?就像馬雲爸爸說的:今天很殘酷,明天更殘酷,後天很美好。但是很多人都堅持不過明天,他永遠看不到美好。就像我考研一樣,沒有堅持付出,哪來的結果?

 

4. 遇到選擇,我如何取捨?

我當初研究生剛畢業,是去了華為,我的崗位就是Java軟體開發,結果進去之後做通訊了。我就納悶,我研究生讀的是通訊,我特地自己自學Java,結果又回到做通訊,這就很尷尬了。

所以後來我還是走了,有些讀者問我,你為何放棄華為的高薪?我說自己的興趣不在通訊,我有自己的打算,決定從華為離開的,肯定不是為了錢。最起碼,我現在過的比在華為好,我相信以後也會。

職場遇到選擇的時候,我個人覺得還是要結合自己的興趣,人生最重要的幾年可能就是剛畢業那幾年,那幾年也在絕大程度上決定我們以後從事的行業,所以在做選擇的時候,需要結合自己的興趣,綜合各方面因素權衡好。

 

5. 總結一下

自學一門技術,首先要會用,要先建立興趣,再想著去提升,去內化,否則,你堅持不下去。

自學一門技術,要有規劃,最起碼要知道你接下來要學哪些東西,不能走一步看一步。有了規劃就得有計劃,有了計劃,就得有執行。

學習的過程中,永遠不要吝嗇投資自己,該花錢就花錢,現在是知識付費時代,像CSDN GitChat達人課、極客時間等,裡面一些課程還是挺不錯的,還有些培訓機構的視訊也不錯。花錢提升自己,本來就沒毛病。

做任何事,離開了堅持二字,那都是扯淡。如果隨隨便便就能成功的,就能做好的事情,是個人都可以的話,那你也沒有什麼競爭力。有句話說的好:小聰明不如傻堅持。

不懂就要多問,不管我們是什麼樣的人,不管問誰,不管別人比自己牛逼或者弱,都得放低自己的姿態,虛心一點。如果哪天我們有點影響力了,那麼儘量以一個低姿態去多幫助那些初學者,幫助更多的人,因為我們也是那樣過來的,比自己牛逼的人,滿大街都是。人,不要膨脹,要懂得韜光養晦。

希望這篇文章能夠給那些初學者,或者有自學困惑的人帶來一點幫助,也希望我的讀者能從我這裡獲得一些正能量。如果你在學習的過程中,缺少優質的學習資料,可以關注我的微信公眾號,我特地準備了很多優質的視訊資源給大家。
--------------------- 
作者:eson_15 
來源:CSDN 
原文:https://blog.csdn.net/eson_15/article/details/84137539 
版權宣告:本文為博主原創文章,轉載請附上博文連結!