写在前面

讲一个有关坚持的故事。想问问大家,有没有人坚持过一件事情整整一年,除了吃饭睡觉,每天都在做,从不间断。坚持一件有意义的事是蛮难的,很多时候,有意义意味着它也是枯燥的,是短期没有收益的,是没有及时反馈的。截止发帖日期,我在leetcode上的打卡,整整达到了一年,其中没有任何间断,无论是周内还是周末,无论是节假日,还是寒暑假,当我回头再看的时候,看着自己走来的路,看着整整齐齐,花花绿绿的打卡记录,看着我从没想到能达到的题数,我想了很久,这一年,真就这么坚持下来了。多数刷leetcode的人都是功利的,包括刚开始的我,直到我将它变成我生活的一部分,我才发现,对我来说,这不仅仅是一个找工作的网站,用来做题的网站,更多时候,它像一位我的朋友,陪我度过那些伤心的,失落的,只属于一个人的时光。

缘起

事情得从大三暑假说起。考完本科最后一门的考试,我也差不多意识到自己保研是十拿九稳了,和别的同学暑期疯狂参加夏令营不同,因为保研边缘成绩太差,也没有特别耀眼的奖项,竞赛与项目,我一直都很佛系。虽然后面证明这样的想法是不对的,但是当时的我总是没有勇气与自信去冲击更好的学校。其实更大的原因,是自己陷入了刚分手的痛苦之中,每天都在惶惶度日,根本没有心思去考虑这些,每天都想要试图挽回其实早已无可救药的感情。宿舍的舍友暑假都在考研或者考雅思,白天的宿舍更多的时候是我一个人,游戏,电影,各种各样的娱乐方式只会将我变得更加空虚,我的脑子不敢停下来,因为一停下来,就会去怀念那段感情,我不知道该如何度过那段时光。那段时间,我总希望用时间来冲淡,我想,时间久了,就会好了吧,到时候我就会有工作,会赚很多钱,可能能带给她口中的安全感吧。我打开了知乎,搜索着,“如何才能找到一份赚钱的工作”,还好,互联网的工资还算可观,只是当时的自己好像不太符合他们的条件。

看着一行一行的职位描述,开发岗,算法岗,一次一次对比着薪资,生怕自己选错了路,在牛客里看着玲琅满目的面经,都是些自己不熟悉的术语,我甚至一度怀疑自己是不是上了个假的大学,可以毫不保留的说,如果没有保研,自己面对的就是失业,但是林林总总的岗位,我也不知道自己要选择哪条,但是他们似乎都有一个共性必备的条件,会做leetcode,会手撕代码。我总得给自己找个有意义的事干,可能就是从第一个two sum(leetcode的第一题)开始。先说一下自己的编码功底吧,本科学过C++,JAVA,但是用的都不是很好,C++的STL当时基本没怎么用过,以至于看到unordered_map都不知道是何物,可以说自己是真的很小白了,迎着头皮学会了STL的语法,刚开始也是看答案居多,不理解DFS的原理,照猫画虎写着回溯,总之,我很享受那段时间,至少大脑在那一段时间可以不用去考虑别的事情,就这样,刷题与读paper帮我度过了那个暑假,暑假也读了蛮多paper的,也慢慢在上手写一些python,当时便有了将刷题的主力语言转为python的想法。

发展

2019年开学的大四,依旧是没有课的无所事事。仍旧没有从恋爱的阴影里走出来,甚至生活还让其雪上加霜。短短的十几天,先丢了自己5000买的新手机,在回学校的高速上,三车连撞,我是尾车,责任全负。加上本就糟糕的心情,我给导师请了几天假,当时的心态已经不允许我做任何事情。我不知道怎么表达我当时糟糕的心情,我只知道我找了很多朋友,但是这并没有让我变得更好,我把自己关进房间里,刷leetcode,用思考麻痹自己,我甚至一天会有70多次的提交量,但是当时的我根本没有什么打算,只是想打发自己的时间罢了。就这样,度过了自己糟糕的2019,和舍友告别,就各自回家了,没想到接踵而至的疫情,又将我禁锢在家里,根本没有放松心情的机会,但是仔细想行,疫情才是令我真正有了规划的时期。封闭在家的日子,一个人想了很多,也规划着自己的职业发展,首先因为自己首先是一个研究生,科研要摆在第一位,但是研究生的扩招带来内卷的加剧,让我不得不再为自己留条后路。实验室师兄师姐在开发上取得的成功,让自己有了将后端开发作为保底的想法,从那以后,白天科研,晚上开发,成了我每天生活的缩影,但是无论怎么忙,每天的leetcode我也还在坚持。慢慢的,学习技巧,熟悉数据结构,记忆常见的题型与模版,加上实验室python项目,让python的使用也更加进步,很平滑的将刷题的主力语言变成了python,这段时间,各种知识的集中轰炸,各种题型的训练,让我的leetcode刷题总算摸了点门道,我知道自己在飞速的进步中。

瓶颈

疫情结束立马回到了学校,和实验室做着项目,每天的日报周报似乎在记录着那段努力的日子。独立写开发项目,编程能力得到突飞猛进,一切似乎都在往好的方向发展。研一正式开学,突然要上课似乎打乱了我平时的节奏,自己做题量,也毫不察觉的来到了四位数,但是,我也知道,这四位数,很多都是无用的,大量重复无效的。高级数据结构的懵逼,无法及时想出的贪心策略,不是很牢固的模版,总是不能将问题转化,很明显,刷题来到了瓶颈,我想了很多种方法来突破瓶颈,首先是将语言换回c++,毕竟python真的很偷懒,针对题型的加强式训练,对于做过的题进行总结,做一些更难的OJ。我尝试自己能做到的所有方法试图来突破这个瓶颈。但是同样也意味着自己可能要将重心转向学习别的东西,这段时间学习了并发编程,侯捷老师的课也嚼的津津有味。对于算法的学习,从量变到了精刷。希望自己早一天能突破这个瓶颈吧。

未来

后面会让算法的练习,慢慢淡出吧,可能只能保证每日一题,周赛保持手感了,没有大量的成片的时间去学习了。一是想科研发力,二是想学些别的有用的东西。

我很喜欢一段话,很多时候,事情根本不会变好,说都会好起来的,一半都是骗人的,唯一能变好的只有自己的心态。在一次次被甲方毫无缘由的diss,被喜欢的女生reject的失落,一次次的努力不见成效,来自工作与科研的双重压力,人总得在这些事情中,不断平衡与调整自己的心态,让自己尽可能变得乐观。我很幸运,我通过刷题这种方式来调节了自己的这份心态,希望以后可以在事物转瞬好坏的变化中,能够宠辱不惊,找到真正值得的美好吧。只有智慧,财富,健康是你这辈子永远只属于你,不会离你而去的东西。

最后

关于刷题的经验,之前在给本科生的Note中写到过,我也在我的博客中进行了一些 简单的建议。我不是什么大佬,我只是一个愿意调节自己心态的人,并且将这个过程坚持了下来。欢迎关注我的个人主页,我会每周更新周赛题解和一些自己生活上的感悟,或者一些论文和C++学习的知识。