百度Java架構師接私活月入數萬,教你如何系統的學習Java

多仔it之家 發佈 2020-06-04T11:24:00+00:00

一些程式設計師在按部就班的同時,也會在外接一些私活增加收入,無獨有偶,有一名程式設計師無意間發現了商機,開始了全職接私活,在10個月時間接了30多個單子,純收入40萬,直言比上班強多了。

隨著網際網路的發展,對於程式設計師的需求也日益增多。一些程式設計師在按部就班的同時,也會在外接一些私活增加收入,無獨有偶,有一名程式設計師無意間發現了商機,開始了全職接私活,在10個月時間接了30多個單子,純收入40萬,直言比上班強多了。


原來我曾經寫過一篇《如何快速學習Java》的文章。後來也有朋友諮詢我「如何系統的學習Java」的問題。

這些朋友中,好多都是已經入了行,但不滿足於工作枯燥的「增刪改查」,或者「模板化」的SSM框架。而是有心成為Java技術專家,或者架構師。

對於朋友的提問,我本很樂意回答。然而這個答案絕非三言兩語能夠說清。所以,我就索性寫一篇文章來回答。

文章寫得有點匆忙,不完善,遺漏之處,我會逐漸完善。

學習計劃

首先,我把Java系統學習分成兩個階段。

第一階段:建立完整的的技術棧,成為一個有富於生產力的高級軟體工程師。

在這個階段要掌握一系列的基礎知識和工具。這些東西前後關聯,所以學習過程成線性順序,要從上往下進行。

下面是第一階段的學習路線:


第二階段:這個階段的目標是成為Java技術專家、架構師,因此必須在上一階段的技術上,往高處(例如設計模式、大數據)走,往深處(Spring源碼、Java虛擬機)走。

這個階段的知識,並不存在前後的關聯。在完成第一階段的學習之後,完全看工作的需要,以及個人的興趣,安排學習的優先級。

下面是第二階段的學習目標:



從去年到現在,我根據市場技術棧的需求,錄製了一套最新的java精講視頻教程,如果你現在也在學習java,在入門學習java的過程當中缺乏系統的學習教程,你可以加入我的java學習交流qun:六一五,七四一,六三六,領取,qun文件裡面還要我這幾年整理的java學習手冊,面試題,開發工具,PDF文檔教程,大家可以自行去下載。

接下來,我就點一下這個學習計劃中的「關鍵點」。

Servlet

要成為一個優秀的Java web專家。無論是你用Spring MVC實現的普通REST接口,還是微服務。往深的走,都要深刻理解Servlet以及容器(例如Tomcat).

因此,在深度學習微服務,以及Spring MVC之前,一定要把Servlet學精,因為他是整個Java web的基石。所以,在成為軟體專家的路上,Servlet是最基本的墊腳石,務必重視。

SQL

在我作為程式設計師入行的時候,沒少在SQL語言下功夫,尤其是在SQL語言優化方面,包括在存儲過程中各種折騰。

但現在,SQL優化在開發過程中的優先級顯著降低,有幾個原因:

各種OR map框架(例如Hibernate、Mybatis)的出現,使SQL的工作量大大降低。

各種OR map框架本身也會對編寫的、自動生成的SQL進行優化。

當前的伺服器架構,如果要提高性能,首先應該考慮架構的橫向擴展性,而不是在SQL上進行極端優化。

但現在也不是說可以完全「任性」的編寫SQL。只是說對於程式設計師,只要掌握最常見的SQL優化原則,做到工整就夠了。

緩存、隊列

緩存,隊列。業界都有了較成熟的方案,例如Redis,ActiveMQ等。在學習的過程中,第一步是掌握核心概念,以及他們要解決的問題。然後就要親自安裝,使用這些軟體,建立感性的認識。

其次就是在掌握核心概念的基礎上,掌握這些開源軟體的Java API,然後試著在此基礎上,編寫典型的Demo,從而在Java語言層面上徹底掌握。

至於有些朋友提到的把概念再「實現一遍」。不知道朋友指的是使用API,還是把緩存和隊列軟體,用Java語言實現一下。如果是後者,不是說不可以,關鍵是太費時間。同時,就業界實踐來說,不是特別必要。如果你真有興趣,把優先級放低一點,作為一個更長期的目標。

Linux

這個學習計劃是一個長期的,深入的學習計劃。最終是要成長為技術專家、或架構師。那麼有必要適時的掌握下Linux。因為在實踐中,伺服器往往委託於Linux伺服器。而且將來,還有不少開源軟體只能在linux上運行。

因此,在開始學習緩存和隊列前,需要先掌握了Linux的基本用法。然後在學習的過程中,就把這些開源軟體在Linux上運行。

這樣,在你學習Java的過程中,順便也把Linux學習了,這遠比你將來單獨學習Linux要有趣,印象要深刻。

微服務

微服務並不是一門具體的技術,而是一個設計理念,很多語言和框架都可以實現,例如Java中的Spring MVC等。

因此,如果已經掌握了Spring MVC、Spring boot。那麼對微服務的掌握是水到渠成的事情。你要做的就是注意力放在微服務的應用場景上。

設計模式

設計模式是較為靠上的東西。如果Java基礎不是太好的話,很容易陷入空泛,眼高手低。

如果你的Java基礎太薄弱,例如沒有掌握「抽象類」。那麼我建議你先把設計模式學習停一下,先把Java的基礎知識補充下,至少要學完《Java核心技術》第六章,也就是掌握完整的現象對象的概念。然後再回來學習設計模式。

在學習設計模式的時候,一定要動手。最起碼要把書中列舉的設計模式,用Java語言實現一下。如果你閱讀時是經典的GOF《設計模式》,其中的代碼(用C++描述),就不容易用Java實現。建議你可以參照《Head First設計模式》,其中的demo都是短小精悍,很適合用Java來實現。

這樣,一則有利於理解設計模式。二則在學習設計模式的過程中,也進一步增強對Java基礎知識的掌握。這種學習過程是一個相互促進的過程。

學習筆記很重要

特別重要的一點,學習的過程中,儘量的寫學習筆記,其中包括難點和重點。

因為,系統深入的學習Java必然是一個長期的,綜合的過程。到後期,一定會出現學著後面,忘了前面。如果你沒有學習筆記,又沒有實踐中積累的代碼,那麼就會出現邊學邊忘的情況。

而有了學習筆記,可以給自己的學習留下了「蹤跡」,以後複習的時候用來參考,很快就能把早前學習的記憶「喚醒」。

而且,這些學習筆記在後來的工作中,還能成為自己的參考手冊,隨用隨查。

還有,那就是學習筆記還是一個特別好的面試寶典。因為既然你記下了筆記,這些東西往往經過你深度思考,深度消化的東西,也是你區別於其他工程師的卓越之處。

最後分享一些學習資料:

還有一些架構視頻資料,頭條篇幅有限,就不放上來了,有需要的可以關注我後私信我【資料】免費獲取哦!

關注+轉發+收藏後在私信哦!

架構




畢設項目


java300集(2020版)


獲取方式:轉發+關注並私信小編:「資料」即可免費領取哦!

關鍵字: