你觉得你自己算是一名优秀的开发者吗?如果是的话,你有没有考虑过,作为一名优秀的开发者,你具备哪些优秀的品质?好的开发者和差的开发者区别在哪里?经验?技能?还是天赋?如何才能成为一名优秀的开发者?
"开发者是程序员, 程序员不一定是开发者"
1. 具有很强的分析思维
作为一名优秀的开发者,你需要思考,观察数据,记忆并且分析这些现象和内容,并解决问题。虽然这一点有些抽象,但很不幸的是这是非常重要的一点。为什么很不幸呢?因为这一点意味着不是每一个人都能成为优秀的开发者,即使他们很努力。这种分析思维有点像是天生的。如果你没有这个能力的话,还是尽早改行。
分析性思维是可以锻炼的,例如解决算法和逻辑问题会让你在这方面有所提高。但是每个人都有一个上限,难以超越。
2. 对软件有一个宏观的理解
开发一个软件有点像是下棋 - 你要赢得比赛就要预测后面几步。在编程的时候,你不光要看到眼前的代码,你还要想到将来要写的代码。作为一名优秀的开发者,你不应该只盯着软件的一小部分,你应该看到软件的整体结构。你需要知道如何实现一项功能,也需要知道为什么实现一项功能。
3. 从业务的角度理解软件开发
在我的概念中,一名优秀的开发者不仅是面向技术的。你同时需要面向业务,理解客户的需求。如果你做不到这一点的话,有很多潜在的问题:误解业务需求,软件可用性差等等。
那么如何做一个面向业务的开发者呢?
从业务的角度理解软件
尊重客户的需求
能将业务问题转化成技术问题
能和非技术领域的人沟通
4. 善于协作
一名优秀的开发者不是只会单打独斗的。一个项目要成功的话,团队内部的沟通和协作是至关重要的。不善于协作的开发者是无法融入团队的。我知道有很多牛逼的开发者都很内向,但是在现代开发过程中,光写代码是不够的。
敏捷的世界需要好的开发者
我上面说的几点也许在多年前是不成立的。如果我们没有进入敏捷的时代,任何合格的“码农”都可以被称作合格的“开发者”。但事实是我们已经进入敏捷的时代,我们需要敏捷的开发者,能够分析问题,从业务的角度考虑问题,对软件有全局观,并且善于协作。