java工程師技能要求大綱

前言

要寫這個東西的主要原因,發問,我現在是什麼,我要將要成爲什麼。是要給自己一個定位,給自己一個發展方向,通過翻閱網絡上行業內對各級工程師的定義以及自己數十月的工作經驗來做個記錄。

相信很多人也是工作一段時間很迷茫,常用的都會了,不常用也不知道學什麼,不知道值不值得花費時間和精力去學,慢慢地成爲職場老油條,慢慢的喪失跳槽和升級的能力。

實用主義是我最崇尚的,一切知識都是爲解決實際問題,程序員的等級是解決問題的能力決定的,與工作多少年沒有直接關係。只是工作的時間長與能力有相關性,對不同的人可以有天壤之別。

java實習生

又不需要開發,技能要求主要還是學校裏課程有的
java:至少會java這門語言,熟練運用list、map等容器
sql:會寫sql語句
操作系統:對進程和線程有概念,線程幾種狀態,死鎖的形成和避免
計算機網絡:http、https、tcp、udp幾種協議有個初步瞭解。
前端:Html、css、javascript都有一個初步的瞭解,常見標籤,選擇器,點擊事件等。計算機專業大部分會學(可能課本上會出現一點點)。
數據結構:順序表、鏈表、平衡二叉樹、最小生成樹、冒泡排序、快速排序、二分查找等,課本也是有挺多內容的,都學會了可以做一個基礎紮實的實習生,日後受益。

java初級工程師

不管是不是前後端分離,數據的交互總是要了解點,熟悉json語法和應用,開始獨立編寫後臺代碼。
java:J2EE、多線程編程、socket編程、異常處理
設計模式:熟悉單例模式、工廠模式、代理模式
數據庫:熟悉常見的關係型數據庫,SQL Servers、mysql、Oracle
aop框架:Struts/Spring/Springboot等環境下的編程,可能有的是jsp,理解面向切面,知道框架中大概有什麼
orm框架:Hibernate/mybatis/EclipseLink/JFinal等掌握其一的增刪改查,和一些複雜一點的查詢
服務器:tomcat
前端:jQuery,ajax

java中級工程師

中級工程師是最常見的主力,人數多,工作年限範圍也比較大,不主動去學習和改變,幹10年也可能就是個中級工程師,應爲一個優秀中級工程師掌握的技術佔了一個普通項目的90%以上
java:對集合容器瞭如指掌、過濾器、監聽器、文件傳輸、日誌、模板引擎等,對jvm結構有個認識、瞭解GC、熟悉代理模式、單例模式等常見設計模式的實現,代碼質量高,易擴展,易複用。
:連接池、線程池、對象池的常用實現
aop框架:熟悉必須的配置文件,在框架出現問題是能快速定位問題。
sql數據庫:合理的進行表設計、索引、存儲過程、熟悉sql優化。
分佈式:RPC框架Dubbo、在分佈式環境下的開發,瞭解一些相關配置。
nosql數據庫:非關係型數據存儲中間件,文檔型mongoDB、CouchDB等,鍵值型Redis等,圖形數據庫Neo4J、ArangoDB,搜索引擎Solr、Elasticsearch等,至少得熟練使用一兩種,熟知常用數據類型和數據庫的特點,熟練增刪改查,能靈活的應用在多種業務場景中,熟悉其事務和持久化。
消息隊列:RabbitMQ/RocketMQ/CMQ/Kafka/Notify/Hermes等,用消息隊列首先一點先明確該隊列的該模式的應用場景,熟練使用幾種發佈訂閱模式和接收確認。
權限框架:輕量級apache shiro,複雜的Spring Security 。一般都是管理系統,數量不多的用戶有明確的分工,可以用來開發工作流。
網絡安全:登錄註冊得會寫,瞭解常見的攻擊手段並學會防治。
前端:至少熟練的掌握一個框架。
運維:Linux常用命令,稍微會點shell腳本,畢竟也不是專業運維,平時需要部署服務器和查看日誌。
其他:因公司業務不同需要不同的技術,對接三方、支付、科學計算等,有幾個特殊技能,對當前業務的設計和改進有些思路。道了中級,代碼可不能是隻實現功能就行了,要用各種手段實行優化。

java高級工程師

滿足了上述條件進入高級工程師的門檻了,高級工程師優秀一些的,就能在小公司或部門裏做個架構師了,在企業裏能做技術主力,一般小公司也沒幾個這樣的高手
java:能開發出很多方便的工具,JVM調優
架構:深刻理解分層、客戶端-服務器模式、主-從模式、熟悉插件架構、微服務架構、雲架構,能獨立完成一般企業項目的搭建和開發
數據庫:分片的方案,高可用的方案
分佈式:分佈式協同系統(分佈式日誌複製)、分佈式任務調度框架、流計算框架、分佈式文件/對象系統、分佈式NoSQL存儲、分佈式關係數據庫(OLAP、OLTP)、springCloud組件Hystrix:服務的隔離、熔斷和降級、Zuul:動態路由
:樂觀鎖、悲觀鎖、自旋鎖、自適應鎖、公平鎖、非公平鎖、可重入鎖,不可重入鎖、共享鎖、排他鎖
集羣:代碼以及以上各種中間件都到了一個集羣的環境裏,就會產生很多新的問題、例如數據庫集羣時的同步問題
消息隊列:消息重複問題、副本複製、事務設計、高可用問題
一致性:raft算法、paxos算法、ZAB協議、BASE算法、CAP算法

java架構師

一個優秀的架構師能給團隊帶來極高的工作效率,可以說,除了他一個人幸苦,其他的開發人員都能享受到他帶來的福利,工作效率上去了,才能少加班。除了開發,架構師平常經常參與服務器建設,對運維方面相當熟悉。
架構
服務器:服務限流:令牌桶、漏桶,服務鏈路監控和報警:CAT、Dapper、Pinpoint
分佈式事務:JTA分佈式事務、TCC分佈式事務

技術專家

傳說中無所不能的人,掌握尖端技術的人,走在時代前沿的人。
能獨自開發出一套實用的受歡迎的框架

由於本人知識貧乏,各位評論區補充

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