程序員里的鄙視鏈

2014年12月19日 10:31 來源:開源中國社區(qū) 作者:佚名 我要評論(0)

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

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

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

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

  程序語言篇

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

  寫靜態(tài)語言的工程師鄙視寫動態(tài)語言的工程師。

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

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

  寫iOS的工程師鄙視寫Android的工程師,寫Android的工程師鄙視寫WindowsPhone的工程師。

  有Swift一年經(jīng)驗(yàn)的工程師鄙視有Objective-C五年經(jīng)驗(yàn)的工程師,寫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的設(shè)計(jì)師。

  用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鍵盤的工程師鄙視用手寫板的設(shè)計(jì)師。

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

  職場篇

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

  寫OS的工程師鄙視寫Web的工程師,寫Web的工程師鄙視寫desktopapplication的工程師。

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

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

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

  沒有證照的工程師鄙視考了一堆證照的工程師。

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

  結(jié)束語

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