search
兩種程序員,你屬於哪一種?

兩種程序員,你屬於哪一種?

第一種程序員
  • 給一段複雜的程序,比如有7個局部變數,5層循環和if嵌套,他能赤手空拳上陣,迅速領會程序意圖、找到bug,不用藉助任何工具甚至紙筆。
  • 給一個複雜的問題,能在一個函數之內一氣呵成,立馬給出正確實現,這個函數可能有七個變數,5層循環和if嵌套。沒有廢話,刪無可刪,但是單一函數複雜度高,一般人要費老鼻子勁方能看懂。
第二種程序員
  • 給一段複雜的程序,比如有7個局部變數,5層循環和if嵌套,他無法馬上看出程序的意圖,但是他通常會藉助紙筆寫寫畫畫,最終搞定。
  • 給一個複雜的問題,要磨嘰磨嘰好半天,一般用幾個函數組合起來實現,這些函數職責單一明確,身段苗條,通常一兩個變數,循環和if不超過2層嵌套。單一函數複雜度低,一般人都能輕輕鬆鬆看懂。

第一種軟體程序員是天生的聰明人,他們處理複雜事物的能力是天生的,可以流利的心算三位數加三位數帶進位的加法。根據認知負載理論,這類人的working memory容量超越常人,他們可以將多種因素同時納入大腦進行思考而不會出現大腦過載。他們寫出來的複雜程序,一般的看法是沒有掌握分而治之的正確編程風格,其實際是他們腦筋太好使,普通人為了克服認知過載而發明的編程方法對他們而言純粹就是多此一舉。當遇到更為複雜的問題時,他們自然會分而治之。缺點是不經刻意訓練,他們按照自己的認知能力寫出來的程序普通人維護起來有困難。

第二種程序員是天資正常的普通人,working memeory的容量大概就是可以心算兩位數加兩位數帶進位的加法。但是他們掌握了解決認知負載的方法。閱讀複雜代碼的時候,他們藉助紙筆,把對其中的小片段的分析結論先寫下來,避免大腦緩存太多東西,然後就這些數量變少的中間結果再進行分析,始終保持放入大腦的東西不要太多。

熱門推薦

本文由 一點資訊 提供 原文連結

一點資訊
寫了5860316篇文章,獲得23313次喜歡
留言回覆
回覆
精彩推薦