程序員如何培養(yǎng)底層思維?
??點擊“博文視點Broadview”,獲取更多書訊

在阿里巴巴的晉升會議上,評委經常會問:“你的成功可以復制嗎?”我最初做評委時基本不會問這樣的問題,因為我認為這樣的問題很虛,工作完成就行了,不需要那么多道理。
然而隨著時間的推移,我發(fā)現(xiàn)這的確是一個好問題。因為它可以區(qū)分出你是碰巧把事情做對了,還是你具備了一直做對事情的能力,二者是有本質區(qū)別的。碰巧做對,說明你的能力可能還不足,換一種情景,你就不一定能應付。因此,好的晉升制度不僅要考查成績,更重要的是考查能力。對從事腦力勞動的技術人員來說,“能力”主要指的是“思維能力”。
正所謂“有道無術,術尚可求也,有術無道,止于術”。
說到“道”,大家可能會想到“道可道,非常道”,覺得它“玄之又玄”。然而我這里所說的“道”更側重于“道理”,即我們做事背后的道理、思維方式是什么。思維能力是比解決具體問題更重要的能力。問題也許各有不同,但思維方式可以復制和遷移。我們一旦掌握了正確的思維方式,便可以舉一反三、觸類旁通。
例如,我們都知道編程的時候命名很重要,也很難,可為什么會這樣呢?如果要深挖其背后的原因,將是一個非常有趣的話題,甚至可以和哲學有關。命名工作中暗含了抽象思維能力和語言哲學,語言本身是抽象的符號,比如當你說“花”的時候,指的并不是某一朵具體的玫瑰花、郁金香,而是花的抽象概念。一朵具體的花雖然看得見、摸得著,但總會有凋零消亡的時候,而“花”這個字作為精神實體將永不會消亡。所以,抽象的花和具體的花到底哪個才是本真呢?這是一個哲學問題。
拋開哲學爭論,就“花”這個字而言,它是提取了所有花的共性的抽象符號。命名之所以難,是因為你要經歷一個提取共性、歸納要義,并賦予恰當名稱的抽象思維過程。因此,要想真正做好命名,除了要掌握一些命名技法,還需要更深層次的修煉——提升抽象思維能力。
又如,有些人說話重點突出、易于理解,而有些人則前言不搭后語,讓人不知所云;有些人寫文章、寫郵件思路清晰、有條理,而有些人的文章則詞不達意、東拼西湊;有些人寫的代碼結構清晰、可讀性強,而有些人寫的代碼則是一團亂麻、難以維護……問題的本質在于邏輯思維和結構化思維的差異,可邏輯思維和結構化思維又是什么呢?這些思維能力是可以習得和提高的嗎?
維特根斯坦在《邏輯哲學論》中說,思維本身就能解決問題,我們所要做的,就是觀察它是如何做到的。
認知水平有4個層次,從低到高依次是“不知道自己不知道、知道自己不知道、知道自己知道、不知道自己知道”?!安恢馈辈⒉辉愀?,最糟糕的是“不知道自己不知道”,而因為缺少對自身思維的觀察和培養(yǎng),所以很多人對思維的認知尚處于“不知道自己不知道”的層次。
這種無意識會導致我們很多時候盲目地做事。雖然一些人“996”工作很辛苦,但也許大部分工作內容是無意義的重復,在工作過程中,思維能力并沒有得到鍛煉和提高。這樣的人即使僥幸晉升成功,他的能力水平仍然停留在低層次。
就像混沌大學創(chuàng)始人李善友教授說的,沒有好的思維模型,再多的知識積累也是低水平的重復。成人學習的目的不是獲取更多的信息量,而是學習更好的思維模型。
為了幫助大家打破“不知道自己不知道”的思維禁錮,把軟件設計中會用到的各種思維能力顯性化地呈現(xiàn)出來,讓你意識到原來有這么多思維模型在軟件設計中發(fā)揮著至關重要的作用,博文視點邀請到前阿里巴巴高級技術專家、《程序員的底層思維》作者張建飛老師帶來“程序員的底層思維”的主題分享!
具體提綱:
1. 什么是抽象思維
2. 為什么抽象思維很重要
3. 如何進行抽象
3. 關于抽象層次的拿捏
分享亮點:
超越編程技法,提升技術能力。
直播入口:
https://bfw.h5.xeknow.com/sl/3DGVYL(掃描上方海報二維碼進入直播群獲取或點擊文末閱讀原文)
直播時間:4月23日(周六)10:00


▊《程序員的底層思維》
張建飛 著
一本超越具體編程技法的技術書
一本培養(yǎng)思維能力的通用技能書
生活中稀松平常的小故事,作者豐富的個人經驗和案例,輕松生動的語言風格,專業(yè)度十足的思維模型,軟件設計“科學+哲學+美學”的完美融合
本書涵蓋程序員應知應會的16種思維能力,共18章,分為三部分。第一部分主要介紹抽象思維、邏輯思維、結構化思維、批判性思維、維度思維、分類思維、分治思維、簡單思維,以及成長型思維等解決日常問題的基礎思維能力。第二部分結合軟件行業(yè)的特點,主要介紹解耦思維、契約思維、模型思維、工具化思維、量化思維、數(shù)據(jù)思維,以及產品思維等專業(yè)思維能力。第三部分主要是對上述思維能力的綜合運用實踐。
下單立減50,快快掃碼搶購吧!
如果喜歡本文 歡迎 在看丨留言丨分享至朋友圈 三連 熱文推薦
▼點擊閱讀原文,直達直播間~
