|
2016年夏天,传智我在出租屋里对着eclipse的播客报错信息发呆,屏幕上是视频一个死活跑不通的JDBC连接池demo。那时候网上能找到的传智Java教程要么是念PPT的大学公开课,要么是播客讲一半就开始卖课的培训机构广告。后来朋友甩给我一个传智播客的视频百度云链接,说“你先看这个,传智能看懂再谈别的播客”。那个文件夹里躺着刘意老师讲Java基础的视频全套视频,从Hello World到多线程,传智一共三百多集。播客 传智播客的视频视频有个很明显的特征:它不是录屏软件随便录的。刘意讲课的传智时候会突然停下来,对着镜头说“这里我再啰嗦一句”,播客然后花五分钟把某个容易混淆的视频点掰开揉碎。比如讲多态的时候,他先写了一个父类引用指向子类对象的例子,运行结果正常。接着他把父类里的方法改成static,再跑一遍,结果变了。他没直接解释为什么,而是把内存图一点点画出来,堆区、栈区、方法区,箭头标得清清楚楚。这种讲法在当年那些“三分钟学会Java”的教程里几乎见不到。 我后来把整套视频刷了两遍。第一遍用1.5倍速,第二遍降到原速,专门看他在IDE里敲代码的过程。有个细节印象很深:讲集合框架的时候,他新建了一个ArrayList,往里塞了三个字符串,然后用迭代器遍历。突然他停下来,把迭代器改成for-each循环,说“你们以后写代码,能用for-each就别用迭代器,少写一行是一行”。这种带着个人习惯的建议,在官方文档里永远看不到。 传智播客的Java课程体系分得挺细。基础部分大概一百五十集,涵盖了语法、面向对象、异常、IO、多线程、网络编程。进阶部分有MySQL、JDBC、HTML/CSS/JS、Servlet、JSP,再到后来的SSM框架。我认识一个做安卓的朋友,他只看完了基础部分就去找工作了,面试的时候被问到HashMap的底层实现,他把刘意画的那张数组加链表的图默写了一遍,居然过了。当然那是2016年的事,现在这么干肯定不行。 视频里偶尔会出现一些“教学事故”。比如讲递归的时候,刘意写了一个阶乘函数,结果参数传了100,栈直接溢出了。他愣了一下,然后笑着说“看到没,这就是递归的坑,别传太大的数”。这种真实的翻车现场比完美演示更有价值,至少让我记住了递归的深度限制。还有一次讲文件IO,他忘了关流,程序跑了几次之后报“Too many open files”,他当场排查,最后在finally块里补上了close。 2018年之后,传智播客改名叫传智教育,视频也重新录了好几版。新版的画质好了,PPT精致了,但总觉得少了点什么。后来我想明白了,旧版视频里那种“边写边讲边出错”的粗糙感,恰恰是新手最需要的东西。你看一个老师从零开始敲代码,他打错一个字母,编译器报错,他删掉重来——这个过程本身就在告诉你:写代码出错是常态,改就完了。 现在B站上还能搜到那些旧视频,弹幕里时不时飘过“2024年还有人看吗”。有人回复“有,刚看完多态”。这些视频的画质停留在720p,声音偶尔有电流杂音,但评论区里打卡的人一直没断过。一个教程能活这么久,靠的不是营销,是里面那些具体到近乎笨拙的讲解。刘意讲String和StringBuilder的区别时,直接写了一个循环拼接十万次字符串的测试,然后让你看控制台输出的时间差。这种用数据说话的方式,比背概念管用一百倍。 我后来带过几个新人,他们问我该看什么教程入门。我说你先去把传智播客刘意那版Java基础看完,看完再回来问我。大部分人看到一百集左右就放弃了,少数坚持下来的,后来都找到了工作。有个小子跟我说,他面试的时候被问到“为什么重写equals要重写hashCode”,他脑子里直接浮现出刘意画的那张内存图,两个对象在堆里的地址不一样,但equals返回true,hashCode却不一样,放到HashSet里就出问题了。他说完这些,面试官点了点头。 那些视频现在还在我的移动硬盘里,文件夹名字叫“传智播客_Java_刘意_2015”。偶尔翻出来看两眼,画质糊得不行,但听到那句“来,我们新建一个类”,还是会想起当年在出租屋里对着屏幕敲代码的下午。 |