需掌握的硬技術:前端
0. 經常使用的數據結構、算法;web
1. 面向對象思想、面向對象設計原則、面向對象開發和實現;另外對於思想還有面向過程、面向接口服務、面向切面、函數式編程等;算法
2. 設計模式、架構模式、I/O模式、分佈式模式、網絡模式等;數據庫
3. 服務端的開發經驗,各種服務端相關技術;編程
4. 後端開發語言:Java、Go、Python、C++;後端
5. 掌握必定的必要前端知識(HTML/CSS/JS/ES等)、框架開發和使用技術;設計模式
6. 數據庫開發、實踐、調優等經驗;緩存
7. 高併發、高性能、高負載、分佈式開發、分佈式系統設計經驗、微服務設計等開發經驗;安全
8. TCP/IP、UDP、HTTP/HTTPS協議、SOCKET開發,Restful、RPC等深入瞭解掌握以及各種網絡模型;性能優化
9. 各種中間件、容器技術、集羣開發技術;
10. 緩存、消息隊列、網絡存儲、協議、安全、交換數據格式、序列化等;
11. 大數據開發框架、大數據搜索技術、web開發框架等;
12. Git、SVN、Maven、Jenkins等版本控制技術、部署平臺等;
13. 桌面端開發,C++:Win32/DUI/QT,C#:WinForm/WPF,Node:Electron,其餘語言或界面庫相似或可暫時不用考慮(優選主流);
14. 必要的系統編程技能:Windows API,Linux 系統編程;
15. 必要的軟件調試、問題跟蹤分析、軟件性能優化技能;
需掌握的軟技能:
0. 快速學習的能力:新語言、新技術、新框架、開發模式和工程流程;
1. 喜歡閱讀、分享知識、看書、記筆記、看文章、寫博客、論壇等;
2. 喜歡並參與開源項目或維護本身的開源項目;
3. 工做中的工做流程、責任心、情緒管理、精力管理、指導引導能力;
4. CodeView、代碼重構、模塊/框架/架構設計能力;
5. 任務複雜度識別、任務優先級排期、任務分配和完成實現;
6. 與開發人員、產品、測試、運維、運營、用戶,分類別溝通交流,解決工做中的需求、衝突問題、疑難問題、跟進;
7. 會撰寫各種技術開發文檔、PPT、工做報告等;
可期待的技術:
0. 編程語言:Rust、Elixir、Nim、......;
1.