程序員有流派嗎?

像成了名的劍俠 都有什麼 撥刀流,二刀流,不知火流忍術。。。
沒見哪個程序員高手 有什麼流派的啊, 你能不能 瞎編幾個 給我看看
copy派 ctrlCV流


轉一個不瞎編的C++流派:

1. 經典C++流:類是核心,常式多用C Runtime的,很少用模版,一般是正統教育的結果。
2. 古典C流:基本上當C用,偶爾用用對象,不使用異常,喜歡懷舊。
3. MFC流:秉承MFC的風格,主要使用MFC/ATL對象和Win32 API,不喜歡STL,用很多的宏把IDE的語法提示模塊折磨到崩潰。
4. Portable流:以C Runtime和STL為主要工具,使用類和模版,不跨平台毋寧死。
5. Functional流:以模版和STL為主要武器,大量使用函數式語言的設計方法,並號稱這才是真正的C++。
6. Win32流:多使用全局函數,偏愛Win32 API,但不排斥C Runtime,通常喜歡輕量級的程序,所以身材也比較苗條。
7. Java流:全面使用Java的風格,不能容許任何全局成員,但允許使用STL的集合類,寫很多叫Factory的類。
8. COM流:喜歡AddRef()和Release(),大量使用介面,隱藏一切可以隱藏的東西,誦經的時候要把上帝替換成COM。
9. 戒律流:追求完美的C++程序,計較每一個const和throw(),極力避免不安全的cast,隨身一定要帶一本ISO C++手冊。
10. 混沌流:其程序無常形,無恆道,變幻莫測,吾不知其名。


第一種分法:
1. 科班出身專業派
2. 青鳥達內速成派
3. 半路出家自學派

第二種分法:
1. GMFBAT派
2. 普通公司派
3. 自給自足派

第三種分法:
1. 言必談互聯網逼格派
2. 苦逼行業軟體開發派
3. 啥子都干過的雜貨派

第四種分法:
1. 扯起虎皮作大旗的公知派
2. 請你去看我的書的專家派
3. 談風月不談專業的八卦派

第五種分法:
1. 年薪百萬或掙美刀派
2. 月薪15K我該去嗎派
3. 我掙多少關你鳥事派

我是33333

-----------------我是分割線--------------------
第六種分法:
1. 高手都用Notepad寫機器碼派
2. VIM大法好Emacs也湊合派
3. VS/Eclipse真TM爽偷著樂派

第七種分法:
1. 言必談演算法編譯操作系統派
2. 教科書上的從沒用到過耶派
3. 網上刷寶典面試題都會呢派

PS:感謝評論區諸位的集思廣益,我略作整理附於分割線之後。


一天我路過一座橋,碰巧看見一個人想跳河自殺。我跑過去對他大喊道:「別跳,別死啊。」

「為什麼不讓我跳?」他說。

「因為還有很多東西值得我們活下去啊。」

「有嗎?比如說?」

「呃……你做什麼工作?」

「程序員。」

我說:「我也是!瞧,有共同點了吧。你是軟體還是硬體?」

「軟體。」

「我也是!PC 還是 Web?」

「PC。」

「我也是!Windows 還是 Linux 平台?」

「Linux。」

「我也是!那你使用 C 還是 C++?」

「C++。」

「我也是。1998 年的 C++ 98 還是 2011 年的 C++ 11?」

「2011 年的 C++ 11。」

「我也是。大括弧寫在後面還是寫在下一行?」

「下一行。」

「去死吧!你這個異教徒人渣!」我一把將他推下橋去。

----------------------------

可以關注我的微信公眾帳號,每周推送兩三篇原創文字(周末偶爾有段子)。

http://weixin.qq.com/r/tzr377HENOxLrfWM92_l (二維碼自動識別)


花括弧換行和花括弧不扌


Tab
4空格
8空格


  1. 靠強大的學習能力駕馭、組合各種強力工具(含編程系統、語言、庫等)來解決問題的劍宗
  2. 靠理論能力對問題數學建模來解決的氣宗。氣宗往往不會用新式工具(是真的學不會、記不住),一般都是幾十年如一日用一套自搭的半調子工具來解決所有問題。氣宗往往也不特別擅長優化代碼,不過他的方案能最大限度避免瓶頸

有女朋友的

沒女朋友的

沒了


搬運自笨熊不得不吐不的西方編程簡史V1.1.3

當人類填飽肚子開始仰望星空的時候,編程的念頭便萌芽了。

第一個有記載的編程家是古希臘的泰勒斯,他首先提出了「編程的本質是數據流「。

之後赫拉克里特闡述了」一個ALU不能同時執行兩條指令」這一命題。

再之後巴門尼德詳細地探討了單線程和多線程之間的關係。

畢達哥拉斯學派提出了「萬物皆樹」,強調了樹在數據結構中的中心地位。

啟蒙時代的集大成者是柏拉圖,他留下了《彙編篇》等名篇,但由於原始文檔遺失,後世學者對於柏拉圖使用的究竟是何種指令集爭論不休。

他的學生亞里士多德成就更在其師之上,他提出一句名言,「吾愛吾師,吾更愛真值。」

古希臘編程時代結束於亞歷山大大帝,他本人並不是一個編程家,但是他的《建築的永恆之道》成為後世編程家的必讀書目之一。

之後就是漫長的黑暗時代,而歐洲則被羅馬帝國所統治,康斯坦丁大帝的XP大旗飄揚在世界各個角落。經院編程家整天在討論「一個指針究竟能指向多少個天使」之類的細枝末節問題。

唯一值得一提的是阿拉伯勢力的崛起,他們以新月為旗號,發明了C語言。而教皇烏爾班二世則發起了十字軍東征,在新月之後加上兩個十字,那就是C++的來歷。

歐洲內部反XP勢力也蠢蠢欲動,馬丁路德首先發表了windows95論綱,猛烈抨擊只有購買基督盒子(XBOX)頭上才能出現光暈(Halo)的問題。

隨之而來的是群星璀璨的文藝復興時期,在義大利,薄伽丘發表了《時髦談》(smalltalk),對後世動態語言產生了極大影響。而多才多藝的列奧納多達芬奇的MONO LISP更是成為不朽經典。

技術的發展直接導致了大瀏覽時代的來臨,由香料群島輸入的JAVA咖啡成為歐洲新的流行。

進入後啟蒙時代,康德發表了《純粹編程批評》,黑格爾發表了《小編程》,叔本華寫了《作為意志和面向對象的編程》,尼采詳細研究了軟體工程之後寫下了《悲劇的誕生》《流水線開發的黃昏》,瓦格納受其啟發創作了長篇歌劇《尼伯龍根的死循環》,描繪了北歐諸神開發Linux的過程。

英國方面,托馬斯摩爾提出了以他名字命名的著名的摩爾定律,而法國達人笛卡爾提出了」我編故我在「的元編程思想。另外帕斯卡在編程語言上也佔據了一席之地。然而這一切成就在偉大的伊薩克牛頓爵士面前都黯然失色,他的名字永遠和蘋果聯繫在了一起。

思想領域的各種思潮也影響到了工程實踐,整個大陸風運動蕩,著名的法國1789年重構成為後世效仿的模版。

進入20世紀,波普提出了」證偽主義「,強調了測試在軟體開發中的重要地位,TDD從此興盛。

而羅素則仔細研究了程序停機的不可判定問題,引發了第二次編程危機。他還留下了」編程的幸福來源於多態「之類的名言。

胡塞兒《對象學》將面向對象編程提高到了一個新的高度。

海德格爾發表了《存在與時間》,研究了對象的生存周期;而薩特的《存在與虛無》則使得自動垃圾回收從理論走向實踐。

榮格的GIT無意識開了分散式版本管理之濫觴。

最後維特根斯坦總結到:」一切編程問題都可以歸結為選取合適的編程語言。「


Java流派:
1. 傳統Java派:只使用Java語言本身,命名和設計都有學院派風格,對其他在JVM上的語言不以為然,堅信時間是檢驗真理的唯一標準。
2. AOSP命名派:此黨以Android程序員為主,主要受AOSP和Tutorial影響導致私有變數常添加m前綴。
3. C++兼職派:private變數命名喜用下劃線開頭。多用特殊返回值而非異常表示出錯。
4. 泛型強迫症派:介面多使用泛型,26個字母輪番上陣,對Object和強制類型轉換尤為反感,當多個介面的實現互相調用並且泛型滿足約束時有強烈快感。
5. Factory大師:代碼中常見各種Builder和Factory。
6. Factory大神:FactoryFactory和BuilderFactoryBuilder之類的締造者。
7. 設計模式派:編碼中隨處可見各種Listener, Observer, Visitor, Adaptor, Proxy, 面對不使用pattern的程序則時常念叨:「這個code寫得不合理。」
8. 用輪子派:常用語「這個不要自己寫,有現成的庫可用」。
9. 造輪子派:常用語「現成的庫都不行」。
10. 函數式派:特徵是常使用Guava函數類,一部分最終投靠Scala成為異端教徒。
11. 性能偏執派:對各種細節在不同環境下的執行效率均有研究,從for和foreach,synchronized和volatile,到反射,類載入,內存分配,乃至JVM Hotspot,終身陷此坑而不自知。


ViM流:一個高效的編輯器;使用者關注 coding 效率和烏干達兒童

Emacs流:專為飛面大神等多附肢者而特化的未來派編輯器;人類使用者有健康風險,比如已退出編程的Stallman 君
一個典型的 emacser


摘自程序員的鄙視鏈:


1、程序語言篇:

懂 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 工程師。


2、工具篇

用 text editor 的工程師鄙視用 IDE 的工程師。

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

用 Android Studio 或 IntelliJ IDEA 的工程師鄙視用 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 的工程師。


3、OS 篇

用 Mac OS X 的工程師鄙視用 Linux 的工程師,用 Linux 的工程師鄙視用 Windows 的工程師。

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


4、硬體篇

用 MacBook Pro Retina 的工程師鄙視用 MacBook Air 的工程師,用 MacBook Air 的工程師鄙視用 ThinkPad 的工程師,然後用 Raspberry Pi 的工程師鄙視用 MacBook Pro Retina 的工程師。

用 Dvorak 鍵盤的工程師鄙視用 Mac 鍵盤的工程師,用 Mac 鍵盤的工程師鄙視用 QWERTY 鍵盤的工程師,用 QWERTY 鍵盤的工程師鄙視用手寫板的設計師。

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


其實總結起來我覺得就兩個流派一條鄙視鏈:


有女朋友的程序員鄙視沒女朋友的程序員


一種寫代碼為了活著。
一種活著為了寫代碼。


撕逼派:編程語言哪家強?
金錢派:哪個項目靠譜?哪家工資高?哪家福利好?
苦行僧派:外面世界紛紛擾擾,不如我磨刀來得清靜.
掌門派:具有一定修為,放個屁徒子徒孫們都點贊.
lucy:已進化成超體,做做投資,聊聊理想,談談人生


  1. Lisp - 1
  2. Lisp - 2
  3. LISP 1.5
  4. 異端


百萬軟狗

其他程序員。。。


大概分為Google派和Baidu派。


程序員最強大的流派當然是寫輪眼拷貝流


我來寫個 Android 的:

Framework 流:
以 Android Framework 為全部人群,也許精通系統里某兩三個模塊的內部流程,但因為工作安排接觸其他不熟悉模塊的時候只能硬著頭皮去跟代碼,因為正常人無法完全徹底全部讀懂 Framework 源碼所以很大一部分工作時間耗在蒙上(非貶義,蒙也得有技巧。有比較強的跟代碼能力,部分精通系統內部實現,寫 App 比較遊刃有餘。
多見於手機廠商以及第三方 ROM 開發人員。
培訓流:
培訓班出身,只知道 2.3 的 SDK,IDE 只知道 eclipse,不知道 holo 乃至 Material 風格,讓他做個 ActionBar 不知道用系統控制項而是丟個 View 上去。
代碼質量搞笑無比,版本控制工具只會用上個世紀的 svn。

Hybrid流:
用第三方框架寫的 h5 + native 混合的 App,效果其實還不錯,不過只是因為這種人才稀少所以不好評價。

激進流:
明顯特徵是把 minSdkVersion 定到 17,追著 Google 的技術跑,IDE 用的 Android Studio,追著 GitHub 的各種第三方開源庫嘗鮮,用各種風騷的庫來減低開發壓力和提升 App 視覺效果(舉例,ButterKnife,反射解析 JSON 等)。水平必須到一定地步才會到這步,多見於個人開發者。

暫時想到那麼多,回頭還有的話再補充。


看了一遍答案,我們前端應該是處於鄙視鏈最底端...


推薦閱讀:

優秀的程序員和一般的程序員差別在哪?
初級程序員如何快速成長?
有哪些好笑的關於程序員的笑話?
你會如何重新學習編程?
為什麼很多程序員、geek 都喜歡熬夜,而且在後半夜工作效率異常高?

TAG:程序員 | 軟體開發 | 編程 |