兩種編程高手.今日圖靈
54 2017-04-19
第一種工程師
給一段復(fù)雜的程序,比如有7個局部變量,5層循環(huán)和if嵌套,他能赤手空拳上陣,迅速領(lǐng)會程序意圖、找到bug,不用借助任何工具甚至紙筆。
給一個復(fù)雜的問題,能在一個函數(shù)之內(nèi)一氣呵成,立馬給出正確實現(xiàn),這個函數(shù)可能有七個變量,5層循環(huán)和if嵌套。沒有廢話,刪無可刪,但是單一函數(shù)復(fù)雜度高,一般人要費(fèi)老鼻子勁方能看懂。
第二種工程師
給一段復(fù)雜的程序,比如有7個局部變量,5層循環(huán)和if嵌套,他無法馬上看出程序的意圖,但是他通常會借助紙筆寫寫畫畫,最終搞定。
給一個復(fù)雜的問題,要磨嘰磨嘰好半天,一般用幾個函數(shù)組合起來實現(xiàn),這些函數(shù)職責(zé)單一明確,身段苗條,通常一兩個變量,循環(huán)和if不超過2層嵌套。單一函數(shù)復(fù)雜度低,一般人都能輕輕松松看懂。
第一種軟件工程師是天生的聰明人,他們處理復(fù)雜事物的能力是天生的,可以流利的心算三位數(shù)加三位數(shù)帶進(jìn)位的加法。根據(jù)認(rèn)知負(fù)載理論,這類人的workingmemory容量超越常人,他們可以將多種因素同時納入大腦進(jìn)行思考而不會出現(xiàn)大腦過載。他們寫出來的復(fù)雜程序,一般的看法是沒有掌握分而治之的正確編程風(fēng)格,其實際是他們腦筋太好使,普通人為了克服認(rèn)知過載而發(fā)明的編程方法對他們而言純粹就是多此一舉。當(dāng)遇到更為復(fù)雜的問題時,他們自然會分而治之。缺點是不經(jīng)刻意訓(xùn)練,他們按照自己的認(rèn)知能力寫出來的程序普通人維護(hù)起來有困難。
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)服務(wù)號