程序员和工程师的区别是:1.工程视角;2.系统视角;3.逻辑视角。其中,工程师理解软件实现过程的不同阶段、每个阶段需要的理论、方法、工具、交付物以及标准等。
一、程序员和工程师的区别
1.工程视角
工程师理解软件实现过程的不同阶段、每个阶段需要的理论、方法、工具、交付物以及标准等。
2.系统视角
工程师研究对象时能够做到从整体到细节、由上到下、由粗到细,观察对象是按照从“系统→模块→功能→控件→程序”的顺序,具有综合多方面知识的能力(包括客户业务层面、软件技术层面)。
3.逻辑视角
工程师在研究课题时,可以通过分析、设计表达出自己的意图,具有很强的逻辑思考、逻辑表达的能力。
工程师(理想、期望)
理解何谓软件“工程”,知道完成软件的过程、交付物、标准等;
能够从“系统、关联”的视角看研发对象,能从整体、架构上理解;
遇到问题,会寻找解决问题的“共同方法”,比如抽提、梳理、建模;
善于分析、并能够“用设计图说话”,用图形表达意图、逻辑;
程序员(现状、不足)
不理解何谓软件“工程”、也不清楚开发的过程,只知道与自己相关部分的内容;
更容易从“代码、程序”的视角看研发对象,多从细节入手、思考;
遇到问题,立即去寻找“具体做法”,比如上网查、复制;
不善于做分析、用设计图表达自己的意图,缺乏逻辑意识,只会“用代码说话”
延伸阅读:
二、如何快速成长为工程师
除去靠个人的努力学习、花费时间积累以外,我还想向软件企业提一个建议:大学毕业生进入软件公司后的名列前茅件工作不是写代码,而是去做需求调研的“学徒”,体验一次从需求调研到设计的全过程,这个过程可以帮助新学员理解什么是“工程、系统”,软件开发的依据是如何得到的,工程的每个阶段需要做什么,同时可以掌握一定的分析与设计方法。根据参与项目的规模不同,这个过程可能要花费2~3个月或更多一些时间,但这将会在未来大大缩短新入职者从“程序员→工程师”的距离和时间,早日成为公司的业务骨干。
- 如果入职初期没有花费这个时间去对他们做启蒙,没有培养他们这个意识,很有可能过了5年甚至是10年之后,发现他们还站在“程序员”的原处,没有走向“工程师”的位置。
- 如果入职后立即着手写代码的学员,可能长期处于对自己参与的开发内容“知其然,不知其所以然”的状态,所以长期都是做“小工”的。如果预先参与过了需求调研、分析和设计的学员,进入开发工作后则可以做到“知其然,也知其所以然”。不同对待的新入职学员工作一段时间后就会发生质的区别,后者成长得会更快。
从事建筑设计、制造设计的大学毕业生进入公司后的名列前茅步是先下到工地/车间去实习,实习一段时间后再进入到设计岗位工作,通过实习看到了全生产过程,使得他们更加理解了什么是工程、系统的概念,这个过程的体验成果加速了他们的成长。
以上就是关于程序员和工程师有什么区别的内容希望对大家有帮助。