标签:print and oid abr ipc sts c# 设计 bug
最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写JavaScript了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的developer(所谓的developer就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。
在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器、平台到{是写在if的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。而其中「你用什么程序语言?」更是大家最热衷的一条鄙视链,所以对于刚踏入程序设计领域的初学者来说,万一程序语言选得不好,可是会一开始就落入鄙视链的底层啊。
软件工程师的鄙视链到底有多惨烈、多残酷呢?
程序语言篇
懂FunctionalProgramming的工程师鄙视老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师鄙视会说「你这样写就不OO了啊」的工程师,会说「你这样写就不OO了啊」的工程师鄙视会说「哈?什么物件导向?不是把重复的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的心,那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为软件工程师之后,就交不到女朋友了。
标签:print and oid abr ipc sts c# 设计 bug
原文地址:http://www.cnblogs.com/huangyoum/p/6209402.html