Java成長之路-2020年職業規劃

爲什麼要做職業規劃

我個人再學習之前會做一個學習計劃,但只是短期的。學習計劃的好處是再某段特定是的時間,有明確的學習指導,並且學習計劃再一定程度上起到了監督作用。

剛剛開始就業,對於我而言最寶貴的資源就是時間了,而如何充分的利用我的時間資源是我最需要考慮的問題。因爲在工作期間,既要完成工作內容,也要堅持完成自己的學習計劃。如果沒有明確的規劃,我很容易被工作帶亂的節奏,導致自己涉獵廣泛但並不精通,並且長期如此,可能就隨波逐流,導致學習熱情一減再減。

我本人本科並不算很好,還因爲考研錯過了最佳就業時間,也錯過一年多的學習時間。在多種條件不利於我的情況下,我只能不斷的學習,並且對某個方向持之以恆的學習,充分利用時間學習纔會使自己達到預期的樣子。但是最近我發現一個問題,學習的東西會很多,也會很雜,因爲互聯網的東西確實很多,那我該學什麼,爲什麼去學這些知識是一個重要的問題。多年學習經驗告訴我,人的精力是有限的,不可能面面俱到,我該追求的是"一專多能",這就需要我對自己的職業,對自己的技術棧要有一個明確的規劃,這樣纔不會盲目的去學習,白白消耗自己學習熱情。

做職業規劃的預備知識

  1. 開發的成長過程中的職位
  • 初級工程師:做一些增刪改查的小模塊;
  • 中級工程師:做邏輯較複雜的模塊;
  • 高級共工程:做核心模塊;
  • 項目經理:系統的整體架構;
  • 部門經理:多項目的管理;
  • 總裁:多部門以及企業的發展規劃

另一種分類

  • 實習生
  • 底層代碼工人
  • 底層程序員
  • 程序員
  • 初級工程師
  • 中級工程師
  • 高級工程師
  • 項目經理
  • 軟件設計師
  • 軟件架構師
  • (有可能的話)創業做老闆

自己評測一下自己現在處於什麼水平我現在處於初級工程師水平

  1. Java工程師成長之路的一些寶貴建議
  • 從事開發一定要編寫代碼,而且是將自己最近學習的技術引用到代碼中。個人覺得前期模仿優秀的開源項目,模仿幾個之後可以參與別人的開源項目或者自己編寫開源項目,融合自己所學的所有知識。

  • 現在不要侷限於一個技術,要做到一專多能。但要先專,再多能(我現在階段要專精一個技術,以後不會)。

  • 理論實踐雙休,不要落下任何一方。不要覺得開發就是敲代碼,我們注重理論知識的學習,用理論來指導實踐。理論相當於內功,代碼技術相當於外功,內外兼修纔有大成就。

  • 初期我們要有意識的去積累設計架構測試交流管理情商等多方面的經驗

  • 在年輕時熟練掌握程序語言,而後是獨立承擔和組織一個完整的項目,在後是能夠帶領一個小組完成項目。在這過程中,你要與內部交流、溝通,要與用戶交流、溝通,要做出項目計劃並督導完成。

  • 學習東西要知其然並知其所以然。(要會應用並且指導其設計原理,並且自己可以寫出一個縮減版的例子)如果只是達到應用層面,是永遠無法培養獨立解決問題的思考方式的。

  • 要在不斷的學習中建立自己代碼庫,解決問題的方法。要好好總結自己解決問題的思考方式和思考路徑,而不光只是最終的代碼結果。

  • 提高軟件知識和技術只是問題的表面,本質是要提高自己認識問題分析問題解決問題的思想高度。

  • 不要侷限於一門語言,在設計和解決問題時,可以跨語言借鑑別的的語言解決方案。對於這條我的理解是,前期要有這樣的意識,不要侷限於一門語言,但要真正應用到,需要我先專一門語言之後,再去廣泛涉獵其他語言的優秀解決方案,千萬記住前期不要廣泛涉獵,會很浪費時間(預預計兩年)。

  • 要想培養自己解決問題能力,和培養良好的編碼習慣,閱讀源碼是很好的一張方式。閱讀源碼要在會應用之後,在閱讀源碼之前最好了解常用設計模式,這樣方便自己理解源碼設計者的設計思路。

  • 以工程師的眼光觀察、分析事物和世界。我覺得要有一定的基礎纔能有獨立分析和解決問題的基本素質。

  • 要鍛鍊自己的文檔編寫能力,由於時軟件工程專業,在學校也編寫過幾個完整的系統開發文檔

  1. 關於如何學習的寶貴建議
  • 要養成自我學習能力,工作期間大家都很忙,基本沒有時間回答你的問題。

  • 學習建議通過視頻入門,在通過閱讀書籍更加全面系統的學習該知識。

  • 個人覺得書籍資源比視頻資源更好尋找,因爲大多視頻白嫖嘛,我們還要篩選資源,書籍資源每個知識領域都有經典書籍

  • 看書建議,一本書最少看三遍。其實讀多少遍根據自己而定,最重要的是將書中知識變成自己的智慧,爲自己所用。

  • 永遠不要太相信自己的記憶力,前一兩遍屬於涉獵,但是後面的閱讀一定寫自己的讀書筆記。這裏的筆記不是知識點總結,而是自己理解一個知識點的思路。(知識點總結可以直接看書籍目錄)

  • 前面提到書籍目錄,這是學習中很重要的一個資源,目錄也幫助我們節省了做知識點總結的時間,讓我們更加關注於知識,而不是忙於做筆記。要回顧知識點時,直接翻開目錄回顧就行,遺忘知識點,模糊知識點直接翻到相應頁回顧。

  • 看書一定要看經典,高質量的書,所以在選擇書籍時不要草率。以爲看書是全面,系統,深入瞭解知識,並且耗時久,一本好書讓你的這個過程更加的有價值。

  1. 關於時間規劃方面的寶貴建議
  • 三八原則:一天24小時,工作8小時,睡覺8小時,業餘時間8小時。業餘的8小時決定你的人生成敗!(有的人可能因爲加班沒有八小時的業餘時間)。

  • 在一般情況下,每三個月對自己所做的工作進行一次總結,每半年對職業規劃重新評估並進行相應的調整。

Java技術棧

Java技術棧

職業規劃

  • 如上Java開發的不同職業劃分,我的技術的最終目標是成爲優秀的架構師,預計5年後踏架構師行業,8年成爲優秀的架構師。

  • 2020年之內達到中級Java工程師水平(距離現在一年時間)。

  • 2021從事中級工程是開發工作,獨立完成複雜模塊實現(距離現在兩年時間)。

  • 我覺得我再往後規劃都是很虛的,我會一年做一次規劃。但是總體路線就是從 初級工程師 -->中級工程師 -->高級工程師—>項目經理—>架構師---->優秀架構師

最近一年學習計劃

  • Java語言基礎:集合,異常,i/o,併發,面向對象
  • 設計模式
  • 關係型數據庫:MySql/Oracal
  • 非關係型數據庫:Redis(緩存),MongoDB
  • 框架:Spring,SpringBoot,SpringCloud , Mybatis/Mybatis-plus
  • JVM知識,建議JVM和併發編程聯合起來學習
  • 搜索引擎:Elasticsearch
  • 容器:Docker
  • 數據結構和算法,前期開發中基本用不到,但是長遠發展時很重要的。(leedCode刷題)
  • JDK集合源碼分析,SpringIOC源碼
  • String StringBuffer List HashMap TreeMap LinkHashMap JDK源碼分析
    以上是我在最近一年內要掌握的技能,學習程度要達到知其然並知其所以然的程度

學習方式:

  • 通過視頻和開源項目快速達到應用層面,並利用博客記錄使用學習記錄。項目完成通過看書和文檔進行深入學習,並用博客記錄學習筆記。在通過做項目經學到深層次知識應用到實際開發中,達到知其然知其所以然,在將思想應用的實際開發中。
  • 所閱讀書籍必須三遍以上,必須要將學到的急時用項目開發來檢驗。在某個技術達到一定層次,一定要在相關社區瞭解該技術最新情況,活躍於社區中,於他人討論技術。

學習順序

  • Java基礎回顧,Java集合源代碼

  • 設計模式學習,瞭解常用設計模式

  • 帶着設計模式進行工作和閱讀Java集合源代碼,閱讀優秀的開源項目

  • 以我現在的框架水平,可以達到運用spring boot進行開發。搭建自己開源項目,項目基本已經決定好了。運用到的技術如下:

    • springboot
    • redis,MongoDB
    • Elasticsearch
    • MyBatis-plus
    • MySql
    • Linux
  • 深入理解所有技術,學習SpringIoc源碼,springboot源碼(到7月中旬)。

  • 學習JVM+併發,並學習Java併發方面源碼(10月份)。

  • 重構所作項目(或者新建開源項目),考慮負載,高併發(12月)。

  • 學習springCloud, Docker,微服務相關知識。(2月份)。

  • 整合之前所有的技術,搭建開源項目,完整做完一個項目。自己獨立完成所有功能,鍛鍊自己獨立解決問題能力(4月份)。

  • 在這期間,整理自己的代碼庫,將一些可行的解決方案進行整理。寫博客分享自己的學習成果。

  • 一個重要而不緊急的事情就是算法數據結構學習。這一塊知識我慢慢學,一邊啃《算法》,一邊在leedCode刷題。爭取一年之類刷滿365到題,內容包括(數組,鏈表,棧,隊列,字符串,樹一部分),

  • 數據結構和算法是我非常重視的一塊,對於我以後的發展至關重要,我會不斷深入學習該剛方面知識

  • 一年之後根據自己所掌握的技術,進行下一年的學習計劃指定。

一年之後要達到的水平

  • 熟練應用常用框架技術,數據庫技術,容器技術。

  • 理解springboot spring 設計原理,理解Java如何解決併發問題,並能借鑑其思想解決自己項目中的併發問題。

  • 瞭解springCloud,會應用,但不必深入

  • 具備獨立解決併發問題的能力,是通過自己在閱讀源碼,閱讀優秀開源項目之後培養的能力,而不是百度 谷歌得到的解決方案。

  • 能夠獨立完成複雜模塊,並編寫高質量,整潔,優美的代碼。

  • 達到能夠熟練運用常用的設計模式來設計我的代碼,培養代碼抽象的能力。

  • 在所制定的開源項目計劃完成之後,整合所學知識之後,能夠流暢的看懂
    《Java編程思想》這本書。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章