个人作业项目报告四——总结及感想

本次个人作业历时一周,要求完成一个计算文件中所含字符数,文件行数,高频单词和词组数量的程序。项目虽不大,却很费心血。我从周六开始慢慢悠悠地开始了项目,在构思和设计上花了很多时间,同时一点点地学习可能需要在编码和后续的工作中需要用到的东西。具体归纳如下:

1、重温了排序二叉树的算法,并且自己动手完成了一个二叉排序树(简单但费时)。
2、继续寒假时对c++的学习,通过这个项目对c++类的构造,类成员及成员函数的实现有了一些实践,摸索并总结出了一定的经验(将会在日后的博客中单开一篇记录)。
3、重新温习了中小型功能性程序的编写,在做的过程中遇到了很多细小的问题,诸如指针指向空间的分配,类调用等部分的一些常见错误,并进行了一些总结。
4、学习了如何使用unodered_map库、string库和fstream库的初步使用,同时还初步掌握了unodered_map自己定义键值的方法(但未应用到这次的项目中,日后同样会单开博客介绍)。
5、在逐渐养成在项目过程中记录文档的习惯(虽然后期觉得时间太赶,减少了相关的记录),对于一个软件新手来说,虽然只是很小,而且走的歪歪扭扭的一步(文档写的有点烂),但是不管怎么说,在下一次的作业中,我将不会再犯这一次作业中所犯的错误,也可以在此基础上去学习许多新的东西,我想,虽然过程中间有时让人觉得有些痛苦,但我想,这本来就是一个起步难的旅途,由0到1的实现是最为有意义的。

同时,也认清了自己的许多需要进一步加强的地方:
1、编程能力上仍有欠缺,具体体现在几个方面。一个是没有形成自己的编程语言风格,总是会纠结变量名和一些细节的实现方式,这样很容易打乱编程思路,同时也会降低速度。另一个是对许多算法和基本库仍然处于半会半不会的状态,可以说是基础没有打牢,截止目前还有VSTS框架,具体的c++编程方法,各类编程实现方法的性能理解等方面掌握不够,对各个数据结构的理解仍然停留在书本层面上。这些细小的不足,最终都体现在我的编程速度和思维上,成为我进步的最大短板。
2、实践不足,虽然以前写过好几个类似工作量的程序,但是从来都只停留在跑出正确结果上,这也导致了我为了实现某一个功能,会产生许多实际上非常不可取(鲁棒性低)的方法去蛮干,这也导致了我的代码可用性和可移植性低,同时因为奇葩的想法,日后改动起来也困难。
3、调试手段单一,而且在这次编码过程中没有好好利用版本管理工具,经常有抱怨自己无法回退之前的版本的状况。同时,在调试过程中,大量的在原工程上增加,注释语句,使得代码可读性急剧下降。
4、过于执着于细节错误,由于自己的实践不足,所以总是在细节犯错误,而自己又不能第一时间找出错误,就会卡住,甚至是使得工程完全停滞。
5、没有学会小步跑的技能,总是想编完大部分代码后再去测试,这样的亏我已经吃了很多次,但每次都好了伤疤忘了疼,我自己也对自己很无语。

回首这一周的项目时光,我其实在完成度上做的并不好,效率低,时间耗费大,成果不够好,优化没有时间做足,在版本移植和各个细节功能的实现上一拖再拖,严重影响速度,在错误的结构上花费了太多时间。这些都是制约我取得高分,提高项目质量,以及工作效率的表现,具体的原因,还得追溯到上面所提的问题。

最后,还想想讲讲自己对自己的期望。在这个班上有不少大二同学,包括计院的同学,他们有的非常厉害,在编程能力和工具应用能力上比我强一大截。看着他们高效的实现能力,我非常羡慕,希望能尽快赶上他们,毕竟自己作为一个大三学生,一个是老脸放不下,另一个是自知自己的实践能力远弱于思维能力,所以,一开始就想要定高目标,去做追赶者,那必然是痛苦的。但是在过程中,自己可以感受到自己的进步,虽然在写总结的时候发现,自己学到的东西也不如当时感到的那么多,但是这种学到东西,不断学习,逼迫自己走出舒适圈的感觉,不断否定自我向前的坚持,我想是我继续努力下去的最大动力。这门课我并不强求一个很高的成绩,但一定要求自己能够学到一些真东西。

原文地址:https://www.cnblogs.com/ZucksLiu/p/8679339.html