代码改变世界

软件开发的个体差异及优秀软件工程师和普通软件工程师的主要差别

2018-03-17 10:01  embracechange  阅读(109)  评论(0)    收藏  举报

因为想成为一名优秀软件工程师,最近一直在思考这个问题,现把想到的先记录下来。

同一个功能,不同工程师实现,可能存在下面几个方面的差异:

1. 稳定性

2. 易维护性

3. 用户体验

4. 扩展性

优秀软件工程师和普通软件工程师的主要差别:

1. 扎实的基础知识

2. 思考能力,严密的逻辑思维,考虑问题的全面性(有的工程师拿到任务就开始编码实现功能,做之前根本就不思考)

3. 匠人精神:认真、负责、细心、规范(做人做事最怕认真,认真对待每一件事情、每一个细节,没有做不好的东西)

4. 良好的编码风格,优秀的文档能力

5. 架构设计能力

6. 对产品、业务及需求的理解能力(如果对需求都不理解或理解错误,做出来的东西本来就是一个BUG)

7. 学习能力(新知识,优秀开源代码,身边优秀人员做事方法)

 

其实个人觉得主要还是态度,一般的实现功能和需求就可以了,但优秀的工程师会考虑的更多。

1. 为什么要这么做?这么做有什么好处?不这么做会怎么样?

2. 还有没有我没考虑到的情况?

3. 有没有更好的方法,更有效率的方法?

4. 代码还可不可以优化?有没有更好的设计?

5. 其他人能看懂我的每一句代码吗?其他人调用我提供的接口会出现哪些情况?

6. 添加新功能是否方便?用到其他项目是否方便?

考虑的多了,自然会想办法去实现,自然会不断学习提高。