通過對軟體開發中的工作事務與微技能進行評估和分級,可以清晰地了解工作構成、評估目前水準、定位下一步發展的方向和思路。
核心技能: 技術、程式設計、交流、合作、公衆表達、規劃、執行。
兩個次元: 開拓新的領域; 分享已完成的成果。
難度系數 *** 1 (新手上路)
1. 完成頁面測試;
2. 編寫簡明的文檔;
3. 能夠了解基本業務;
4. 日常普通的交流;
5. 下載下傳所需要的軟體和工具;
6. 完成簡單的腳本實作臨時需求;
難度系數 *** 2 (亦步亦趨)
1. 完成一個帶指令行參數的實用腳本小工具;
2. 完成一個函數或方法的單測;
3. 完成一個服務接口的測試用例;
4. 使用函數來結構化程式的組織;
5. 使用數組、集合、清單、映射等容器來組織程式的資料;
6. 使用系統API或庫函數來操作檔案與目錄;
7. 學會使用工作中需要用到的軟體與工具;
8. 搭建軟體開發環境,解決其中遇到的困難;
9. 編譯和運作應用,部署應用運作的伺服器環境;
難度系數 *** 3 (初出茅廬)
1. 自己動手實作基本資料結構(數組、連結清單、棧、隊列、二叉樹、位圖)的基本操作;
2. 自己動手實作基本算法(排序、查找、選擇、分治、遞歸、映射、過濾、聚合、動态規劃);
3. 完成一個小改動需求,小的 bugfix 或功能優化,含測試;
4. 編寫腳本實作軟體開發環境的自動化搭建;
5. 學習和了解業務并梳理成文檔;
6. 繪制業務流程圖、思維導圖等;
7. 了解小組成員的想法和構思,比較順暢與小組成員交流;
8. 聆聽和了解産品需求并能和産品同學好好說話;
9. 參加分享時預先準備, 會上做個發言或提問;
難度系數 *** 4 (初露鋒芒 - 初級工程師)
1. 權衡優先級,進行一天的工作内容規劃;
2. 總結業務、項目與學習實踐心得,部落格分享赢得讀者;
3. 實作有難度的資料結構的算法,比如B+樹程式設計;
4. 能夠排查普通或略偏難度的問題或BUG;
5. 能夠編寫實用而健壯的監控腳本或資料訂正腳本;
6. 學習和使用設計模式來改善面向對象程式的結構;
7. 編寫實用而得當的業務文檔、項目文檔;
8. 有能力與團隊成員就技術工程議題進行交流讨論并發表見解;
9. 能夠了解比較複雜的業務并将其分解為可以規劃和實施的子業務;
10. 了解項目管理方法并能适當調節個人活動與項目總體進度保持同步;
11. 了解産品設計與開發要點并能有效實作;
12. 了解和完成前後端元件的互動、前後端團隊的協作;
13. 适宜地發送私人郵件和公衆郵件表達個人意見;
14. 使用通訊工具簡潔地私人答複和公開表達想法;
15. 組織團建、預定會議室并主持團隊周會;
難度系數 *** 5 (風雨兼程 - 中級工程師)
1. 實作複雜結構的程式設計, 複雜結構可能是List, Map 嵌套的複合結構,或者圖結構;
2. 實作含算法的綜合程式設計, 比如迷宮回溯(含GUI);
3. 實作并發異步的程式設計, 比如 Ajax 程式設計, 并發實作詞典的單詞統計計數;
4. 實作針對特定需求的可擴充的微架構的設計與實作;
5. 編寫測試架構和測試用例,實作可重複自動化測試;
6. 了解分布式系統的整體架構設計,并完成普通業務開發;
7. 對代碼品質有比較深入的了解,能夠堅持良好的程式設計風格;
8. 完成一項需求的概要設計和詳細設計(含資料庫設計);
9. 繪制子系統或子子產品的整體架構圖或架構設計圖;
10. 完成一項之前沒有做過的技術工程工作,比如線上大流量服務分流;
11. 能夠排查比較深層次的業務方面的問題和BUG并進行修複;
12. 確定負責的子系統的釋出平滑完成;
13. 參與和完成跨團隊中型項目的開發,并參與第一次淩晨釋出;
14. 研究一個子產品的源代碼實作;
15. 快速學習和應用一門新技術,比如HBase ;
16. 能夠說服和邀請團隊成員加入自己開展的項目;
17. 了解、研究和讨論一項重要議題,并在會議上做出适當的發言;
18. 能夠在較小範圍公衆場合鎮定地示範自己的工作成果;
19. 完成一次良好的晉升面試;
20. 對一個業務主題做仔細的調研,并完成項目立項工作;
21. 對一個中型需求做仔細的設計,并邀請團隊成員進行設計評審;
22. 在團隊中分享在學習工作中掌握的新思想、新技術、新成果;
23. 規劃個人的季度總體目标及實施計劃;
24. 執行個人的季度總體目标及實施計劃;
難度系數 *** 6 (激流勇進 - 進階工程師)
1. 主導完成一個中型需求的開發,涉及需求了解、詳細設計與實作、聯調溝通、測試部署、線上運維等綜合技能;
2. 實作分布式系統下的複雜業務開發,涉及事務、并發控制等;
3. 完成中大型跨團隊項目的開發與合作;
4. 獨立負責一個中小系統的日常開發與維護工作;
5. 深入到系統底層或架構内部細節排查細微的問題或BUG;
6. 評估多個子應用或服務之間的依賴關系并保證無故障同步更新釋出;
7. 對系統的業務與模型進行抽象和解耦,實作可擴充和可維護的設計;
8. 繪制應用的整體架構圖或架構設計圖,從整體上思考問題的解決;
9. 了解和把握公司、部門、團隊的總體目标及方向;
10. 規劃個人的年總體目标及實施計劃;
11. 執行個人的年總體目标及實施計劃;
12. 規劃小組的整體圖景和方向;
13. 執行小組的整體圖景和方向;
14. 指導初級工程師完成日常技術工作創造貢獻;
15. 創造性地使用新方法解決問題改善工作效率;
16. 完成普通項目的技術選型;
17. 推進跨團隊事務的如期完成;
18. 流暢地與團隊成員、TL、管理層進行交流和彙報;
難度系數 *** 7 ( 劈波斬浪 - 專家,基層管理 )
1. 主導完成一個獨立子業務的服務化遷移;
2. 主導完成一個獨立子系統的重構;
3. 有影響力地示範團隊的工作成果與公司的品牌形象;
4. 善于從整體上思考問題的解決方案并形成考慮周全的開放方案;
5. 組建精悍團隊來做有意義的項目或産品;
6. 規劃跨業務團隊的總體目标及實施計劃;
7. 帶領小組成員實作季度、年規劃目标;
8. 為重大項目做技術選型、架構設計或技術咨詢;
9. 指導中進階工程師做出優秀的工作成果和貢獻;
10. 在某個專業技術領域發揮着突出的技能和貢獻;
11. 綜合運用知識、技能、經驗、直覺等完成技術難題的攻克,比如交易引擎的設計與開發;
12. 綜合運用知識、技能、經驗、直覺等創造性地改善團隊生産效率,比如自動化生成測試;
難度系數 *** 8 (飄浪江湖 - 架構師,中層管理)
1. 分析市場發展動向和競争同行動态并形成業界認可的參考價值高的報告;
2. 分析國家政策變化及行業發展變化并形成業界認可的參考價值高的報告;
3. 塑造個人的行業影響力并為公司帶來有益影響;
4. 會晤某高層人士洽談合作事宜;
5. 為跨業務團隊大型項目做架構設計或技術咨詢;
6. 上司部門團隊成員實作部門季度、年規劃目标;
7. 持續上司部門級的發展戰略和實施計劃的執行;
難度系數 *** 9 (霧裡看花 - 參謀長, CXO)
1. 實作跨部門的季度、年規劃目标;
2. 持續上司跨部門的發展戰略和實施計劃的執行;
難度系數 *** 10 (不歸之路 - 創始人)
1. 實作整個組織的季度、年、長遠規劃目标;
2. 持續上司整個組織完成有意義的季度、年度目标,并為社會承擔企業責任;
3. 實作組織的持續盈利模式;
4. 吸引和說服投資者持續投資;