掌握必要的技术列表-(不定期更新)
需掌握的硬技术:
0. 常用的数据结构、算法;
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.