工程师、程序员和码农
Kaffa 发布于
新开“研发”和“编程”栏目
从长期主义视角出发,思考再三,将原本规划到独立站点的研发和编程内容放入此站。
增加了“研发”和“编程”新栏目,定位是:
- 研发:内容包含研发活动,内部和外部,比如软件工程、研发流程
- 编程:主要内容包含编程本身及关联活动。
本来这两者之间没有明显差别,会视内容侧重后决定分类。
《笠翁对韵》有云
云对雨,雪对风,晚照对晴空。 来鸿对去燕,宿鸟对鸣虫。
在 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