程序员如何培养底层思维?
共 2048字,需浏览 5分钟
·
2022-04-24 08:59
👆点击“博文视点Broadview”,获取更多书讯
在阿里巴巴的晋升会议上,评委经常会问:“你的成功可以复制吗?”我最初做评委时基本不会问这样的问题,因为我认为这样的问题很虚,工作完成就行了,不需要那么多道理。
然而随着时间的推移,我发现这的确是一个好问题。因为它可以区分出你是碰巧把事情做对了,还是你具备了一直做对事情的能力,二者是有本质区别的。碰巧做对,说明你的能力可能还不足,换一种情景,你就不一定能应付。因此,好的晋升制度不仅要考查成绩,更重要的是考查能力。对从事脑力劳动的技术人员来说,“能力”主要指的是“思维能力”。
正所谓“有道无术,术尚可求也,有术无道,止于术”。
说到“道”,大家可能会想到“道可道,非常道”,觉得它“玄之又玄”。然而我这里所说的“道”更侧重于“道理”,即我们做事背后的道理、思维方式是什么。思维能力是比解决具体问题更重要的能力。问题也许各有不同,但思维方式可以复制和迁移。我们一旦掌握了正确的思维方式,便可以举一反三、触类旁通。
例如,我们都知道编程的时候命名很重要,也很难,可为什么会这样呢?如果要深挖其背后的原因,将是一个非常有趣的话题,甚至可以和哲学有关。命名工作中暗含了抽象思维能力和语言哲学,语言本身是抽象的符号,比如当你说“花”的时候,指的并不是某一朵具体的玫瑰花、郁金香,而是花的抽象概念。一朵具体的花虽然看得见、摸得着,但总会有凋零消亡的时候,而“花”这个字作为精神实体将永不会消亡。所以,抽象的花和具体的花到底哪个才是本真呢?这是一个哲学问题。
抛开哲学争论,就“花”这个字而言,它是提取了所有花的共性的抽象符号。命名之所以难,是因为你要经历一个提取共性、归纳要义,并赋予恰当名称的抽象思维过程。因此,要想真正做好命名,除了要掌握一些命名技法,还需要更深层次的修炼——提升抽象思维能力。
又如,有些人说话重点突出、易于理解,而有些人则前言不搭后语,让人不知所云;有些人写文章、写邮件思路清晰、有条理,而有些人的文章则词不达意、东拼西凑;有些人写的代码结构清晰、可读性强,而有些人写的代码则是一团乱麻、难以维护……问题的本质在于逻辑思维和结构化思维的差异,可逻辑思维和结构化思维又是什么呢?这些思维能力是可以习得和提高的吗?
维特根斯坦在《逻辑哲学论》中说,思维本身就能解决问题,我们所要做的,就是观察它是如何做到的。
认知水平有4个层次,从低到高依次是“不知道自己不知道、知道自己不知道、知道自己知道、不知道自己知道”。“不知道”并不糟糕,最糟糕的是“不知道自己不知道”,而因为缺少对自身思维的观察和培养,所以很多人对思维的认知尚处于“不知道自己不知道”的层次。
这种无意识会导致我们很多时候盲目地做事。虽然一些人“996”工作很辛苦,但也许大部分工作内容是无意义的重复,在工作过程中,思维能力并没有得到锻炼和提高。这样的人即使侥幸晋升成功,他的能力水平仍然停留在低层次。
就像混沌大学创始人李善友教授说的,没有好的思维模型,再多的知识积累也是低水平的重复。成人学习的目的不是获取更多的信息量,而是学习更好的思维模型。
为了帮助大家打破“不知道自己不知道”的思维禁锢,把软件设计中会用到的各种思维能力显性化地呈现出来,让你意识到原来有这么多思维模型在软件设计中发挥着至关重要的作用,博文视点邀请到前阿里巴巴高级技术专家、《程序员的底层思维》作者张建飞老师带来“程序员的底层思维”的主题分享!
具体提纲:
1. 什么是抽象思维
2. 为什么抽象思维很重要
3. 如何进行抽象
3. 关于抽象层次的拿捏
分享亮点:
超越编程技法,提升技术能力。
直播入口:
https://bfw.h5.xeknow.com/sl/3DGVYL(扫描上方海报二维码进入直播群获取或点击文末阅读原文)
直播时间:4月23日(周六)10:00
▊《程序员的底层思维》
张建飞 著
一本超越具体编程技法的技术书
一本培养思维能力的通用技能书
生活中稀松平常的小故事,作者丰富的个人经验和案例,轻松生动的语言风格,专业度十足的思维模型,软件设计“科学+哲学+美学”的完美融合
本书涵盖程序员应知应会的16种思维能力,共18章,分为三部分。第一部分主要介绍抽象思维、逻辑思维、结构化思维、批判性思维、维度思维、分类思维、分治思维、简单思维,以及成长型思维等解决日常问题的基础思维能力。第二部分结合软件行业的特点,主要介绍解耦思维、契约思维、模型思维、工具化思维、量化思维、数据思维,以及产品思维等专业思维能力。第三部分主要是对上述思维能力的综合运用实践。
下单立减50,快快扫码抢购吧!
如果喜欢本文 欢迎 在看丨留言丨分享至朋友圈 三连 热文推荐
▼点击阅读原文,直达直播间~