序言

时间真是随着年龄的增长流逝地越快,虽然现在我只有20岁,才上大学二年级,可是这种感觉是越发强烈了。如果说以前的时间是按天来过的,现在就是按周来过的,你还没有反应过来,一周就过去了。不知不觉中一个学期就过去了。我想好好地总结一下我在大学的是三个学期的生活,希望能够让我更深刻地认识自己。

大学一年级上学期

在高考后填报志愿的时候,其实对学校啊,专业什么的都没有了解过,只是按照参考分数线一个一个学校填下来的,专业就是凭感觉,无所其他的什么参考因素,最后成功地被南京师范大学的物理学录取了。原本我打算就好好地进入物理学这个专业,但是在录取通知书中包括了一张强化培养学院的选拔通知单,我也没有了解过南师的强化培养学院是什么,只是父亲希望我报名试一试。没有刻意准备什么,提前赶到学校参加了选拔考试,幸运地是凭借这高中的老本顺利地通过了考试,虽然是最后几名。老实说,题目不是很难,英语、数学和物理的试题印在同一份卷子上,英语一塌糊涂,但是数学和物理都比较基础。

在进入强化培养学院后,我得到最重要的一点信息就是:在修完一年级的通修课程后,二年级时可以自由选择专业,虽然一开始分了理工科和文科,但是在大二可以选择学校里任何学院的任何专业。刚开始我是有些迷茫的,第一个学期每天就是上课下课,晚上还要上3个小时的自习,然后也没有参加社团,因为我比较孤僻,也没有改变现状的想法。得过且过地度过每一天,没有课的时候就看看直播,晚上完成作业,那时候对上课作业还是比价认真的。

期间我也产生过迷茫,未来好像遥不可及,但是同学大多数都有比较明确的目标,一部分人想要出国准备过雅思托福,也有人一开始就瞄准了学院60%的保研指标。我从来都是一个随遇而安的人,或者说已经认同这种观点了。没有太广阔的视野,没有远大的理想,没有想过未来的出路,虽然每天正常地上下课,从没旷课,但是在思想上确实很颓废的。我没有找到真正令我感兴趣的事情,更确切地说是我没有找到能够战胜自己身上惰性的high点。

情况有所改变是在我第一个学期的最后两周,给我们上大学计算机基础的老师讲了关于C语言入门的知识:变量、运算符、控制流、函数。从一开始的漫不经心,到有点意思,到最后上头,真是一段值得记录的时间。在最后的考试周里,因为学的比较认真,所以没怎么复习,而是每天提着笔记本,撑着伞在雨雪中到学海楼227的一个固定位置坐下,开始一天的C语言学习。因为是第一次接触编程,就是一本《C语言程序设计实践教程》,把书后面所有的编程题自己都写了一遍。现在回想起来,其实C语言真是一门很精致的语言,没有太多高级的数据结构和设计思想,确实挺适合初学者的。

在寒假的时候从了解C程序的编译,开始学习更多的编程方面的知识。编译器或者说集成开发环境从VC6.0到Dev C++,然后就对Gcc感兴趣。由于在Windows上的命令行实在不是很友好,我开始入了操作系统的坑。我第一次认识到除了Windows之外,还有其他的操作系统。第一次尝试的是比较流行的Ubuntu 16.04,可是新手装系统还是出了许多的问题:启动项设置,输入法配置,本地化设置,驱动安装...总之产生了许多的问题,花费了许多的时间,重装了好多次。幸好在我不断的折腾下,顺利安装了双系统,也是初步地了解了Linux系统的基本的操作。

大学一年级下学期

这之后学会了使用虚拟机安装系统,体验Mint,Deepin,Archlinux,Gentoo,Manjaro这些Linux系统。使用最长的还是Linux Mint,桌面是cinnamon,就是很稳定,程序启动速度快我的体验是比在Ubuntu上好。虽然系统的GUI和设计细节确实不如Windows优秀,但是Linux系统普遍要比Windows流畅一些。目前使用的是Manjaro 18.04,KDE桌面,这是给我感觉最好的一款操作系统,配置好内核,安装了一些基本的软件sogoupinyin,redshift,zsh,shadowsocks-qt...无论是在性能上,还是UI风格都是很优秀的,对新手也比较友好。大多数的配置都可以进行图形化的操作,实际上使用命令行的地方不是很多,主要看个人习惯。

一年级的下学期开了一门C语言程序设计课,换了一个老师讲但内容还是接上去了。由于我那时候已经将书看了2~3遍了,内容基本上都了解地差不多了,上课也就没怎么听。其实一开始我是有些迷茫的,我认为我已经学完了C语言有些不知道该干嘛,其实回想起来我只是学了一点皮毛罢了。也没有找过老师咨询,大部分的时间感觉还是在混日子。2019年的春季学期我只做了一件事情:熟悉vim编辑器,这个我是花了一些心血的。到现在,我已经不能正常使用其他的编辑器了,不然会经常出现一些乱字符。也不能说对vim非常熟悉,但是我已经习惯了自己配置的插件,设置的快捷键,和一些原生的快捷键的使用。随着对vim的熟悉程度增加,我希望vim能够变得更加完美,从基本的符号配对,语法检查,标签补全,语法语义补全...我都尽可能地尝试各种插件,来选择适合自己的。可以说我花了很多时间去浏览英文文档,去寻找选项的设置。vim其实并不适合成为一个IDE,我更喜欢用vim来写一些脚步或者单源文件的程序,这样在命令行直接用编译器编译或者解释执行是很舒服的,毕竟不用开一个庞大的IDE。

大学二年级上学期

大一下学期就这样过去了,我的编程的能力好像并没有太大的提升,还是停留在一种比较初级的阶段:只是会一些语法,面向过程编程,对于数据结构和算法还只是停留在课本上,OOP的思想没有了解过。在这个学期也就是大二的上学期,我选择了软件工程专业,不是很清楚软工和计算机专业的区别也是凭感觉选择。由于强化院的课程与计科院的课程有部分冲突,有些基础课程选不上,怀着忐忑的心情选了两门三年级的课程《计算机网络》和《操作系统原理》。现在上完了1个学期的课,才发现这些课程门坎并不高,可是现在却又好像什么也没有学习到,老师讲的概念,算法思想,设计理念都只是在我的脑海中过了一遍,并没有真正记住或者理解到。考试远比想象中的简单,基本上只考了上课讲过的类似的题目,不会叫你解释概念。

真正涉及到编程的两门课是《数据结构》和《Windows程序设计(.Net》,都是使用的是C++。我没有学过C++,但是其实关系不大,基本的语法和C差不多,只需要明确一些概念就好了。至于面向对象的程序设计思想在不涉及继承的情况下也很容易理解,足够我完成这两门课程的学习了。《数据结构》确实是我收获最大的一门课程,从线性表,栈,队列,串,二叉树,图,基本上能够知道如何去建立,理解其性质,对各种数据结构的操作和存储也熟悉了。当然还是停留在书本上,需要实际问题的历练,必须在实际运用中才能够掌握知识。《Windows程序设计》则主要是利用win32 api,就是一组接口函数,知道函数有什么作用,如何取调用它,还有最后一部分讲了MFC程序设计。这门课其实只是开了一个头,主要是一个应用程序的GUI设计,而不是如何完成一个应用程序。

总结

在这个第一次进入专业学习的学期中,我确实有所进步,但是我总觉得这样的进步不稳,现在回想自己的学习过程,实际上我总觉得我学会了,可是并不是这样。实际上我连C语言的许多知识都忘记了,因为用的不多,像是文件操作的一些函数,《time.h>,《type.h》...这可能就是基础不牢固吧。这和我自己的学习习惯也有关系。以前高中,甚至大一的学习中我都没有记笔记的习惯,因为有些课程的内容不是太难,知识量也不多,只要按时上课,写作业就可以应付考试了。但是现在我希望能够将编程的能力作为我人生的一个目标,学习的内容越来越多,时间却越来越短,如果不记笔记时常温习,就算学的再多,也是会渐渐地忘记。因此我将写博客作为一个写笔记的习惯来记录一些我容易忘记的知识,希望我能够坚持下去,真正找到自己未来的路。

在博客中,我将长期更新以下内容:
(1) 解题总结
(2) 读书笔记
(3) 随想
(4) 课程设计
(5) 程序设计