幽默:程式設計師耍小聰明導致認知負擔 - tef
有一種觀點:未來程式設計系統發展應該以減少認知負擔為主要目標,這個觀點是好的,例如低程式碼開發工具等,更簡單的程式語言等,但是必須認識到:解決認知負擔是社會性的、是自然性的系統工程,或者說,我們創造的混亂源自我們自己的傑作。
我們建立的工具(如編譯器)已經確實減少了認知負擔(就像我們可以編寫一個快速的 bash 指令碼來完成一項平凡的任務),但它們也讓我們可以建立一個更大的混亂(就像bash指令碼一樣)。
你可以構建一種語言,它獎勵一些簡單的概念並懲罰一些複雜的概念,但我們已經擁有有這些,它們被稱為函數語言程式設計語言,程式設計師不遺餘力地在上面實現最多的魯布·戈德堡機械(rube-goldberg) 裝置來顯示自己的聰明。
魯布·戈德堡機械(Rube Goldberg machine)是一種被設計得過度複雜的機械組合,以迂迴曲折的方法去完成一些其實是非常簡單的工作,例如倒一杯茶,或打一顆蛋等等。設計者必須計算精確,令機械的每個部件都能夠準確發揮功用,因為任何一個環節出錯,都極有可能令原定的任務不能達成。由於魯布·戈德堡機械運作繁複而費時,而且以簡陋的零件組合而成,所以整個過程往往會給人荒謬、滑稽的感覺。美國漫畫家魯布·戈德堡在他的作品中創作出這種機械,故人們就以“魯布·戈德堡機械”命名這種裝置。 - 百度百科 |
股票交易者經常使用一個糟糕的軟體並拒絕改變(banq注:這是股票交易系統非常弱智表現之一,每天打新都需要每天進去點選一下按鈕,無法使自動設定進行),因為人為的挑戰讓他們感覺聰明和強大,我還想起了程式設計師如何經常使用 git 並分享咒語,就像我們正在努力施法一樣。
換句話說,您可以建立工具和實踐來減少程式設計的認知開銷,但在實踐中,程式設計師現在會更容易給其他人建立符合他們美學要求的認知負擔的系統。
許多減少程式碼庫中認知負擔的東西似乎不為現代開發人員所歡迎,例如有一點冗餘或重複,或將內容儲存在一個檔案中,這樣您不必跳過整個程式碼庫來修復問題。
程式設計工具更難使用,使得編寫複雜程式碼的過程變得更加困難和昂貴,但這只是意味著人們就是為了弄得一團糟才感覺更聰明,這就無法使用技術手段解決這個問題了。
如果你讓事情變得困難,就只能吸引最差的程式設計師(與你合作),或者你讓事情變得更容易,而另一種最差型別的程式設計師是在建立困難時沒有任何剋制,這樣他們就會覺得自己很聰明。
認知負擔是有上下文的:sql 不容易使用,資料庫是難以維護的產品,但它們在操作中確實有一些相對的一致性,並且用數千行程式碼替換更便宜的sql查詢並不是很有幫助。
與此同時,Rails要求你從一個反恐精英玩家/賽車手角度看webapps應該如何工作,但這確實意味著你可以在開始之處能夠大量生產應用程式,儘管替換 rails 應用程式通常比重寫它更容易,因為隱含太多了邏輯。
另一個例子是 mvc:保持你的 db 和 html 程式碼不同的概念讓生活更輕鬆,但最終我們將所有的 db 程式碼和所有的 html 程式碼收集在一起,每個功能更改都橫切了 20 個不同的檔案。
在某種程度上,在別人的大泥球下受苦確實會激勵一些程式設計師發誓他們下次會做得更好,但在實踐中,程式設計師會創造一個他們可以理解的大泥球,並假設其他人會發現它同樣容易正如他們所做的那樣。
我們不需要讓程式設計變得更容易的開發工具,我們需要這樣的程式設計師:不要從感覺聰明中獲得價值;我們需要不想炫耀的程式設計師,需要關心讓事情變得容易的人。
具有諷刺意味的是,即使您確實以較低的認知開銷製作了一個不錯的程式碼庫,也會在最簡單的地方進行更改,直到人們用完易於更改的內容,然後您又回到了一個大泥球減少認知開銷是一項持續的任務。
歸根結底,“乾淨與骯髒”或“複雜與簡單”或“好與壞”只是程式設計師用來描述他們自己的程式碼庫體驗的詞,並斷言它們是客觀真理,而不是自己與事實博弈後的一種權衡選擇。
相關文章
- 幽默:不要相信 10 倍程式設計師/設計師/領導者!程式設計師
- 技術管理進階——你遇到過耍小聰明的同學嗎?
- 智慧行業聰明者,程式設計師應該瞭解的CRM行業程式設計師
- 幽默:程式設計師成功完成程式設計的眼睛程式設計師
- 聰明人和傻子和程式設計師程式設計師
- 幽默:程式設計師吹牛大賽程式設計師
- 程式設計師幽默爆笑錦集程式設計師
- 聰明的程式設計師容易做出錯誤的戰略決策 - earthly程式設計師
- 程式設計師的認知體現在哪裡?程式設計師
- 幽默:智慧而非聰明的五種表現
- 幽默:網管 vs. 程式設計師程式設計師
- 幽默:請尊重前端程式設計師 - catalinmpit前端程式設計師
- 幽默:全棧程式設計師與前後端程式設計師區別全棧程式設計師後端
- 人工智慧導師可以讓人類聰明10倍?人工智慧
- 幽默:js程式設計師的數學不好?JS程式設計師
- 幽默:VSCode是程式設計師最好的朋友VSCode程式設計師
- 聊一聊程式設計師人群的認知偏見程式設計師
- 從認知負荷角度分析競技類手遊的新手引導設計
- 幽默:程式設計師與軟體工程師的區別程式設計師軟體工程工程師
- 幽默系列:程式設計師與眾不同之處程式設計師
- 幽默圖:後端程式設計師在做CSS時...後端程式設計師CSS
- 成功、瑜伽、黃曉明 | 中年程式設計師對成功的認真思考程式設計師
- IntelliJ IDEA 2023:聰明如你,程式設計更輕鬆 mac/win版IntelliJIdea程式設計Mac
- 幽默:內向+AI對話=10倍程式設計師AI程式設計師
- 幽默: 不要問程式設計師做過什麼App程式設計師APP
- 幽默:程式設計師的兩次淚奔時刻程式設計師
- 好程式設計師web學習路線初步認知react框架程式設計師WebReact框架
- 認知謬論:為99%的程式設計師代言 - a16z程式設計師
- 一、管理認知:程式設計師要不要做技術管理?程式設計師
- 聰明的程式設計師應該知道什麼是最值得解決的問題 - Fagner Brack程式設計師
- 面試官“你的期望薪資是多少?”聰明的程式設計師都是這樣答的!面試程式設計師
- OpenAI ChatGPT 能取代多少程式設計師的工作?導致失業嗎?OpenAIChatGPT程式設計師
- 團隊拓撲:減少軟體團隊的認知負擔 - mimacomMac
- 一個程式設計師的負罪感程式設計師
- 幽默:優秀程式設計師過馬路看兩邊程式設計師
- 幽默:進入心流狀態的程式設計師跨年程式設計師
- 幽默:真正的程式設計師閱讀API參考文件程式設計師API
- 幽默:Java程式設計師編寫的完美對稱加法Java程式設計師