想要考虑所有情况而焦虑该怎么办?

2020-10-09 22:51:46 +08:00
 raaaaaar

自从我变成重度的笔记用户后,我学习一门知识,会试图把所有的可能性都学一遍,但是知识细节总是那么多,而我学的东西又很碎片化,这使我非常焦虑,我感觉自己会的东西非常少。

比如之前学链表时,想把静态链表动态链表,单链表双链表,它们的所有操作都学一遍,而我学这些都是一个个画图慢慢来得,我学了很久,但是才过了一半,后来我发现就是一个普通的语法,要把他所有的可能性都列出来,也是非常复杂的一件事,比如我曾试着把 channel 所有阻塞通过情况列出来,后来我发现哪怕是一个简单的 switch 语法,也有很多种情况,有没有变量,变量声明否,多 case,加不加 default,用不用 fallthrough,break 等等,所有的情况都是指数级的,我开始意识到自己这种学习方式出了问题。

我为什么要试图这么做?我是一个完美主义者,以前有过严重的焦虑症和强迫症,而对于这个学习方式,我是出于这个考虑:

编程知识是非常多而碎片的,我们的大脑的空间又非常有限,因此我们不应该试图去记忆这些知识,我们要达到这个目的:看到某个知识,我们知道他是什么;我们能够自行查询解决这个问题。

那我们大脑中应该有些什么知识呢?我认为是知识的索引,那问题就是怎么建立这个知识的索引。

我试图这样做:

1.遍历所有知识,建立缓存,我们的大脑会自动忘记那些不常用的知识。

2.建立知识体系,深入而又通俗易懂的理解知识,知道知识的所属结构。

试图遍历所有知识,就是为了建立知识缓存。

但是因为知识的锁碎,很多时候我们会陷入知识细节本身中,会变成这样:只是罗列知识,只是对只术语进行解释。而这会导致知识无法建立体系,我们很多时候不知道自己在说些什么。

我会怎么做:

  1. 建立知识体系

2.学习知识时,知道自己学的是什么知识,知道它是哪一层次的知识。

3.列出重点,难点,常用知识,重点学这些知识。

3730 次点击
所在节点    程序员
30 条回复
raaaaaar
2020-10-09 22:54:13 +08:00
本来是问答的,写着写着就自己解决问题了,博客写多了,有点像博客了。

的确很多时候我们问问题是为了抒发情绪,而不是解决问题本身。
kuangwinnie
2020-10-09 23:20:43 +08:00
感觉是迷失在细节里了
斗胆问一下楼主是不是没有学过高等数学以后的数学了?
lights
2020-10-09 23:24:20 +08:00
语法真的不重要,重要的是数据结构、算法和建模
JerryCha
2020-10-09 23:27:33 +08:00
不用的东西一定是会渐渐遗忘的,这个是没有什么办法的。
user8341
2020-10-09 23:35:13 +08:00
同意
@kuangwinnie
的看法。楼主你是过度陷入到细节里了。心中要有大画面,要建立直觉。然后真的有必要时,再去扣细节。不要本末倒置。
chocovon
2020-10-09 23:51:17 +08:00
缺少实践的支撑,甚至连知识体系都会很快忘掉
arloor
2020-10-09 23:54:58 +08:00
不要钻牛角尖
够用就好
先上线这个进度就不一样了
——三句话够用了吧
kuangwinnie
2020-10-10 00:28:36 +08:00
@user8341 陷入细节之后甚至会发现一些细节本身就是自相矛盾的。。。
总结出来几个套路然后面试之前学学细节就行了。。。我是这么觉得的
sockball07
2020-10-10 00:35:01 +08:00
我现在看啥都想记下来...结果就是 需要再读一遍甚至反复,然而没那么多时间,久而久之就堆在一坨了...😭
laminux29
2020-10-10 00:46:44 +08:00
你完全不需要焦虑,因为你考虑的东西涵盖了非常多的东西,你一个人不可能有那么多时间来把这么多的问题全部做好。

不然,你以为微软 20 万工程师,2 年才做一个 Windows,是怎么来的?

很多事情并不难,只是复杂,只是麻烦,只是很消耗时间。假设你的寿命是无限的,你完全可以自己做一个操作系统。
cvbnt
2020-10-10 02:27:28 +08:00
很像我经常看见的某些“心得博主”写的高大上的知识点总结树状图,一个知识点后面跟着一个又一个知识点,像是会无限延伸一般,很多新人看到这种东西第一感觉其实是恐惧,恐惧于繁杂的细节,但是编程最终还是实践为王,亲自解决一个问题的记忆往往比了解完美解决该问题的所有方法更加深刻
纸上得来终觉浅,绝知此事要躬行
laqow
2020-10-10 02:35:08 +08:00
奥卡姆剃刀:当你觉得学一个知识要考虑很多问题的时候,它就是要考虑很多问题
cassyfar
2020-10-10 02:37:17 +08:00
你这就是“想得太多”,啥时候写个 switch 还这么多戏来了。
ljpCN
2020-10-10 03:54:17 +08:00
没关系。先保持这样的焦虑,并尝试顺着自己的焦虑去多看多实践多想,时间长了,你就知道哪些细节是不重要的,哪些细节是需要记下来的,哪些细节已经成为了你的直觉。那时自然不焦虑了。我更多觉得这样的焦虑是学习的必经过程,也许不必上来就否定。
marat1ren
2020-10-10 03:57:50 +08:00
完美主义者需要解决的主要问题是时间管理和按优先级安排任务,不建议带着这样的态度到工作中。
beidounanxizi
2020-10-10 04:21:31 +08:00
我觉得把 你是没经历过难得东西
先把简单的 LEETCODE 刷 500 道 再来说你学 Go 的问题吧
你遇到的这些问题 说真的是工程上比较简单的问题了
其实好多技术性博客 已经给你讲透了
比如 channel 那编译时候 底层调用什么函数 你去看过源码么
secondwtq
2020-10-10 04:40:31 +08:00
"哪怕是一个简单的 switch 语法,也有很多种情况,有没有变量,变量声明否,多 case,加不加 default,用不用 fallthrough,break 等等"
这说明 switch 语法并不简单 ... 或者说就是前人挖的大坑,后人都要去摔一跤

楼主自认为想要考虑所有情况,但是没有考虑的是导致这种问题的原因,除了前人挖了这个坑以外,后人非要瞎了眼去踩也是很重要的。
rodrick
2020-10-10 08:14:36 +08:00
个人认为,学习一门语言或者大的框架,需要制定学习路线或者按照教程等系统性学习,其他的比较零碎的知识点的话,获取最高性价比收益是在你达到熟练掌握使用的时候就可以了,细节或者源码可以针对面试题等专项去看,这些基本也都有网上人家梳理好的。
毕竟你的时间有限,精力有限,智力也是有限的,不要过分强求自己,而且我认为零碎的知识点记下来的零碎的笔记回头再看的可能性也不大
0x000007b
2020-10-10 08:23:17 +08:00
@raaaaaar 啊啊啊啊啊啊啊一摸一样,而且学不完就不想学没动力那种。
xuanbg
2020-10-10 08:47:02 +08:00
掌握体系结构,掌握内在的规律就够了,不要关心细节,任何细节都是内在规律的体现。你没有必要去观察所有的雪花,因为这个世界上不存在两片相同的雪花,但任何一片雪花都是六棱型的冰晶的组合。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/713465

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX