• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

程序员和工程师有什么区别

程序员和工程师的区别是:1.工程视角;2.系统视角;3.逻辑视角。其中,工程师理解软件实现过程的不同阶段、每个阶段需要的理论、方法、工具、交付物以及标准等。

一、程序员和工程师的区别

1.工程视角

工程师理解软件实现过程的不同阶段、每个阶段需要的理论、方法、工具、交付物以及标准等。

2.系统视角

工程师研究对象时能够做到从整体到细节、由上到下、由粗到细,观察对象是按照从“系统→模块→功能→控件→程序”的顺序,具有综合多方面知识的能力(包括客户业务层面、软件技术层面)。

3.逻辑视角

工程师在研究课题时,可以通过分析、设计表达出自己的意图,具有很强的逻辑思考、逻辑表达的能力。

工程师(理想、期望)

理解何谓软件“工程”,知道完成软件的过程、交付物、标准等;

能够从“系统、关联”的视角看研发对象,能从整体、架构上理解;

遇到问题,会寻找解决问题的“共同方法”,比如抽提、梳理、建模;

善于分析、并能够“用设计图说话”,用图形表达意图、逻辑;

程序员(现状、不足)

不理解何谓软件“工程”、也不清楚开发的过程,只知道与自己相关部分的内容;

更容易从“代码、程序”的视角看研发对象,多从细节入手、思考;

遇到问题,立即去寻找“具体做法”,比如上网查、复制;

不善于做分析、用设计图表达自己的意图,缺乏逻辑意识,只会“用代码说话”

延伸阅读:

二、如何快速成长为工程师

除去靠个人的努力学习、花费时间积累以外,我还想向软件企业提一个建议:大学毕业生进入软件公司后的名列前茅件工作不是写代码,而是去做需求调研的“学徒”,体验一次从需求调研到设计的全过程,这个过程可以帮助新学员理解什么是“工程、系统”,软件开发的依据是如何得到的,工程的每个阶段需要做什么,同时可以掌握一定的分析与设计方法。根据参与项目的规模不同,这个过程可能要花费2~3个月或更多一些时间,但这将会在未来大大缩短新入职者从“程序员→工程师”的距离和时间,早日成为公司的业务骨干。

  • 如果入职初期没有花费这个时间去对他们做启蒙,没有培养他们这个意识,很有可能过了5年甚至是10年之后,发现他们还站在“程序员”的原处,没有走向“工程师”的位置。
  • 如果入职后立即着手写代码的学员,可能长期处于对自己参与的开发内容“知其然,不知其所以然”的状态,所以长期都是做“小工”的。如果预先参与过了需求调研、分析和设计的学员,进入开发工作后则可以做到“知其然,也知其所以然”。不同对待的新入职学员工作一段时间后就会发生质的区别,后者成长得会更快。

从事建筑设计、制造设计的大学毕业生进入公司后的名列前茅步是先下到工地/车间去实习,实习一段时间后再进入到设计岗位工作,通过实习看到了全生产过程,使得他们更加理解了什么是工程、系统的概念,这个过程的体验成果加速了他们的成长。

以上就是关于程序员和工程师有什么区别的内容希望对大家有帮助。

相关文章