一、自我介绍
现如今我是一名软件工程的大三学生,平时没事喜欢追一些剧,类似《权力的游戏》这样比较有历史感、有权力斗争、凸显人性的电视剧。还喜欢听音乐,最喜欢的歌手是孙燕姿。我也打游戏,但只玩一款游戏,别的都觉得无聊。平时上课学习都是跟着课程进度走,自己也学一些额外的专业知识,但大多都只是有所了解,并无实战经验。现阶段的目标是在大三这一年好好学习专业课程,同时决定考研,所以在之后的时间也会认真备考。
二、现状、经验和计划
1.为什么选择该专业
我这个人本身目的性不强,上大学之前的所有学习都是按部就班,之前的想法就是考上大学,至于选择什么专业我是真的没怎么想过,家人的想法是让我选择教师和医生相关的专业,但是我个人不怎么喜欢,所以当初填写志愿时就选择了机械工程、石油工程、地质学、软件工程等几个专业,结果就被软件工程这个专业录取了,估计这是“天命”吧。。大一刚进学校时,普通课程如高数、大物、英语等我都能够应对自如,因为以前有一定基础,但是“横空出世”的专业课程让我有点措手不及,我对计算机编程的了解实在太少,以前都是用电脑娱乐,但是现在却要用它来编程,这让我很不适应,这就是我专业知识相对薄弱的很重要的一个原因,因为从一开始的学习中就不求自主的有一种“排斥”心理。到现如今,我开始慢慢的有一些状态了,也开始渐渐明白为何我当初会对这个专业有一种“排斥”心理,而非“好奇”心理了,归根结底是我一开始不了解一个“源程序”是怎样运行并产生结果的,几行类似英语语法组合表达的“句子”竟然能够实现一些特定功能,这让我理解不了,心中存在这样一个结就免不了时常要这样想,时间一长,困惑就愈发多了起来,然后出现前一门课程还未“弄懂”,后一门课又接踵而至,最后能弄清楚、学好的专业课程很少,也就自然造成了专业能力薄弱的局面(我的经历和老师在作业说明中提到的这篇博客很相似,你是否也觉得自己是科班,但没学懂计算机?)。
专业知识、技能、能力上的差距
重要技能 | 目前的水平 | 希望在课后达到的水平 | 方法和手段 |
Java编程语言、C语言 | 能用java语言编写简单的小程序和web网页;对C语言的指针部分理解还不够深刻 | 能对Java语言更为熟练,同时也学到更多有关Java的知识 | 网上课程、专业书籍、专业课学习、通过一些项目来练手 |
软件实现 | 能实现简单的web网页开发、实现一些小游戏的开发 | 能很好的对自己开发过程中的代码模块进行测试,减少bug | 多学习有关测试的方法,同时充分利用这门课程上提供的许多学习资源 |
软件设计 | 有所了解的就是MVC三层架构和软件设计模式了 | 能在之后的软件设计中运用到学过的设计模式 | 进一步学习巩固23种设计模式,在项目中有意识的使用一些设计模式 |
质量意识 | 对开发软件所要求的代码规范基本能够做到,功能上可能出现的bug还不能很好预期和避免 | 进一步规范自己的代码,能运用单元测试和回归测试来减少自己代码中的bug | 编程中时刻注意规范,编写完程序后有意识的进行单元测试和回归测试 |
理论素养 | 理论上掌握的知识有限,一些专业的开发流程不太熟悉 | 进一步提升自己的理论知识,对一些方法和流程要从根本上弄清原理 | 不完全注重实践,将理论与实践相结合 |
2.心得体会
我个人认为作为当代大学生,我们需要接受高等教育,我们更是需要通过上课这样的传统方式来提升自己的见识和能力,在课堂上我们能与老师、同学面对面的沟通交流,在这个过程中我们的交流能力和思考能力能得到有效提升。我个人认为大学中的师生关系不仅与老师有关,还与学生有关,大部分老师都是愿意同学生沟通交流、帮助学生答疑解惑,指定方向的,我们学生要有主动向老师请教的意识,这样才能形成一个良好的师生氛围。
3.未来方向
先考研进一步学习软件工程或计算机科学方面的知识,然后希望毕业后找到一家符合自己期望的软件公司,一方面提升自己的开发经验,另一方面进一步加深自己对计算机的理解。希望在有所成就后将自己所经历的心路历程、开发经验、专业研究等写书发表。
4.课程计划
认真学习这门专业课,认真完成课程项目,同时从实际项目中体会到软件开发的一系列过程。我的代码量估计只有几千行把,我会花更多的时间在敲代码上,毕竟只有不断的量的积累,才会有质的飞跃。
5.感想
阅读了相应的博客文章后,我深感惭愧,惭愧自己与别人之间的差距竟如此巨大,自己的学习毅力与别人也是相差甚多,这些人曾经或许与我有相似的经历,但最后无一不是奋发图强,决心改变自己的,想必最后也是取得了不小的成就,所谓“见贤思齐”,我深受他们的震撼,但同时也受他们的鼓励,只要下定决心,就没有办不成的事,我会在今后的学习过程中不断反思自己、警戒自己,因为每个人都是渴望成功的,这既是对自己能力的肯定,也是对自己、家人、社会的负责。
三、提出有质量的问题
1.书上P27,我对“单元测试应覆盖所有的代码路径”这句话有疑惑,如果项目十分庞大,设计的代码模块十分之多,那么我们为每个模块编写测试就已经相当费劲了,那么是否每个模块都需要单元测试呢?,一些模块如果有测试不到的地方应如何处理呢?
2.书上P96,“开发流程”这一节书上列举的流程中是否含有“原型模型”、“增量模型”、“螺旋模型”等经典的模型,由于作者并未直接提出,因此我建议应直接提出来,这样方便我们综合记忆与理解。