1. 程式人生 > 其它 >Java程式設計師除了做增刪改查還能幹嘛?

Java程式設計師除了做增刪改查還能幹嘛?

    就以Java後端開發為例,說說不同級別程式設計師乾的事情。

1 初級開發,大概是有3年Java開發經驗。

    22年底,上海,這批程式設計師如果學歷是本科,薪資一般是8k到2w,當然如果能進好公司或網際網路大廠,薪資能更高。初級開發乾的活一般是能做各種增刪改查業務,遇到簡單問題,比如空指標之類的,能通過看日誌解決,也能適當幹些和人溝通的事情,比如和其它組溝通API。

    初級開發階段,熟手和新手的差別不僅體現在業務上,更體現在技術層面。或者說,如果初級開發只是熟悉業務,後繼發展會受限。初級開發階段,熟手更應該從資料庫優化、解決各種資料庫問題以及分散式元件或微服務元件使用層面來提升自己。

    這裡再說個可能會引發爭議的觀點,比如某程式設計師,學歷可能是大專甚至更低,在一家小公司裡做java後端,也幹了5,6年,但如果技術層面只是做增刪改查,可能這位程式設計師憑藉對業務和產品的瞭解,在小組裡甚至是公司裡起到比較重要的作用,但從技術角度來說依然是初級開發,因為如果出去面試,很難展示比增刪改查更值錢的技能。所以哪怕是初級開發,都應該不僅僅做增刪改查。

2 高階開發,3年以上其實就已經具備成為高階開發的經驗年限。

    還是按上海,22年底的薪資,高階開發起步的薪資可能就已經接近2w了,如果高階開發具有5,6年java經驗,要個3w也不成問題,但年薪40w一般是高階開發的上限了。

    相比初級開發,高階開發在日常工作中一般高階在如下兩個方面,第一是能帶一些人做業務,即成為專案開發小組長,第二是能解決些比較有難度的問題。

    高階開發在公司裡,可能未必能做到專案經理的級別,但在帶人開發的時候,需要全面掌握專案測試部署的技能,而一些初級開發解決不了的問題,比如分散式元件方面的問題,高階開發能解決。

    這裡再說個可能會引發爭議的觀點,在一些小公司,尤其是人數在50人以內的樓層公司甚至是房間公司,其中技術負責人,當然有些公司可能還給掛上個技術總監的頭銜,論能力的話,其實也就是個高階開發的水準。而且有些小公司的這些技術負責人,估計薪資也就是2w出頭些。

    所以如果java後端開發,達到高階開發的水準的話,平時工作,增刪改查已經是佔很小的比例,更多地要負責專案的開發維護執行,以及要解決些相對值錢的問題。

    順帶再說個高階開發和初級開發的差別。初級開發的話,平時工作一般是僅限於java和資料庫,比如spring boot+oracle資料庫,而高階開發就要涉及些測試工具,部署工具,同時就已經要在linux上幹些部署專案和看日誌排查問題的活了。

3 再往上就是架構,一般有5,6年開發經驗的後端就能去挑戰架構的職位了。

    上海22年底底行情,架構的薪資一般能達到3w,一般公司的架構師,哪怕做到技術負責人,封頂一般是50w年薪,大公司的話,架構一般能給到七八十萬,但年薪過100w的架構真不多。

    順帶說下,要成為架構,不是說公司給個頭銜就成,一般小公司的技術總監,有些放大廠也就是個高階開發的水平,要成為架構,得薪資上達到架構的水平,一般至少得40w吧。

    架構的活,一般是根據業務的特徵,比如併發量可用性等特性,或者看要不要接訊息中介軟體,然後設計出整個產品,或一些模組的架構,同時還要搭建環境,比如在linux上安裝redis或kafka。此外,架構還有個比較重要的活,是要確保系統執行的平穩性,比如要搭建監控,設計出系統上線的方案,以及出現故障的修復方案。當然如果出現元件或架構方面的問題,架構也要修改。

    就舉個典型的例子來說高階開發和架構的差別,比如系統遇到個dubbo遠端呼叫的問題,從日誌上看,報錯不是在業務程式碼層面,而是dubbo元件內部的class類裡,這時高階開發可能就不大能解決,但架構師能解決,而且是在架構的職責範圍內。

    從實際工作中,其實高階開發和架構的一些職責是重疊的,比如都需要搭建系統的架構,都需要排查和解決架構層面的問題,但從技術角度來看,架構師需要更資深的技能。

    通過上文,大家能看出,在java後端方面,如果只會增刪改查,估計頂多只能做到初級開發,不過事實上真有不少Java程式設計師在一些小公司呆久了,雖然工作年限很長,但論能力只會增刪改查,這也是不少程式設計師在30歲以後就失去競爭力的原因,這也是不少有一定工作年限的程式設計師出現薪資倒掛的原因。