程序員里的鄙視鏈

2014年12月19日 10:31 來(lái)源:開(kāi)源中國(guó)社區(qū) 作者:佚名 我要評(píng)論(0)

標(biāo)簽:程序員(29779)

  最近這幾年在世界各地突然吹起了一股全民寫(xiě)程序的風(fēng)潮,連美國(guó)總統(tǒng)歐巴馬都在寫(xiě)JavaScript了,但是身為一介靠寫(xiě)程序(以及在上班時(shí)間胡亂上網(wǎng))來(lái)謀生的developer(所謂的developer就是“軟件工程師”的比較潮的說(shuō)法),想要提醒那些想學(xué)習(xí)寫(xiě)程序的人一件重要的事:慎選你的第一個(gè)程序語(yǔ)言。

  在軟件工程師(中國(guó)叫做“程序員”或“碼農(nóng)”)的圈子里,文人相輕的現(xiàn)象可是非常嚴(yán)重的,在程序設(shè)計(jì)的各個(gè)領(lǐng)域里都有著錯(cuò)綜復(fù)雜的“鄙視鏈”。從程序語(yǔ)言、編輯器、平臺(tái)到{是寫(xiě)在if的同一行還是下一行,不同陣營(yíng)的人都習(xí)慣鄙視來(lái)鄙視去。而其中“你用什么程序語(yǔ)言?”更是大家最熱衷的一條鄙視鏈,所以對(duì)于剛踏入程序設(shè)計(jì)領(lǐng)域的初學(xué)者來(lái)說(shuō),萬(wàn)一程序語(yǔ)言選得不好,可是會(huì)一開(kāi)始就落入鄙視鏈的底層啊。

  軟件工程師的鄙視鏈到底有多慘烈、多殘酷呢?

  程序語(yǔ)言篇

  懂FunctionalProgramming的工程師鄙視老是把設(shè)計(jì)模式掛在嘴邊的工程師,老是把設(shè)計(jì)模式掛在嘴邊的工程師鄙視會(huì)說(shuō)“你這樣寫(xiě)就不OO了啊”的工程師,會(huì)說(shuō)“你這樣寫(xiě)就不OK了啊”的工程師鄙視會(huì)說(shuō)“哈?什么物件導(dǎo)向?不是把重復(fù)的code寫(xiě)成一個(gè)function就好了嗎?”的工程師,會(huì)說(shuō)“哈?什么物件導(dǎo)向?不是把重復(fù)的code寫(xiě)成一個(gè)function就好了嗎?”的工程師鄙視把同一段code到處復(fù)制貼上的工程師,把同一段code到處復(fù)制貼上的工程師鄙視PM。

  寫(xiě)靜態(tài)語(yǔ)言的工程師鄙視寫(xiě)動(dòng)態(tài)語(yǔ)言的工程師。

  寫(xiě)組合語(yǔ)言的工程師鄙視寫(xiě)C語(yǔ)言的工程師,C語(yǔ)言工程師鄙視C++工程師,C++工程師鄙視Java和C#工程師,Java工程師和C#工程師則互相鄙視,而C#工程師又鄙視VisualBasic工程師和會(huì)把C#念成“C井”的工程師,會(huì)把C#念成“C井”的工程師則鄙視認(rèn)為HTML是一種程序語(yǔ)言的設(shè)計(jì)師。

  用Python3的工程師鄙視還在用Python2的工程師,用Python2的工程師鄙視遇到UnicodeEncodeError的工程師。

  寫(xiě)iOS的工程師鄙視寫(xiě)Android的工程師,寫(xiě)Android的工程師鄙視寫(xiě)WindowsPhone的工程師。

  有Swift一年經(jīng)驗(yàn)的工程師鄙視有Objective-C五年經(jīng)驗(yàn)的工程師,寫(xiě)Objective-C的工程師鄙視用PhoneGap包裝成nativeapp的工程師。

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

  會(huì)用debugger的工程師鄙視用assert的工程師,用assert的工程師鄙視只會(huì)print()的工程師;用console.log()來(lái)debug的工程師鄙視用alert()來(lái)debug的工程師。

  寫(xiě)RubyonRails的工程師鄙視所有使用其他語(yǔ)言的工程師。

  什么?你說(shuō)Ruby?Ruby只是RubyonRails的一套框架,才不是什么程序語(yǔ)言呢!

  所有的工程師都鄙視PHP工程師。

  工具篇

  用texteditor的工程師鄙視用IDE的工程師。

  用Vim的工程師鄙視用Emacs的工程師,用Emacs的工程師鄙視用Vim的工程師,無(wú)論是用Vim或Emacs的工程師都鄙視所有用其他編輯器的工程師;用Atom、Notepadd++、SublimeText的工程師鄙視用Windows記事本的工程師。

  用AndroidStudio或IntelliJIDEA的工程師鄙視用Eclipse的工程師,用Eclipse的工程師鄙視用NetBeans的工程師。

  用Git或Mercurial的工程師鄙視用Subversion的工程師,用Subversion的工程師鄙視用Dropbox來(lái)做版本控制的工程師,用Dropbox來(lái)做版本控制的工程師鄙視根本不知道什么叫做版本控制的工程師。

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

  用IRC的工程師鄙視用HipChat的工程師,用HipChat的工程師鄙視用Slack的設(shè)計(jì)師。

  用reStructuredText寫(xiě)文件的工程師鄙視用Markdown寫(xiě)文件的工程師,用Markdown寫(xiě)文件的工程師鄙視用HTML寫(xiě)文件的工程師,用HTML寫(xiě)文件的工程師鄙視不寫(xiě)文件的工程師,然后用LaTeX寫(xiě)文件的工程師鄙視所有工程師。

  用Docker來(lái)部署server的工程師鄙視用Ansible或Puppet來(lái)部署server的工程師,用Ansible或Puppet來(lái)部署server的工程師鄙視用Fabric來(lái)部署server的工程師,用Fabric來(lái)部署server的工程師鄙視手動(dòng)SSH的工程師。

  OS篇

  用MacOSX的工程師鄙視用Linux的工程師,用Linux的工程師鄙視用Windows的工程師。

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

  硬件

  用MacBookProRetina的工程師鄙視用MacBookAir的工程師,用MacBookAir的工程師鄙視用ThinkPad的工程師,然后用RaspberryPi的工程師鄙視用MacBookProRetina的工程師。

  用Dvorak鍵盤(pán)的工程師鄙視用Mac鍵盤(pán)的工程師,用Mac鍵盤(pán)的工程師鄙視用QWERTY鍵盤(pán)的工程師,用QWERTY鍵盤(pán)的工程師鄙視用手寫(xiě)板的設(shè)計(jì)師。

  坐Aeron椅子的工程師鄙視坐普通辦公椅的工程師,坐普通辦公椅的工程師鄙視跟他一樣做普通辦公椅的PM,然后站著寫(xiě)程序的工程師鄙視坐Aeron椅子的工程師。

  職場(chǎng)篇

  搞硬件的工程師鄙視搞軟件的工程師。

  寫(xiě)OS的工程師鄙視寫(xiě)Web的工程師,寫(xiě)Web的工程師鄙視寫(xiě)desktopapplication的工程師。

  后端工程師鄙視前端工程師。

  工程師跟設(shè)計(jì)師互相鄙視。

  信奉Test-DrivenDevelopment的工程師鄙視先寫(xiě)code再補(bǔ)tests的工程師,先寫(xiě)code再補(bǔ)tests的工程師鄙視不寫(xiě)tests的工程師,不寫(xiě)tests的工程師鄙視又他媽亂改需求的PM。

  沒(méi)有證照的工程師鄙視考了一堆證照的工程師。

  上班穿休閑服的工程師鄙視上班穿西裝的工程師,上班穿西裝的工程師鄙視上班穿系服的工程師。

  結(jié)束語(yǔ)

  如果你看了以上這些慘絕人寰的鄙視鏈之后,仍然沒(méi)有擊倒你想要學(xué)習(xí)coding的心,那我必須提醒你一件最重要的事:先去交一個(gè)女朋友,再來(lái)學(xué)寫(xiě)程序;因?yàn)橐坏┠愠蔀檐浖こ處熤?,就交不到女朋友了?/p>