大一课程设计总结

记得很小的时候家里就有电脑,从一开始的像电视一样笨重的白色正方体一体机到后来分离的主机与显示器,因为家里人比较忙,电脑陪我度过了许多时光,最早的记忆是幼儿园时打红警,再到后来的其他游戏,但我打游戏总喜欢找外挂和破解版,看着下载的那一堆看不懂的代码,心中充满了敬佩之情,由此对计算机产生了浓厚的兴趣,所以我高考的所有志愿学校的前几个都是计算机相关专业。

可现实总不尽如人意,高考因为些意外发挥失常,来到了后几个志愿数学类,如果说上半个学期的C++作为必修课,好好学是为了学分绩点,那下半个学期真的是用爱发电,作为旁听生,稀里糊涂地选了一个实验课,也不知道有没有学分。后来想想,这可能也是一种机遇,如果我正常发挥进入我所认为的应该进入的学校,那我可能就不会有这样大把的时间投入这门课程,而是更多的忙于自己的专业课。对我来说,c++是一门非常有意思的课,最大的成就感莫过于AC一道改了好久的难题,印象最深的是上学期的一个字符串提取数字的OJ题,改了一个上午的军事理论课终于改了出来,那种成就感真的难以忘记。即使下学期没有程序设计的选修,我还是想继续学习,将它作为兴趣爱好继续发展下去。我认为促使我这样选择的因素有很多,首先是自己对计算机的兴趣;其次是同学之间的氛围:记得那次HDU的实验周,别的班的人要么出去玩,要么提前复习数分高代,只有我们班男生非常默契,不约而同地在宿舍床上躺着敲了两天的代码,并且遇到不会的题目一起交流思路,互相找对方思路上的不足;一开始学起来确实非常吃力,某些搞不懂的问题CSDN也搜不到,只能去问高中学过的大佬,到后来的选课,虽然寒假集训的群里有很多数学系的,但中途几乎都放弃了退了群,到最后只剩下三个人,值得庆幸的是并不是孤军奋战;最后一个因素比较奇葩,我选修课一个没选上,看着别人有选修上,有学分拿,心里很不是滋味,于是选了一个接触过并且不讨厌的选修课。

回顾学C++的这一年,很多时候都想过放弃,但一想到“自己都到这了,错了以后就真的没机会了”还是坚持了下来。初学阶段,被循环和字符数组卡住的时候想过;寒假期间,因为进度与计算机系的不同,没学过题目中多次使用的函数递归调用非常郁闷,最终看了几天课本终于搞懂了;每次上课或做作业看到舍友们在打游戏时也想过放弃,因为看完回放和上完加的课再做完作业的时间所剩无几;半夜打codeforces时交了好几次都没过,终于在截止后看别人的提交代码,列表是清一列的Python
3的时候也想放弃,但还是翻了十几页找到了用C++过了的人。

虽然坚持了下来,但还是忍不住吐槽学习上的困难,一个是寒假集训的进度问题,按照群里的要求,三天自学一个从来没接触过的算法并且把一本通网站上的题目做完,我认为这是不现实的(也可能是我太菜…………),有时候我把书上的例题看懂都起码需要一天多的时间,剩下一天做完十几个题确实有些力不从心;另一个是由于疫情的原因,老师讲地更细了,专业课的课程量不减反增,不投入更多的时间难以跟上学习进度,进而导致了很多次作业都做的很少,这个债我打算暑假抽时间还;再次是codeforces的时间,上学期我还能做到每天11:15之前准时睡觉,以此保证第二天的课堂质量,所以我课堂上几乎从不睡觉,但每次codeforces打完几乎都已经12:30了,打完处于兴奋状态,脑子很难平静,打好了更兴奋,打差了就自闭,要冷静很久才能睡着,而第二天的早上第一节几乎都有课,状态非常不好,经常差到大部分时间走神,不得不靠看回放弥补,进而又浪费了双倍的时间,进入恶性循环,最终得不偿失,导致没时间做Vjudge上的题目。

抱怨了那么多,但总体来说,学这门课程还是收获颇丰。一方面,是思维强度方面的提升,毫不夸张地说,许多算法题的思考量远大于我专业课题目的思维量,另一个实在专注度上的提升,许多数学上的题目,我在看数学书时,经常看个十几分钟就走神了,但看有些较难的代码有时可以连着看一个小时也不走神。经过这一个学期的学习,感觉能在一定程度上感受到自己的提升,记得还在上半学期初学阶段,因为题目简单,那时对自己最高的要求就是写出来的尽量少修改,没有错误,觉得可以运行就很了不起了,到后来实力慢慢提升眼界逐渐提高,基本上可以做到写完就可以运行,但总是思路上会有错误,有时需要修改没注意的小细节,有时则是直接删掉重写,前期可以明显的感受到自己的进步,但现在则感觉自己到了瓶颈期,提升地很慢。

吐槽归吐槽,但不得不承认感到自己技术进步最快的时期,还是寒假,同时我认为这也是我过得最充实的一个寒假,每隔一段时间都接触一个全新的算法,几乎每天都可以学到新的内容,一开始是七八天学一个算法,感觉时间很充裕,学完还有几天的放松时间,非常惬意,但到了后面,可能是为了赶进度,三天一个真的有点吃不消,虽然强度大,但确实收获了很多。还记得当时学到DFS和BFS时,我愣是看着代码瞅了好久,还写了几页纸,妄图通过运行的过程掌握代码的核心,到看了好久也没发现那个回溯到底什么意思,看了别人的博客也没有解释的,只能去B站找网课看,也因此找到了许多优质的UP主,像大雪菜等等,后来才知道那是标准的模板,背下来,可以套用,只要修改部分细节上的东西,就可以用在下一道题上,后来又写了一篇BFS的总结,发现BFS的模板非常相似,又把一本通上那一节的题分为了三类,每一类的代码都几乎相同,并且总结完自己的思路更清晰了,这确实是写博客带来的好处。

能够有条件选择这门科目也是恰逢疫情,在家里可以使用电脑,如果换做正常开学,不仅电脑带不了,而且也没办法半夜摸黑打CF,即便是打了导致第二天的状态不好,也可以看回放弥补。

感觉c++在某种程度上是一门很自由的学科,主要在于它没有固定的教材,更没有固定的习题和检测标准,学没学只有自己心里知道,是真正被师傅领进门之后,全靠个人的修行。这也是一门特殊的课程,仅靠课堂上所讲的想要满足日常的刷题远远不够,更重要的是课外所学,以及自己在看别人代码时学到新结构,新思路,以及各种从未见过的骚操作,我也因此由之前的害怕改变固守现状变为敢于尝试新的事物。另一方面,学习这门课程对我的条理性有很大的提升,以前我的条理性很差,东西经常乱放以至于用的时候找不到,这个缺点在我以前的代码风格上也有所体现,结构混乱,变量多,变量名字杂,甚至有用不到或者完全没用的变量等毛病层出不穷,后来我意识到不能在这样了,改变了代码的风格,细致到对齐了每一个大括号,我的条理性也因此有了很大的提升。

比赛,不仅仅是临场发挥和知识储备的体现,更是对心态的磨练,回顾过去,我已经在心态上吃了一次大亏,高考就是因为心态问题导致了选修出了问题失去了已经到手的自主招生资格,成为了一生的遗憾。打比赛的时候,有时状态不好,长时间没出一个题,就会心态爆炸,甚至有时候会和以前一样自暴自弃,但比赛打多了,会觉得这也没什么,心平气和地继续研究,说到底还是以前的运气太好至于经历的太少。线上的经历有很多,但线下只有新生赛一次,和平常线上打的感觉有很大不同,最大的不同就是部分AC给的分,那次我每个题目都试了,没想到恰巧钻了空子,几个部分AC的分加起来甚至超过了两题全部AC的分,正规的比赛应该不会这样。

回顾这一年,的确走了不少的弯路,如果以后能有机会走这个方向,我一定会将他作为专业课对待,但由于专业的原因,个人能力有限无法兼顾,我想我对它的态度也只能停留在选修的层次,
很敬佩也很羡慕那位目前任职百度给我们做经验交流的数学类学长,他将自己的全部精力投入其中,不顾专业课挂科,也放弃了考研,最终在这方面有所作为,进入了业内首屈一指的公司,换做我,我确实不能做到,一方面是个人能力的问题,另一方面则是我缺少他那种不顾他人眼光的魄力,而我是那种随遇而安的人,很害怕做出这样的改变。

最后,还是感谢这门课程,虽然学习的过程很艰难,但收获也很多,如果有机会,我还是会毫不犹豫地选择它。

你可能感兴趣的:(大一课程设计总结)