双非本211研二自学C++8个月,但是无应用场景学了又忘,该如何避免知识遗忘?
今天给大家分享的是一位粉丝的提问,双非本211研二自学C++8个月,但是无应用场景学了又忘,该如何避免知识遗忘?
接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。
同学提问:
我目前是一名211高校的研究生,处于研二阶段,本科毕业于一所双非院校。过去八个多月,我主要在自学C++相关方向,系统学习了数据结构、数据库、C++编程、Linux基础以及Linux网络编程,并在LeetCode上完成了80多道题目。学习过程中,我主要通过整理笔记进行复盘和巩固,但尚未参与过实际项目开发。现在我正处于比较迷茫的阶段,不确定自己是否应该进一步深入C++的某个具体方向,也在考虑是否要开始接触嵌入式开发。但由于所学知识缺乏实际应用场景,很多内容学完后容易遗忘,不得不频繁依靠笔记来回忆,这让我感到困扰。我也不清楚当前阶段应该重点开展哪些项目实践,或者该如何规划后续的技术方向和职业发展路径。
Yt回答:
现在目前作为一个211高校的研究生,然后研二,本科阶段是一个双非,过去八个月时间自学C++方向,然后学了数据结构、数据库、C++编程、Linux基础以及Linux网络。很多朋友自学的时候就会是这种感觉,包括你在网上可能找了很多资料,也找了很多视频,也找了很多项目,学了数据结构,学了数据库等等,你学了很多之后,你发现这个东西学完之后用在哪里?比如这个数据结构我学完之后它能用在哪里?我到底怎么用的?你就发现你很难,你就很难体会。其实这里呢也就是老师的作用就体现出来了,这个朋友看到你的努力啊,八个月时间,其实你现在已经很努力,每天都是花时间做。真的来说这老师的作用在哪?你比如有些东西你学完之后,老师给你点一点,就比如说后面给你聊一聊,比如这个东西它用在哪里,在哪个地方用,不是说这个东西它很重要,但是确实来说好像这个东西就在你关键的时候给你一指一点,让你打通任督二脉一样。这里你包括数据库,你学完之后你比如看到这种索引事物啊,包括这种InnoDB的原理,然后以及包括什么分库分表,它到底能够用在哪里?为什么要用这个东西?你比如每个案例有个人给你指点一下,告诉你这东西怎么用,脑海里面你一下就能够立起来,不是一个干巴巴的知识点,它一下就能够立起来,原来它是这么一个意思。
主要通过整理笔记进行复盘巩固,尚未参与实际项目。其实我认为目前你的学习方法它是没有问题的,就是学完东西我进行总结复盘,但是这里一点就是你发现没有项目,没有项目就是没有场景,你不能够解决具体问题,就是你所学的任何招式,所学的任何东西,你是没办法把它应用于实践,使你的知识能够立体起来,能够让你形成一个很长久的记忆。真的来说你会发现很多东西让你解决一次问题,比如你做个项目,让你解决一次问题,你就能够理解比如说进程、线程怎么用的,包括互斥锁、条件变量它怎么用的,你就能够把它立起来。包括这种数据库也是,你比如说当你遇到过一次死锁的问题,你加了索引,遇到了死锁的问题,你一下就能够知道为什么这个东西它是这个原理,你回忆起来之后,因为通过问题让你能够得到提升,我认为这是一种最快的方法。相反来说如果自学,我认为你这个姿势不止你有,很多朋友自学都是这个样子的。
现在我正处于比较迷茫的阶段,不确定自己是否应该进一步深入C++的某个具体方向,也在考虑是否要开始接触嵌入式开发。但由于所学知识缺乏实际应用场景,很多内容学完后容易遗忘,不得不频繁依靠笔记来回忆,这让我感到困扰。我认为这是个很正常的问题,就是不止你有,很多朋友都有,就是你自学的东西都会是这个样子的。包括我看到很多朋友能够推荐很多书让你去看,推荐很多朋友自学的要从哪些书开始看,我认为这个它不一定是这个样子的。我认为接下来你应该考虑去做一个项目,做到落地,这种项目怎么做呢?你可能刚开始你不知道做什么项目好,你可以开始比如说找一个webserver,在Github上面找一个项目,你本身能够跑起来的,你把它内化吸收为自己的,然后在这个项目之上,你再增加一些功能,比如说在使用它的时候,你去增加一些功能。请注意在已有的项目中间,你把它吸收完之后,你去增加一点,再加一点,一个版本一个版本去加,慢慢你就能够把这个项目直接转化为自己的,就会慢慢能够理解以前的技术点它是怎么用的。如果你单纯的还是靠这种技术,我认为它是有点难的。
我不清楚应该是怎样去开展这些项目。刚刚我已经讲了,你可以在github上找一个现成的项目,然后你把它吸收内化为自己的,然后在这上面去增加一些功能,去迭代,去增加,这样就可以了。比如你找一个webserver,你把这webserver做一款即时通讯,你同样用这个webserver做一款网页版的即时通讯,这个也行。然后用完之后,你能够给你周围的室友一起来用它也行,给你家里人家族群里面一起用它也行,你能够有它一个使用场景,这样就可以了。现在目前研二,也就是说8 9月份就已经秋招了,其实这个时间说长不长,说短不短,但是我认为你这个自学会走的比较坎坷。你后面可以参考一下我之前整理过的那个Linux上面用C/C++的那个路线,你可以参考一下,它会比你自学会好一点。当然你现在自学已经走了八个月,你对比一下你自学和参考那个体系孰优孰劣,好吧。
总结:
- 你努力但缺实践! 学了8个月理论,做了题也记了笔记,但没做实际项目,知识记不牢、用不起来很正常。
- 当务之急:赶紧动手做个项目! 别再空学理论或纠结方向了! 理论学得再多,不如动手解决实际问题。一做项目,那些进程、线程、锁、数据库概念就全明白了。怎么做? 去GitHub找个现成的项目(比如Web服务器),把它跑通、吃透。然后自己动手给它加新功能(比如改成个网页聊天工具),一点点迭代。让同学或家人能用起来更好。
- 迷茫很正常,但项目是解药: 纠结C++细分方向或要不要转嵌入式?做完项目再想! 项目经验能帮你真懂技术,也让你更清楚自己适合啥。纯看书/看视频很难真正学会,靠解决问题学会的东西才扎实(比如真遇到死锁才懂锁的原理)。
- 时间提醒 & 学习建议: 研二秋招不远了,抓紧时间!自学摸索很吃力的话,可以参考我整理的系统化Linux C/C++学习路线,可能比自己瞎摸索效率更高。
计算机相关专业就业求职学习路线/offer选择/职业规划建议
工种浩:程序员yt (学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回
#职业规划##计算机#解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)