如果你是一個程式員,或者你就讀電腦相關專業,那麼你應該能理解下面這些詭異的小習慣是怎麼養成的,或者你本身就有著其中的某些習慣:
0.程式員數數會從0開始數起.
例:程式員吵架的時候會說:“我數三下,你再不閉嘴我就不客氣了!零!一!二!”或者列清單的時候編號會從0.開始寫.
因:array[0]是數組的第一個元素.
評:這個習慣的養成是一個艱難的過程.多少次的越界,多少次的迴圈次數錯誤讓我們深深的記住了從0開始.
1.程式員用肯定和否定回答選擇性的問題.
例:問“您想喝咖啡還是喝茶?”程式員答:“嗯.”
因:當條件或||有一個子句值為真,則整個語句值為真.
評:這個習慣誇張了一點,但這的確是程式員思維方式的通病,用電腦的處理邏輯處理人類問題.當然這樣的回答顯然是存在編程錯誤的,因為對於這個問題他錯誤的返回了布爾型的值.雖然高度懷疑有沒有人關心這種回答的結果是怎樣,還是給出一個答案.如果真的在程式的世界裡,服務員會優先考慮給你咖啡,如果沒有咖啡了,才會端茶給你.
2.程式員普遍患有或曾經患有分號結尾綜合症;
例:比如這幾行;
因:大部分程式,特別是多數程式員的啟蒙程式設計語言C語言是用分號結尾語句的;
評:換行之前習慣用分號結尾,這是程式員專屬的壞習慣.還記得編譯報的各種詭異的錯最後原因總是少了那一個小小的”;”嗎?這就是這個壞習慣的成因.據說分號結尾是有典故的,因為鍵盤上的分號正好在右手小拇指的位置,比起句號之類有著得天獨厚的地理優勢.當然也有不需要分號結尾的程式設計語言(比如Ruby還有Python),剛用起來會因為沒有分號結尾而格外糾結.
3.程式員對”語言”的概念和普通人有差.
例:問:“你都會哪些語言?”普通人:“我會漢語和英語,還會一點點法語.”程式員:“我會C語言,C++和Java,還會一點點Ruby.”
因:程式員的世界裡沒有母語和外語,只有程式設計語言.
評:說真的,程式語言的文法學起來比外語更容易,拿到一個用沒學過的語言寫的程式,你多少可以看懂部分程式.程式語言沒有國界,是各國程式員交流最好的橋樑.
4.程式員格格外外的厭惡括弧/引號不配對的情形.
例:看到這樣的內容(舉個簡單的例子(我知道你懂的),你能表示”我很淡定我不抓狂嗎?
因:各種不配對問題會導致編譯錯誤.
評:掃視代碼,對不配對的情況異常敏感,瞥一眼就能發現哪裡少了個右括弧.這種癥狀在使用那些帶自動補全功能的開發環境時變得更為糾結.
5.程式員認為千(k)==1024.
例:程式員換算表:1km==1024m,1kg==1024g.
因:成因很曲折電腦是二進位的世界->1024是2的10次方->英語裡用kilo一詞來表示->kilo翻譯成中文是”千”,比如千米,千克.
評:也許一般人會認為500,1000是很整的數,但程式員會覺得512,1024是很整的數.不要奇怪,如果128,256,512這種形式看著不夠整,幫你轉換成二進位:10000000,100000000,1000000000…
6.程式員慣用==來表示相等的意思.
例:見5.
因:在程式語言中,“=”是賦值,“==”才用來判斷二者是否相等.
評:單等和雙等的區別是程式入門必修課,也是老師愛考的考點.如果在C語言if語句的判定條件裡寫了個單等,編譯能通過,結果卻往往不對,夠一個新手查上一陣子的.當然目前的語言大都考慮到這一點,防止了這類的誤寫,但是單等和雙等的差異已經深入每個程式員的內心.
7.程式員使用”//”表示”請無視這一行文字”.
例:餐廳中.程式員A:“我吃魚香肉絲蓋飯,你吃什麼?”
程式員B:“宮保雞丁蓋飯.”
程式員A在點菜單寫上:
魚香肉絲蓋飯1
宮保雞丁蓋飯1
程式員B:“我還是要牛肉麵吧!”
程式員A更正點菜單:
魚香肉絲蓋飯1
//宮保雞丁蓋飯1
牛肉麵1
因:程式中用”//”為代碼加上注釋,程式運行時會無視掉”//”開頭的程式碼.
評:如果和一夥程式員在一起時被冷落了,可以抱怨一句”喂喂喂我是被注釋掉了嗎?”相信一向以幽默感豐富又有愛心著稱的程式員們會關注你的.
8.程式員有中文標點恐懼症.
例:如果你注意到了,這篇文章自始至終都在使用英文標點,這就是最好的例子.
因:程式中的全部符號都嚴格需要是英文半形標點.
評:這個壞習慣是有中國特色的,中國程式員特有的.任何一名優秀的我國程式員都應該可以作到區別中文標點和英文標點.比如,和,還有’和‘.真的,當年初學編程的時候,諸如“error C2018:unknown character’0xa3′”的錯誤看得還不夠多嗎!
就是這樣一群人,如果你慢吞吞的用電腦他們會急躁的搶過鍵盤熟練的使用各種快速鍵,他們會對著小孩子講電腦的三原色是紅綠藍而不是紅黃藍,他們描述大小距離更偏向於以像素作單位,陪女朋友看電影看到電影院座位上稀稀落落的人就想做磁碟磁碟重組…抱怨歸抱怨,這不也正是他們的可愛之處嗎!