【软件工程】第一次阅读作业

这个作业属于哪个课程

<课程的链接>

这个作业要求在哪里

<作业要求的链接>

我在这个课程的目标是

了解专业知识,学习软件开发方法

这个作业在哪个具体方面帮助我实现目标 

自我评价,了解前人经历,总结经验

一.建立博客并介绍自己

    我来自软件工程3班,属于慢热型;喜欢玩魔方,听音乐;情绪经常写在脸上,不善言辞。

    我的博客地址: https://home.cnblogs.com/u/3451ymx/

二.阅读与思考

(1)回想一下你初入大学时对软件工程专业的畅想

  • 当初你是如何做出选择软件工程专业的决定的?

         当时填志愿时间紧张,来不及深思熟虑就选了软件工程这个专业

  • 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
    还算符合吧。学了C语言、C#,数据结构与算法等基础课程,为日后的核心课程、实践打下基础
  • 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?

         不喜欢也不讨厌,不擅长

  • 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

          不一定。目前学的东西不多,基础不是很好,对计算机行业也不是很感兴趣,还没想好

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

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?

          目前我具备的专业知识、技能、能力只能说是入门,要达到大佬级别,还有很长很长的路要走;写过的代码也不多

  • 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?

         目前,可能连一个码农都称不上,对于软件开发也仅仅知识了解点点理论知识,各方面的综合能力,如合作能力、沟通能力、管理能力都有所欠缺

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

  • 对照以上你阅读的前人们的经历,你的选择是什么?

          考研

  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

          优势:首先,当前大学生越来越多,含金量也不是那么高,而且有的企业要求就会高些,所以研究生会在学历上胜过一筹;其次,也存在很多本科毕业就工作的,最终还是走上了考研之路;再次,对于我个人而言,还没想好是否要从事本专业工作,也许会跨考。

          劣势:本科毕业就工作的一般都比考研的实战经验丰富、人脉广。

  • 针对你的选择,你给自己的大三设定的规划安排是什么?

          既然目前还没想好,就先学好当前的课程,尤其是专业课程。

 

三.提有质量的问题

    问题一:

         代码复审 4.4

         文中提到代码复审有三种形式:自我复审、同伴复审和团队复审。

         我的疑问:最好是有经验、熟悉代码的人来复审,而代码作者一定是最熟悉自己代码的,但他自己复审,会有思维的局限性;如果同伴复审,就不存在思维的局限性,那么是选择一个同伴复审,还是两个同伴复,甚至更多呢?如果是团队复审,最大的局限是效率不高。那么三种方式该如何抉择?

    问题二:

         结对编程  4.52

         书中举有例子:越野赛车和驾驶飞机,两者共同特点是在高速度中完成任务,任务有较高的技术要求,任务失败的代价很高。

         我的疑问是,开发程序时,什么样的情况是类似于文中举的例子,需要进行结对编程?是否有公司实行过结对编程?效果如何?对于合作的两人,是两人水平相当,还是一高一低?有什么特别的具体的要求吗?合作两人的适应期一般是多长时间呢?

    问题三:

        与顾客合作 7.2.9

        文中提到MSF强调产品团队与顾客的交流合作,因为“我觉得”和“用户觉得”是两码事。

        我的疑问:那么遇到那种类型的问题需要与顾客交流?大概多久进行一次呢?若是交流时遇到“对牛弹琴”的情况该如何处理、如何交流?

    问题四:

        目标、估计和决心 8.6.1

        文中提到如果我们混淆了目标估计和决心,那就会犯错。其中软件时间的估计是多个估计值的乘除法(估计的需求、估计的复杂度等等)。

        我的疑问:那么,究竟每一项估计该怎么估计才比较准确呢?

    问题五:

        PM做开发测试外的所有事情 9.3

        文中提到微软公司有好几类PM,以及一名优秀的PM应有的能力。

        我的疑问:无论是哪一类PM,是都必须要拥有文中所列举的那些能力吗?还是说负责内容不同,有不一样的要求?

 

四.了解和调查源程序版本管理工具

      

git的优缺点【1】:
  • 优点:
    • 公共服务器压力和数据量都不会太大。
    • 速度快、灵活。
    • 任意两个开发者之间可以很容易的解决冲突。
    • 离线工作。
  • 缺点:
    • 资料少(起码中文资料很少)。
    • 学习周期相对而言比较长。
    • 不符合常规思维。
    • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

mercurial优缺点【2】:

  • 优点:
    • 命令行简单,容易上手。
    • 简洁优雅。
    • 服务器部署相对容易。
  • 缺点:
    • 改写历史麻烦,易导致版本库混乱,也易出错导致丢失历史。
    • 没有命名空间,易导致自己与别人的代码混成一团。
    • 每种分支方式都有许多缺点及不便之处。

Bugzilla优缺点【3】:

  • 优点:
    • 定制功能较强,能满足用户的差异化需求
    • 安装较简单。
  • 缺点:
    • 界面不友好。
    • 语言单一。
    • 更新慢。

 

【1】博客园

【2】【3】知乎

posted @ 2019-03-21 13:58  3451  阅读(149)  评论(3编辑  收藏  举报