我眼中的Java大牛之孤尽老师 ——《我的Java打怪日记》

简介: 本文将讲述自己和孤尽老师的一些“接触”,我眼中的孤尽老师是什么样的人,以及自己从孤尽老师身上学到了什么。写孤尽老师的主要原因是我认为孤尽老师影响和帮助了很多人。孤尽老师就像一盏明灯点亮学习之路上的漫漫夜空,就像一杆旗帜引领我们学习的方向。

一、背景


在阿里云开发者社区看到《我的Java 打怪日记》征文活动,征文的主题中就包括了“我眼中的大牛”,对此非常感兴趣。希望可以借着这个机会写一下我眼中的大牛:孤尽老师。


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


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


二、时间线


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


FireShot Capture 014 - 孤尽时间线, Online Whiteboard for Visual Collaboration - miro.com.png


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


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


码出高效.jpg

后来发现《阿里巴巴 Java 开发手册》里面经验非常宝贵,但没有给出详尽的解释,即为什么要这么规定。根据自己的工作经验结合源码、字节码等角度,写了一个技术专栏(《剖析《阿里巴巴 Java 开发手册》》)对《阿里巴巴 Java》开发手册进行解读,专栏末尾读孤尽老师能够将经验总结成册帮助到更多人做了致谢。


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


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


其一,Deeply Inspire Yourself

深度激发自己

其二,Do It Yourself

实践出真知


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


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


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


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


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


证书打马.png



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


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


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


三、我眼中的孤尽老师


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


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


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


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


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


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


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


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


4.1 技术热情


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


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


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


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


我自己也一直坚持写博客(博客名为:明明如月学长,博客阅读量 300多万,有 5000多个粉丝),也出过技术专栏(订阅量 5000份以上)。主要想通过写博客、专栏等帮助自己更系统地理解知识,记录自己这些年的成长历程,此外也希望能够通过自己的博客帮助别人少走弯路。


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


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



4.2 学习之法


下面是在其他平台上看到的孤尽老师对“成为 Java 大神必备哪些条件” 进行了回答。

重点讲到具备的技术体系中虚的和实的部分,在这里就不再赘述。

回答.jpeg


但是我们不仅要知道学什么,还需要知道如何高效学习,需要知道学习如何学习。


孤尽老师之前有提到,关键在于结构化思维、知识内化的能力和保持好奇心、求知欲和灵感等。


4.2.1 学习四部曲


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


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


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


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


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


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


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


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


思维导图.png


下图是自己对读源码的一些思考:

读源码.jpg


大家可以通过思维导图整理自己的知识体系并不断丰富和修改进行完善(不知道你注意观察会发现,大多数人作思维导图是不会去更新的,其实这也就意味着思想的深度没有增加)。


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 开发手册》时也收到了很多质疑,但还是顶住了压力,坚持做自己,最终也受到了广泛认可。


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


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


4.5 提升软技能


在 DIY 班毕业作品时,给了下面的点评:

一、信任是什么?(信任是主动的,单向的)

二、透过现象看本质。(需求背后的都是人性)

三、解决问题的能力。(定位问题更加重要)

四、效率是什么?(效率是单位时间你干了别人两倍的活)

五、完成比完美更重要。(代码是改过来的,架构是演进出来的)

六、新技术的恐惧,是IT从业者的命门。(回顾第一节课:学习如何学习的能力,快速学习的能力)

七、提升抗压能力。(抗压能力是事业的基础)

八、演讲能力,限时演讲。(通过关键词来带动演讲节奏)


其中第二条透过现象看本质和前面讲到的“本质思维”是一致的。


从上面的点评中我们还可以看到很多软技能方面的内容,如培养抗压能力,提升演讲能力等。


技术是我们安身立命的根本,但一定不是全部。


刚开始工作,技术方案什么可能都是已经给设计好的,不需要特别注重思考和沟通。


随着工作年限的增加,你越来越发现很多问题不仅是技术问题,还可能是产品问题,商业模式问题等。



之前一个主管也讲过,当 TL 的未必都是技术最强的,但一般都是综合实力最强的。


除了技术之外,我们还需要培养文档编写能力、沟通表达能力、项目管理能力、培养产品思维、团队管理、时间管理等。


至于如何提升这些软实力,需要大家有意识的去针对不同的模块读一些书,查一些资料,多做一些实践,量变引起质变(又是哲学)。

五、总结


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



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


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


你身边是否也有 Java 大牛呢?他给你带来什么样的启发?


如果本文对你有帮助,欢迎点赞、评论,你的支持是我创作的最大动力。

相关文章
|
设计模式 缓存 IDE
Java进阶之路-如何写出高质量的代码——《我的Java打怪日记》
本文提出可读性是高质量代码最重要的特点,然后分析了好代码和坏代码的特点,然后从战略层面给出写出高质量代码的几条建议,最后给出几个Java领域比较出名的开源框架,并给出一些代码实践。
2786 0
|
安全 Java 开发工具
开发者眼中的JAVA 最晦涩的知识点
后端开发的开发者想必都知道,Java是一门广泛应用于企业级应用程序开发的编程语言,它的简洁性和可移植性使得它成为了许多开发者的首选。尽管Java具有很多易于理解和使用的特性,但在这门语言的深入学习过程中,也存在一些晦涩的知识点,这些知识点可能需要更多的时间和经验才能完全理解,那么本文就来简单聊聊开发者眼中最晦涩的Java知识点是什么?
131 2
开发者眼中的JAVA 最晦涩的知识点
|
前端开发 Java 编译器
Java 仿 IntelliJ IDEA idea的 UI 框架 flatlaf——《我的Java打怪日记》
使用JAVA写界面一直是一个麻烦事,作为一个前端,在写前端页面的时候有不少的UI库可以使用。于是聪明机智的我,就想到也许JAVA上也许会有一个类似的UI库,可以直接引入调用。而作为一个软件,我本人一直欣赏intelliJ编译器的界面,所以就去狠狠的搜索了一下有没有仿照它做出来的UI库。 结果显而易见,是有的!一款叫做 FlatLaf 的 UI 库就是仿照intelliJ编译器做出来的UI库,大家可以通过MAVEN直接引用它,放到自己的软件中去。
|
设计模式 小程序 Java
Java上下求索之面试 ——《我的Java打怪日记》
面试,其实是作为 Java 学习路上的一个总结。日常是在学习或是在摸鱼,一试便知。也是我们在学习路上相对来说最重要的一环,决定我们的薪资与高度。许多人害怕面试,我也怕诶,因为作为程序员整日面对电脑的情况,直接导致我们丧失一部分与人交流的能力。
1268 0
Java上下求索之面试 ——《我的Java打怪日记》
|
XML 前端开发 Java
Java框架Spring Boot经验总结——《我的Java打怪日记》
Spring Boot可以说,是当前Java领域非常重要的一个框架,可以非常方便的进行Java Web应用的开发。官网提供的一套脚手架可以快速进行项目模板的创建,并引入依赖库。Spring Boot框架为广大的Java工程师带来了福音,Web API写起来更加的高效。
1257 0
Java框架Spring Boot经验总结——《我的Java打怪日记》
|
前端开发 Java 数据安全/隐私保护
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?5️⃣🚀
列表最大的特点就是 整齐 、整洁、 有序,跟表格类似,但是他可组合自由度会更高。
225 0
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?5️⃣🚀
|
存储 前端开发 Java
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?4️⃣🚀
表格的现在还是较为常用的一种标签,但不是用来布局,**常见显示、展示表格式数据。**因为它可以让数据显示的非常的规整,可读性非常好。
184 0
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?4️⃣🚀
|
前端开发 Java
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?3️⃣🚀
段落标签可以把 HTML 文档分割为若干段落,在网页中要把文字有条理地显示出来,离不开段落标签,就如同我们平常写文章一样,整个网页也可以分为若干个段落。
209 0
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?3️⃣🚀
|
存储 前端开发 Java
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?2️⃣🚀
  HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言。HTML 不是一种编程语言,而是一种标记语言 (markup language),标记语言是一套标记标签 (markup tag)。网页是由网页元素组成的 , 这些元素是利用html标签描述出来,然后通过浏览器解析,就可以显示给用户了。
175 0
🚀Java后端人眼中的前端,和前端人眼中的有不一样吗?2️⃣🚀

热门文章

最新文章