初級Java程序員如何成長為高級?

用戶65969511


我可以說算是一個Java入門新人,因為之前沒有寫過Java,校招籤的工作是Java後端。最近入職開始學習Java開發。雖然我沒寫過Java,但是我對Java的學習路程規劃是非常清晰的,其實學任何一門語言或者其他知識都是想通的。我就簡單聊一下自己對這個問題的一些簡單看法吧

1、需要學習Java這門語言本身的基礎知識,比如常見的數據結構map,set,list等;基本數據類型int等。還有一些Java本身的語言特性啊,如反射機制啊等。第一步簡單的說,就是學會用。第二部的話就是需要深入學習語言本身,這個時候就需要結合源碼本身去學習,對內部結構非常瞭解,這樣你才可以用的非常合適。然後就是學習一些併發編程技術,這個非常重要,作為後端開發必須懂

2、學習Java的一些生態體系,利例如框架spring啊,開始肯定也是需要會用然後慢慢深入學習spring,結合源碼本身學習。

3、學習一些mq,如kafka;rpc框架,例如thrift等。我最近也在學習這些東西。還有一些中間件啊,如zebra,這個是美團內部的中間件。

4、前面的內容如果你都掌握的,然後就可以學習一些架構的知識,當然這個要看你自己對職業規劃了。如果想繼續做技術可以學習啊。


張顧遠


我覺得從幾個角度來說吧,而且這個原則也基本上適合於所有領域程序員的成長路徑,當然這裡我不會設計任何技術書籍、或者技術棧,畢竟這些東西已經被說爛了。

提示:文章中涉及到的阿里Java手冊、Java官方API文檔如果大家找不到可以私信我,我可以上傳雲盤分享分享給大家!

文章開頭先給大家推薦一本手冊

這本手冊是阿里巴巴團隊出的《Java代碼規範》,這是阿里巴巴這麼多年的億級用戶經驗積累出來的經驗,該踩的坑都幫大家踩了,留下的基本上都是精華。可以說阿里用這麼多年的苦和累給大家帶來了這麼好的手冊,你只要按著這個走,一定會養成好的代碼習慣的,即使你不能去阿里,也是受益匪淺的。這本書就是目前最好的Java代碼規範,至少是我見過的最好的Java代碼規範,就好像《Google C++ Style》值得你去閱讀。

  • 為什麼要推薦代碼規範?

很多人可能不理解為什麼要推薦代碼規範,不是算法、不是設計模式,如果你以後進入企業,尤其是大公司、做大項目,你就知道我推薦的價值了。

多研究源碼

這部分我把這個稱之為基礎,對於任何一個程序員來說,技術基礎永遠是最重要的,畢竟你每天真正需要最多的知識積累。

多研究源碼我認為主要有兩方面;

一方面就是Java官方文檔,任何技術官方的API文檔都是最精華、最有價值的資料,這個文檔的名字大家可以直接去Java官網下載,當然如果你網絡狀況不太好,瀏覽甲骨文官網有壓力,可以私信我,我上傳雲盤分享出來。

另一方面就是多看大牛的源代碼,比如多研究研究為什麼你寫了幾重循環、上百行代碼,人家幾行代碼、一個算法就解決了,學習你身邊大牛、包括網上大牛們的源代碼,看看人家怎麼寫的,怎麼處理的。

算法、設計模式等技術進階

任何時候,想要在技術做精,算法、設計模式等等一定要多瞭解,怎麼做內存優化、怎麼提高性能,這些都是你要了解的,技術越往深走當然就越值錢。

多瞭解業務

你幾乎不可能一輩子都在技術一線做開發!即使你是如此的喜歡寫代碼!!!

請記住這句話,這是非常現實的,尤其是在國內,競爭環境日甚一日,每年有無數的計算機人才湧向這個行業,包括科班的、非科班的,可以說中國的程序員是全世界面對競爭壓力最大的程序員族群。

多熟悉業務有兩個標準,一個是開發業務,一個就是具體的我們通常說的業務,我覺得任何一個技術從業者要鑽研技術,也要多瞭解業務上的事情,只有這樣你才能走得更遠,千萬不要停滯不前,或者把自己禁錮在一個框框內。

這就是我對程序員成長的建議,希望對大家有一定的價值。



EmacserVimer


我是一個10年+的程序員,從程序員進階到架構師用了7年多時間,關於1-3年工作經驗的初級程序員如何進階,分享如下的經驗與建議,每個人都有自己成長的方式,僅大家參考。

1、 研究源代碼

有時間就多研究Tomcat/Resin/Jetty的源代碼;

2、 學習相關知識

譬如,高性能/高併發,並在項目中應用實踐,提升技術廣度:

  • Socket編程

  • 多線程的知識

  • I/O庫和異步I/O庫

  • TCP/IP 協議

3、 程序員進階必看書籍

我早前羅列的java程序員進階書單明細:https://www.toutiao.com/i6461884735961432589/

涵蓋了不同階段程序員進階必看書單:

  • 工作1-3年java程序員

  • 工作3-5年java程序員

  • 工作5年以上計劃往架構師方向發展的java程序員

4、 多向身邊的大牛學習

通過學習別人多年沉澱的知識與經驗,能夠讓自己少走彎路,更快達成目標。

5、多爭取項目實踐機會

知識需要經過項目演練,最終才能沉澱。


最後,希望程序員們都能找到一條適合自己的學習路徑,持之以恆、早日進階!

優知學院【專注分享BAT面試+架構進創+CTO進階等知識乾貨】。領取BAT面試真題239道,私信【bat】給優知學院,立即領取。領取80期架構師學習專題資料,私信【架構】給優知學院,立即領取。如果您有不同見解,歡迎留言探討,如果覺得內容有用,請點贊支持。

優知學院


回答過幾個類似的問題,總是在說需要學什麼新框架、新技能,今天我想講講每一個級別的程序員應該有的能力,然後我們再有的放矢,去尋找成長為高級程序員的方式。


初級程序員

  • 在我眼裡,可以按時的完成項目經理指派的開發任務,就是一個合格的初級程序員。

  • 這裡的開發任務,是指有明確的需求和業務流程,大部分時候功能可能比較簡單。

  • 能夠完成和測試人員的溝通,支持測試過程中遇到的各項問題。

  • 把項目中每項技術用到的地方,都可以熟練的使用。


中級程序員

  • 這個階段需要負責的開發任務,會更復雜一些,有可能要涉及到多個模塊的修改,這就需要對整個項目有著整體的瞭解。

  • 在開發過程中,充分理解需求,並且可以站在整個業務流程的角度上看待問題。比如這次需求的一些修改,會不會對其他功能造成影響,都是需要了解的。


  • 因為對項目的深入瞭解,所以需要參加到前期的需求討論中,可以提出自己對需求的意見。

  • 技術方面,應該對項目技術框架有一定的瞭解,比如項目用到了Spring的某項功能,那麼中級程序員應該對Spring的其他功能都有一定的瞭解。

高級程序員

  • 到了高級程序員,不僅僅需要負責一些複雜、核心功能的開發,也需要帶領和協助中級初級的夥伴完成開發工作。

  • 不僅僅是要了解本系統,應該對系統的上下游系統都有一定的瞭解。

  • 會做一些設計方面的工作,面對一個需求,應該可以很快的拆分出功能點,每個功能點在哪個模塊開發,都應該心裡有數。

  • 高級程序員會和更多的項目成員溝通,包括測試、需求、項目經理、組員。有可能需要協助項目經理管理幾個中級初級的程序員。

  • 技術方面,不侷限於項目所使用的技術和框架,要對同類的和比較前沿的框架有一定的瞭解。比如項目中ORM框架用到了Mybatis,那最好是可以瞭解一下其他的ORM框架,瞭解不同框架的優缺點。


  • 如果項目需要引入新的技術,那麼應該很快的搞定。


現在再回來看這個問題:初級Java程序員如何成長為高級程序員?其實可以從幾個方面出發:

  • 技術能力:技術的深度和廣度都要提高。

  • 業務能力:全流程的瞭解業務,要參加需求討論和程序設計的工作。

  • 溝通能力:從需求到開發到測試,全流程溝通。

  • 管理能力:協助項目經理管理中級初級開發人員。


希望我的回答,能夠幫助到你!

我會持續分享Java程序開發、架構設計、職業發展等方面的知識和見解,希望能得到你的關注今日頭條【會點代碼的大叔】,轉載請註明出處。

會點代碼的大叔


這就是一個用時間花精力慢慢成長的過程,當你通過不斷地做項目增長了經驗豐富了技能,自然就會成為高級程序員。這期間離不開你的努力,也沒有捷徑可走。


芝麻加哥


掌握java基礎知識的同時,多瞭解目前主流框架的源碼,jvm運行原理,多做項目,瞭解項目架構


懼愁人大師哥


主動承擔更多的責任,寫更多的代碼,踩更多的坑。反正代碼就是這樣,做的多bug多,做的少bug少,如果為了bug少而少寫代碼,成長之路必定漫長。


歪脖貳點零


多學點實例項目。必須要學會自學。多去網上學點東西


itkeji綜合


多想邏輯,多寫代碼。


分享到:


相關文章: