我一直都是建议大家尽量把《代码随想录》 至少刷两遍,刷三遍是更好的。
这样才能对 里面涉及的到算法知识融会贯通。
刷题是在不断挑战自己的过程,经常会自我怀疑:
- 这么简单题,我怎么想不出来?
- 卧槽,前几天刚做,怎么又忘了!
- 有思路,怎么就不知道用代码如何写,我是不是太笨了?
- 最后,我还适合做程序员吗?
其实大家都是这么过来的,星球里有一位录友,每一次刷《代码随想录》 都会总结自己的心得。
这是他的一刷,和二刷心得,大家可以看看,对应自己目前算法的学习状态。
以下是他在分享的三刷心得,其实他写的不仅仅是刷题的心得,也是一个非科班小白学习技术的过程,也是挑战自己的过程。
就在刚刚,6月19日23:14分,我完成了代码随想录的三刷,而且对我来说是真正意义上的三刷。
解决了之前令我望风而逃的KMP、N皇后、解数独、接雨水这类问题。
代码随想录和网站上的题目都解了一遍(github上的题目还没看)。
现在深刻的理解了李小龙所言的“1000种腿法练1次和1种腿法练1000次”,这种感觉挺奇妙,具体为什么一会儿说。
今天的这份总结更倾向于对自己的心路和思路做一个复盘,我是今年过年的时候准备转码的,具体缘由可以看我的《一刷代码随想录》。
真正意义上的一刷是从今年大年初一开始的,那个时候确实是零基础,基础到什么程度呢?
“胆大包天”的我不会写类,看不懂模板和范式编程,不知道什么叫数据结构,就这么跌跌撞撞的上路了。
开头当然很痛苦,怀疑自己适不适合走这条路(现在三刷完代码随想录,依旧会时常问自己这个问题)。
其实想解决这个问题,挺简单,那就是自己为什么选择转码,以我自己为例,我是学传统自动化机器人控制的。
自己硕士期间做的东西,自己心里很清楚,将来能不能靠他找工作我心里很明白。
所以,一个简单的答案呼之欲出,我在硕士就读期间并没有为自己筑起能力壁垒,站在5个月前的视角,看秋招已经很近了,容不得我在短时间内再寻一条赛道。
那么现在把转码的内容学好,就是自己唯一的机会了(PS:当然,这是我太菜,各位大佬不一定非得像我一样悲观,善于发现自己的不对称优势,也是一个人的立身之本)。
对我而言,问题解决了,答案不是我适不适合,而是我没得选。所以,硬着头皮干呗,也就是这样的动力支撑我一刷完了代码随想录。
就心态而言,二刷、三刷的过程对我没有太大的区别,唯一的不同在于看待已经做过两次、三次的题为啥还是不会(或是没有思路,或是有思路就是A不出来)。
开始的我会急躁、会骂娘、会摔杯子(别学我,我自己心爱的骨瓷杯,心疼坏了)。
也许是债多了不愁罢,我开始尝试与自己和解,自己鼓励自己(是有点神神叨叨)。
自己帮自己分析算法的框架,结构,逻辑,在卡哥的大思路(三部曲、五部曲、几个重要要素和前提)下,融合我自己的想法,写出我自己容易理解的代码与解析(再次推荐各位入一本纸质的《代码随想录》,写写画画真的方便多了)。
纸上谈兵要不得,把思维和方法融会贯通再加以沉淀才会真正属于自己。
再一个,永远别问自己是否来得及,条件够不够。这是一个永远没有答案的问题。
本质上问这个问题的时候,你心里就已经有一个模棱两可的答案了,压垮自己的最后一根稻草往往是自己的不自信。
我很喜欢卡哥在知识星球里回答问题的一个表述:来不及就不干了呗?市场看重985,211,硕士,普通人就该放弃了呗?
显然不是的,这和我党的奋斗是一样的:不是因为看见才坚持而是因为坚持才能看见。与其质疑自己是否来得及,不如多刷一道题,因为只要你刷了这一题,就比刚才的自己来的及!
最后关于自己三刷的一点算法上的思路。
总的方针不变,就是我自己坚持的两条,第一条是简单题去感受方法(三部曲、五部曲、关键的几个节点),中等、难题用来解决问题。
第二条就是不盲从,刷题的时候发现书上、网站的问题要及时思考,不要轻易放过,尤其是二刷或三刷(要是和我一样零基础的,可以适当放一放)。
PS:不一定是自己的问题,也有可能资料错了,现在的我需要再加上一条,那就是————适合自己的才是最好的。
要把卡哥的方法真正融入到自己的思想中,才能真正的用出来(看到这了,还记得动规的五部曲是什么吗?)。
说了这么多,其实我自己心里也是没底,不知道能不能在群狼环顾的秋招分到一块肉,但是我觉得前途依旧是光明的,剩余的交给努力和天意。
哦,对了,至于开头提到的奇妙的感觉那就是,三刷代码随想录之后,再看hot100,或者剑指offer,真的有如鱼得水的感觉,哈哈哈哈哈!谁刷谁知道!
与诸君共勉,秋招见!