中级程序员
中级开发人员寻寻觅觅于用正确的方法去构建,去解决问题,他们会通过实验、文献和与其他程序员的讨论去发现这些正确的方法。这实际上已经是学习软件架构的水准,而不再是构建代码(我们在学校里学的就是这个)水平。
一个优秀的中级开发人员应该懂得使用代码来解决问题只是一种手段而不是目的。然而,他们仍然深爱着纯粹的设计,仍然渴望寻求所谓“正确的方式”来构建软件。
高级程序员
高级开发人员熟悉失败。他们已经经历过编写的代码在低于设计和超越设计的情况下都失败的情况。他们深思熟虑,在面对问题时,能够心智成熟地评估成功与失败。高级开发人员已经跳出了中级开发人员深爱的复杂性,开始沉迷于简单。
高级开发人员深知理论联系实际的重要。建立良好软件的唯一途径是要将理论适应客户、代码库、团队、工具和组织的需求。高级开发人员理解并权衡领域涉及的一切,同时会思考如何去支持设计模式、库、框架和流程。