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