第一周博客作业

1. 介绍自己,建博客

我现在是一名就读于软件工程专业的大三学生。

我很喜欢读书,比较喜欢侦探悬疑小说;听音乐也会让我放松,休息时间会看很多民谣的现场。

在体育方面好像都不太擅长,相对来说跑步稍微好一些。

学习上自控能力较强,能有自学意识和计划性。

这是我的博客地址:https://www.cnblogs.com/weiwei2/

2. 现状、经验和计划

 (1)为什么选择这个专业?关于这个问题,在我进入大学之后也经常问自己。填高考志愿时,我是没有一个具体的目标专业的。所以在查询了解很多专业的学习方向和工作情况后,我选择了计算机这一个大方向。一是因为了解了用一台小小的计算机、成百万行的代码能够创造出一些属于自己的、新的东西出来帮助到大家生活中很多事情,我便产生了进一步接触学习的兴趣;二是因为确实近几年来并且在未来很长时间内计算机行业都有很好的发展和就业前景,考虑到现实因素我也就选择了这个专业。

  作为一名大三学生,我深知现在的自己离一个合格的IT专业毕业生之间还有一定的差距。在专业知识上,我接触了很多方面的知识却都不够精、不够深,各种语言都学习过、前端后端也都了解过,但就数据结构、算法、设计模式或某门语言来说我都并不精通,更不用说还没有学习的网络编程、操作系统等等更底层的知识。总体来说,尚未建立起自己一套完整的知识体系,也没有深入钻研过某方面的专业知识。在我看来,软件工程这门专业的基本技能除了掌握编程语言、编码能力以外,设计、测试能力和团队协作能力都是我还需要努力的方向。至于在学习能力上,我对于吸收知识的速度不够,理解能力也还需要提升。

  我选择了以下对我来说相对更重要的项技能,技能调查表如下:

技能调查表
技能 目前的水平 课程结束时想达到的水平 提高的手段
语言 会C,JAVA,PHP;但都不精通。  能够熟练地运用JAVA和C++。 多看源代码,大量的编程操作练习。
需求分析 不能完整考虑一项功能的具体实现。  可以尽可能全方面考虑需求,熟练地分析并完成一个项目的需求分析文档。 对于任何项目的题目和要求先进行分析,多做简单的思考练习。
软件实现 能实现一些较为简单小型的程序,但在更多功能实现上能力仍不足。  能读懂他人代码;在规定时间内完成指定功能的实现;遇到bug更快地解决并能分析总结。 拿具体项目练手,多看源代码,对于bug能及时总结经验。
软件测试 基本不会测试自己的代码,只要求程序能简单地通过。  熟练掌握多种测试方法(框架)、测试工具,提高测试效率,养成自己代码测试习惯。 阅读相关资料书籍,学习测试框架等,在自己的项目上操作联系。
个人源码管理 通常保存在PC上,在项目展示后源码自己也很少再看。  熟练运用git,养成代码可多次提交至git上的习惯。 通过多次操作熟练运用git,每次作业、练习项目等都提交到git上。对PC源码也定时分类、备份,有文档说明使用方法和测试用例等。

(2)心得:

a)我阅读了《Scalers:大学生上课为什么一定要认真听讲?》这篇文章,对自己的冲击还是比较大。环顾周围,包括自己在内的许多同学确实在进入大学以后忽视了上课认真听讲的重要性和意义所在,单凭自己判断这门课是否有用、是否讲得不好、是否就可以不听。文章中尤其是第一点,“认真听讲是一种能力”,这句话真的值得我们每个人思考和反思。认真听讲培养的更多是专注、聚精会神的能力,这一点不仅是在大学里有用,在每个人一生中提高效率、提高质量地学习工作都是为自己赢得更多(这包括很多方面,赢得时间,赢得成就,或者赢得一整天好心情)的体现。而且就我自己而言,我一直觉得认真听讲除了是对老师的基本尊重,更多的是跟上老师的节奏,为自己节约课后时间,老师的授课内容通常是老师已经经过消化、总结的成果,一定是比自己只挨着书本看进步快得多(当然课下一定也要看书)。因此,认真参与进课堂,我希望自己能收获到想学习的知识。

b)进入大学以后,我体验到的师生关系大多数只是课堂上的教与学,可能只是单方面老师有着“向生性”或单方面学生有“向师性”。我期待的师生关系是互相影响、互相作用的关系。师生交往本身是教师按预定方向对学生进行有目的影响的一种教育过程,但我更希望这门课中老师和学生之间的思想交流也能碰撞出更多有价值、有创造性的思想。这就要求多交流、多沟通,上课内容、书上内容、作业等等,都不应该只是完成任务。当然首先,“师者,所以传道授业解惑也”。为了少走弯路,我们学生应该先要求自己能够上课听讲、认真完成作业、多向老师请教学习。

c)在软件工程这门专业中,我认为要求所有学生在文档或程序上全部完全创新是不太现实的,所以参考、借鉴别人的经验、结论都是无可厚非的。但是底线是:一定要明确标注引用别人的文献的地方。引用和抄袭之间的区别有很多点:引用是为了帮助阐述自己的观点,抄袭是完全照搬他人成果;引用不会超过整个作品的1/10等等。学术诚信,这个思想应该根深蒂固地牢记在每个学生、学者心中。在我校校规中有一条明确指出:“学生出现学位论文、公开发表的研究成果存在抄袭、篡改、伪造或者代写论文、买卖论文等学术不端行为的,给予记过以上处分,情节严重的,给予开除学籍处分。”而在平时的课程当中,一旦发现有抄袭行为,老师一般给出的惩戒是该门课程没有分数或不及格。抄袭和剽窃在道德规范上就是一种不正当的行为,在法律上更是一种违法侵权行为。我认为抄袭行为完全是为了应付完成任务,不仅是对原作者不尊重,更是对自己最大的不尊重和不负责任。

(3)我目前对未来的打算是留学考研,因为我个人认为就我目前本科所掌握的知识可能在就业市场上能力会落后于别人,所以希望通过继续深造来获得更好的学历、提升自己的专业素养。毕业后会选择专业相关的IT行业,希望能学以致用。因此,本学期的规划是认真学习提升绩点,选择并联系目标学校,尽可能钻研提升具体一方面的专业技能。

(4)我对这门课的计划是:先自己浏览一遍书本,上课时能够认真听讲(我认为上课收获的不仅是课本知识,应该更多是老师授课过程中传递的一种思想或思维方式),认真对待每项作业(更重视,目标不仅仅是完成任务),培养写博客、管理源代码、总结知识的习惯,希望在课程结束时能对“软件工程”这四个字有更多更深层次的理解。

  对于这门课的期待:能帮助我对软件工程有更多认识;课堂上希望有更多学生参与的部分,能够更吸引学生的兴趣和注意力。

  我目前的代码量:

    C语言:5000行左右

    Java语言:20000行左右

    html+css+javascript:3000行左右

  对于每周花在这门课程上的时间,我觉得不能用具体的数字体现,毕竟每周对于每门课程的着重点可能不同。除了上课时间外,我计划额外的时间主要在每次课前预习书本和课后基本的完成作业、敲代码、写博客、总结上。

  我对于本门课程的理解更多是学习软件工程、系统的分析与设计相关的知识,毕竟它不是一门“软件开发实践课”。所以在本门课程结束时,我对于代码量没有具体目标,只是要求自己能够高效、高质量地完成项目,可能需要更多时间在前面的分析设计与之后的总结。

(5)阅读感想:我阅读了https://book.douban.com/subject/4006425/discussion/22803961/(你是否也觉得自己是科班,但没学懂计算机?)这篇文章。

  目前我的状态和作者在大学的经历有很多相似之处:接触了很多数据结构、计算机系统基础等等计算机科班出身都会学习的课程,总是认真完成作业却不会主动思考、从各个角度找更多解决方法,没有目标方向、没有擅长的专业领域,尤其是思维的机械与缺乏活力的问题特别明显。

  软件工程强调的是一种思考方式,而不仅是简单地获取课本知识。所以这方面我还需要学会改变,化机械记忆为主动思考。

  作者还提到了底层知识(基本功)和“快想、快说、快干”的实习经验,这些都是我还需要去加强学习的。在最后,作者强调了实践与执行力的重要性。“你不会的知识,你懒于想通的东西,总是会在一个必要的时候提醒你、惩罚你。”这句话给我印象特别深。不去思考,知识就永远不会成为自己的东西。软件工程本身就是一门实践性很强的计算机专业,绝对不是靠死记硬背。比如自己参与到一个项目中,从需求分析、设计到开发、测试等一系列工作,都需要全程动脑、动手操作的。而执行力更是能够反映我是否充分发挥了自己的能力水平的体现。

3. 提有质量的问题

(1)第2章提到了单元测试,因为我之前没有具体学习过相关内容,所以在阅读时产生了很多问题。比如说“单元测试应该产生可重复、一致的结果”这一条,并提到不能用随机数提高测试的真实性,是否只是一种固定的测试方法就能保证测试结果的正确性了呢?有其他方法提高测试的真实性吗?

(2)第3章(“软件工程师的成长”)为我们介绍了初级软件工程师应该如何成长,对于“积累软件开发相关的知识,提升技术技能......”这一点,我有点疑惑对于我们大学生来说,学习涉及的领域越宽广、掌握的方面越多更好,还是选择某一方面来深入钻研比较好呢?

(3)在第4章(“两人合作”)中,第一点我对4.4中提到的代码复审有所疑惑,其中有一句话是“谁来做代码复审?即最有经验、熟悉这一部分代码的人”,因为编写代码的自己一定是最熟悉这部分代码的人,这是否说明自我复审相对于同伴复审和团队复审都更好呢?如果由团队复审,是否与测试团队的某部分工作有所重叠呢?

(4)在学习完第6章(“敏捷流程”)的内容后,我了解到“敏捷”是一系列软件开发方法论的集合。但老实说,学完一整章我可能仍然只记住了几个基本概念,但却有很多问题:什么时候用、具体怎么用、就我们大学生做的小项目中能用吗?书中在练习与讨论中列出了一个问题表格来帮助我们选择哪一种开发方法,那么,是意味着每次开发项目前都要依次挨着问题审查后来选择吗?亦或是这些问题是否有优先性呢、其中符合几个问题的情况下选择敏捷流程更好呢?

(5)第7章中介绍了MSF,那么这一框架对于软件的大小、团队成员水平或是团队的规模大小是否有要求呢?MSF适合只由大学生组建的团队吗?

  这本书还有很多内容我没有细嚼慢咽来理解消化,所以在之后的学习中我会再不断探索更多有价值的问题。

posted @ 2018-09-27 13:21  io!  阅读(157)  评论(4编辑  收藏  举报