程序员和工程师的区别在于他们所会的能力和等级不同。具体如下:
1. 工程师能够理解何谓软件“工程”,知道完成软件的过程、交付物、标准等;能够从“系统、关联”的视角看研发对象,能从整体、架构上理解;遇到问题,会寻找解决问题的“共同方法”,比如抽提、梳理、建模;善于分析、并能够“用设计图说话”,用图形表达意图、逻辑。
2. 程序员不理解何谓软件“工程”、也不清楚开发的过程,只知道与自己相关部分的内容;更容易从“代码、程序”的视角看研发对象,多从细节入手、思考;遇到问题,立即去寻找“具体做法”,比如上网查、复制;不善于做分析、用设计图表达自己的意图,缺乏逻辑意识,只会“用代码说话”。