程序员的两条腿
- 数学
- 英语
- 学习能力
通过多途径的方式快速习得必要知识,这些途径包括搜索引擎,实体书籍,电子文档,论坛提问等。 - 编码能力
- 编程语言的掌握
理解语言的特性编写清晰高效的代码,命名直观,注释准确。
理解语言的实现,能供透过语言的形式了解其背后的原理,从而优化代码,或是触类旁通学习其它语言。
理解不同编程范式并在合适的场景下应用,命令式,声明式两大类,前者向计算机描述问题的求解过程 how ,后者向计算机描述问题是什么 what,函数式编程归属于声明式。(过程式,函数式,对象式,并发,逻辑等) - 技术栈的掌握
掌握各种框架及工具链解决工程开发问题
利用各种框架及工具搭建项目工程
了解各类技术的应用场景与实现 - 编程思想的理解
抽象
模块化、复用
分层
低耦合高内聚原则
SOLID 原则 - 数据结构与算法
- 编程语言的掌握
- 解决问题的能力
- 发现问题
调试技巧,经验与直觉 - 描述问题
恰当的语言描述问题 - 解决问题
直接解决,求助解决,借助互联网解决
- 发现问题
- 设计与架构能力
- 架构原则
- 通用设计模式
- 沟通表达能力
- 文档编写(PPT,博文)
- 语言表达
- 业务领域知识