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