入門Java一年進阿里,分享我學Java的那些思考!

java人生發表於2018-10-30

每天給你誠意滿滿的乾貨

也許今天的你在公司做著 CRUD 的工作,也許你還在為面試造火箭、工作擰螺絲悻悻不已,也許掙扎了許久卻找不到進步的方向。

不是計算機相關專業的我,從開始學習 Java 到進入阿里,用了一年多點的時間,很多人覺得是進步比較快的,問我怎麼學習 Java 才能快速進步,微信一一回復難以說的太明白,今天整理一下我的思考分享給大家。

入門Java一年進阿里,分享我學Java的那些思考!


關注我:私信回覆“架構資料”獲取往期Java高階架構資料、原始碼、筆記、視訊Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分散式,高併發等架構技術

資料獲取方式:

獲取學習Java高架構、分散式架構、高可擴充套件、高效能、高併發、效能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分散式專案實戰學習架構師視訊免費獲取 加架構技術群:854818273 就可以馬上獲得這套內部教材!! 

打好計算機基礎

計算機基礎是所有程式語言的根基,不理解計算機運作原理就無法真正理解程式設計的意義。就像我們大一要從計算機基本原理開始學習一樣,如果你想真正吃透一門語言,就需要理解程式、執行緒、堆疊、記憶體定址、函式呼叫……

這些內容與任何一門語言都沒有關係,卻是所有計算機語言的根基。打好計算機基礎以後,對你來說不同的語言就真的只是語法和特性的差異,在語言之間轉換就變得很容易。當我從 C 語言轉向 Java 的時候,看了一天 Java 基礎語法就開始寫業務程式碼了。

自學和培訓的小夥伴往往在計算機基礎上比較薄弱,一旦學習到比較複雜的概念就會感覺比較吃力,這個時候你需要好好補一下計算機基礎知識。別說你沒時間,今天不努力,明天就後悔。


熟練掌握 Java

《Java 程式設計思想》沒有完整看完大體讀懂兩遍就不要說掌握了 Java。會用 Java 寫程式碼只能說你入門了可以幹活了,但也僅僅是初級階段。

我遇到過很多工作了三五年的人,做過很多專案,Java 水平卻和工作了一年的應屆生沒多大區別。大部分人迷茫和無法進步的根本原因就在於你僅僅掌握了java基礎,看不到 Java 的無限可能,也不知道做什麼可以繼續進步。

熟練掌握 Java 需要你學習到 Java 特性的每個角落,不需要記住每個類和方法,但需要深刻理解每個特性的意義。工作中 SSM 框架為我們遮蔽了很多技術細節,Java 的特性可能並不經常用到。需要你主動學習,至少要把《Java 程式設計思想》看兩遍以上,其中反射、泛型、容器、註解、併發需要重點掌握。


熟練掌握框架

很多人蔘加培訓是從 JavaEE 開始的,問我如何學好 JavaEE?我想說的是 JavaEE 其實已經過時了,現在要學 SSM。

掌握框架的第一步是學會使用。學習 SSM 的基本用法能夠幫助你完成絕大多數開發任務,掌握了高階用法能夠提出更好的解決方案。學習框架沒有捷徑,在工作中一遍一遍地練習是唯一的方式。

掌握框架的第二步是理解原理。很多人面試阿里失敗就敗在原理上,只知其一,不是其二,稍微問的深入一點就答不上來了。理解原理就是理解 SSM 框架的靈魂,這也是一個程式設計師從體力勞動進階到腦力勞動的門檻。

不理解原理只能做寫程式碼的工具,理解原理才能成為真正的開發工程師。多思考、多總結、多請教,保持好奇心,多問一句是什麼、為什麼,才能探索到框架的奧祕。

掌握框架的第三步是設計框架。試著去寫一個簡化版的 spring,實現 IOC 功能,你就會發現真 TM 難。泛型、容器、反射、註解、設計模式、重構等都會用到,通過設計框架,能夠深刻地理解這些 Java 特性和框架的設計原理。如果你還沒有寫過框架,嘗試著寫一個吧,邊做邊思考,好好體會下框架的祕密。

掌握應用技術

隨著技術的發展,分散式、快取等使用越來越廣泛。Java 程式設計師需要掌握的應用技術也越來越多,比如 spring boot、spring cloud、dubbo、Redis、RabbitMQ、ZooKeeper ……不使用這些技術也能寫出很好的單機程式,但掌握這些技術才能做好大型架構。學習這些技術也很簡單,就是多加練習。

眾所周知,阿里內部基本都是使用自己的技術,比如 hsf、diamond、metaq ……業界流行的這些技術用的很少。在阿里呆久了會感覺與社會脫節,於是我就每天抽出時間去看這些技術的文件,做自己的專案使用這些技術,通過日復一日的練習來掌握這些不常用技術。

理解程式設計的本質

前面說了那麼多,其實都是程式設計的術。相對於武功來說,都是外在的招式。掌握了招式可以禦敵,但想要再上一層則需要掌握心法。對於程式設計師來說,程式設計的心法就是道。而我也是在阿里工作了很久才體會到道的意義。

想必很多人都知道“程式等於演算法加資料結構”的說法。演算法和資料結構聽起來都很高大上,也是大部分做業務的同學難以接觸到的東西。很多人告訴我在公司自己是個 CRUD boy 不知道如何提高自己的能力,也有人抱怨“面試造火箭,工作擰螺絲”不知道該怎麼辦。

實際上在日常工作中,程式 = 控制 + 邏輯 + 資料,也就是演算法可以拆分為控制加邏輯。優秀的框架都實現了控制、邏輯、資料的分離,實現了很好的解耦和靈活性,這也是所有框架的演進方向。

資料容易理解,就是程式的配置、靜態資料和執行時資料;

控制是程式的主流程,一般在微核心或框架底層實現,控制邏輯一般與具體業務邏輯關係不大,只是定義了流程;

邏輯就是具體的業務邏輯,在特定約束下被控制流程呼叫生產出符合預期的資料。

試著從控制、邏輯、資料的維度去理解框架、設計框架、優化程式碼,你很快就能成為優秀的程式設計師。如果你覺得在公司做業務很難提高技術,不妨嘗試一下梳理出控制、邏輯、資料,然後進行重構。

最近問我如何學習 Java 的朋友有點多,這篇文章說的都是心裡話。平時也為大家分享了很多學習思路,今天還是希望我的分享能為大家帶來幫助,話不多說直接上乾貨,如果你覺得對你有幫助就支援一下我,歡迎轉發或留言,私信【架構】領取資料!

為大家整理好的 2018最新Java高階架構 學習資料,在下方可以看到

架構師視訊資料


入門Java一年進阿里,分享我學Java的那些思考!


入門Java一年進阿里,分享我學Java的那些思考!


入門Java一年進阿里,分享我學Java的那些思考!


[獲取方式]:資料獲取方式:

獲取學習Java高架構、分散式架構、高可擴充套件、高效能、高併發、效能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分散式專案實戰學習架構師視訊免費獲取 加架構技術群:854818273 就可以馬上獲得這套內部教材!!


相關文章