程序员、软件工程师和码农


Author: Kimmy

⚠本文观点过于主观,如果介意请谨慎阅读。

程序员、软件工程师和码农。

这是我最近在听到的几个关于这个行业最基本的职业的称呼的争论点,我也两次在不同的群里跟两波网友争论过这种事情。

首先是程序员和软件工程师之争。

很多人认为,软件工程师因为涉足了工程学领域就高人一等了,就不是“专注于底层”的“程序员”了,就是组合和复用工具的“工程人员了”。这显然是给自己的无能找借口。

软件工程师这个称呼是在软件复杂度到达一定规模以后才出现的,也就是有了“软件工程”的概念以后。但“工程师”并不意味着就非得是砌砖和设计大楼这种区别。当一个所谓的“工程师”其基本功不扎实,也没有办法做到应对该有的复杂度。所以“软件工程师”这个称呼是软件行业工业化之后的一个标准称呼,但通常是对于领域方面后划分以后才出现的。因为“软件工程师”所对应的是其他方面的“工程师”,但这个概念跟“程序员”并不冲突。因为很简单,程序员也是创造软件的人(a person who creates computer software)。

所以在我看来,那些试图割裂“程序员”和“软件工程师”所指代的群体的人,就是在暴露自己的能力和认知问题。跟一些朋友交流的时候也提到,一些技术方面的划分导致工种的划分,也已经算是割裂行业了。而在技术和工种都没区别的情况下,还尝试区别称呼和对待,要么是自我和对别人的认知不够,要么就是觉得自己的某些缺陷导致与别人不配相称。这两种观点都是问题很大的。

其次是程序员和码农。

这里来自一个网友称呼行业人为“码农”这个行为。何为码农,按英文字面意思是coder,也就是coding的人,再进一步说白了就是打字员。这与前一个之前的区别就是过度看低了这个行业和这个职位所创造的价值。为什么程序员被称为程序员,是因为程序员(programmer,字面意思是“规划者”)也是在规划(programme)很多东西:如何把复杂的问题break down,如何组织和演化程序的执行逻辑等等。程序员就是一个分析问题、规划并实现方案的一个职业,而这个规划的产物并不是简单的代码,更多的是代码层面上反应系统逻辑的内容。所以如果一个人只是在觉得自己是码打码的人(coder),那只能说明他连基础的分析能力和规划能力都没有了。这种人确实在行业中也常见,但要硬说这些人能代表这样一个整体群体就实在是过分了。如果真的觉得这是一个现象,我觉得要做的应该是考虑怎么来提升这些人的能力;或者是如何提升行业的门槛让这些人滚出去。而不是一棍子打死,给这样一个对综合能力要求很高的行业一个蔑称。

我个人习惯使用“程序员”来称呼这样一个职业,如果是涉及到某项特定的技术或者平台,则会用“某某开发者”(developer)来称呼。除非是非常贴近工业或者是涉及到与软件工程的话题,否则几乎不用“软件工程师”。

至于某些特定公司用的title,如果不是非商务场合下,能少用就少用。比如被用滥了的“架构师”和被某些企业给污染了的“技术专家”,现在听到都觉得尴尬。

以上。

创建时间:2020-12-06 最近更新时间:2023-11-03