跳转至

不定期福利第二期 王争:羁绊前行的,不是肆虐的狂风,而是内心的迷茫

你好,我是王争。

专栏更新过半,我发现有些小伙伴已经掉队,虽然有人掉队也挺正常,但是我还是想尽量拉一把。于是,周末的时间,我就在想,究竟是什么原因让有些小伙伴掉队了?是内容本身太难了吗?是我讲得不够清楚吗?还是小伙伴本身基础太差、不够努力、没有掌握学习方法?

我觉得都不是,让你掉队的原因,从根儿上讲,是你内心的迷茫。如果我们不那么确信能不能看懂、能不能学会的时候,当面对困难的时候,很容易就会否定自己,也就很容易半途而废

这就好比你迷失在沙漠中,对你来说,肆虐的狂风并不可怕,可怕的是,你不知道该努力多久才能走出沙漠,不知道到底能不能走出沙漠。这种对结果的未知、不确定,导致了你内心的恐惧,最后就差那么一点点就可以走出沙漠的时候,你放弃了。

学习也是同样的道理。所以,我今天不打算讲学习方法,也不打算给你灌输心灵鸡汤,我就讲讲,对这个专栏的学习,或者对于任何学习来说,我觉得你应该建立的一些正确认知。有了这些认知,希望你能在后面的专栏学习中,少一点迷茫,多一份坚持。

没有捷径,没有杀手锏,更没有一招致胜的“葵花宝典”

有小伙伴给我留言说:“看书五分钟,笔记两小时,急求学霸的学习方法”,还有人问,“数据结构和算法好难,到底该怎么学?是我的学习方法不对?还是我太笨?”

我想说,并没有什么杀手锏的学习方法,更没有一招致胜的“葵花宝典”。不知道这么说有没有让你失望。如果你真要“求”一个学习方法,那就再看看我在专栏开始写的“如何抓住重点,系统高效地学习数据结构与算法”那篇文章吧

说实话,我也挺想知道学霸的学习方法的,所以,在求学路上,每当有学霸来分享学习方法,我都要去听一听。但是,听多了之后,我发现其实并没有太多用。因为那些所谓学霸的学习方法,其实都很简单,比如“认认真真听讲”“认认真真做每一道题”等等。

也不是他们说的不对,但是这种大实话,我总有一种领会不了的感觉,更别说真正指导我的学习了。而且,我觉得,很多时候,这些方法论的难点并不在于能不能听懂,而是在于能不能执行到位。比如很多人都听过“一万小时定律”,坚持一万个小时,你就能成为大牛,但有多少人能坚持一万个小时呢?

所以,这里我要纠正一个认知,那就是,学习没有“杀手锏”似的方法论。不要怀疑是不是自己的学习方法不对,不要在开始就否定自己。因为否定得越多,你就越迷茫,越不能坚持。

不要浮躁,不要丧失思考能力,不要丧失学习能力

有小伙伴给我留言说:“老师,这个地方看不懂,你能不能再解释一下”,还有小伙伴留言说:“《红黑树(上)》里的图为什么跟你的定义不相符?”

对于留言的问题,我都挺重视的,但是当仔细看这些问题的时候,我发现,实际上文章里已经有答案了,他根本没有认真看、认真思考,更别说去自己搜搜资料,再研究下,就来提问了。

一般情况下,我都会回复“你自己再认真看一遍”或者“你自己先去网上搜一下,研究研究,如果还不懂再给我留言”。告诉你答案,并不会花费我太长时间,但是,这样会让你丢失最宝贵的东西,那就是,你自己的思考能力、学习能力,能自己沉下心来研究的能力。这个是很可怕的。

现在,互联网如此发达,我们每天都会面对各种各样的信息轰炸,人也变得越来越浮躁。很多人习惯看些不动脑子就能看懂的东西,看到稍微复杂的东西,就感觉脑子转不动了。

上学的时候还好,要考试,有老师督促,还能坚持学习。但是工作之后,没有人监督,很多人陷入各种手机App中不能自拔,学一会儿就想玩会儿手机,想静下心来学上半个小时都无比困难。无法自律,沉不下心来,那你就基本可以跟学习说拜拜了。

只有做好打硬仗的心理准备,遇到困难才能心态平和

还有小伙伴给我留言说:“看不懂,一个4000多字的文章、10分钟的音频,反复看了、听了2个小时都没怎么看懂”。我给他的回复是:“如果之前没有基础或者基础不好的话,看2个小时还不懂,很正常,看一个礼拜试试。

“一个礼拜”的说法,我一点都不是夸张。虽然专栏的每篇文章都只有三四千字,10分钟左右的音频,但是知识点的密度还是很高的。如果你潜意识里觉得应该一下子就能看懂,就会出现这样的情况:看了一遍不懂,又看了一遍还是不怎么懂,然后就放弃了。

数据结构和算法就是一个非常难啃的硬骨头,可以说是计算机学科中最难学的学科之一了。我当时学习也费了老大的劲,能做到讲给你听,我靠的也是十年如一的积累和坚持。如果没有基础、或者基础不好,你怎能期望看2个小时就能完全掌握呢?

面对这种硬骨头,我觉得我们要有打硬仗、打持久战的心理准备。只有这样,在学习的过程中遇到困难的时候,心态才能更加平和,才能沉下心来有条不紊地去解决一个个的疑难问题。这样,碰到问题,你可能还会“窃喜”,我又遇到了一个之前不怎么懂的知识点了,看懂它我又进步了一点。甚至你还会“坏坏地”想,又多了一个拉开我跟其他人距离的地方了。跨过这些点,我就能比别人更厉害。

一口吃不成胖子,如果你基础不好,那就从长计议吧,给自己定一个长一点的“死磕”计划,比如一年。面对不懂的知识点,沉下心来逐个突破,这样你的信心慢慢也就建立了。

“放弃”的念头像是一个心魔,它会一直围绕着你

还有小伙伴给我留言说:“开始没怎么看懂,看了一下午,终于看懂了”。看到这样的留言,我其实挺为他感到庆幸的,庆幸他没有中途放弃。因为,放弃的念头就像一个心魔,在我们的学习过程中,它会一直围绕着我们,一旦被它打败一次,你就会被它打败很多次,掉队就不可避免了。

我分享一个我最近思考比较多的事情。前一段时间,我在研究多线程方面的东西,它涉及一块比较复杂的内容,“Java内存模型”。虽然看懂并不难,但是要透彻、无盲点地理解并不容易。本来以为半天就能看懂的东西,结果我从周一一直看到周五下午,断断续续花了5天的时间才把它彻底搞懂。回忆起这5天,我有不下10次都想放弃,每次心里都在想:“算了,先放一放,以后再说吧”“太难了,啃不下来,算了。”“就这样吧,反正也用不到,没必要浪费时间”等等。这种放弃的念头就像一个邪恶的魔鬼一样,一直围绕着我这5天的研究中。

现在回想起来,我很庆幸我当时没有放弃,多坚持了几天。如果当时我放弃了,那之后再遇到技术难题时,“放弃”的心魔还会再来拜访我,潜意识里我还是会认输。

之所以没有放弃,我自己总结了两点原因。

第一,我对学习这件事情认识得比较清楚,我一直觉得,没有学不会的东西,没有攻克不了的技术难题,如果有,那就说明时间花得还不够多。

第二,我之前遇到卡壳的时候,几乎从来没有放弃过,即便短暂地停歇,我也会继续拎起来再死磕,而且每次都能搞定,正是这种正向的激励,给了我信心,让我再遇到困难的时候,都能坚信自己能搞定它。

入门是一个非常漫长和煎熬的过程,谁都逃不过

还有小伙伴留言说:“看到有小伙伴有很多疑问,我来帮作者说句话,文章写得很好,通俗易懂,如果有一定基础,看懂还是不成问题的。”

我觉得,有些小伙伴的觉悟还是挺高的:)。我文章写得再通俗易懂,对于之前没有任何基础的人来说,看起来还是挺费劲的。

第一,数据结构和算法这门课程本身的难度摆在那里,想要轻松看懂,本身就不太现实。第二,对于任何新知识的学习,入门都是一个非常漫长和煎熬的过程。但是这个过程都是要经历的,谁都逃不过。只要你挺过去,入了门,再学习更深的知识就简单多了。

我大学里的第一堂课是C语言,现在回想起来,当时对我来说,简直就是听天书。因为之前没有接触过计算机,更别说编程语言,对我来说,C语言就像另一个世界的东西。从完全看不懂,到慢慢有点看懂,再到完全看懂,不夸张地讲,我花了好几年的时间,但是当掌握了之后,我发现这个东西其实也不难。但是如果没有度过漫长和煎熬的入门的过程,如果没有一点韧性,没有一点点信念,那可能也没有现在的我了。

其实我一直觉得情商比智商更重要。对于很多学科的学习,智商并不是瓶颈,最终能够决定你能达到的高度的,还是情商,而情商中最重要的,我觉得就是逆商(逆境商数,Adversity Quotient),也就是,当你遇到困难时,你会如何去面对,这将会决定你的人生最终能够走多远。

好了,今天我想分享的关于学习的几个认知就讲完了。现在,你有没有对学习这件事有更加清晰的认识呢?能不能让你少一点迷茫,多一份坚持呢?

最后,我有一句送给你:吃得苦中苦,方为人上人。耐得住寂寞,才能守得住繁华。

精选留言(15)
  • 王争 👍(234) 💬(1)

    小伙伴们的这篇文章的留言我就不一一回复了 看的我很感动 很多留言都写的太好了 我自己都受益匪浅 感谢🙏

    2018-11-23

  • Shuo 👍(10) 💬(3)

    1. 这东西本来就不简单,简单的东西人人都会不值钱。 2. 我学的时候是按照这样的路径:把书读薄,然后再读厚,然后再读薄。读薄就是先大体看一遍,觉得难的地方先跳过,知道有这么个东西,把整体先过一遍;读厚就是回头把不懂的东西再深挖认真看;再读薄就是真的懂了,运用起来得心应手。 3. 学习曲线是螺旋上升的。

    2019-04-30

  • 88591 👍(4) 💬(2)

    老师,能否分享下对java内存模型的理解。

    2019-06-24

  • 肖平亮 Sean 👍(3) 💬(2)

    这篇文章写的太好了。于是乎,我决定把这篇文章再重新敲一遍。一个字不差的用键盘重新再敲一遍。

    2019-02-27

  • 极客鱼 👍(1) 💬(1)

    一开始看到网上的一个月搞掂算法,三个月直通FLAG offer的视频和培训弄得我很浮躁,有时候一个两个小时的视频,你反复看,居然能看了十次都没有信心说里面的知识点我都掌握了。那时候很沮丧,觉得自己很笨,觉得别人都比自己聪明,甚至一度患上焦虑症,需要药物缓解。后来当对自己和计算机这门学科有了正确的认识之后,我比较实在地告诉自己,这一门是个很难的学科是个硬骨头,从零开始到能应付FLAG的面试,我给自己定了一年半的时间线,先确保老师这里定的20个数据结构我先无死角地掌握,再去碰那些综合型强的题,然后再做hard的题。我把战线拉长了,现在我不慌不忙,反正一步步把整个鲁走扎实了,也有detail的checklist,一步步来呗!

    2019-01-09

  • Jason 👍(0) 💬(2)

    不说了,马上再去看一遍本来打算放弃的红黑树的实现,才不负老师的良苦用心😂

    2019-04-02

  • 赵丽小人儿 👍(0) 💬(1)

    我从第一课时坚持到现在,越来越不懂,能达到的水平也就是听懂这个东西是干嘛用的,然后对于代码实现,结合实际应用,完全不知道; 其实我更想结合某个实际项目,包括从项目需求,项目设计,项目流程,项目代码的实现等,从这个方面来学习; 其实都挺困难的,既然都坚持到现在了,就继续吧,至少在我的印象中,我知道有这么东西的存在,对吧。 ~瞎论~

    2019-01-10

  • 虫儿飞 👍(0) 💬(1)

    谢谢老师,这个留言功能您只回复新的文章评论,还是之前也回复呢?

    2018-11-24

  • ext4 👍(0) 💬(1)

    你大一的C语言是梁力/原盛老师教的吧?另外,Java memory model学懂了能不能开个讲座啥的?哈哈~

    2018-11-23

  • 王楚然 👍(264) 💬(13)

    每天上班路上会看老师的文章。作为女生,逻辑能力比男生差,理科又一直不好。遇到红黑树已经让我彻底懵逼,有了多看数学书多培养数学思维的想法。每天坐地铁都想说我想歇一歇,可是每次都跟自己说,我就看一篇就好。每次因为自己的笨都想放弃。每次都坚持告诉自己,就算看不懂当做开阔眼界也很好。看到老师今天的文章我终于放心了,因为连老师都说,不花大力气是学不好的,那么我所做的努力还远远不够,更不用急着否定自己了,感谢老师在我觉得艰难的时候能写下这样的文章拉了我一把😁

    2018-11-23

  • P@tricK 👍(231) 💬(0)

    老师出这篇学习方法真的用心良苦,感觉现在的人真的很难再去付出100%的专注去学习了,特别是在职搬砖的人。 个人觉得,学习的关键在于决心和自律。 加油吧各位。

    2018-11-23

  • Jerry银银 👍(125) 💬(5)

    老师真心用心良苦,感谢! 在学习的算法的过程中,个人也有一些感触,分享给大家。极客时间留言字数有限制,我只好将留言完整版放到了其它地方,然后只截取了一小段放在这里。有兴趣的,可以看看完整的心路历程:https://zhuanlan.zhihu.com/p/50733874 【做好心理准备:学习过程,时而兴奋,时而备受打击】 我学习算法的主线,是通过机械工业出版社出版的、Ellis Horowitz等人著作的《数据结构(C语言版)》。说实话,刚开始只看这一本书,问题也不太大,但是当我学习红黑树的时候,问题就来了。如果不知道这种数据结构如何由来的话,直接去学,就很容易懵。中间我因为工作繁忙,晚上经常加班到深夜,而红黑树很多次又看不懂,再加上身心很疲惫,很容易放弃;中间,我确实放弃了很多次,又重新捡起来很多次。所幸的是,我没有真正的放弃(因为有梦想的支持)。某一天,我真正决定了:必须搞懂红黑树。于是,在国庆节期间,再加上我请了三天假,总共花了十天左右的时间,仔细研究二叉树查找树的特性,再去leetcode上找二叉树基础性的题目做;等二叉树学习得差不多了,再继续深入2-3树,真正理解二叉树为什么需要『平衡』,仔细研究2-3树如何构造,反复在草稿纸画图;当搞明白了2-3树的时,深入研究红黑树,理解rotate left、rotate right,这中间依然是在草稿纸进行反复画图,理解红黑树的构造。 这中间还有一个小插曲,在《算法》一书中,红黑树的定义是这样的:红黑树是含有红黑链接并满足下列条件的二叉查找树: 1. 红链接均为左链接; 2. 没有任何一个结点同时和两条红链接相连; 3. 该树是完美黑色平衡的,即任意空链接到根结点的路经上的黑链接数量相同。 当看到第一条的时候,我直接就懵了。因为,我看到《算法导论》和一些网络博客对红黑树的定义允许有红色右链接呀。为了解答这个问题,我查阅了各种资料,最后在wikipedia红黑树条目中找到了真相:原来Robert Sedgewick 这样定义,是为了简单化红黑树,精简红黑树实现的代码。 学习红黑树的过程,我犯了一些错误: 1. 贪快,缺乏耐心。有时候会看得过快,忽略之前章节的学习,直接进入后续章节学习。但是『专业性很强的教课书』一般都会有条理的进行编排,也就是说,前面的章节可能是后面章节的『原因』,如果基础不是很好,直接进入『结果』的学习,导致的情况就是:懵! 2. 一本书看不懂,就死磕。书籍是人写的,每个人对每个领域的理解不一样,阐述也可能不一样,某一个人说出来的『东西』不是很容易理解,也有可能是对方讲的不够好嘛。试试找找其它的材料看看呢!我在学习红黑树的时候,死磕了一本书之后,发现不行,终于意识到得找找其它同类型的资料了,最终发现了《算法》一书(这么经典的书,我都不知道),同时还在网上发现了一个比较好的网站:https://visualgo.net/en 《算法》一书用的描述语言是Java,合胃口; 理解红黑树,我就通过《算法》一书理解的。我觉得作者就非常抓重点和让人容易理解,后来一查,才发现,作者 Robert Sedgewick 曾经对红黑进行改造,让红黑树的代码实现精简了很多。可想而知,作者对红黑树的理解够透彻和权威了吧。 通过这次的经历,我稍微把自己学习算法的方式进行了调整: 1. 我购入了《算法图解》一书,在稍微轻松的心情中,对算法有了一个整体的脉络,连带急切想知道的图和动态规划都稍微了解了一下 2. 我开始用线上的一些比较好的网站,进行一些『练习』。比如在熟悉基础概念阶段,使用https://visualgo.net/en进行练习,基础概念掌握差不多了之后,开始在leetcode上找一些easy的题目开始做(leetcode上easy题目,虽说找到最优解也要花一点功夫,可以至少起初能找到一些方案) 既然为了精通算法,多买几本算法参考书还是要的,多花点钱也没什么大不了的。😄 为了搞懂问题,我参考的资料一般有:权威的专业书籍、Wikipedia、一些人的博客 写完这一段时,我突然想到《士兵突击》中那句经典的台词:“不抛弃,不放弃”。 对算法也得多喊喊:“不抛弃,不放弃”!

    2018-11-24

  • 公众号:小鹿动画学编程 👍(52) 💬(0)

    王争老师分享的这波很不错,我也一直坚信甚至经常和身边的小伙伴们提起「学习没有捷径,只有付出与不付出」。有一点想和王争老师分享的是,我觉得学习像数据结构与算法这种难度比较大,零碎的知识点比较多,导致了很多同学处于一种迷茫的阶段的状况,原因有一下几种: 1、执行力不足,每当开始学习的时候,一些小的基础概念都没有弄明白,一味地学习后边的知识,导致学习的挫败感越来越强。 2、学习技巧。王争老师也说了,学霸有没有学习方法我们不知道,毕竟我们是玩技术的,不像是学霸每天和各种学科打交道,我之前也是一个学渣,更别说是数据结构与算法了,最基础的程序语言都很难弄明白,但是当我入门一门语言的时候,感觉再学习其他的语言和编程就感觉很快就会入门。我认真反思了一下,原因就是一个好的学习方法实在是太重要的,就说数据结构吧,很多人可能没有想过怎么才能让自己王争老师分享的每一篇文章都找到一根线掌握起来,然后将所有的课和知识点掌握起来,这就涉及到学习方法问题了,因为自己对学习方法研究比较深,也经常在朋友圈和公众号给我的小伙伴们更多的分享学习方法,因为我觉得这比分享更多的技术更为重要,有句话说的好「治病先治根」,哪里有病,首先找到病根的原因,然后对症下药。 3、习惯。我觉得坚持学习,还不如说成一种习惯。自从王争老师出了这门数据结构与算法课程之后,我逐渐爱上了这门科目,之前课老师上讲很基础,涉及不到那么深,再加上买的那些书籍资料太乏味,导致让我很难学习下去。王争老师这门课出了之后,感觉学习数据结构也没有这么难,自己也研究了一套学习数据结构的方法,正在努力给自己完善中。在学校做小项目时,很多问题导致我无法去解决,身边几乎没人去学习这么重要的科目,学习有的重要的技巧就是活学活用,这门课很多的技术解决了我实际的问题,有时候就是恍然大悟,由于自己跟着王争老师学习的比较深入,遇到问题就像是条件反射一样,遇到了一个很难解决的问题,脑子里就不由自主的跳出一个数据结构的解决方法,然后仔细一想,确实可以解决这个方法。也逐渐的,每天看王争老师分享的数据结构与算法成为了一种习惯,每天都去学习思考,都要简单做做笔记,一天不去看,就感觉今天有什么事情没有完成一样,我觉得自己已经深爱上了这个课程,成为了一种习惯。 最后感谢极客时间,感谢王争老师能够出这么一门好的数据结构与算法的文章,让我受益很多。

    2018-11-23

  • fumeck.com🍋🌴summer sky 👍(37) 💬(3)

    买了快二十个专栏.就数老师和《趣谈网络协议》这两个专栏最用心了。 授人以鱼更授人以渔,很庆幸我能坚持,一周也就三更硬啃下来不要掉队太久就能跟上大队 我的学习方法是先把理论和概念先弄懂,至于代码的实现与细节以后有时间再来专栏看一遍仔细雕琢。这样以后遇到问题起码有解决思路了再说,再对症下药把解决方案对应的专栏里代码与实现细节弄懂它 然后就是多看留言,真正的精华其实在这里。大家一起坚持,加油

    2018-11-23

  • 东瓜酱 👍(30) 💬(5)

    我去年35岁从项目经理转算法,就是为了实现自己的算法梦想,以前读研的时候怕复杂的算法,就没有走图像处理的方向,转了自控,工作后很是后悔,但是迫于生活压力不敢转行,经过多年的努力,终于在35岁的时候可以自主的实现自己的想法。转行的过程是痛苦的,现在刚毕业的研究生马上就能上手研究图像、视觉传统算法和例如深度学习这样高级点的算法,而我只能放低姿态从最基础的原理基础、应用开始,通过自我学习以及课程培训等方式一步步前进,这个过程是非常漫长,现在大概坚持一年半了,几乎没有周末和下班后的自娱自乐休息的时间,但付出是有收货的,去年被评为公司的最佳员工,而且感觉这一年半学习了比最近十年学的东西还要多,很充实和快乐。即使遇到出差合作和加班的情况,也在不断的调整自己的学习时间,我始终坚信:路是自己选择要走的,哪怕再艰难,也不能放弃,坚持下去,方可终见曙光。

    2020-08-03