談談Java工程師的學習

java愛好者i發表於2019-04-02

在大學的時候,計算機系的同學們肯定會學習很多計算機方面的專業課,如計算機作業系統、計算機網路、計算機組成與結構等等啦,個人認為這些課程會為你快速建立計算機技術的基本概念,但這些課程大學講的比較粗淺,而且每一門課程在計算機發展方向上都有很深的領域。所以,個人認為這些課程在大學屬於儘可能的瞭解。

大學計算機還會學習高等數學和英語,這是我認為大學學習的核心。

英語的重要性不言而喻,因為很多重要的參考資料都是英文的,雖然國內已經有很多漢譯本,但是讀起來還有些蹩腳。

大學除了高等數學,還會學習線性代數和概率論與數理統計等,這些都會為幫助你理解計算機資料結構和演算法打定了基礎,如果你說你懂Java,那除了if-else和封裝、繼承、多型,你至少還要懂得Java程式設計思想、資料結構與演算法的Java描述,如果以上的知識你都具備了,那恭喜你,你已經是一個初級的Java碼農啦。

作為一個碼農,前有無數碼農的辛苦努力,為了應對一些通用的場景達到最大編碼的複用,所以搞出了設計模式,什麼是設計模式,模式就是為了複用。但隨著系統越來越大,系統越來越複雜,面對越來越混亂的程式碼,碼農們又搞出了系統技術框架,如Spring、Hibernate等等,這時如果你懂得設計模式的Java描述,Spring應用,Spring技術內幕、精通Hibernate等等,那恭喜你,已經是一箇中級的Java碼農啦。

但隨著專案越來越大,系統分工越來越明確,碼農們慢慢有了變化,有些碼農做了專案管理,有些碼農做系統分析或系統架構設計,還有些碼農做了測試或運維等等,而原來開發的碼農,也細分為了開發工程師、DBA、Basis等等,其中DBA重要負責資料庫的管理,如Oracle、MSSQL等;而Basis在負責作業系統的管理,如Linux、Windows等等;如果你是開發工程師,那你可能是在拿著明確需求和確定設計的情況下,在做程式碼程式設計工作。

此時,如何蛻變成一個高階的碼農?

在此之前,我先說一些個人理解的系統框架和系統架構的區別,首先這兩個不是一個概念,系統框架更偏向從技術角度解決系統的框架結構,如系統層次結構、功能項拆分、執行部署設計等等;而系統架構是什麼?系統架構師是什麼?首先系統架構不單指從技術角度上解決系統架構設計問題,你有100多套框架、用Spring整合,你說的不是系統架構問題。系統架構是一種抽象模型、是一種系統模型解決方案,系統架構可以為一些現實中通用性問題建立抽象模型、提供解決方案,如資料管理系統架構模型、資料監控系統架構模型、資料查詢與展示架構模型,面對這些問題,系統需要系統架構師提供合理的系統架構解決方案,而不是告訴我一個SSH框架就可以解決的問題。

回到主題,此時需求有系統分析師,架構有系統架構師,那麼實施就剩下碼農了。

IT專案或產品的開發會越來越像工廠流水線,每個人就像流水線中的零件,公司需要的是這個模子的人才,而不是你。

這時,看看我們已經學到了什麼?資料結果和演算法、設計模式、系統框架和Java程式設計思想,這是這個模子最基本的要求,所以高階的碼農就是在努力適合這個模子,可以靈活適配多條流水線的模子。

但隨著新技術的不斷更新,我們還沒有為沒有成為高階碼農,就已經變成老碼農了,在這個越年輕越值錢的計算機行業,如何保障自己在渡過黃金期後,依然能夠有一定的競爭力,學會如何思考,如何改變自己不被這個潮流所淹沒,這時,才成為真正Java工程師。

歡迎工作一到五年的Java工程師朋友們加入Java架構師:697558955

群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

相關文章