学富一车,亲妹都忍不住要吐槽!

沉默王二

共 3073字,需浏览 7分钟

 ·

2021-04-11 23:25

前段时间,我不是在朋友圈晒了这么一张图嘛。

于是好多读者留言说,“二哥,你离学富五车还差四车!”其实用这个小车搬了好几趟,不仅我累坏了,小车也累坏了,瞧瞧它不堪重负的样子!

这么多书,我究竟看了多少本呢?没具体数过,反正没看过的比看过的多,哈哈哈!!!!!每次我买一大摞书回家,我妹都疯狂吐槽,“买这么多书,还不如请我吃顿大餐呢!”我~~~~

好了,说回今天的重点,不知道大家有没有这样一种感觉。

当我们拿到一本书的时候,总是想迫不及待地把它看完。衡量今天有没有收获的标准不是吸收了多少知识,而是看了多少页,反正我就这么干过,七八年前还坚持在朋友圈打卡晒 140 个字以内的读书心得——现在想想,真是矫情。

当翻到书的最后一页时,如释重负,又感觉脑袋里空空的,仿佛什么知识也没有进来过,真奇怪!

除了上面这些苦恼,大家在读书的过程中应该还遇到了一些其他的烦恼,那到底读书有没有一些好的方法呢?今天我们就来谈一谈,希望能对大家有所启发,有所帮助。

计算机专业的书大致可以分为三类。

1)编程语言方面的,比如说 Java、C 语言。

2)数据结构与算法类的,比如说《算法 4》、《编程珠玑》等。

3)计算机基础类的底层书,需要花很大的力气才能掌握,比如说操作系统、计算机网络等方面的。

在初学编程的阶段,千万不要陷入编程语言的细枝末节当中。比如说学 Java 的话,一上来就看《Java 编程思想》就是一个巨大的坑,书是好书,但对初学者极度的不友好,可能看着看着你会感觉,“卧槽,怎么 Java 学起来这么难,劳资要放弃!”

反正我当年初学 Java 的时候就跳了这个火坑,2019 年重看《Java 编程思想》的时候才感觉,哇,真的是一本好书呢,学到了很多,但一开始学 Java 那会真的是感觉在看天书一样~

一开始选择看什么书还是非常重要滴~

Java 的话,可以直接看我写的《教妹学Java》,但这个系列目前写到第 23 讲就没继续往下写,主要是动力不足,或者说过于初级的内容不好意思在公众号上发表,后面打算整一个学习网站,然后在上面发表。

我之前给大家推荐过一份 Java 教程,GitHub 上星标 115k+,我亲自整理的,应该有不少读者下载过,我觉得质量还可以。

至于纸质书的话,只推荐一本吧,就是《Java 核心技术卷》;视频的话,也之前也推荐过,就是尚硅谷宋红康老师的视频教程,可以到 B 站上白嫖。

很重要一点,我必须得说一下。代码是敲出来的,不是看或者听出来的!无论是看电子书、纸质书,还是视频,一定要自己动手把例子敲出来、敲出来,敲出来。

编程语言方面的书,其实还好,初学者只要选对了书,基本上都能拿下来。

然后是数据结构和算法方面的书。

对于 Java 语言来说,数据结构无非就是线性数据结构和非线性数据结构(总感觉等于没说),线性数据结构有数组、链表、队列和栈,非线性数据结构有树、图和哈希表,我之前也有细致介绍过。

算法这种东西在我看来,有点像文言文(包括古诗词),就是很难懂,但又必须得学!粗俗点说是为了高考,高雅点说是为了艺术修养,但文言文这东西在实际的生活工作当中,用处多不多,就看从事什么职业了!

难懂的东西就比较容易忘,比如说我们好不容易理解了动态规划和 KMP 算法,几个月没用,可能就忘得一干二净~

动态规划(Dynamic Programming)是一种在计算机科学中经常使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。
KMP 算法是一种改进的字符串匹配算法,由 D.E.Knuth,J.H.Morris 和V.R.Pratt 提出,因此人们称它为克努特—莫里斯—普拉特操作(名字简拼)。

怎么搞懂算法呢?很简单的一个方法就是去看大佬们的解题思路,站在大佬们的肩膀上做事相对会简单一点。一开始肯定会比较难,但只要坚持下去,刷个 100 道题就会有一种顿悟的感觉,再见到新的题目的时候,就会有自己的解题思路。

搞懂了之后,重要的就是练习。不管是去 LeetCode 官网,还是去牛客的官网,上面都有大量的题目可以练习,甚至可以到一些名校的官网上刷题,比如说浙大,上面有大量的算法设计题,都是很好的资源。

能不能记得住,其实靠的就是练习,想一下,我们上初中高中的时候,周考、月考、期中期末考试,大量的考试就一个目的,加深我们对知识的理解,尤其是举一反三的能力。

当然了,练习是非常耗费时间的,工作后可能很难再有连续的时间段,所以刷题还是要趁早,最好大二大三的时候就安排上,多参加一些竞赛,不仅能培养自己的团队意识,还能锻炼一下自己抗压的能力,对以后找工作会有很大的帮助。

最后再来谈谈第三类书的学习方法。

计算机底层的东西一般都很难消化,因为理论性很强,并且短时间内看不出它有什么样的价值。很长一段时间里,我们甚至会有一种错觉,就是这些知识好像用不上。但往往这些底层的东西,决定了我们的上限。

这也是我近些年才想明白的一件事,我之前也是不太注重这方面的知识,总觉得只要编程语言学好了,能把工作搞定就行了。但往往遇到技术攻坚和性能调优的时候,会非常乏力。说白了,就是因为对计算机底层的东西没有很好的掌握。

针对这一类书籍,该怎么学习呢?我想大家都应该很关心。

拿《深入理解计算机系统》这本豆瓣评分几乎满分的书来说吧。假如我们只打算读一遍,那我还是劝你最好不要浪费时间,因为这样的书只读一遍的话,吸收到的知识是极其有限的,它真的不好读。

我觉得至少要读三遍以上吧。

第一遍,尽可能在短时间内速读一遍。不要陷入某个具体的知识点,这一遍的主要目的是通晓每个章节的重要知识点,切记,只是通晓,不要尝试理解透彻,对于一般人来说,透彻是不可能的。

如果有可能的话,可以画一下思维导图,把你感兴趣的或者你认为重要的知识点记录下来,为第二遍做好准备。

第二遍,尽可能地去理解那些你在第一遍中记录下来的知识点。放慢节奏,放稳心态,不要着急,遇到仍然看不懂的知识点可以暂时跳过,也可以找同学、朋友、前辈交流,不要钻牛角尖,非要把某个知识点搞懂怎么怎么样,因为这书不简单~

最好每读完一章能写出来点什么,可以去网上搜对应知识点的文章,看看别人是怎么理解的,甚至可以动手画一些图,在画图的过程中,去理解,一图胜千言嘛,如果你能用图把知识点梳理出来,可能就真的理解了。

第三遍,过一段时间后再去重读。认认真真过了第二遍后,你应该花费了很大力气,能掌握的应该都掌握了,但大脑也需要从紧张的情绪当中放松出来,于是你需要放一放,去阅读一些其他方面的书籍,或者去学习一些其他方面的知识,可能你会发现,“害,这个知识点《深入理解计算机系统》有讲过呢”,当你有这种感觉的时候,读书的效果就真正体现出来了。

第三遍再读的时候,就没有第一遍那么痛苦了,毕竟你已经掌握了一些知识,这些知识只是温习而已,相对会轻松很多。所谓“温故而知新”,这一遍你可能会产生新的想法,就进入一个新的境界了!

参考链接:https://kb.cnblogs.com/page/651578/

纸上得来终觉浅,绝知此事要躬行!

不管是读小说,还是读技术书,只看不总结的话,可能就真的只是看过了,至于 get 到了多少,就很难说了。

当然,以上只是我的一些想法,不一定全对,但希望能给大家一点帮助。

浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报