估计很多同学应该都是和我一样的,是考前突击型的选手,这范例选手啊,有一个缺点,学了就会忘,这个学期学完了,下个学期能剩下10%就很不错了。底子扎不踏实本身是十分清楚的,你可以到LeetCode,亦或者到一些著名的OJ上面刷题来检测本身的数据结构与算法把握得到底怎么样。
我的情况好不到那里去,我是直到大三下找工作,21年4月才开始刷LeetCode题,刷题对一些数据结构会有深的明白,知道怎么使用,什么情况下使用哪一种数据结构。我为什么提到刷题这个检测手段,因为我以为学校老师基本不怎么会教你写代码的,讲讲某种数据结构的特性就完事了;另外一点,我以为学校应该注重的,就是应该举例讲讲某个数据结构到底有什么用,这个例子不用讲的很深,这个数据结构有哪些应用场景,在哪个著名的框架上用到,而且用的很好,很妙。Linux作者曾说过一句话,Talk is cheap,show me your code,这也侧面阐明coding的紧张,上手代码才是把握数据结构的最佳选择。
回到题目,那么学习编程,或者说学习任何一门技能,是有爱好了才去学,还是学了才有爱好?我的答案是后者,你没去学就体会不到其中的乐趣,体会不到乐趣固然不乐意学,不学就体会不到乐趣,这就跟我们所学的线程死锁一样,形成内耗了。解决办法就是去学,学了还是体会不到乐趣的情况也会发生,我始终都相信,那是因为教我们的人让我体会不到乐趣,而不是这门课枯燥。就拿本日我学Redis来说,老师讲到底层原理,底层的数据结构,ziplist,quicklist,sds等等数据结构的时间,我深刻体会到我学的数据结构还是不敷深的,因为Redis课不可能给你讲数据结构去。这让我萌生了再去学一遍数据结构的想法,很想弄清楚Redis底层到底怎么存取的这个数据,这个我称之为爱好。弄清楚数据结构反过来,又会让我对Redis明白得更深,两者相互相成。正因为学Redis里面牵涉到数据结构的知识,一个知识体系连着另一个知识体系,而不了解基本的数据结构,只能当一个调用Redis API的工程师了。以是【左耳朵耗子】说的东西是我可以明白的,就应该深入学习一些底子技术。那要不要死磕数据结构与算法?我个人的看法是有了一些底子后,在学习其他什么框架,里面用到了你没了解过的东西,回头翻翻、补补,逐步你就会对底子技术把握的更加全面,更加深入。
最近有一个新的感受,就是高中会以为大学本科很有时间,本科以为研究生有时间,末了都发觉其实都挺忙的。到了工作了,想着终于没人管了,完成工作就没事了,却发觉依然没什么时间学习,加加班,刷刷抖音一晚上就已往了,我曾经听过大佬说过他本身的履历,他说他到了30岁以后看不下去书了,告诉我学东西,看书什么的要趁早,当时我并有很懂,好像,这一刻我有点悟到了。正是应了那句,黑发不知勤学早,白首方悔读书迟。
学习的过程很辛苦,到了收获之时,就会体会到那种快乐,真正弄懂一门技术的那种对事物的把握的心情,那种感觉是别人无法体会到的!想象一下,面试的时间,吊打面试官,拿高薪的场景吧!朋友们,都去学习吧!
希望此文对你会有所资助!