沒有幾樣強迫症,不配自稱程式設計師
程式設計師是一類特殊的群體
因為與電腦交流多於與人交流
所以成為了強迫症的高發群體
我國程式設計師人數已經超過500 萬人
比世界上一半的國家人口都多
任何小問題乘以 500 萬都是很驚人的
程式設計師的強迫症成了不可忽視的社會現象
我們將程式設計師高發的強迫症分為十大類
數字強迫症
數字強迫症的症狀是數數從 0 開始,這是中了大多數程式語言的毒導致的。數字強迫症的另一種症狀就是對二進位制有執念,很多程式設計師員都認為世界上有 10 種人:一種懂二進位制,另一種不懂。數字強迫症的晚期症狀是認為 256 和 1024 等 2 的 n 次方很完美,常常有 1 kg == 1024 g 或者 1 L = 1024 mL 的錯覺。
“我自己是一名從事了5年web前端開發的老程式設計師,辭職目前在做線上教育講師(我的微信:web_kc,加我好友時備註:CSDN,給你贈送一套前端學習教程),每晚都會直播前端教學(從零基礎到大牛),正在學習前端的可以加下我,也可以加QQ群:465611429,今年年初我花了一個月整理了一份最適合2018年學習的web前端乾貨,從最基礎的HTML+CSS+JS到移動端HTML5到各種框架都有整理,送給每一位前端小夥伴,這裡是前端學習者聚集地,歡迎初學和進階中的小夥伴。
格式強迫症
格式強迫症的症狀是對程式碼的縮排要求極其嚴格,程式碼務必美觀。即使遇到縮排不能再整齊的程式碼,如果有的縮排是 1 個 Tab 而有的縮排是 4 個 Space 都會渾身難受。
當代的 IDE 做到了 Enter 換行自動縮排和 Ctrl + Alt + L 整理格式,大大減少了格式強迫症的發病率,格式強迫症也順理成章發生了變異。格式強迫症最常見的變異就是從只追求左邊的對齊變成了也追求右邊的對齊,患者會把 IDE 的字型都換為等寬字型。
命名強迫症
命名強迫症的症狀是對類、介面、變數、常量、方法、列舉等的命名既追求簡短,又追求直白,希望一眼下去就能望文生義——但一般來說簡短和直白就如同物美和價廉一樣不可兼得。當命名強迫症作為輸入強迫症的併發症出現時,會經常因為一列物件的命名字數不一致而有砸電腦的衝動。
中國的程式設計師有種特殊的命名強迫症,就是不喜歡拼音命名,看見前任遺留程式碼中的拼音命名就會火冒三丈。命名強迫症的另一種症狀是不喜歡看到籠統的命名,例如 data_1、msg_2、view_3 甚至乾脆就是 i、j、k(方法內部迴圈除外);更不喜歡看到有誤導的命名,比如突然發現這麼一句註釋:“// 以下所有 left 代表右,所有 right 代表左”。命名強迫症的晚期症狀就是對駝峰命名法有莫名其妙的痴迷,就連新註冊網站的使用者名稱都要嚴格遵循駝峰命名法。
儲存強迫症
在 eclipse + netBean 的時代,IDE 沒有自動儲存功能,很多程式設計師養成了隨時 Ctrl+S 的習慣。而當代 IDE 基本上都有自動儲存的功能,他們的習慣,這就是儲存強迫症。
前端程式設計師上網的時候會不斷 Ctrl+S。如果網頁有文字編輯器,在 Ctrl+S 的時候會彈出對話方塊:“文字已成功保存於某年月日”,然後會莫名緊張:“怎麼又彈窗了?” 好久才反應過來自己在上網。儲存強迫症並非一無是處,患者玩單機遊戲會自帶 “隨時使用 S/L 大法” 技能,會大大避免前功盡棄的可能。
維修強迫症
維修強迫症的症狀是在 U 盤或者移動硬盤裡儲存各類防毒軟體、木馬庫、系統映象、越獄工具、Android root 工具以便隨時維修電腦和手機。病因是被七大姑八大姨 “你不是程式設計師嗎怎麼連電腦 / 手機都不會修?” 逼的。
維修強迫症沒有晚期症狀,三舅媽的大姑姐找程式設計師幫她修智慧洗衣機等 loT 裝置或者四叔的小舅子找程式設計師把科學計算器刷成Android 系統時就把程式設計師直接逼死了。
硬體強迫症
硬體強迫症的症狀是程式設計師對自己工作有關的硬體要求極高。以下常見的致病硬體的逼格和獲得的成本遞增:
行動硬碟:行動硬碟是線下的 Git,儲存無數程式碼、文件以及祕鑰。在 “考研資料 / 政治 / 馬克思主義哲學 / 第十八章 / 課程 H” 下面也隱藏著不為人知的東西。
機械鍵盤:噼裡啪啦的手感和不菲的身價,HHKB 是每個程式設計師的信仰,買不起 HHKB 的程式設計師會用國產的機械鍵盤湊合著用。
iMac 或者 Macbook Pro:蘋果的電腦效能都非常好,編譯程式速度非常快。更重要的一點:OS X 系統不能玩 LOL,避免了浪費寫程式碼的時間。
雙顯示器:對於前端程式設計師來說,雙顯示器不僅是裝逼用的,一臺豎屏顯示器顯示 WebStorm,而另一臺橫屏顯示器顯示 Chrome 對程式設計很有幫助的。顯示器的價格並不昂貴,昂貴的是能呈 120 度角擺兩臺顯示器的桌子下面的地皮在北上廣深杭的寫字樓裡的租金。
人體工程學座椅:五花八門的不正常辦公傢俱包括人體工程學座椅和支援站立程式設計的桌子等,美其名曰保護程式設計師的頸椎、腰、屁股和前列腺,受到程式設計師喜愛的真實原因你懂的。
程式設計師鼓勵師:大多數程式設計師渴望但不曾擁有過的硬體是隻屬於自己的程式設計師鼓勵師,換句話說就是在你寫程式碼時紅袖添香的女朋友。
白盒強迫症
白盒強迫症的常見症狀是看見程式碼就想優化一下。說程式設計師只怕 “error” 不怕 “warning” 是非常錯誤的,很多程式設計師見不得黃字和中劃線,也見不得藍色的 “// TODO”。
白盒強迫症很多時候都是有益的,可以讓程式碼變得整潔,隱藏的漏洞也會減少。白盒強迫症的晚期患者每次開啟一個網頁都要右鍵檢視原始碼,已經無法正常上網。
黑盒強迫症
黑盒強迫症的常見症狀是每次看見閉源的軟體都想研究一下里面的原理,再想想自己能不能做得更好。比如用支付寶掃碼支付的時候想的是識別二維碼、通訊加密、支付安全等原理;或者乘坐電梯時看著電梯的按鈕面板(現實世界的 UI)會開始思考電梯的排程演算法,比如多個例項之間狀態可以互相影響,還有一些優先順序、加速度、預判方面的東西。
黑盒強迫症的晚期症狀是看見現實世界中辦事的流程都想用演算法知識優化一下,常見的是想著如何優化公司報銷和升職的審批流程;再舉個反面例子,看《人民的名義》或《官場現形記》時都想著怎麼優化貪官和姦商的 “辦事” 流程。
收藏強迫症
收藏強迫症的症狀是在 GitHub 上看見好原始碼必 star,技術部落格上看到好文章必收藏,沒有收藏功能的個人站也要加入收藏夾。收藏雖多,但不會再看。明知如此,還感覺不收藏就會吃虧。
身份強迫症
身份強迫症早期症狀:頭腦中 “程式設計師 == 我自己” 的概念根深蒂固,看到和程式設計師有關的話題都要開啟看一下,開啟本文一定是因為本文標題有 “程式設計師”。讀完本文的患者還會把自己和同事們作為一個數組,本文中 10 種強迫症作為另一個數組,然後在自己的大腦裡做一個遞迴,查查自己和同事們分別中了幾槍。
身份強迫症晚期症狀:把現實世界中見到的一切理解為 IT 知識,忘記了自己在職場外怎麼做一個正常人:走火入魔的患者偶然有一天沒有在家寫程式碼,出門看見太陽想到的是 “單例模式”,看見雙胞胎想到的是 “拷貝”,看到摩天輪想到的 “迴圈”,看到排隊想到的是 “佇列”。
身份強迫症進入日薄西山階段症狀:患者已經無法用人類的語言進行交流了,QQ 聊天時每句話的最後都要加一個 “;”,沒錯,是半形的分號;更有甚者還會把髒話用 “/*” 和 “*/” 框起來,以為對方就看不見了;看見賣西瓜就只買一個包子的程式設計師聽說學姐留學歸來,會四門語言的第一反應是問她那四門語言是 Java、PHP、Python 和 JavaScript 還是 C、C++、C#和 Objective-C。
身份強迫症進入迴光返照階段:試圖把別的語言、工具、領域的程式設計師改造成自己同行的程式設計師,曾高呼 “PHP 是最好的語言” 的程式設計師在移動網際網路時代改行 Android 後會糾結怎麼把 iMac 或者 Macbook Pro 螢幕背面的 Apple 形狀的燈改成 Android形狀的。
如果你讀到最後,不但一槍沒中,也沒把自己身邊的朋友和同事套在這十大強迫症上做個遞迴,那麼你一定不是一個程式設計師。