首页 > 代码库 > 软件工程师的鄙视链

软件工程师的鄙视链

最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写JavaScript了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的developer(所谓的developer就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。

在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器、平台到是写在if的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。而其中「你用什么程序语言?」更是大家最热衷的一条鄙视链,所以对于刚踏入程序设计领域的初学者来说,万一程序语言选得不好,可是会一开始就落入鄙视链的底层啊。

软件工程师的鄙视链到底有多惨烈、多残酷呢?

程序语言篇

Functional Programming的工程师鄙视老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师鄙视会说「你这样写就不OO了啊」的工程师,会说「你这样写就不OO了啊」的工程师鄙视会说「蛤?什么面向对象?不是把重复的code写成一个function就好了吗?」的工程师,会说「蛤?什么面向对象?不是把重复的code写成一个function就好了吗?」的工程师鄙视把同一段code到处复制贴上的工程师,把同一段code到处复制贴上的工程师鄙视PM

写静态语言的工程师鄙视写动态语言的工程师。

写汇编语言的工程师鄙视写C语言的工程师,C语言工程师鄙视C++工程师,C++工程师鄙视JavaC#工程师,Java工程师和C#工程师则互相鄙视,而C#工程师又鄙视Visual Basic工程师和会把C#念成「C井」的工程师,会把C#念成「C井」的工程师则鄙视认为HTML是一种程序语言的设计师。

Python 3的工程师鄙视还在用Python 2的工程师,用Python 2的工程师鄙视遇到UnicodeEncodeError的工程师。

iOS的工程师鄙视写Android的工程师,写Android的工程师鄙视写Windows Phone的工程师。

Swift一年经验的工程师鄙视有Objective-C五年经验的工程师,写Objective-C的工程师鄙视用PhoneGap包装成native app的工程师。

React.js的工程师鄙视用AngularJS的工程师,用AngularJS的工程师鄙视用jQuery的工程师,用jQuery的工程师鄙视用Vanilla JavaScript的工程师,用Vanilla JavaScript的工程师鄙视IE的用户。

会用debugger的工程师鄙视用assert的工程师,用assert的工程师鄙视只会print()的工程师;用console.log()debug的工程师鄙视用alert()debug的工程师。

Ruby on Rails的工程师鄙视所有使用其他语言的工程师。

什么?你说RubyRuby只是Ruby on Rails的一套框架,才不是什么程序语言呢!

所有的工程师都鄙视PHP工程师。

工具篇

用text editor的工程师鄙视用IDE的工程师。

Vim的工程师鄙视用Emacs的工程师,用Emacs的工程师鄙视用Vim的工程师,无论是用VimEmacs的工程师都鄙视所有用其他编辑器的工程师;用AtomNotepad++Sublime Text的工程师鄙视用Windows记事本的工程师。

Android StudioIntelliJ IDEA的工程师鄙视用Eclipse的工程师,用Eclipse的工程师鄙视用NetBeans的工程师。

程序代码用space缩排的工程师鄙视用tab缩排的工程师,用tab缩排的工程师鄙视混用spacetab来缩排的工程师。

GitMercurial的工程师鄙视用Subversion的工程师,用Subversion的工程师鄙视用Dropbox来做版本控制的工程师,用Dropbox来做版本控制的工程师鄙视根本不知道什么叫做版本控制的工程师。

知道GitHub的工程师鄙视不知道GitHub的工程师;在GitHubprivate repo的工程师鄙视为了免费的private repo而去用BitBucket的工程师。

Zsh的工程师鄙视用Bash的工程师,用Bash的工程师鄙视用Cygwin的工程师,用Cygwin的工程师鄙视用「命令提示字符」的工程师,用命令提示字符的工程师鄙视用GUI接口的工程师。

IRC的工程师鄙视用HipChat的工程师,用HipChat的工程师鄙视用Slack的设计师和PM

用reStructuredText写文件的工程师鄙视用Markdown写文件的工程师,用Markdown写文件的工程师鄙视用HTML写文件的工程师,用HTML写文件的工程师鄙视不写文件的工程师,然后用LaTeX写文件的工程师鄙视所有工程师。

Nginx的工程师鄙视用Apache的工程师,用Apache的工程师鄙视用IIS的工程师。

用Spark的工程师鄙视用Hadoop的工程师,用Hadoop的工程师鄙视用Hadoop处理只有几GB数据的工程师,用Hadoop处理只有1GB数据的工程师鄙视用NoSQL的工程师,用NoSQL的工程师鄙视用关系数据库的工程师,用关系数据库的工程师鄙视用ExcelPM

Docker来部署server的工程师鄙视用AnsiblePuppet来部署server的工程师,用AnsiblePuppet来部署server的工程师鄙视用Fabric来部署server的工程师,用Fabric来部署server的工程师鄙视手动SSH的工程师。

OS

Mac OS X的工程师鄙视用Linux的工程师,用Linux的工程师鄙视用Windows的工程师。

Debian的工程师瞧不起用Ubuntu的工程师,用Ubuntu的工程师瞧不起用非LTS版本的Ubuntu的工程师。

硬件篇

MacBook Pro Retina的工程师鄙视用MacBook Air的工程师,用MacBook Air的工程师鄙视用ThinkPad的工程师,然后用Raspberry Pi的工程师鄙视用MacBook Pro Retina的工程师。

Dvorak键盘的工程师鄙视用Mac键盘的工程师,用Mac键盘的工程师鄙视用QWERTY键盘的工程师,用QWERTY键盘的工程师鄙视鄙视不知道QWERTY键盘是什么的工程师,不知道QWERTY键盘是什么的工程师鄙视用手写板的设计师。

Aeron椅子的工程师鄙视坐普通办公椅的工程师,坐普通办公椅的工程师鄙视跟他一样做普通办公椅的PM,然后站着写程序的工程师鄙视坐Aeron椅子的工程师。

职场篇

搞硬件的工程师鄙视搞软件的工程师。

OS的工程师鄙视写Web的工程师,写Web的工程师鄙视写desktop application的工程师。

后端工程师鄙视前端工程师。

工程师跟设计师互相鄙视。

信奉Test-Driven Development工程师鄙视先写code再补tests的工程师,先写code再补tests的工程师鄙视不写tests的工程师,不写tests的工程师鄙视又他妈乱改需求的PM

没有证照的工程师鄙视考了一堆证照的工程师。

上班穿休闲服的工程师鄙视上班穿西装的工程师,上班穿西装的工程师鄙视上班穿系服的工程师。

———

如果你看了以上这些惨绝人寰的鄙视链之后,仍然没有击倒你想要学习coding的心,那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为软件工程师之后,就交不到女朋友了。 

本文转自:http://www.spasvo.com/news/html/20141223155042.html

软件工程师的鄙视链