0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件开发工程师和程序员的区别是什么

工程师人生 来源:网络整理 作者:工程师吴畏 2018-08-27 10:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

不管是CPPer,Javaer,还是PHPer等等,不少开发人员经历过这样的困惑:我到底是工程师(SDE,or Developer),程序员(Programmer),还是Coder(编码员)呢?

这个问题看上去似乎没有什么意思,甚至不过是一次无聊的名词解释。但是,我们以这里作为所有话题的起点,是因为任何观点并没有绝对的对与错,决定最终选择的恰恰是看问题的角度——身份当然是其中的一个重要影响力。屁股决定脑袋,这样的道理无需赘述。

好吧,还是先回到这个话题上来。

软件开发工程师(SDE,or Developer)是我们大多数软件开发人员的职业称呼。既然是一个职业称呼,其身份与职业自然有密不可分的关系。作为一个开发工程师,其主要职责是在有限的时间内开发出具有实际实用价值的应用程序。

这里面至少包含两点。

其一,开发目标。开发工程师的开发目标是使用,没有使用价值的程序是没有意义的;

其二,开发成本。既然是职业称呼,开发工程师的工作往往由商业因素驱动,其开发特点突出表现为大量的功能需求和有限的成本。因此需要开发工程师具备在各种需求(包括时间成本等等)之间寻求平衡的能力。

程序员(Programmer)常常被简单地被归结为一群追求技术的狂热分子,他们更多地由兴趣驱动,开发一些有挑战性的东西。这样说也许并不确切,但毫无疑问,程序员这个名称给人更多的技术感和理想色彩,以至于很多人把他作为自己引以为豪的称号。我也喜欢自诩为程序员,甚至很多IT公司那些数年未写一行代码的技术主管也喜欢自诩为程序员。

程序员开发习惯的一个显著特点是追求极致:最新潮的方法,最小的二进制文件大小,最少的代码量,最强大的功能……时间?唔,开发时间从来不是程序员工作的决定因素,它甚至根本不被考虑;执行时间倒是个重要因素,所有程序员听到这个就像猫闻到腥味一样。

看上去,软件开发工程师和程序员是多么截然不同的两种人。难怪有人说,软件开发工程师来自火星,程序员来自金星。

另外一些人给两种称呼设置了等级,似乎程序员经过一段时间的成长才能成为一个软件开发工程师。当然,我不认同这样的说法:不同的追求导致不同的发展而已。

尽管我们给两种称呼映射了两种截然不同的行为,然而实际上,这两种行为常常同时出现在同一个人的身上:你可能上班时像个开发工程师,下班则更像个程序员;他可能对待一些问题时像个开发工程师,对待另一些问题时则更像个程序员。

很多软件项目开发周期过长,一个重要原因就是由于软件开发工程师在开发当中融入了过多的个人乐趣,开发出了很多个人认为很酷其实不必要的功能。而一个程序员哪怕是捣鼓一个只有他自己才用的软件,他也需要在他力所能及的范围(成本)内开发出自己满意的功能。

与上面两种称呼不同,Coder(编码员)常常被称作软件业的蓝领工人(戏称“人肉编码机”)。没有人愿意做这样的蓝领工人,因为软件业里的体力劳动者几乎就是笨蛋的代名词。

其实,绝大多数开发人员会常常扮演编码员的角色。想想你拷贝一大段代码,修修改改完成一个功能,然后又拷贝另一大段代码,修修改改完成另一个功能的经历,这不正是个Coder的角色么?要将这些“体力编码”的片段跟“脑力编码”的片段分割开来,派给两种开发人员去做显然是不切实际的。

即便存在Coder这样的职业,只是从事将设计翻译为代码的“体力”工作,他们的工作也仍然是举足轻重并值得尊敬的。任何一个成功的软件项目,除了得益于其成功的设计,编码的质量一样不可或缺。

如果你真的领导着一些商业性项目开发,你应该会深深体会到编码质量对一个项目举足轻重的影响,而一个编码质量令人放心的开发人员在任何组织里都不会是简单的Coder角色。

再次强调,不管是SDE,程序员,还是Coder,我尝试做出一些定义并不是为了让你从无数开发人员当中区分出谁属于哪一类型。恰恰相反,我认为对于绝大多数开发人员而言,他并不是一直扮演某一种角色,而是在不同时候,不同的方面,表现为不同的角色。

我们区分这些类型,只是为了阐述观点时,有一个角色的定位。但是,你知道,世界是复杂的,而人不会是一成不变的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30785
  • 开发工程师
    +关注

    关注

    1

    文章

    91

    浏览量

    15278
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 201次阅读
    <b class='flag-5'>工程师</b>变身AI“指挥者”,吉利与阿里云的<b class='flag-5'>软件开发</b>变革实验

    招镶入式工程师1个,硬件工程师一个,

    东莞市研生科技有限公司是一家蓝牙方案公司,主营蓝牙方案的设计开发,产品包括蓝牙BLE/4G透传/AI智能体方案开发,因公司发展需要需对外招聘嵌入式软件开发工程师,对蓝牙音频/BLE以及
    发表于 08-29 02:14

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37

    如何成为一名合格的KaihongOS北向应用开发工程师

    如何成为一名合格的北向应用开发工程师 在快速发展的软件开发领域,北向应用开发工程师是一个专注于系统级应用
    发表于 04-23 06:46

    硬件工程师手册(全套)

    经过总体组的评审,器件和厂家 的选择要参照物料认证部的相关文件,开发过程完成相应的规定文档,另外,常 用的硬件电路(如 ID.WDT)要采用通用的标准设计。 第二节 硬件工程师职责与基本技能
    发表于 04-22 15:05

    如何成为一名嵌入式软件工程师

    、Java等)和软件开发工具,还需要对硬件的工作原理有深入的理解。 在团队中,嵌入式软件工程师往往扮演着核心角色,他们的工作直接关系到产品的性能、稳定性和用户体验。 02掌握核心技能与知识
    发表于 04-15 14:37

    嵌入式软件工程师就业好不好?

    和技能的积累,越老越吃香。 在传统程序员的职业道路上,虽然35岁危机让许多人感到焦虑,但嵌入式软件工程师却凭借其独特的行业优势和职业发展前景,成为了越老越吃香的群体。 他们不仅在薪资待遇上具有竞争力,而且在市场需求、行业发展潜力和职业发展空间等方面都展现出巨大的优势。
    发表于 02-20 10:19

    如何成为嵌入式开发工程师

    如何成为嵌入式开发工程师? 成为嵌入式开发工程师通常需要掌握一系列技能和知识,并且在实践中不断积累经验。以下是一些基本步骤和建议: 1. 基础教育:- 获取电子
    发表于 02-19 10:39

    低代码与传统开发区别 低代码与无代码开发区别

    软件开发领域,传统开发、低代码开发以及无代码开发是三种不同的开发方式,每种方式都有其独特的优势和适用场景。 一、低代码
    的头像 发表于 01-31 10:48 1054次阅读

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 956次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    嵌入式工程师常用的开发工具有哪些?

    仿真器可以模拟复杂的微控制器和外设,帮助工程师在早期阶段进行软件开发和调试。这大大缩短了开发周期,降低了开发成本。 总之,嵌入式工程师需要
    发表于 12-20 15:29