俗話說:三句不離本行,對于程序員這個可愛的群體來說也是一樣。他們在編程中養成的一些思維方法會不自覺地在日常生活中表現出來。近年來,在StackExchange和Quora上也有過類似的討論,我們這里總結了程序員日常生活中經常表現出來的8個編程思維。你有沒有同感呢?
1.在正常交流中摻雜編程規范和語法
職業原因:編程語言都有自己特定的語法,程序員在開發者都要遵守這些。當然,還有一些約定俗成的編程規范,如代碼縮進(是縮進4個字符還是8個字符)、注釋風格,采用駱駝式(CamelCase)或帕斯卡式(Pascal)來命名變量或函數等等。
日常行為:這些編程習慣可能就會影響到程序員的日常文檔書寫習慣,比如寫郵件時會用分號來結束一行內容等。
例子:
iWriteInCamelCaseEveryNowAndThenItAnnoysMySisterWhoReadsMyEmail.(小駱駝式拼寫法)
IFyouhaveteaI'llhaveitELSEI'lljusttakewate.(利用了IF-ELSE判斷語句)
2.真實生活中習慣講操作快捷鍵
職業原因:程序員玩快捷鍵操作軟件應該很熟練了,一般來說,Ctrl-C表示復制、Ctrl-V表示粘貼(對特定編輯器如Vi、Emacs來說會有不同)。
日常行為:這些快捷鍵有時在程序員的行為和話語中表現的很常見,這也會在一些場合引起尷尬。
例子:
"MentallytryingtoCtrl-ZonthingsIjustsaid.(Ctrl-z表示撤消,這句話意思是我收回我剛才說的話)
Inlifethereisnoundo.(生活中沒有撤消)
3.從0開始計數
職業原因:大多數編程語言中的“數組”初始值都是從0開始而不是1。
日常行為:這種約定使得程序員經常在生活中數數都是從0開始,沒有編程背景的人們很難理解這種計數方式,如果你的程序員朋友祝愿你在3千米長跑中獲得第0名,你就偷著樂吧。
例子:
-Howmanybeersareleft?(啤酒還剩多少杯?)
-Zero,one,two,three...Wehavefourleft!(0,1,2,3,……我們還有4杯呢~)
4.生活方式不健康
職業原因:程序員寫起程序來有時一坐就是大半天,眼鏡不離電腦屏幕,甚至在靈感爆發時熬夜。
日常行為:作息無規律,鍛煉不足,與外界接觸過少。
例子:
Eatinglunchat3pmandgoingtobedat3am.(下午3點吃飯,凌晨3點睡覺)
Lackofexercise->Eatingtoomuch->unhealthylifestyle.(缺乏鍛煉->吃得過多->生活方式不健康)
5.試圖優化任何事情
職業原因:軟件開發者會不斷地優化自己的代碼,讓它越來越快。常用的方法有多線程處理任務、代碼復用等,并在任何有可能自動化執行的情況下使其自動化。
日常行為:會嘗試優化真實生活中的事情,盡量省力、快捷,往往會被認為太懶惰,比如臟衣服經常堆到一定規模,實在沒有可穿的了才去清洗(往往一次全部清洗完)。
例子:
don'tsolveaproblemuntilyouabsolutely,positivelyhaveto.(不到萬不得已,不解決問題)
6.過于強迫癥
職業原因:程序中一般不能使用模糊語義,因為計算機不理解“差不多”,“基本”。程序中即使有一點小錯誤,也會導致程序編譯不過、運行不起來。
日常行為:程序員也經常是過于認真,不放過任何小細節,“打破沙鍋問到底”,這有時會給周圍的人造成壓力。
例子:
Requestingclearspecforfavorsanderrands.'Waitwhatdoyoumeanby'someeggs'?Whatisthelowerandupperbound?'"(老婆讓去買些雞蛋,會追問到底買幾個啊?)
7.希望人們都和電腦一樣循規蹈矩
職業原因:計算機會按照程序設定的方式運行,運行出錯,那就是程序出Bug了。
日常行為:程序員有時會忽略人們是和電腦不一樣的,人不可能完全按照邏輯和理性來做事,更多的是“跟著感覺走”。
例子:
Havingtoexplainwhatalogicalfallacyis,first,everytimesomeonesayssomethingcompletelywronggetsfrustratingfast.(經常去解釋邏輯上存在的錯誤,如果人們否定整個事情則很容易感到沮喪)
8.總是想到2的乘方
職業原因:計算機存儲信息的基本單位是bit(比特)。二進制系統中,每個0或1就是一個bit。
日常行為:常常不以10進制而是以2進制進行計算。一些平常的日子在程序員眼里也變得很神奇,如程序員日就是每年的第256天(2^8),也有人推薦將每年的10月24日作為程序員日(2^10)。
例子:
Everythinghastobeinpowersof2.(一切皆為2的乘方)
Imagineyouhave1,000bucks;orbetteraroundnumber—imagineyouhave1,024bucks.(假設你有1000塊錢,最好這樣說,假設你有1024塊錢)
更多資訊盡在動力節點官方微信平臺《動力節點Java學院》,好玩好看的資訊盡在微信平臺,還有更多活動等你參與贏取獎勵哦。