时隔一年,又开始准备面试了,然后复习的过程中,很多东西有一点点印象,但是都记得很模糊,大家伙都怎么记住那么多内容的?
用 hashmap 举个简单的例子,我很清楚去年我是跟着看过源码的,比如 put 方法的扩容机制怎么复制的旧数据,数组下标怎么算的这种知识点,但是隔离一年我确实又记不住了
工作时间越久,积累的知识越多,背的东西就越多,有点脑袋痛
难道厉害的大佬随时随地拉出来,都能讲清楚各种网络,java 基础,juc,集合框架,jvm,框架(ssm+springcloud),各种数据库(redis mysql es,数据存储,事务原理,单点 /主从 /集群)的各种实现原理吗?
1
chihiro2014 2022-05-09 13:56:56 +08:00
最终你会发现,知识都是共通的
|
2
xianyv 2022-05-09 13:57:37 +08:00 2
最终你会发现,不用的总会记不住的
|
3
hanssx 2022-05-09 14:00:28 +08:00
多实践:纸上得来终觉浅,绝知此事要躬行
多做笔记:好记性不如烂笔头 普通人都会忘,过目不往的人都是天才,放过自己。 |
4
chengyiqun 2022-05-09 14:01:49 +08:00 6
遗忘曲线, 经常用的记得住, 不常用的就忘了.
我怀疑我门大脑是 LRU 算法的变种( |
5
hidemyself 2022-05-09 14:02:03 +08:00 3
八股就是要临时抱佛脚
真正需要积累的,在我看来就是系统设计相关的,遇到问题怎么处理 |
6
yangguo1 2022-05-09 14:05:48 +08:00
我也是这样的,去年看了 spring 的源码,今年就忘了。也想问一下,如果公司的业务就是很简单,什么分布式,源码,消息中间件都用不到该怎么办?
|
7
yedanten 2022-05-09 14:08:12 +08:00 via Android
因为用不上 /很少用才会忘。既然用不上,忘了就忘了,有需要用的时候在临时查一查
|
8
seagull7558 OP @hanssx 我去年认真做了笔记 放在了自己博客里,但是今年就是忘了,例如 mysql 的锁 什么间隙,自增,意向,读写,真的记不清楚了,只是知道有这么个东西
|
9
kblacksheep 2022-05-09 14:16:45 +08:00 1
除非记忆力超群,否则用不上或者用的少的东西很快就忘很正常吧。我以前也挺困扰,但是后来发现这个问题只有在找工作背八股的时候对我有实质性的影响,其他时候你都是有学习第二遍第三遍的机会的,大量重复本来就是掌握知识必要的步骤之一。
|
10
rabbbit 2022-05-09 14:18:28 +08:00
我连 Python 语法都忘光了.复习是必须的,但如何高效的复习是个问题.
|
11
zooo 2022-05-09 14:20:34 +08:00 1
不得不承认现在人类积累的知识量太大了,人脑难以装下
so 寻找第二个大脑:笔记 |
12
fstar 2022-05-09 14:28:10 +08:00 2
输出倒逼输入。
你以为你记住了,其实你没记住。 你要写东西出来,要写的浅显易懂,很多似懂非懂的点你也得理清,可能还要写点小 demo 。那才是真记住。 当然最好的方式,是教别人。 |
13
jielong 2022-05-09 14:28:36 +08:00
不要焦虑吧,除开那些记忆力特别好的,低频的知识遗忘很正常
目前我的状态就是,能记住问题的解决思路,具体的代码交给搜索引擎,不丢人 😅 |
14
codefever 2022-05-09 14:32:43 +08:00
我觉得本质是没有理解,如果你真的理解了,就算你不能完整的复述出来,也可以旁征博引的回答问题。
|
15
nuistzhou 2022-05-09 14:38:49 +08:00 via iPhone
用学习史记的方法去搞,比如先想想假如自己去设计这个模块,要怎么做。有主意了,或者实在想不出来了,再去看现成的方案。
|
16
shaojz2005 2022-05-09 14:49:44 +08:00
学了不用肯定记不住
|
17
gugugagadun 2022-05-09 14:49:50 +08:00
logseq 电子笔记本
|
18
encro 2022-05-09 14:51:40 +08:00
因为你学的是 How ,没有学到 Why 。
就好比学做菜, 你知道原料和工序, 但是不知道为什么原料和工序是这样的。 |
19
storyxc 2022-05-09 15:02:50 +08:00
我的做法:学习完输出文档 /笔记,尽可能详细,把自己学习的思路什么都记下来然后保存到自己的知识库中,可以是静态博客,也可以是 notion 这类笔记工具。如果学到的是常用的肯定基本就不会忘了,如果是不常用,那等用到的时候再回知识库中查询温习,如此循环往复。
|
20
kg2019 2022-05-09 15:25:36 +08:00
学过了要留下笔记的,隔一段时间翻看一下,多翻几次就记住了
|
21
Leonard 2022-05-09 15:28:38 +08:00
记不住就对了,长期用不到,又不是特别有趣的知识就容易记不住。面试的时候再背一次。
|
22
windyboy 2022-05-09 15:32:04 +08:00
实践+理解
学校里养成的死记硬背的方法其实是应付考试而已 |
23
GGPlayer 2022-05-09 15:33:44 +08:00
有时候应该和大脑一样
学会放过自己 ( •̀ ω •́ )y |
24
zhenrong 2022-05-09 15:55:37 +08:00
忘掉所有的招式,无招胜有招。
|
25
lovedebug 2022-05-09 15:59:09 +08:00
remnote, anki 第二大脑,你需要的~~
|
26
Hilong 2022-05-09 16:02:00 +08:00
正常,大家都是面试的时候才去背一下,真正工作的时候用不到自然就忘了,你经常用的代码,你现在逼着眼睛也能写出来了吧
|
27
Suddoo 2022-05-09 16:13:45 +08:00 via iPhone
背这些没啥卵用啊,就是源码作者也未必每个参数都能记得清楚
为啥要这么设计?都是为了解决现实中特定场景问题的,你不是做这块业务的,光靠背、记不住的 |
28
samin 2022-05-09 16:15:58 +08:00
不要尝试和遗忘曲线对抗,很难,核心是做到把遗忘的事情快速捡起来(高效复习),可以做做 blog ,分享下我的:
https://github.com/SaminZou/study-prj |
29
cnrting 2022-05-09 16:29:32 +08:00
记不住那只能说明不够重要或用处不大
|
30
aeli 2022-05-09 16:42:07 +08:00
看过不代表记住,最好的方法是看完后,自己录个课把概念讲一遍,这样掌握的牢固。
然后如果不复习和使用,过一段时间还是会忘 |
31
silencil 2022-05-09 16:43:51 +08:00
@seagull7558 一模一样,每次跳槽都是一个学习的轮回
|
32
LemonK 2022-05-09 17:46:23 +08:00 2
没记住就是不会。干嘛要背。
hashmap 解决散列冲突使用拉链法,为了查询效率长链表优化成红黑树,数组达到阈值 2 倍扩容(位运算简单)旧节点尽量平均拆分,每次扩容不会全部 rehash ,不支持并发。再具体不知道了。至少 8 年没碰 java 了,马马虎虎就记得这些。 之前倒是做过散列式节点的分布式存储,自己从 0 开始瞎设计的分配方式和这个差不多。边角各种优化时间空间的小细节,做到那步时候再考虑就行了。 码农行业的一大优点是没有无缘无故的知识,所有都是人工设计,而设计都是为了解决问题。普通业务能遇到的问题种类并不多,底层思路也来回就那几套,计算机原理和基本算法玩熟,剩下都是拆分排列组合而已。就像楼上说的,学习真正要学的是 why 而不是 how 。 其实我更想说,面试不是考试,别觉得问你你就必须会。要主动展示你会什么能干什么,展示你觉得自己出色的地方,而不是为了迎合,硬背一些你实际并没掌握的东西。 如果你充分表现了你的能力,面试官偏要死磕你不记得什么,那只能说明你们不合适。 和谈恋爱一样,合不来不用勉强,不会幸福的。 |
33
lianglu 2022-05-09 17:46:43 +08:00
没人说这是卷吗?
|
34
feather12315 2022-05-09 17:48:24 +08:00 via Android
我觉得用不着记,知道从哪找资料就行了
|
35
seagull7558 OP @LemonK 感谢这么长的回复,问题是对于年限不长的(3 年),我真的很难展示自己做过什么很好的东西
没有什么出彩的项目经历 /开源贡献,可以武装自己的只有这些基础知识,我其实一直认为这些东西就是我必须要会的~,大环境卷啊,被逼无奈 不过说实话部分知识学完后,确实会感叹,我曹原来人家设计的这么巧妙,那些底层设计我是绝对想不到的,所以背起来倒不是很枯燥 |
36
kykx 2022-05-09 18:31:13 +08:00
很正常,知识嘛,学了不经常用就会忘记,看看高中的化学公式还能推出来几个?普通人要想记住就得靠不停的重复。
|
37
BadCat 2022-05-09 19:45:51 +08:00
哈哈哈哈,我一个多月前还在背 innerdb 和 myisam 的区别和优缺点,现在找到工作后也忘得差不多了,我个人认为是没有什么驱动力吧,当时的驱动力就是找到一个好工作,找到后就开始松懈了
|
38
ration 2022-05-09 19:56:15 +08:00 via Android
唉,我也在面试,好难啊。如果真的要精通,一个知识点一本书都不够。所以平时还是多看书,多记笔记。把操作系统学好,我想基础扎实了,学其他的也快。至于面试,快速的方法就是背八股文了。
|
39
paoqi2048 2022-05-09 20:10:16 +08:00
建立知识图谱(理解通透后再纳入图谱,用自己的话写),要用的时候现看就行了
|
40
ijrou 2022-05-09 20:11:34 +08:00 via Android
温故而知新
|
41
neutrinos 2022-05-09 20:33:34 +08:00 via iPhone
之所以面试叫做八股文,就是背啊
|
42
lzgshsj 2022-05-09 21:02:42 +08:00
关于后面这个考级的想法,最后的结果就是所有人都有证书,等于所有人都没有证书,企业觉得分不出差距,于是在面试中搞“附加题”,大家伙除了搞证书,还要背附加题……然后,就是一种循环~~
|
43
biubiuF 2022-05-09 21:13:47 +08:00
hashmap 其实和各种 sharding 思想都是一样的,其中的优化方式如果能够融会贯通还是很有意义的,类似的还有很多
|
44
wtdd 2022-05-09 21:30:21 +08:00
很正常啊,大神都是一遍过加保持很久的记忆,要是人人都如此,那 hypsmtp 不爆了?
|
45
int11 2022-05-09 21:47:08 +08:00
记个索引(知识图谱)需要用到时通过索引找具体内容
|
46
Jooooooooo 2022-05-09 21:56:13 +08:00
先分清工具和知识
然后注意把握工作中的学习机会 最后就是重复 (特别是计算机三大项, 操作系统, 网络, 数据结构, 可以温故而知新) |
47
oldshensheep 2022-05-09 21:59:25 +08:00 1
记不住就记不住,要用的时候在学,然后不断的重复,本质上学习就是如此。
当然为了面试的话,临时抱佛脚就行了。你学那些东西你又不用,能记住才怪了。 就比如你现在可能记不清有丝分裂分为几个时期,每个时期的细胞的状态如何。这在高考中生物是是必考的,当时肯定是清清楚楚,现在呢? 如果是要加强的背你说的,就要多联想、多联想、多联想。把知识给织成网。 |
48
Johnming 2022-05-09 22:25:43 +08:00
构建思维导图,加强记忆
|
49
learnshare 2022-05-09 22:27:50 +08:00
不常用的东西会忘掉很正常,大脑是这么工作的,否则容易超负荷
|
50
xumng123 2022-05-09 22:32:47 +08:00 via iPhone
忘记的是没用的,能留下来的才是精华。系统的梳理自己的知识体系,形成自己的认知脉络。
|
51
hutusi 2022-05-09 22:50:34 +08:00
了解下「费曼学习法」?
|
52
dioxide 2022-05-09 22:55:26 +08:00
重复 + 应用.
|
53
nanjoyoshino 2022-05-10 03:43:12 +08:00
+1 ,复习准备面试中,好累啊,这帮面试官能从业务层哪个功能具体怎么实现,一路向下问到 CPU cache 的加载策略
这就算了,还要搞大概率一辈子也用不上几次的算法题,中等起步,偶尔还有 hard ,太卷了 |
54
folnet 2022-05-10 07:56:56 +08:00
个人感觉 多用才能记住
|
55
rehoni 2022-05-10 08:13:25 +08:00
工作中基本用不上,都是和业务相关的,学算法、看源码和底层设计,平时都基本用不到,那该怎么保证这些不会被遗忘呢,只是做笔记我感觉也不太靠谱。。
|
56
byte10 2022-05-10 08:55:14 +08:00
有一个叫费曼学习法,你看看我的 B 站”小巫老师“ 讲解就知道了,一个知识要真正的理解,是能够用现实生活的场景去描述的,技术本身就是为了解决现实中的问题。你要是怕忘记,就尝试去把这个知识讲给别人听,能听明白,就说明你学习透了,否则继续学
|
57
chanchan 2022-05-10 09:15:25 +08:00
同意,没有深入用过的,确实记不住
|
58
foursevenlove 2022-05-10 09:16:40 +08:00
@fstar 同意
|
59
xuanbg 2022-05-10 10:03:47 +08:00
忘了就忘了,要用时再学习一下。
|
60
gengchun 2022-05-10 10:54:51 +08:00
这种学过就忘记是正常现象。其实没有什么大不了的。程序员这种不是急诊医生这种职业。真的忘记了一个知识点真的会出人命的。程序员忘记了一个知识点,现查就好,能出什么事情。最多浪费半个上午。
比如说 mysql 主从、集群这种,现在真做祼机,MaxScale 什么中间件很成熟了,到处都是 OTLP 集群,SQL 自动优化也换了好几次。很多时候中间件后面怎么优化的,根本就不知道,也不用知道,人家也懒得告诉你,就算说了你也理解不了。忘记了就忘记了算了。 有些大佬说真的,为了表现自己没有脱离一线,讲十几年前的数据库优化案例。下面坐的小年轻,一般只是觉得没有必要让人下不来台而已。所以关键是成为大佬,而不是背八股文。你这本末倒置了。 |
61
ysc666 2022-05-10 11:04:13 +08:00
恭喜你已经达到学习的最高境界,就是学什么忘什么!
|
62
echoechoin 2022-05-10 11:05:10 +08:00
上的课,过了很久还记得的才是你学会的。
|
63
tonzeng 2022-05-10 12:10:21 +08:00
“但是不要搞得太难,之前用的 Oracle,见过一个 DBA 同事,捧着个老厚的书在看,那就太难了”
我觉得他在装哈哈哈哈哈哈哈哈哈哈 |
64
PopRain 2022-05-10 12:43:22 +08:00
对于大多数人来说,理解记忆+重复 都是记忆的好办法,没有什么捷径
|
65
zxCoder 2022-05-10 13:16:32 +08:00
很正常。要是学过就能记住那我早就考上清北了🐕
|
66
zsylife 2022-05-14 14:16:11 +08:00
别说知识了,平时的事我都经常忘
|
68
yorun 2022-05-25 10:40:07 +08:00
笔记真的很重要
|