光背面试题可没用,谈谈如何真正掌握一个技术知识点
阅读本文大概需要 3 分钟。
如何真正地掌握一个技术知识点,这是我一直在探索的一个问题,在秋招复习的那段时间,我主要通过阅读博客、整理博客等方式构建了自己的知识体系,所以也算是有了一些经验,在这里分享给大家。
1、第一次接触
作为一个学习者,在学习过程中往往会遇到很多新概念,比如你在学习并发编程的时候,会遇到“锁”、“同步”、“CAS”等奇奇怪怪的概念,光看文字解释大部分人都是一头雾水,我也一样。
所以,第一次接触一个技术知识点,往往是我们充满好奇,渴望探索的时刻,保持这份好奇心,继续下一步探索吧。
2、深度优先遍历
深度优先遍历(DFS)是一种算法思想,用在这里,想表达的是“如果遇到一个陌生的概念,学习它的过程中往往会同时遇到其他陌生的概念”那么就用深度优先遍历的方法去搞定它。
刚刚我们提到并发编程里的“锁”这个概念,就应该噶
比如我遇到了“网络IO模型”这一问题时,卡在了IO多路复用这一问题上,搜索以后,发现IO多路复用在Linux操作系统上的解决方案有:poll、epoll和select。
这三个概念又是什么东西呢,没办法,只好用DFS的方法继续去了解,搞懂了poll之后,继续搞懂epoll,而理解epoll又是相当费劲的,不得不去了解epoll的实现原理,甚至需要去看源码,可见学习一个技术知识点并不轻松。
3、搞懂底层原理
对于上面提到的epoll,笔者为了学习它实在费了不少功夫,一开始光看一些面试题的解答,以为记住答案就可以了,但是真正到面试的时候你就会发现背的东西根本靠不住,一是容易忘,二是容易被看穿。
当你背了很多面试题的答案之后,你就会发现,背的越多,忘得越多,这就是一个恶性循环,怎么办呢,只好硬着头皮去理解原理呗。
当然,对于这种级别的知识点,我可不推荐你抱着《UNIX网络编程》去
探索,有点太夸张了,去看一些比较好的博客就足够了,比如在掘金,开发者头条,搜一下你感兴趣的知识点,挑几个高赞回答瞅一瞅,总有几个大佬能告诉你真相的。
我早已熟悉这一学习方式,于是很快就找到了一篇讲解epoll原理的文章,这篇文章不仅把基本概念解释清楚,甚至还解析源码,另外,我在另一篇文章里找到了epoll底层数据结构的示意图,竟然是一颗红黑树。此时再把两者一结合,基本上这个概念就变得很好理解了。
4、构建自己的知识体系
不管是学什么技术,最终都需要你进行归纳、整理,才能把所学的东西变为自己的。工作为什么要写日志,平时学习为什么要写博客,其实就是在构建自己的知识体系。
在学习的过程中多做笔记,多做总结,习惯一旦形成,久而久之,便会印在你的脑海里,你下次再被问到这一问题时,你就可以用自己之前总结过的内容来回答。
比如我在学习Java并发编程的时候,一开始也觉得毫无头绪,相关知识点杂乱无章,后来我整理了一个技术专栏叫做“Java并发指南”,在这里的过程中梳理了并发编程的知识结构,从最基础的Java多线程,再到JMM内存模型、锁、JUC并发包、JUC源码,依次进行学习。
如果对我整理的博客专栏感兴趣,也可以直接点击原文链接进行查看。
推荐阅读:
听说点“好看”是种美德?我要先点个好看