Developers are from Mars, programmers are from Venus, so where are coders from?

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

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

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

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

这里面至少包含两点。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

公众号内回复“1”带你进粉丝群!

你是开发工程师、程序员还是码农?相关推荐

  1. 恕我直言!千万别随便叫一个程序员为“码农”

    今天邻居家的大朋友找我做职业规划的时候,问了我一个很有意思的问题:为什么程序员会自嘲自己为码农? 这个问题也引起了我的好奇,不知从何时开始,这个圈子里不再以"软件工程师"自称,取而 ...

  2. 工程师、程序员、码农有什么区别?

    正常来讲工程师范围更加广泛,包括程序员,现在有硬件工程师,实施工程师,安装工程师等等都属于工程师的范畴,一般称呼程序员高大上的称呼软件工程师. 程序员这个称呼目前来讲最贴切,但是很多程序员又自称码农, ...

  3. 程序员和码农,有什么本质上的区别?

    常有人问,"那些只学了XX的人,编程能力都退化成什么样了?" 之前看到一个比喻,真的很赞同: 当土著拿到猎枪之后,他们射箭的技能退化严重,但因为食物更多了,厨艺有了长足的进展. 当 ...

  4. 2020程序员VS码农,“金三银四”春招指南

    从代码实现层面看,在功能刚开始开发时,这两个设计区别不是很大,但随着系统演进.越来越多的功能加入,继承关系带来的耦合会导致模块之间关系越来越复杂,牵一发而动全身,终究有一天哪怕只做很小的改动,也将成为 ...

  5. 用一句话证明你是优秀程序员!码农们的这些回答也太大脑洞了吧!

    作为一名程序员,一名技术人员,每个人都想做最优秀的那个,但是优秀这个词大家好理解,但是却又很难量化,什么是优秀的?关于优秀又是什么样一个标准,想必每个程序员的内心都有一个自己的标准,有的认为则是成为公 ...

  6. 程序员如何看待码农这个称谓?

    "编程是快乐的,一切的最后,殊途同归,追求的都是心灵的极限." 就目前来说,绝大多数人对程序员的认识都非常非常的不足.这一点甚至包括很多程序员自己.他们每天消极悲观,被迫加班,找不 ...

  7. “野生程序员”加入码农战队!新业态+低门槛正让“写代码”走向平民化

    互联网上流传着这样一段关于 "野生码农"的描写:他们没有专业学历背景,仅凭对计算机开发的兴趣就可以进入这个行业成为一名程序员,从前端开发到后台维护都能一手包揽,最快的时间仅仅只需要 ...

  8. 如果30岁后普通的程序员(码农)被辞退,还能从事什么工作?

    虽然程序员一直被视为高薪且有前途的职业,但并不是所有人都适合它.而且,即使您是充满热情的程序员,在某些情况下也可能会被辞退.那么,如果30岁后普通的程序员被辞退,还能从事什么工作呢? 1. 转型IT领 ...

  9. 写给立志做程序员(码农)的大学生

    作者: 果冻虾仁  来源: CSDN  发布时间: 2017-08-10 23:08  阅读: 32769 次  推荐: 158   原文链接   [收藏] 写给立志做码农的大学生 确定方向 选择比努 ...

最新文章

  1. Matplot pyplot绘制单图,多子图不同样式详解,这一篇就够了
  2. springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程
  3. 强化学习总结(3-4)——无模型的价值函数的预测,蒙特卡洛和TD时序差分方法
  4. pubmed影响因子插件_新版新版PubMed使用技巧2
  5. 如何在ASP.NET Core中编写自定义日志记录提供程序
  6. React传递参数的多种方式
  7. AX2012 学习自动生成编码
  8. 产业区块链:新基建中的底层技术基座,各行业资深人士应积极参与建设
  9. How to install VNC on Ubuntu
  10. 二叉树遍历的一些非递归算法
  11. ab st语言编程手册_罗克韦尔ab plc micrologix 1400 编程手册中文高清版 .pdf
  12. i7 8750h支持linux,i7-9750H和i7-8750H性能对比:差距仅5%,日常使用无区别
  13. springboot-全局异常处理器
  14. OSError: exception: access violation writing 0x0000000000000000
  15. 服务器如何防止DDoS攻击?
  16. 用shell脚本写的一个简单的计算器
  17. LeetCode笔记:Biweekly Contest 37 比赛记录
  18. c# Create Excel file and save as PDF
  19. 【备忘】2018年最新尚硅谷全套Java、Android、HTML5前端视频教程下载
  20. Python爬取猫眼电影数据并对其进行数据可视化

热门文章

  1. 4405. 统计子矩阵
  2. Android之RatingBar
  3. pycharm设置中文,字体颜色修改,设置背景图片(图文讲解)
  4. JdbcTempalte添加修改删除查询批量操作
  5. MTCNN开源训练(PNet训练)
  6. Angular入门到精通系列教程(6)- Angular的升级
  7. idea 的注释在格式化空格问题
  8. 地理坐标系、大地坐标系与地图投影与重投影详解
  9. 淘宝/天猫API,获得淘宝商品评论返回值说明(数据解析)
  10. 一个业务型算法工程师的技能清单