阅读《构建之法》及博客有感

这个作业属于哪个课程 <课程链接 >
这个作业要求在哪里 <作业要求>
我在这个课程的目标是 探索软件工程思想,为成为一名软件工程师打基础
这个作业在哪个具体方面帮助我实现目标 总结自己的现状,规划未来的发展,学习他人的经验
个人博客 https://www.cnblogs.com/dreamone11/

自我介绍

我是孟祥一,来自西南石油大学2017级软件工程卓越班。热爱吉他,有5年的指弹吉他学习经历。并且对游戏制作以及游戏行业有很大的兴趣和一些了解。善于和他人沟通交流,在大一担任过主持人。我觉得的我有一个优点就是所学的知识再熟练掌握之后能很好的教与他人,并且十分有耐心。经常帮助同学一起复习功课时,他们告诉我适合去当一个老师。对很多事情都会思考很多,这其实不能算作优点了,因为很有些事多思考一下是有帮助的,但有些事想多了反而不好。

阅读感想与问题回答

读前辈博客感想

                                  人生中总会出现很多指路人,有的时候需要我们自己去发现他。

在时间管理方面,我在上个学期创建了一个每日任务计划word文档从2019.5.31号开始每天晚上都会记录自己明天所需要完成的任务,并且查看今日完成任务情况。在看完第一个博客后对自己的任务计划制定进行了改进对每日任务重要程度进行分级,希望自己的效率可以进一步提高。

问题回答

(1) 回想一下你初入大学时对你所在专业的畅想

  • 当初你是如何做出选择你所在专业的决定的?
    答:我在挺小时候就接触到了游戏,小时候可能更多的是喜欢玩游戏。随着年龄的增长和接触游戏数量与质量的上升,我发现一款好的游戏叙事也是表达人类情感的一种方式,是一门艺术更是一门学问。在高考之后我就对父母表达的我对游戏制作的热爱,开明的父母也知道这并不是玩物丧志。所以就一起商量报考什么专业,再加之自己对计算机也十分感兴趣,于是就锁定了软件工程专业。

  • 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
    答:在过去的两年中我接触到了很多有趣的学科,虽然这些学科可能和游戏制作这个梦想没有直接的关系,但我确信他们都能支撑我未来在这个方向的发展。可以说是十分符合我所期待的了。理学院开设的每一门数学课都很大程度上的提升着我的逻辑思维能力;英语的学习对学习软件和我未来想要出国读研的想法都有很大程度帮助,包括进入卓越班之后的每一门课双语课都有很大的收获。

  • 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
    答:可能在大一刚进入大学时,对这个专业并没有很大的感触。两年过后,我个人把软件工程看作一门散发着理性的艺术,程序员们通过自己的双手构建着全新的世界。在每一门专业课中我都一个感受:软件工程是一门学习规则、应用规则、最终再制定规则的学科。我现在距离制定规则还有很远的一段路。我很喜欢软件工程这个领域,虽然我现在不是在这个领域中的达人,但是在我接触的领域中,软件工程可以说是最擅长的一个。

  • 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
    答:我十分希望将来在这个领域工作,希望成为一名游戏程序员。前面也说到过自己出国深造的打算,个人非常喜欢CD Projekt这家波兰游戏制作公司。由于留学国家的选择,我可能计划能先在加拿大寻找游戏制作公司。

(2) 对照前人们走过的路和描述未来发展,现在的你

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
    答:语言方面:C、C#;专业知识:数据结构、软件设计模式、计算机系统基础、程序设计范式;其他:自学Unity 3D、C++;代码量不是很多在四五千行左右,最复杂的像个在暑假javaweb实习中,团队制作的基于电商平台开发的游戏数字销售平台(前端运用:HTML、CSS、Javascript;后端:采用SSM框架,使用Maven管理和Mysql数据库)

  • 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
    答:看完博客后感觉自己差的还很多。因为自己明确出国深造的目标,前两年心思都放在提升GPA上,反而自己课下钻研学习技术的时间少了。我时常都会想自己应该花时间打磨自己、提高代码能力。我认为在接下来的两年不仅要紧跟课程进一步学习软件行业知识(比如:软件需求分析、软件管理、文档),还一定认真研究数据结构和算法,做到熟练运用。对于一个游戏程序员C++的学习和运用也是我不足的地方,还有游戏引擎的使用,都是需要进一步提升的。

(3) 目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照以上你阅读的前人们的经历,你的选择是什么?
    答:读完很多博客以后我感触很深,也产生了很多共鸣。我认为现在的我把出国读书看的太重,所有的心思都放在维持一个良好的学分绩点。而前辈的经历是专心于技术的学习,并且在大四这一年甚至可以做到三方发展(国内考研、留学深造、找工作)然后选择最好的出路。我想我可能没有如此大的精力在三方面同时发展,但是我会抓住当前时间多学习专业技术和英语,而不是一味专注于学科GPA。还是希望可以顺利申请到国外的研究生。

  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
    答:优势:由于自己很早就和家里人确立了出国留学的方向,所以对这方面的了解比较深,资源也相对多一些,有家里的支持和前辈的指点吧。劣势:上面也说到了,有的时候目标定得太早,眼界就会受到限制。这两年在学校专业课上下的功夫比较多,课下自己敲代码的时间少。和很多在课下自学技术的同学在代码能力方面有些欠缺。

  • 针对你的选择,你给自己的大三设定的规划安排是什么?你对于实现自己的梦想已经做了或者计划做什么样的准备?
    答:在暑假的时候就对这一年有了初步规划。1.上学期:紧跟专业课,因为这学期专业课多且考试机会只有一次;自己再次学习数据结构和算法,多做些个人小项目把自己学的技术用一用;英语方面每天雅思单词的记忆,对语法的复习。2.寒假:进入雅思学习班,系统的备考雅思。3.下学期:专业课数量较少,有时间进一步提升自己的代码能力。C++的深入学习、游戏引擎的使用和部分源码的学习与理解。想要在游戏公司求职,不仅要求对技术的把握很多时候对游戏设计游戏理念要有深入的了解。

阅读思考后的提问

  • 问题一:如何将单元测试自动化?(单元测试如何集成到自动化中的?)
    问题出处:第二章第一节P28页
    问题产生原因:在学习到单元测试标准时,其中有这么一点应该把单元测试自动化,没有企业项目经验的我不知道单元测试自动化是如何实现的。于是我就自己去查了下,自动化关键是做到四个统一:统一配置管理工具、统一构建管理工具、统一反馈平台、统一测试框架。对单元测试自动化有了基础概念,但还是不知道是如何具体实现的

  • 问题二:在工程中如何,软件工程师解决问题方式的选择问题
    问题出处:第三章第一节P47
    问题产生原因:在阅读到软件工程师有时候不满足于“解决目前直接的问题”,而是想“解决问题背后问题”,或者“解决通用的、不直接的、但有重大意义问题”时深有感触。有时自己在做项目时也会有一种想要找到从根本解决当前问题的方法,但是又因为时间不够或者能力有限只能采用“巧妙”方法。那么在工程中万一以后再次遇到此类问题怎么办呢?如何衡量这两种解决问题的方式

  • 问题三:对产品开发过程的需求可不可以理解为制作团队对开发的规定?
    问题出处:第八章第一节P153
    问题产生原因:对产品开发过程的需求,书中的定义和举例。让我感觉这类需求不一定都来自于用户。那么虽然事实就是需求不一定都来源于用户,为什么不把这些约束条件理解为软件团队的开发规定呢?而要定义为一种需求?

  • 问题四:接受风险也算是一种应对风险的手段么?
    问题出处:第九章第五节P196
    问题产生原因:在应对风险的几个手段中,我对“接受风险”有一些问题,我们应对风险,目的应该是达到减少或规避或解决风险带来的损失。那么接受风险好像是的无法达到此目的。类似于高层人事变动而导致我管理的项目被叫停,看上去好像无法规避风险了,那么还有什么风险是类似于这样的需要“接受”的风险呢?

  • 问题五:关于“探索式”的测试的理解问题
    问题出处:第十三章第二节P279
    问题产生原因:“Ad hoc”是一种尝试性测试,也许会不按照正常流程来,那么这种随机进行的测试也会测试出bug啊,那么当我们第二次再次测试此bug时是否修改好时还是要再重复这个流程,为什么说探索式测试的流程是不可重复的呢?还是说这第二次测试的时候就不能再叫做探索式测试?

    学习版本管理工具的收获

    1、Git

    阅读《构建之法》及博客有感_第1张图片

Git相信大家已经都有所耳闻,可以说是现在主流的版本管理工具之一。也是由现在版本管理工具的始祖SVN发扬光大而来,由集中式的管理转变为Git的分布式管理。而Github是一个托管网站也是一个程序员社区网站,程序员可以在上面托管自己的项目,当然这个托管是基于Git来完成的。
优点:可用性强、分布式特性使每个程序员可以离线的查看记录删除记录等操作、效率高。
缺点:对于国内用的访问可能不是很流畅、对于初学者来说概念有些复杂,引入的诸多概念会让新手感到陌生。

2、Microsoft TFS

阅读《构建之法》及博客有感_第2张图片

优点:微软的版本管理工具,与VS完美契合、能有效实现敏捷编程、对数据库版本管理的支持实现其高效性、还包含很多其他的管理工具,功能多样化。
缺点:相比较于Git平台覆盖面少、可灵活运用的团队较少、受众不如Github多。

3、Coding

阅读《构建之法》及博客有感_第3张图片

Coding.net 是一款国内的一站式开发平台,提供代码托管、任务管理、协作开发等功能
优点:使用更符合国人操作,界面简洁易懂、有一部分免费的私有库,可以免费的放一些不开源的项目、访问速度较Github快。
缺点:Coding在一些大型开源项目上有欠缺(比如 jquery、linux、react )、暂时不支持导入一些外站的私有项目。

4、Bitbucket

阅读《构建之法》及博客有感_第4张图片

优点:支持私有免费项目且不限容量、上传大项目速度快、没有大小限制、上面有Unity3D的开源项目、更加关注企业开发者。
缺点:开源项目数量与Github有一定差距、用户数量也有差距、搜索页面单一。

你可能感兴趣的:(阅读《构建之法》及博客有感)