为什么你有知识但没有能力
起因
有同学想抓一下访问 baidu.com 的流量,然后分析学习,抓完包后想过滤只看 baidu.com 的流量,减少干扰,于是他在 Wireshark 里面用上了过滤条件: http.host eq “baidu.com” 但是没有过滤到任何包,所以他带着这个问题来问我了
如下图是他的过滤结果:
多说一句,要是我我就只留一个条件来提问:http.host eq “baidu.com”
看到这个问题,虽然我从来没有用过 http.host 这种过滤方式,但我大概猜到了原因,所以我先找了一个政府网站(他们是为数不多还在用 http 的网站),然后我轻松用同样的方式正确过滤到了我要的包:
于是我回复他:
第一,你不应该搞一堆条件,不好调试;最简单用一个条件过滤验证
第二,为什么你百度过滤不了,我想留给你自己去看书、想一想,如果不行一周后我再告诉你答案。自己琢磨出来会让你的正向激励跟吸du一样更嗨,唾手可得的答案不符合本星球希望帮助成员达到无招胜有招的目的,知识是学不完的,总有你不会,但是分析能力、解决问题的能力才是我们要可以去训练,最终你要达到把你丢到一个不懂的领域你很快可以解决问题
其实我是想引导他自己分析解决问题。
我认为这个同学能动手去抓包分析,学习的劲头已经有了,居然会 http.host 这种用法,这是我第一次看到这么用(我平时不和 http 打交道,别鄙视我),我想他肯定知道https
但是为什么他知道这些知识但是在实践中什么阻碍了他把学到的知识和他碰到这个头疼的问题联系不起来呢?
有知识但没有能力
我以前在《如何在工作中学习》就讨论过这种情况,如图
显然,这次这位同学的只是具备了,但是没有转化成能力,也就虽然我们都学了TCP、HTTP、HTTPS这些信息,但是没有理解透彻,更具体一点没有把 HTTPS,这层 TLS 工作结构就没理解清楚,TLS 把你原来的 http host 都给加密了,你自然没法按原来的方式过滤。
如下图,这是加密后的结构,你是没法知道TCP 里面是http/redis还是MySQL协议的,如果你要理解了TLS直接作用在TCP(四层),而http这种七层协议哪还有说话的空间啊?
总结
不要总是抱怨学不会、学不懂,你就是思考的稍微少一点、浅一点。
不要总是抱怨自己10年工作经验实践下来还不如一年的新手,同上!
思维方式是最难改变的,但是是最重要的。
如果你觉得看完对你很有帮助可以通过如下方式找到我
find me on twitter: @plantegg
知识星球:https://t.zsxq.com/0cSFEUh2J
开了一个星球,在里面讲解一些案例、知识、学习方法,肯定没法让大家称为顶尖程序员(我自己都不是),只是希望用我的方法、知识、经验、案例作为你的垫脚石,帮助你快速、早日成为一个基本合格的程序员。
争取在星球内:
- 养成基本动手能力
- 拥有起码的分析推理能力–按我接触的程序员,大多都是没有逻辑的
- 知识上教会你几个关键的知识点