自顶而下和自底而上

前言

这篇blog的标题,我在约莫一年前就已写下,然而由于拖延症,一直拖在现在才开始写()其实之前想写的内容,我早就忘光了,但是近些天来,一些新发生的事让我再次想起了这些想法,并且赋予了他们新的内涵。这些思考的方式和角度,有助于我更全面更客观地看待生活,对自己的规划有更全面更彻底的把握。

计算机网络

计网的老师讲课实在是太难。倒不是他讲得过于玄妙高深,只是他的上海话口音实在太重,我听不懂他说话。
于是只能自己看书自学,先是看了会老师推荐的教材,看不下去;再是看王道的计网考研,看了小半本,还是看不下去。我一向对硬件层的东西不感冒,看着那些双绞线、比特率,就像给我脑子里灌水,还是左耳进右耳出的那种。

后来上网搜寻了建议,开始看计网的黑皮书,也就是《计算机网络:自顶向下方法》。别看它表面看上去非常厚重艰涩(在iPad上倒也没什么厚重可言),但我读下来,觉得比之前读的两本教材都更加流畅。它的特色就在于,区别于原先自底向上的介绍网络协议的方法(物理层(PH)、数据链路层(DL)…应用层(A)),采用自顶而下的方法教学,先从最顶层,大家最熟悉的应用层讲起,讲到大家熟悉的Web,软件,原先axios发送,服务器传回的请求究竟长什么样,原理在哪,然后再一层层往下讲。这样我觉得有两个优点:

  • 更贴近实际应用,也更贴近生活,更容易引起我的学习兴趣
  • 逐层深入了解,这种自顶向下的学习方式,感觉更符合大脑常规的思维(而不是从一堆线从下往上学)

学习

学习其实也是有这两种思维方式。除了自顶而下和自底而上外,其实应该再加上一种middleware——从中间向两周发散。

自底而上,就是从细节抓起,从单一的方面出发,对这一部分有一个较为全面的认知;等到细节积累的数量足够多之后,就足以量变达到质变,对整体的宏观局面产生改变。

自顶向下,就是从宏观出发,以问题的结果为导向,以宏观大局为方向,从顶部思考如何解决问题,把问题拆分成一个个子问题,再分而治之地解决。

再加上middleware,就是在最顶层的问题到最底层不可再分的问题之间,既可往下再细分,又可以在这一层里不断摸索,从而对上层产生质的改变。

譬如你学习一门编程技术(以前端为例),光是自底而上,单学html,css,js三件套,加上react、vue等框架,这样很难建立起对前端的整体认知,写起项目来还是一头雾水,学来了很多语法,却不知道该用在何处;此时就必须再用自顶向下的认知,阅读整体的项目,知道哪一部分用在哪里,各个部分之间怎么联系等等。这也不意味着自顶向下就不必自底而上,因为没有底层的知识建设,难以从高处建立起宏观的认知。

自顶而下和自底而上,其实就对应于宏观把握和微观掌握,两手都要抓,两手都要硬;特别要避开只有一手硬的情况,这样容易陷入死胡同,走上歪路子。

(最近看邓小平时代看得有些多了,逐渐上头hh)

选择

上学期印象最深刻的一节课,是竞教结合里一位学长的讲座。他开口就说,选择自己的未来方向,首先要从这个国家的宏观形势出发,再看这个行业的形势如何,最后再看自己想去的跑道情景如何。其后的内容不方便放到网上,在此不多赘述。学长还在课上介绍了王德峰,说哲学导论是他本科阶段上过最受启发的课程,这也对我后来的学习产生了其他影响。

上完课我受益匪浅,也对自顶向下有了更多的认识,光想着去哪个大厂,要不要996,其实都是底部的细节问题,是表面现象,要剥开表面看本质,看这个行业现在整体何去何从,哪一块日暮西山,哪一块蒸蒸日上,或者受到政策照顾,等等。选对赛道,有时比努力奔跑更重要。

最近在思考未来的规划,例如读不读研,以后去哪工作,在哪里定居等等。这些问题百思不得其解,各有各的利弊,令我甚是纠结。然而当我想到,我应该用自顶向下的眼光去思考规划时,我感觉思路明晰了很多。与其纠结现在走哪条路,不如直接从结果往前回溯,思考自己要去到哪里,想变成怎样一种状态,再针对此思考路线。我很快得出了结论:我不喜欢加班,我要早点下班,给自己的生活留出spare time,wlb(work life balance)方是我终极目标;相比之下,钱排在第二位。尽管想起来有些痴人说梦天方夜谭,但我借此更明确了自己的方向,也为我接下来往哪走、怎么走,提供了更好的思路。


该图片由💚🌺💚Nowaja💚🌺💚Pixabay上发布


自顶而下和自底而上
http://baokker.github.io/2022/09/29/自顶而下和自底而上/
作者
Baokker
发布于
2022年9月29日
更新于
2022年9月30日
许可协议