|
在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。 最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。 2 Z8 a3 [( q" `! X$ D; n8 L 在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器、平台到 { 是写在 if 的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。而其中「你用什么程序语言?」更是大家最热衷的一条鄙视链,所以对于刚踏入程序设计领域的初学者来 说,万一程序语言选得不好,可是会一开始就落入鄙视链的底层啊。 ; D5 S' p/ y9 u9 \7 p$ ] 软件工程师的鄙视链到底有多惨烈、多残酷呢?- R1 r" E) e; H ; w" t, q7 B' N 01、程序语言篇; O% Q, P0 i* x) J4 O9 ~ 懂Functional Programming 的工程师鄙视老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师鄙视会说「你这样写就不 OO 了啊」的工程师,会说「你这样写就不 OO 了啊」的工程师鄙视会说「哈?什么物件导向?不是把重复的 code 写成一个 function 就好了吗?」的工程师,会说「哈?什么物件导向?不是把重复的 code 写成一个 function 就好了吗?」的工程师鄙视把同一段 code 到处复制贴上的工程师,把同一段 code 到处复制贴上的工程师鄙视 PM。 6 L8 I4 _/ h9 v; |8 k% A 写静态语言的工程师鄙视写动态语言的工程师。, o: }8 {4 H0 c: K+ \3 ~ c4 X e : M9 I3 D0 y5 ~1 ~! ? 写组合语言的工程师鄙视写 C 语言的工程师,C 语言工程师鄙视 C++ 工程师,C++ 工程师鄙视 Java 和 C# 工程师,Java 工程师和 C# 工程师则互相鄙视,而 C# 工程师又鄙视 Visual Basic 工程师和会把 C# 念成「C 井」的工程师,会把 C# 念成「C 井」的工程师则鄙视认为 HTML 是一种程序语言的设计师。 * h. M- n0 W' F2 F2 L 用 Python 3 的工程师鄙视还在用 Python 2 的工程师,用 Python 2 的工程师鄙视遇到 UnicodeEncodeError 的工程师。
写 iOS 的工程师鄙视写 Android 的工程师,写 Android 的工程师鄙视写 Windows Phone 的工程师。4 D7 U# h& _2 u1 `$ \1 V 5 n" h- [7 a* b7 h" h 有 Swift 一年经验的工程师鄙视有 Objective-C 五年经验的工程师,写 Objective-C 的工程师鄙视用 PhoneGap 包装成 native app 的工程师。& w9 t9 K# i, W( t# L2 B 6 X3 i' c% w! {/ L 用 React.js 的工程师鄙视用 AngularJS 的工程师,用 AngularJS 的工程师鄙视用 jQuery 的工程师,用 jQuery 的工程师鄙视用 Vanilla JavaScript 的工程师,用 Vanilla JavaScript 的工程师鄙视 IE 的使用者。0 u, T' E- g: O1 g; k% A 2 N1 V6 l) k0 U4 |( a* p. k; i) | 会用 debugger 的工程师鄙视用 assert 的工程师,用 assert 的工程师鄙视只会 print () 的工程师;用 console.log () 来 debug 的工程师鄙视用 alert () 来 debug 的工程师。9 v" h+ K5 Z' w" W+ z ) R2 U. |$ j! f/ a8 `0 b# m 写 Ruby on Rails 的工程师鄙视所有使用其他语言的工程师。' L% m& U# L: l+ V 9 w. ^5 t( `6 I( m. S. P 什么?你说 Ruby?Ruby 只是 Ruby on Rails 的一套框架,才不是什么程序语言呢!0 t$ G7 u0 u' m; ]% ]% B# V" e/ o ( M1 T2 B4 ]: m9 X; `) v1 h 所有的工程师都鄙视 PHP 工程师。* ^3 m' q/ i- [; h5 y2 E 2、工具篇) R* G- i N h, G3 _9 |6 ? ( h) F4 A/ H/ G2 |. J( V! x 用 text editor 的工程师鄙视用 IDE 的工程师。/ R) P6 _* h* s- P 用 Vim 的工程师鄙视用 Emacs 的工程师,用 Emacs 的工程师鄙视用 Vim 的工程师,无论是用 Vim 或 Emacs 的工程师都鄙视所有用其他编辑器的工程师;用 Atom、Notepadd++、Sublime Text 的工程师鄙视用 Windows 记事本的工程师。 : h n/ F9 w3 g 用 Android Studio 或 IntelliJ IDEA 的工程师鄙视用 Eclipse 的工程师,用 Eclipse 的工程师鄙视用 NetBeans 的工程师。 ' ?% e( K+ B, d4 T$ X# A 用 Git 或 Mercurial 的工程师鄙视用 Subversion 的工程师,用 Subversion 的工程师鄙视用 Dropbox 来做版本控制的工程师,用 Dropbox 来做版本控制的工程师鄙视根本不知道什么叫做版本控制的工程师。
用 Zsh 的工程师鄙视用 Bash 的工程师,用 Bash 的工程师鄙视用 Cygwin 的工程师,用 Cygwin 的工程师鄙视用「命令提示字元」的工程师,用命令提示字元的工程师鄙视用 GUI 介面的工程师。. W* z" q3 F) Z: y: s 用 IRC 的工程师鄙视用 HipChat 的工程师,用 HipChat 的工程师鄙视用 Slack 的设计师。 ; S/ r/ y# Q8 U/ Z m* U7 m# g9 ] 用 reStructuredText 写文件的工程师鄙视用 Markdown 写文件的工程师,用 Markdown 写文件的工程师鄙视用 HTML 写文件的工程师,用 HTML 写文件的工程师鄙视不写文件的工程师,然后用 LaTeX 写文件的工程师鄙视所有工程师。* S/ p2 s: I/ M# v q* v$ S$ v E 用 Docker 来部署 server 的工程师鄙视用 Ansible 或 Puppet 来部署 server 的工程师,用 Ansible 或 Puppet 来部署 server 的工程师鄙视用 Fabric 来部署 server 的工程师,用 Fabric 来部署 server 的工程师鄙视手动 SSH 的工程师。0 }$ z. [8 p' J( Z) [ 3、OS 篇 用 Mac OS X 的工程师鄙视用 Linux 的工程师,用 Linux 的工程师鄙视用 Windows 的工程师。
用 Debian 的工程师瞧不起用 Ubuntu 的工程师,用 Ubuntu 的工程师瞧不起用非 LTS 版本的 Ubuntu 的工程师。 4、硬件篇 6 m' ^6 `6 p. I: ~ 用 MacBook Pro Retina 的工程师鄙视用 MacBook Air 的工程师,用 MacBook Air 的工程师鄙视用 ThinkPad 的工程师,然后用 Raspberry Pi 的工程师鄙视用 MacBook Pro Retina 的工程师。
用 Dvorak 键盘的工程师鄙视用 Mac 键盘的工程师,用 Mac 键盘的工程师鄙视用 QWERTY 键盘的工程师,用 QWERTY 键盘的工程师鄙视用手写板的设计师。 坐 Aeron 椅子的工程师鄙视坐普通办公椅的工程师,坐普通办公椅的工程师鄙视跟他一样做普通办公椅的 PM,然后站着写程序的工程师鄙视坐 Aeron 椅子的工程师。 5、职场篇 : ]/ L4 v* i+ h* L; V- g$ b 搞硬件的工程师鄙视搞软件的工程师。 , b+ n! d% Z( @1 s2 h- O 写 OS 的工程师鄙视写 Web 的工程师,写 Web 的工程师鄙视写 desktop application 的工程师。 5 j1 [' A) j! f2 P% }* ^ 后端工程师鄙视前端工程师。 工程师跟设计师互相鄙视。
5 o% o2 u9 A& Q+ _) K6 H, Z , S; ]+ f) k4 F0 `信奉 Test-Driven Development 的工程师鄙视先写 code 再补 tests 的工程师,先写 code 再补 tests 的工程师鄙视不写 tests 的工程师,不写 tests 的工程师鄙视又他妈乱改需求的 PM。) I$ ]3 v0 ?/ z1 P7 r & i/ U q2 @9 I* p 没有证照的工程师鄙视考了一堆证照的工程师。; H# Z! d2 e) z- L! h * w! d, Q4 ?% v2 |& O 上班穿休闲服的工程师鄙视上班穿西装的工程师,上班穿西装的工程师鄙视上班穿系服的工程师。 6、结束语$ s/ P9 z* I+ V9 u% ~3 d / V. R( R9 A4 B( C- O 如果你看了以上这些惨绝人寰的鄙视链之后,仍然没有击倒你想要学习 coding 的心,那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为软件工程师之后,就交不到女朋友了。 |
微信公众号
手机版