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

相关推荐HOT
更多>>
栈和队列是操作受限线性表,操作限制降低了操作灵活性,为什么要加入这些限制?
一、栈和队列加入操作限制的原因栈和队列是操作受限线性表,所谓”操作受限”是指只能按照某种固定的规律进行插入和删除操作,无法随意地对其中...详情>>
2023-10-11 22:33:31
ASPICE1级和2级到底具体的区别是什么?
一、ASPICE1级和2级到底具体的区别Level 1意思是实施的过程,仅仅是实施了相关的过程,即可以展示一些WP以说明相关的活动已进行并有了相关的输...详情>>
2023-10-11 21:25:45
主席树和可持久化线段树有什么区别?
一、主席树和可持久化线段树主席树和可持久化线段树没有区别。主席树学名为可持久化线段树,可以用来解决线段树存储历史状态的问题。我们在进行...详情>>
2023-10-11 20:19:10
什么是结构化数据非结构化数据半结构化数据?
一、结构化数据、非结构化数据、半结构化数据结构化数据结构化的数据一般是指可以使用关系型数据库表示和存储,可以用二维表来逻辑表达实现的数...详情>>
2023-10-11 19:24:17热门推荐
为什么给定节点个数的二叉树个数为卡特兰数?
沸栈和队列是操作受限线性表,操作限制降低了操作灵活性,为什么要加入这些限制?
热数据结构sqlist和seqlist有什么区别?
热ASPICE1级和2级到底具体的区别是什么?
新数据结构与算法有哪些内容?
主席树和可持久化线段树有什么区别?
链表(linkedlist)这一数据结构具体有哪些实际应用?
什么是结构化数据非结构化数据半结构化数据?
OracleJDK 和 OpenJDK有哪些区别?
linux和windows的区别?
ldo和dcdc的区别?
thymeleaf和jsp的区别是什么?
计算机算法和语言有哪些区别?
JAVA的io流和nio有什么区别?
技术干货






