程序员里的鄙视链

2014年12月19日 10:31 来源:开源中国社区 作者:佚名 我要评论(0)

标签:程序员(29472)

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

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

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

  程序语言篇

  懂FunctionalProgramming的工程师鄙视老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师鄙视会说“你这样写就不OO了啊”的工程师,会说“你这样写就不OK了啊”的工程师鄙视会说“哈?什么物件导向?不是把重复的code写成一个function就好了吗?”的工程师,会说“哈?什么物件导向?不是把重复的code写成一个function就好了吗?”的工程师鄙视把同一段code到处复制贴上的工程师,把同一段code到处复制贴上的工程师鄙视PM。

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

  写组合语言的工程师鄙视写C语言的工程师,C语言工程师鄙视C++工程师,C++工程师鄙视Java和C#工程师,Java工程师和C#工程师则互相鄙视,而C#工程师又鄙视VisualBasic工程师和会把C#念成“C井”的工程师,会把C#念成“C井”的工程师则鄙视认为HTML是一种程序语言的设计师。

  用Python3的工程师鄙视还在用Python2的工程师,用Python2的工程师鄙视遇到UnicodeEncodeError的工程师。

  写iOS的工程师鄙视写Android的工程师,写Android的工程师鄙视写WindowsPhone的工程师。

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

  用React.js的工程师鄙视用AngularJS的工程师,用AngularJS的工程师鄙视用jQuery的工程师,用jQuery的工程师鄙视用VanillaJavaScript的工程师,用VanillaJavaScript的工程师鄙视IE的使用者。

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

  写RubyonRails的工程师鄙视所有使用其他语言的工程师。

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

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

  工具篇

  用texteditor的工程师鄙视用IDE的工程师。

  用Vim的工程师鄙视用Emacs的工程师,用Emacs的工程师鄙视用Vim的工程师,无论是用Vim或Emacs的工程师都鄙视所有用其他编辑器的工程师;用Atom、Notepadd++、SublimeText的工程师鄙视用Windows记事本的工程师。

  用AndroidStudio或IntelliJIDEA的工程师鄙视用Eclipse的工程师,用Eclipse的工程师鄙视用NetBeans的工程师。

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

  用Zsh的工程师鄙视用Bash的工程师,用Bash的工程师鄙视用Cygwin的工程师,用Cygwin的工程师鄙视用“命令提示字元”的工程师,用命令提示字元的工程师鄙视用GUI介面的工程师。

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

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

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

  OS篇

  用MacOSX的工程师鄙视用Linux的工程师,用Linux的工程师鄙视用Windows的工程师。

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

  硬件

  用MacBookProRetina的工程师鄙视用MacBookAir的工程师,用MacBookAir的工程师鄙视用ThinkPad的工程师,然后用RaspberryPi的工程师鄙视用MacBookProRetina的工程师。

  用Dvorak键盘的工程师鄙视用Mac键盘的工程师,用Mac键盘的工程师鄙视用QWERTY键盘的工程师,用QWERTY键盘的工程师鄙视用手写板的设计师。

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

  职场篇

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

  写OS的工程师鄙视写Web的工程师,写Web的工程师鄙视写desktopapplication的工程师。

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

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

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

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

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

  结束语

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