我眼中的Java大牛之孤尽老师

一、背景


最近看到一个征文写自己心目中的大牛,希望可以借着这个机会写一下我眼中的大牛:孤尽老师。


写孤尽老师的主要原因是我认为孤尽老师影响和帮助了很多人。


本文将讲述自己和孤尽老师的一些“接触”,我眼中的孤尽老师是什么样的人,以及自己从孤尽老师身上学到了什么。


二、时间线

下面是和孤尽老师“接触”的时间线:

我眼中的Java大牛之孤尽老师第一次知道孤尽老师还是在《阿里巴巴 Java 开发手册》发布的时候,当时第一时间下载并打印出规约的 PDF 版,认真拜读了好几遍。后来出了纸质版,第一时间购买。


后来,听说孤尽老师要出《码出高效》,当时在云栖大会上现场发布,当时托学弟专程去现场第一时间进行购买,并让孤尽老师帮忙签名。

后来得知孤尽老师网上办了一个公益的培训 “DIY 班”,在高家祺学弟的推荐下加入了 DIY 学习群,更近距离接触孤尽老师。


开始见到 DIY 的口号就被深深吸引,非常好奇,看公告才知道其真正含义:


其一,Deeply Inspire Yourself


深度激发自己


其二,Do It Yourself


实践出真知


参加 DIY 班,每一段时间都有一份作业,有很多种淘汰机制,如晚于某天几点交淘汰,最后一个交淘汰,写得最差的淘汰等,非常惊心动魄。


虽然每一期都会有人淘汰,但是正是因为这种淘汰机制,才能够淘汰掉一些不够坚持的人,只有有危机感才能更认真地对待 DIY 的每一份作业。


只有珍惜机会,有毅力的人才更容易走到最后。


很多次作业孤尽老师都会给予点评,每次都会定好闹钟准时参加,即使在路上也要坚持参与。


最后经过不断淘汰,剩下 12 位同学组成两组设计错误码系统,我们小组最终获胜,拿到了 DIY 班毕业证书和获胜团队奖杯。

后面也看了孤尽老师一些公开的文章和视频,参与了部分直播。


出于对孤尽老师的崇拜,今年换工作优先考虑阿里巴巴,最终成功面试通过顺利入职。


可惜的是,还没入职孤尽老师就从阿里离职了,不过后面或许还会有很多和孤尽老师接触的机会。


三、我眼中的孤尽老师

在我看来,孤尽老师是一个极具技术热情和分享精神的技术人;是一个非常善于思考问题本质并且能够有很强执行力的人。


通过自己的出书和直播等引燃了很多热爱技术同学的热情;通过分享自己的经验让更多地人少走了弯路;通过传授学习和思考的方法,提高了一些同学的进阶速度。


孤尽老师就像一盏明灯点亮夜空,就像一杆旗帜引领我们学习的方向。


四、 从孤尽老师身上能学到什么?

所谓,授人以鱼不如授人以渔。


孤尽老师更多地是传授方法和思考,我认为这对一个人的影响更大且深远。


不管是孤尽老师主动传达的,还是我们主动从孤尽老师身上学到的,这都不重要。


重要的是我们能否意识到自己的不足,能够从优秀的人身上学到了多少,能够改变多少。


4.1 技术热情

通过孤尽老师写《阿里巴巴 Java 开发手册》、《码出高效》和办 DIY 班,看孤尽老师的一些技术文章和参与孤尽老师的一些直播分享等,能够明显感受孤尽老师对技术的热情而且极具分享精神。


在内网也看到孤尽老师发表的一些文章,在其中一篇文章的评论中有同事提到很久之前孤尽老师分享给他一份自己总结的经验对他帮助非常大。


孤尽老师能够将趟过的坑整理出书,可以帮助很多新手避坑。《码出高效》在我眼里已经成为国内 Java 学习的经典教材之一。


孤尽老师应该是想通过写书或者直播的方式影响和帮助到更多的人。


我自己也一直坚持写博客,也出过技术专栏。主要想通过写博客、专栏等帮助自己更系统地理解知识,记录自己这些年的成长历程,此外也希望能够通过自己的博客帮助别人少走弯路。


由于自己对技术也一直有热情,而且喜欢分享,从孤尽老师身上更能够找到一些共鸣。


我想,应该正是因为这一份技术热情,让孤尽老师从新手走向大牛,从自我提升再到帮助他人提升。


4.2 学习之法

4.2.1 学习四部曲

DIY 班前几次作业孤尽老师就强调大家要重视 “快速学习的能力”、 “学习如何学习的能力”、“举一反三的能力”。


很多人缺乏快速学习的能力,面临未知的问题非常恐惧,没有掌握好的方法学习缓慢。


不知道大家是否意识到这个问题,其实很多人从小学到大学,甚至到硕士、博士一直都在学习,但是我们很少去思考“如何学习”。


孤尽老师提到学习的四部曲:记忆、理解、表达和融合。


没有规律的记忆很容易遗忘,没有理解很难内化,通过表达可以强化认知,通过边学边实战才能融会贯通。


因此我们通过反复学习,将知识进行整理帮助记忆;通过和自己已经有的知识体系相关联来理解;通过以教为学,写博客、做分享来强化自己的认知;通过在实践中有意识地运用来实现对知识的融会贯通。


如果我们可以将自己所学进行归纳和整理,不断深化都某一块知识的理解,并且工作中逆向演绎去运用。


下图为自己对性能优化的思考(图片大小有限,做了折叠):


大家可以通过思维导图整理自己的知识体系并不断丰富和修改进行完善。


4.2.2 费曼学习法/以教为学

从孤尽老师的分享中可以看到以教为学的费曼学习法的影子。


其实很多人都会有类似的体会:当你准备要做某个分享,你会查很多资料,对某个问题重新整理,对该问题的理解就会特别深入,当分享完毕别人的提问可能还涉及到你没有真正搞清楚的点,再研究又会有新的发现。


此外,一个技术或者理论,只有能用通俗易懂的语言进行描述,才代表自己真正理解了它。


当我们想学习某个技术和知识时,不妨采用写博客、写公众号、视频分享或者直播交流等方式来强化学习效果。


4.3 思维方式

看孤尽老师的一些文章就可以感受孤尽老师具有“本质思维”(不仅知道表象,更重视思考本质)、“结构化思维”(问题考虑地非常全面)、“复盘思维”等。


4.3.1 本质/原理思维

花半秒钟就看透事物本质的人,和花一辈子都看不清事物的人注定有截然不同的人生。


孤尽老师有一篇提到同步和异步、阻塞和非阻塞和并行和串行的概念,其中讲到同步和异步是函数调用视角;阻塞和非阻塞是线程视角;并行和串行是 CPU 视角。短短几句话点透了问题的本质,让我茅塞顿开。孤尽老师的很多文章和直播对某些问题的分享都能够一语中的,醍醐灌顶。


《码出高效》中关于浮点数的表示、HashMap 的源码解读等地方无不体现深挖原理的思维。


我们学习技术时,不仅要知其然,还要知其所以然。


学习某个技术时要主动学习原理,只有学习原理才更容易复用,更有价值,才更能够拉开和别人的差距。


在面试阿里时体会更加深刻,面试知识点和项目时,面试官更重视你是否知道为什么这么设计,是否明白底层原理。


4.3.2 结构化思维

再比如一次关于无人机容灾作业,很多人都是这想一点,那想一点不够系统、不够结构化。这次作业点评中就提到如何用结构化思维来分析问题。比如从事前、事中和事后的角度,比如从技术、商业等角度更全面地分析。


我们要学习结构化思维,遇到问题时主动地从时间、空间、逻辑关系等维度,通过金字塔原理、5w1h、zoom in / zoom out 等方法去分析问题。


人总是有思维惯性,不敢轻易离开舒适区,不敢尝试新鲜事物,这反倒是成为我们成长进阶的重要阻碍。结构化思维需要反复实践,才能真正掌握。


4.3.3 复盘思维

之前孤尽老师分享了一篇《阿里技术专家:一文教你高效画出技术架构图》,让大家写一下自己能够从中学到什么。后面又一次作业还是让我们重新读这篇文章,写写自己有没有不一样的收获。


然而,部分同学的两次作业思考的深度几乎都一样。


然后通过两次作业对比,验证是否有更深入地思考。


正如那条物理学惯性定律所描述的那样:“一切物体在没有受到外力作用的时候,总是保持匀速直线运动状态或静止状态”。其实人也是这样,人的思维也有惯性,正是思维的惯性让一个人很难有突破或改变,没有复盘就很难意识到问题,就没有寻找解决办法的可能。


通过复盘,可以发现自己做的好的不好的点,梳理出哪些需要继续坚持,哪些需要放弃,哪些需要新增的措施,从而指导未来的学习和工作。


通过 PDCA 循环(具体自行百度),不断检查原有计划的结果,找到症结,进行改进,进入新一轮的循环。


4.3.4 跨学科思维

孤尽老师在一些直播中也提到过“哲学思维”,之前也看过一些很牛逼的技术文章,解释原理时可以上升到哲学高度,非常佩服。


自己曾经也尝试过将技术上升到哲学思维。比如整数溢出其实和传统哲学中的“物极必反”、“否极泰来”的思想相一致和马克思主义哲学中矛盾对立统一的思想相一致。


比如“文章都是改出来的”、“优秀的系统都是演化而来的”,这和生物学的进化论非常相似。


《阿里巴巴Java 开发手册》也出了很多版,不断添加新的内容,这也符合哲学中的事情是变化发展的原理,要求我们用发展的眼光看问题,坚持与时俱进。


此外,前面结构化思维为什么那么受推崇,为什么能够帮助我们更全面地看待问题,底层和物理学的“熵增理论”有着密切的联系。


"熵”是对系统的混乱程度的度量,熵值越高越混乱无序,熵值越低越有序!


因为它揭示了宇宙演化的终极规律。 这个规律包括我们所有生命和非生命的演化规律,生命里又包含着个人和群体的演化规律。


非生命:比如物质总是向着熵增演化,屋子不收拾会变乱,手机会越来越卡,耳机线会凌乱,热水会慢慢变凉,太阳会不断燃烧衰变……直到宇宙的尽头——热寂。


生命与个人:比如自律总是比懒散痛苦,放弃总是比坚持轻松,变坏总是比变好容易。


只有少部分意志坚定的人能做到自我管理,大多数人都是作息不规律,饮食不规律,学习不规律1。


其实结构化思维就是通过多种维度/视角/方法将知识结构化,从而对抗熵增的过程。


一些经典的设计原则,如单一职责、开闭原则、依赖倒置等,再如各种各样的架构和理论,都是在“减熵”,减少无序、降低复杂度。


“人活着就是在对抗熵增定律,生命以负熵为生。” --《生命是什么》,薛定谔


其实系统又何尝不是,系统的一次又一次优化和重构,其实就是不断对抗熵增的过程。


当我们从技术角度找不到更好地解决方案时,我们可以考虑从生物学、物理学、哲学甚至心理学等学科寻找启发,多一种学科思维就多一种接触问题本质的途径。


大家感兴趣可以多看看其他学科的图书,把这些学科最基本的原理梳理出来,在学习、工作和生活中尝试结合运用。


4.4 做人做事的态度和超强的执行力

虽然很多直播都是公益的,但是孤尽老师对每一次作业点评都有所准备,比较认真。


对于 DIY 班触犯淘汰规则的同学都能够严格淘汰(虽然有些时候很可惜)。


孤尽老师出版《阿里巴巴 Java 开发手册》时也收到了很多质疑,但还是顶住了压力,坚持做自己,最终也受到了广泛认可。


我们做人要鲜明,做事要有执行力。


想要有超强的执行力的一个重要前提还是前面提到的技术热情,还要做好时间管理,并且要应用一些技巧,比如更低的门槛、更小的阻力、更正向的反馈等。


五、总结

本文重点谈了自己和孤尽老师的一些“接触”,自己眼中的孤尽老师是什么样的人,以及自己从孤尽老师身上学到了什么。


希望能够帮助大家从我的视角了解孤尽老师,也希望大家能够通过我对孤尽老师的介绍学到一些东西。


我们在进阶之路上要主动向身边优秀的人学习,取长补短,才能更快进阶。


你身边是否也有 Java 大牛呢?他给你带来什么样的启发?欢迎留言分享。

上一篇:为什么技术同学需要有更多的业务思考?


下一篇:单元测试经典三问:是什么,为什么,怎么做?