工程师、程序员和码农

Kaffa 发布于

分类: 研发 标签: Development Programming

新开「研发」和「编程」栏目

从长期主义视角出发,思考再三,将原本规划到独立站点的研发和编程内容放入此站。

增加了「研发」和「编程」新栏目,定位是:

  • 研发:内容包含研发活动,内部和外部,比如软件工程、研发流程
  • 编程:主要内容包含编程本身及关联活动。

本来这两者之间没有明显差别,会视内容侧重后决定分类。

『笠翁对韵』有云

云对雨,雪对风,晚照对晴空。
来鸿对去燕,宿鸟对鸣虫。

在 IT 界中,程序员的称谓,也有着不一样的对韵。

码农的是:

C对V,赶对吹,代码对注释。
rm对rf,drop对purge,删库对跑路。

程序员的是:

一对零,堆对栈,列表对字典。
分配对释放,穷举对剪枝。

工程师的是:

预对估,分对拆,重写对重构。
开发对测试,项目对产品。

工程师、程序员和码农 vs 研发、编程和编码

称谓的差异背后是角色不同,代表工作或行为背后的的目的和责任不同。初看完一个笑话,但仔细想想,除开码农这个戏谑的称谓,工程师和程序员的工作内容是有大量重合。

  • 工程师:主要负责搞定程序研发这件事,有对工程成败的责任;
  • 程序员:主要负责搞定程序;
  • 码农:负全责。

在不同职业阶段,可能你也做过这些角色。坦率地说,当你的主要视角集中在事上时,一般,你就是个工程师没准了;主要视角是写程序,那你是个程序员;当你不带视角,或者以为你的视角是事或者写程序时,那你肯定是个码农无疑了。

工程师负责研发,会开发软件硬件,会编程,但编码往往只占 20% 工作时间,其余的时间会做决(mo)策(yu);程序员负责设计和编程,编码往往占 20% 工作时间,其余的时间在测(mo)试(yu),但所有编程的问题由程序和搞定;码农主要负责敲代码,编码往往占 80% 工作时间,其余 10% 时间在思考编码,剩余 10% 在思考或假设 GF 的事。(你也看出来了,这里是个笑话。)

那么,你想做一名攻城狮、程序猿或是马农呢?有诗云:施氏食狮史,季姬击鸡记,产品汪改改,新猿一码农。其实,我国人社有发:『从事信息传输、软件和信息技术服务业的新生代农民工占比大幅提高』的说法。无论从逻辑上怎么理解,软件在我国,只有少量能属于工业,大量都是属于服务业,按照上游的约定,将业务用代码描述出来罢了,大部分狮不用考虑业务量变带来的质变,因为想考虑也考虑不了,那是少部分塔顶狮的不传之秘。

当一个人做事时,项目其实不重要,工程师、程序员都光辉都褪去了,剩下你自己,其实就是自己负全责的牛车水马龙。

我想,英文国家的人即使借助翻译也很难弄懂本文,比如码农的翻译,其实用 coders 更好,但没有表达出中文语境的双关,而 slug 中用的 code farmers 也不准确, farmer 的意思是农场主,而更接近的意思其实是 code peasants。但现代其实很少使用 peasant,尤其在英文语境。因此 slug 最终选定了 code farmers

图片版权备注

Image by macrovector on Freepik