第一次作业汇总
第一部分:自我介绍+回答问题
//因为对写博客不是很熟悉,上一篇博客本来只是当实验品一般尝试随便写一点,今天明白了应该严肃的对待自己所写的每一篇博客内容,这篇我将正式地介绍自己并回答杨老师作业中的问题。
一.自我介绍(新)
大家好,我叫袁玥,目前就读于东北师范大学信息科学与技术学院计算机技术专业,是一名在读的专硕研一学生,本科就读于东北师范大学计算机科学与信息技术学院,专业是计算机科学与技术,籍贯河南洛阳。忽然发现自我介绍的其他部分可以在杨老师的作业问题中回答,那就在下一part详细回答相关问题。
二.回答作业问题
1.回想一下你曾经对计算机专业的畅想
其实当时填写专业的时候我并没有报计算机专业,考虑到我们学校的师范专业名头,我填报的都是一些基础类学科,数学、物理等专业,最后因为第一志愿数学分数比较高再加上有志愿级差分数之类的问题,阴差阳错被调剂到计算机专业。我在大学之前几乎没有接触过计算机,虽然家里很早有了电脑,但是因为不太会使用,记得小学的时候也就是平时不得已需要打一些作文电子稿或者拿画图工具随便画点什么来玩,也没什么太大兴趣。再加上家里的电脑总是出现故障使得我当时觉得计算机并不能完成一些稳定的工作而且时常会出现不可控的问题,电脑出现问题了还会被我爸埋怨,导致我对电脑非常抗拒,在大学前几乎不怎么接触了,高中的会考计算机都是依靠同学的帮助完成的,所以在得知被调剂到计算机专业以后我的内心是拒绝的,并且当时的打算就是好好学习找机会转专业,然而大一时候的成绩并不理想,可以说是大学中成绩最差的一学年,所以大一结束后也没有转专业成功,就留了下来硬着头皮来学习计算机的专业课知识。
在本科期间,学习的主要专业课有数据结构,c语言,数据库,操作系统,计算机网络,计算机体系结构等。当时不太了解情况,学习的主要目的就是为了通过考试以及拿到一个尽可能高的分数,现在想来当时无论期末考试分数高低目前还留有印象的都是考研时期复习到的专业课。因为本科期间对计算机没有期待所以也评价不出课程的好坏,但现在想来我感觉本科期间的培养使我产生了一个笼统的对计算机的认识,使得我现在想重新学习一些本科期间学习过的网络,算法什么的比第一遍学习的时候容易许多,但是我觉得本科期间对动手能力的培养好像还不足,有可能也是因为我自己比较不积极导致的。因为动手能力比较弱,每次想学习一门新的语言总是停留在看教程(阅读)上,安装相关软件的时候会碰到很多问题很烦躁,最终脱离了练习的语言学习注定是失败的,但是好像我难以改正这种只看不做的学习方法,最终学习失败总会产生一种无力感。在研究生阶段,我想改正一下这个问题,在困难的时候继续坚持下去,达到能够使用java,python这类常用编程语言的程度,具体是指能够使用这些高级语言编写一些小型程序如计算器之类。
就目前来说,跟专业人士比较我肯定计算机不是我擅长的领域,但就当今就业形势来讲计算机还是比较不错的,虽然我也不是很喜欢计算机领域,但计算机是我感兴趣且愿意学习的一个领域,还是希望继续了解这个领域最终能够做出一些属于自己的作品,毕竟也是要学计算机专业7年的。
2.考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识,技能,能力有哪些?离成为一个合格的计算机学生,在专业知识,技能,能力上还差距哪些?
我感觉通过本科阶段的学习我已经对计算机体系有了一定的了解,但是不精准,如果去求职面试时还需要突击复习相关知识。在本科期间,我做过一些小的项目,但都是负责网站项目中的一小部分,主要是前端的html,css,javascript代码的编写,我觉得没有达到找工作的水平,项目经验还很不够。其他语言方面,已经学过的语言有c,java,c++,自学过python但效果不是很好,只能用编程语言解决一些oj平台上最简单的问题,但是不是很复杂的代码都可以阅读。
我认为离一个合格的计算机学生的差距还有很多,应当继续巩固专业知识,但是我觉得最欠缺的还是自己开始动手做,积累2-3个项目的经验,至少懂得一个功能完善项目的开发过程。在大三期间我尝试着去找实习工作,我发现如果github账号中存在有价值的代码或者是有坚持写技术博客的习惯或是拥有大量的项目经验都是加分项,针对于找工作,我觉得以上的3点是我今后努力的方向。
3.对比阅读前人的经验你的选择是什么?在这种选择下你有何优势?有何劣势?针对你的选择,你本学期的规划是什么?
我在大三暑假有去一个央企的软件测试部门实习,本来是不打算念研究生的但是在实习期间我发现如果不是硕士文凭签工作的时候是签给一个外包公司而并不是央企公司,这才决定在10月份返校准备研究生考试。通过实习我发现软件测试也是一个不错的发展方向,我曾经跟一个本校研究生交流过就业方向的问题,他建议说在研究生期间可以学习自己独立开发一个网站,将自己的博客记录精美,学习相关的js,数据库,php的知识;如果在研究生期间将这些工作准备充足,就业时可以往全栈工程师,前端工程师等职位发展,如果准备的没有那么充分,学习到的知识对于测试工程师职位的获取也是有帮助的,我感觉非常有道理。在这种情况下,我的优势是有一些网页前端开发的经验,独立写过一个自我介绍的网页前端,负责过多个项目的小模块;但劣势就是学习不精,还有对于一些高级编程语言的学习无从下手,仅仅是停留在看书的状态。针对我初步的规划,我本学期的计划是:顺利通过所有研一上的科目,阅读研究方向论文之外,对课程留的大作业认真完成,争取在完成各科期末大作业时补充项目经验,将大作业做得比较完善,这样我的github账号就有一定数量的代码可以放了,对今后的求职应该会有一定的帮助。
4.你对这门课的期待是什么?你打算平均每周拿出多少个小时在这门功课上?
我听过好多研究生的师姐师兄谈论过这门课程,从他们的描述中我感受到这门功课应该有着极大的作业量,老师要求也比较严格,所以我对这门的期待就是顺利通过,自己在认真完成作业的过程中提高了自己的代码能力,对软件开发的整个流程有一个自己的认识。关于时间的分配问题,我本来想说5个工作日一天1小时,但是看到大家都写的10-20个小时我忽然觉得5个小时有点少,具体时长不好估计,但肯定要保证保质保量的完成所有作业,不然这门课过不了也很尴尬。
三.其余问题的解释
1.关于我上篇的自我介绍里说到希望这么课结束后github账号里有一定的代码量,杨老师给我的建议是要量化计划,我十分认同杨老师的看法,所以我需要对我原来的计划进行修改,但是具体应该多少代码量我也不清楚,我的想法是以完成全部作业为底线,到了完成代码作业的时候估计我会对代码量有一个更为明确的认识。
2.关于《构建之法》这本书我还没有阅读完,所以这部分作业我在这周末之前会完成。本周进度psp因为这周的学习还没完成所以会等到周一的时候会完成这部分的作业。
3.关于作业的提交我存在疑问,是发布博客就算作业提交还是别的什么?因为我看到作业提交那一栏仅有3个同学提交但是博文同学们都发了好多,我这几天会尽快熟悉博客园的用法,还有因为作业是由好几个问题组成的,提交的时候是分几次提交还是打包提交?博客园中可以打包提交吗?我会在下周deadline之前把这些问题搞清楚,顺利完成此次作业。
第二部分:采访往届同学
我采访的是2017届专硕同学谢孝淼,因为是同导师组的师兄比较便于接受采访,以下是采访内容:
1.当时的项目有多少用户?给用户多少价值?现在还有人在用吗?
项目是基于java的俄罗斯方块游戏开发,总共有28名用户,基本上都是上一届专硕的同班同学;给用户的价值是,开发的项目可以正常使用,给用户带来了良好的游戏体验,但是因为缺少建立用户成绩的数据库,导致用户在体验游戏的过程中缺少像其他游戏计分排名的成就感,所以现在也没有同学使用这个项目了。
2.这个项目能否给我们继续开发?源代码与文档还有吗?
源代码保存起来了,但是文档有部分遗失,因为缺少完整的文档注释,继续开发可能会存在困难。
3.在项目的开发过程中有哪些经验和教训?
在项目中获得的经验是:在最初的时候一定要确定需求,因为项目组中不只是一两个同学,大家开始时对项目的需求预期也都不尽相同,所以在项目初期大家一定要多交流统一需求,不然到项目中期会比较麻烦;然后就是分工要明确吧,组中不可避免的是大家的代码水平参差不齐,但是为了锻炼大家的编程水平还是尽量的让每个同学都有一定的代码量,然而核心的代码最好还是由善于编程的同学完成;代码整合时要考虑兼容性,在开始编码之前需要把编码规范统一,这个是比较重要的。
获得的教训是:在项目进行中发觉了自己的编码水平比预期水平略有降低,也是由于对工期的预计并不准确,使得最后项目没有时间建立用户的数据库,很大程度上影响了用户的体验,合理调控工期是本次项目中给我的最大教训。
4.对学好软件工程有什么建议?
我觉得最好的建议就是听从老师的意见,因为杨老师对于项目开发的经验非常丰富,可以给大家很好的学习计划的建议,只要大家按照老师的要求保质保量的完成作业,到学期末都会有自己的收获,但可想而知的是工作量是非常巨大的。我的建议是坚持下来,不要在中途放弃对自己的要求变为应付作业了事,据我的了解同学们的代码量都比较小有的甚至几乎没有,但是就如同想要学会游泳不勤加练习是不行的一样,软件工程也是需要很多实践才能获得收获的学科,所以,加油吧~
感谢谢孝淼师兄回答我的相关问题,我从中获得的启示是:软件工程是一门作业量比较大的课程,需要坚持不懈的努力,我会加油的。
第三部分:通读《构建之法》有感
<!--这周四上完杨老师的软件工程第一课后,本来想从往届学长学姐那里淘到二手书,但是市场太火爆竞争太激烈了,昨天我才意识到估计上一届的书是等不到了就在淘宝上下单,借来了同学的书先看着完成这次的作业。-->
通读了邹欣老师的《构建之法》感到这半书跟一般的技术类书籍不同的是,读起来比较轻松,趣味性很强,穿插着范例跟段子,看到有趣的地方我还跟室友分享了。以下是我对于这本书的疑惑之处:
1.第6章敏捷编程中,感觉是需要定义好任务然后按计划衡量是否完成计划,但是后来又说敏捷团队需要自我管理自我组织还要多功能,感觉这样对研发团队的要求是很高的,不仅编码能力要强而且还要对工作有热情。那么可想而知如果团队中都是这样的成员不管什么项目的完成质量应该都会比较高,那么敏捷编程的意义何在呢?
2.看到了瀑布模型感觉还是不太能理解?
3.在第8章说对于项目要提高估计能力的招数,其中说到人员的因素->分析程序员的能力,我的问题是如何做到这个呢?对于程序员能力的评估是很难量化的。
4.第11章中说的“小强地狱”有个阙值,书中说是按照项目的实际情况来确定,但对于一个不成熟的软件工程调控者,这个阙值该如何确定,有没有什么计算标准?
5.读到第13章软件测试的时候我有个疑问,功能化测试对测试工程师的要求并不高,但是自动化测试好像又对测试人员的素质有一定的要求,在实际工作中测试工程师的编码水平是不是逊于开发工程师呢?
第四部分:往届项目作品点评
我上博客查找了很久,原来网上的链接点进去有显示错误,有的链接下载需要购买那个网站的下载券,所以我直接找了2016级武志远师兄的新蜂团队制作的java开发的俄罗斯方块,师兄给了我他们的beta版本,我下载试玩了一下,感觉他们项目的功能实现部分做的比较好,但是页面存在一些问题,下面附上体验截图:
关于开始跟结束的button没有文字说明,我是尝试着按了一下这几个按钮才发现哪个是开始按钮的(可能是师兄现存版本不全,给的只是beta版本的原因,存在瑕疵);还有一个问题就是用户无法计分,影响了用户体验;截图左上方有一块空白区域我不知道它的用途是什么,应该也是现存beta版本使得一些button出现问题了。但其余功能完好,我试玩了几次,找到了小时候玩俄罗斯方块的乐趣,总体来说,这个项目实现了预期功能,效果良好!
emmmmm,老师要求的是3个项目截图,但是我实在找不到其他的项目代码了,好在在优酷上可以看到原来项目的运行界面视频,我就观看了2部视频来评价
一.连连看
这个项目的功能设计的比较完整,我看到视频展示中还有等级不同的关卡,而且连连看之后还有声音特效,我唯一能挑出来的问题是UI界面设计的太丑了。。。
二.旅游APP
相对于其他的游戏项目,感觉这个旅游APP很像去哪儿APP,界面设计合理,功能完善,使用价值很高,我暂时挑不出什么问题了。
第五部分:PSP图
本周共写博文5篇,共计4800字,知识点:知道了博客应当如何写,接触了博客园,阅读了构建之法
内容 | 开始时间 | 结束时间 | 中断时间 | 共计时间 |
9月8日博文 | 22:00 | 22:55 | 10min聊天 | 45min |
9月9日博文 | 18:00 | 23:01 | 2h31min | 150min |
9月10日博文 | 22:00 | 23:34 | 4min吃零食 | 90min |
9月11日博文 | 19:00 | 19:30 | 30min | |
阅读书籍 | 8:00 | 17:00 | 90min吃饭 | 7h30min |