大多數(shù)人印象中,程序員的薪水都是很高的,但實(shí)際情況是有差別的,要看程序處于那個(gè)階段,那么java工程師都分為哪些階段呢?
第1階段,剛接觸編程,編寫出的第1個(gè)程序應(yīng)該都是hello world這種;
第2階段,開始了解Java的基本語法,面向?qū)ο骾o、網(wǎng)絡(luò)編程,這個(gè)時(shí)候可以做一個(gè)QQ聊天系統(tǒng),單機(jī)小游戲等等,
第3階段,開始發(fā)現(xiàn)C/S不再是主流,B/S才有市場(chǎng),學(xué)會(huì)web前端也會(huì)使用一些框架,Spring mvc, Mybatis等等,以及數(shù)據(jù)庫(kù),部署服務(wù)器,這個(gè)階段才開始步入正軌,可以進(jìn)行項(xiàng)目的開發(fā)了,這也算正式入坑了,到了這個(gè)階段會(huì)去了解原理,不再是只會(huì)用,還要懂為什么,比如JVM內(nèi)存分配,類的加載順序,Spring IOC的原理等等,這個(gè)階段是最難的,等熬過去以后,就不會(huì)再去每天敲一些重復(fù)性的代碼了。
第4階段,程序員將要考慮的是如何讓項(xiàng)目具備更好的擴(kuò)展性,如何提高性能,比如深入了解Java的設(shè)計(jì)模式,開始研究數(shù)據(jù)庫(kù)的優(yōu)化,還有對(duì)Nginx負(fù)載均衡、緩存Redis、搜索引擎ES等,這個(gè)階段已經(jīng)具有一定的水平了。
第5階段,程序員會(huì)對(duì)抽象架構(gòu)的理解更深,開始累積更多的模塊,形成一個(gè)SDK,或者一個(gè)微服務(wù),開始深入研究安全、并發(fā)、監(jiān)控,會(huì)考慮服務(wù)雙活或者多活、網(wǎng)關(guān)等等,這個(gè)階段已經(jīng)算是一個(gè)資深的程序員了。
第6階段,程序員的眼界也會(huì)更開闊,其他語言可能不懂,但知道如何使用它們,這個(gè)階段程序員已經(jīng)可以跨語言技術(shù)棧去思考問題了,而且能提出好的建議,兼顧各個(gè)技術(shù)棧,協(xié)調(diào)團(tuán)隊(duì)完成項(xiàng)目,這其實(shí)就已經(jīng)達(dá)到技術(shù)總監(jiān)的水平了。
各位程序員,可以看看自己目前處于哪個(gè)階段?