程序员和工程师有什么不一样? | 我要找工作
![程序员和工程师有什么不一样?](https://i.imgur.com/sLIY79K.jpg)
等我工作久了,才知道“程序员”和“工程师”真的是不一样的——程序员只写程序,工程师写能在现实世界中创造价值的程序。可惜,很多软件开发人员未必清楚两者的差别,甚至做了 ...
![程序员和工程师有什么不一样?](https://i.imgur.com/sLIY79K.jpg)
我刚刚工作的时候,面试官曾经跟我说:好好干两年,可以迅速从程序员成长为工程师。当时我觉得太诧异了,从很多招聘启事来看,“程序员”不就等于“工程师”吗,只是“工程师”更好听一些而已。等我工作久了,才知道“程序员”和“工程师”真的是不一样的——程序员只写程序,工程师写能在现实世界中创造价值的程序。
可惜,很多软件开发人员未必清楚两者的差别,甚至做了很久也只算程序员而不算严格意义上的工程师。所以我就自己的观察和经验,谈谈程序员和工程师的差别。
第一、工程师不写黑箱程序“程序=数据结构+算法”,这个著名的公式大家都知道,不幸的是,它不适合描述工程领域或者现实世界的程序。有很多程序,数据结构和算法都写得很棒,功能足够强大,系统足够复杂,但是——它很难调试,一跑起来就无法停止,而且谁也不知道程序现在到底在干什么,里面发生了什么。
别觉得好笑,我遇到过很多工作三四年甚至五六年的开发人员,仍然不停地生产黑箱程序:出现问题的第一反应是直接杀掉进程重启(天哪你们的程序不能安全关闭吗)。当然还有更生猛的,直接用开发机连上生产数据库(防火墙上开个洞)去调试。
你说他们技术不好吗?明明各种技术问题也能搞定。你说他们没有系统意识?做过的程序也不简单。但是,他们做的充其量只能叫“程序”,而不是工程上成熟的“系统”。
怎样的程序不是黑箱?你需要考虑它的层次划分,你需要考虑哪些(功能之外的)运行信息必须暴露和记录,以什么方式暴露记录,你甚至还需要考虑这些暴露和记录对性能的影响,以及程序需要对外提供什么操纵接口……当你把这一切都考虑清楚,写出能够让运行细节“尽在掌握中”的程序的时候,你的一条腿就迈进了“工程”的大门。
这方面,互联网和软件开发的大厂会更加关注一些,但也不是说个人就毫无追求的空间了。网络爬虫大家都会写,大家也都知道如果要数据抓得准,调试起来很麻烦。我有个朋友在某大厂写过一套“可视化”的爬虫,可以用逐步操纵语句的执行,迅速定位问题所在。这种水平的工程师,属于可遇而不可求的类型,每次说起来大家仍然啧啧称赞。
第二、工程师...「程序工程師」找工作職缺-2023年1月 | 我要找工作
程序员和工程师有什么不一样? | 我要找工作
程序员和软件工程师的区别在哪里? | 我要找工作
程序員 | 我要找工作
程序員和工程師有什麼不一樣? | 我要找工作
程序員煉成記:從小白到工程師 | 我要找工作
软件工程师 | 我要找工作
![](https://i.imgur.com/sLIY79K.jpg)
台北市職缺 - 威虹資訊股份有限公司全職程序員
威虹資訊股份有限公司開出程序員職缺1 名,主要工作內容有:1.對程式設計有熱情2.熟悉網路系統開發工具3.負責應用程序的設計...