你看那个人,格子衫,双肩包,秃头……

 

【程序员上下50年】程序员:诸神之战

 

是个程序员没跑了。

才怪!

因为程序员跟程序员也是不同的!

 

【程序员上下50年】程序员:诸神之战

 

 

  • 我想让你看啥,你就得看啥!

 

比如他们,他们决定了我们能看到什么样的内容。我们作为普通用户能看到、能操作的所有东西都是拜他们所赐。他们叫做前端工程师,善用HTML、CSS、JavaScript、Flash等技术。如果开一家餐厅,他们就是服务生、收银员、装修队,决定了这家餐厅装修、格调、氛围、环境 的具体实现。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 好好跟我讲话,不然抹了你的数据!

 

有前端,自然也有“后端”。服务器开发工程师决定着我们能得到什么样的内容。各种数据都是他们帮忙保存好的,负责帮我们处理数据的也是他们。他们是餐厅厨师,你吃到满汉全席还是咸菜土豆,全在他们一念之间。

【程序员上下50年】程序员:诸神之战

 

 

  • 我规定的,咋了?

 

下面登场的这群人就有点抽象了。他们更多的工作内容是在建模,他们需要将各种现实问题抽象成一个个的数学模型,然后再选择合适的算法来解决这个问题。没错,他们就是算法工程师。他们是规则的制定者,他们不光懂得如何用最少最便宜的食材做成最美味的菜肴,还一并规定了餐厅中的各项服务标准。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 这个别放这儿,放那边儿!

 

不管什么程序,数据必然是重中之重,数据库的地位也不言而喻。有这样一群人,他们运维管理着数据库管理系统,他们叫做数据库管理员(DBA)。俗话说的好:巧妇难为无米之炊。他们掌握着菜窖的钥匙,为厨师提供最干净、最完美、最准确的食材。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 我康康,又有新鲜的数据来了?

 

既然数据是很重要,那么数据怎么来的就要问问大数据开发工程师了。他们从事大数据采集、清洗、分析、治理、挖掘等技术研究,并加以利用、管理、维护和服务。在餐厅里最贴切的工作应该就是采购了,所有的食材都是他们跑遍了全世界菜市场才买到手的。在大量采购经验的加持下,他们还会将这些食材经过筛选和优化。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 这样太浪费了,得重来!

 

也许只靠上面这群人,已经可以完成一个项目了。但需要有人操心整个服务的高可用性、部署效率、资源利用率,操心这些的人就是运维工程师。操心的他们理所应当的做上了餐厅的后勤,无论锅碗瓢盆哪个摔了,还是煤气空调哪里坏了,就连卫生环境,他们也都一并承担下来。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 这边可以了,那边不行!

 

一个项目需要有一个灵魂,这个灵魂就是系统架构师。他们需要最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点。他们主导这家餐厅的选址、装修、定位,由整个团队将他们构想的餐厅模样最终实现。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 你这BUG咋回事儿啊,小老弟?

 

在程序正式跟我们见面之前,还要经过测试工程师的检查。他们需要对产品的功能进行测试,检查软件有没有bug,测试软件是否具有稳定性、安全性、易操作性。他们承担了试菜的重任,不光是口味的问题,食物中毒也得他们来处理。

 

【程序员上下50年】程序员:诸神之战

 

 

  • 防止内讧:移动端万岁!

 

最后出场的是一对相爱相杀的程序员——IOS工程师Android工程师。他们专注于移动端,从系统到应用,从开发到优化。除了语言之外,他们还得对平台有足够深刻的理解。对一家餐厅而言,这就是两家分店。

 

【程序员上下50年】程序员:诸神之战

 

 

当然,这只是从工作内容这一个角度出发的区分。

 

要是按照别的标准来区分。

比如,有女朋友的没有女朋友的……

 

【程序员上下50年】程序员:诸神之战

 

光棍节已过,该脱单了!
 

【程序员上下50年】程序员:诸神之战