最近这几年界各地突然吹起了一股全民写程序的风潮,连美国总统欧巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。
在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可常严重的,在程序设计的各个领域里都有着错综复杂的「链」。从程 序语言、编辑器、平台到 { 是写在 if 的同一行还是下一行,不同阵营的人都习惯来去。而其中「你用什么程序语言?」更是大家最热衷的一条链,所以对于刚踏入程序设计领域的初学者来 说,万一程序语言选得不好,可是会一开始就落入链的底层啊。
软件工程师的链到底有多惨烈、多呢?
懂 Functional Programming 的工程师老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师会说「你这样写就不 OO 了啊」的工程师,会说「你这样写就不 OO 了啊」的工程师会说「哈?什么物件导向?不是把重复的 code 写成一个 function 就好了吗?」的工程师,会说「哈?什么物件导向?不是把重复的 code 写成一个 function 就好了吗?」的工程师把同一段 code 到处复制贴上的工程师,把同一段 code 到处复制贴上的工程师 PM。
写静态语言的工程师写动态语言的工程师。
写组合语言的工程师写 C 语言的工程师,C 语言工程师 C++ 工程师,C++ 工程师 Java 和 C# 工程师,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 的工程师所有使用其他语言的工程师。
什么?你说 Ruby?Ruby 只是 Ruby on Rails 的一套框架,才不是什么程序语言呢!
所有的工程师都 PHP 工程师。
用 MacBook Pro Retina 的工程师用 MacBook Air 的工程师,用 MacBook Air 的工程师用 ThinkPad 的工程师,然后用 Raspberry Pi 的工程师用 MacBook Pro Retina 的工程师。
用 Dvorak 键盘的工程师用 Mac 键盘的工程师,用 Mac 键盘的工程师用 QWERTY 键盘的工程师,用 QWERTY 键盘的工程师用手写板的设计师。
坐 Aeron 椅子的工程师坐普通办公椅的工程师,坐普通办公椅的工程师跟他一样做普通办公椅的 PM,然后站着写程序的工程师坐 Aeron 椅子的工程师。
搞硬件的工程师搞软件的工程师。
写 OS 的工程师写 Web 的工程师,写 Web 的工程师写 desktop application 的工程师。
后端工程师前端工程师。
工程师跟设计师互相。
Test-Driven Development 的工程师先写 code 再补 tests 的工程师,先写 code 再补 tests 的工程师不写 tests 的工程师,不写 tests 的工程师又他妈乱改需求的 PM。
没有证照的工程师考了一堆证照的工程师。
上班穿休闲服的工程师上班穿西装的工程师,上班穿西装的工程师上班穿系服的工程师。
如果你看了以上这些的链之后,仍然没有击倒你想要学习 coding 的心,那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为软件工程师之后,就交不到女朋友了。
本文最初发表在vinta.ws,文章内容属作者个人观点,不代表本站立场。
文章转载自:开源中国社区[本文标题:程序员的链本文地址