软件工程_第一次作业

课程链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/

作业要求链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706

课程目标:1.拿到学分 2.了解软件工程到底是什么 3.学会在实践中去运用软件工程原理

具体实现:通过完成作业二的阅读与思考,我渐渐了解了该如何进行软件工程学习。

 

一.建立博客并介绍自己

     1.    https://www.cnblogs.com/fangxurui/

     2.    就我个人而言,作为一名软件工程专业的大二学生可能是不合格的,除了上课老师讲过的东西,其余的我都不会,没有像其他同学在课外花很多时间去学习另外的知识,只是在很按部就班地跟着教学计划一步步走。而对于课本之外的学习,我也没有什么谈得上很精通的地方,但几乎各方面都有涉猎,其中心理学、经济学、犯罪学是我最为关注的几个方面。相对于其他人,我所擅长的事情是在于性学知识。从小学六年级听说到性这个概念至今,我读过很多关于这方面的书籍,对它的认识理解远超于身边绝大部分人,也跟许多同学普及过相关知识。 

 

二.阅读与思考

(1)

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

         选择软件工程专业的最直接理由是:它是一门工科类专业且对于力学的要求没那么高。对于一个不喜欢物理力学且喜欢挑战新鲜事物的理科生来说它是最优的选择。

  • 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?

        过去两年内我所接触到的课程其实有点不太符合我对这门专业的期待。我有些非本专业的同学都可以制作网页了,而我好像感觉自己什么也没学到,除了简单基础编程以及一些简单的数学,在其他方面并没有实质性的进展。但有老师说,现在学到的理论知识是为了以后更方便的去深入理解而打下基础,那么在听了这番话以后也还算基本满意。

  • 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?

       我觉得软件工程是我所喜欢的领域,相对于发展了很久的基础学科来说,它是一门很新鲜的科学,可以在这个领域创造出很多新的东西,我觉得很有意思。有幸在高三就开始跟着轮子哥逛知乎,看了轮子哥的职业生涯描述,才意识到人与人的差距之大。同样都是从小开始使用学习计算机,它玩出了各种花样,而我还只会简单基础的操作。所以从事实上去看,这并不是我所擅长的领域。

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

       我未来不会选择从事软件开发相关的工作。虽然这是我的兴趣所在,但我不擅长它,,我想我未来会保持一直学习它的状态,就像博客F[1]的作者有提到《李开复自传》上的一个观点“要学会用这个时代的先进技术,那就是计算机互联网技术”。

 

(2)

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

       博客B[2]的作者说自己是传统意义上的计算机科班出身,但却并没有学懂计算机。我很赞同他的说法,虽然我到目前也学习了C、C#、数据结构与算法、数据库、离散数学等专业课程,并且都拿到了个不错的分数,但我仍然不知道我能够做些什么。只是老师推动我我就学,布置作业我就完成,会找很多书看,但很少实操。已经写过的代码量,据我大概估计可能就5k+行。

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

       距离成为一个合格的软件工程专业本科毕业生,在各方面都差得很远,目前我还是不太理解软件工程这门学科,只是很机械的在学习,与刚接触到时感觉相差无几。我思考过觉得这有一个很大的问题是我因为是转专业的学生,没有上过软件工程导论课的原因。所以一直苦恼于如何学习这一学科。而A[3]的作者总结了他追赶别人的过程:1.看书 2.坚持在读书时把一行行代码敲出来并编译通过 3.提前做知识储备 4.贵人指路,事半功倍。我看了以后受益匪浅,觉得对我很有帮助。

 

(3)

  • 对照以上你阅读的前人们的经历,你的选择是什么?
  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
  • 针对你的选择,你给自己的大三设定的规划安排是什么

我会选择继续考研,相比其他同学,我的理论知识学得还不错,但编程能力太差。所以在接下来的学习当中,我会一边继续研读书籍,同时会提高我的编程能力,比如每看完一本书,相应的代码要通过自己的能力动手把它敲出来。

 

[1] http://www.cnblogs.com/Tpf386/p/4798437.html

[2] https://book.douban.com/subject/4006425/discussion/22803961/

[3] https://book.douban.com/subject/4006425/discussion/22803733/

 

三.提有质量的问题

       拿到教材的第一周,我就把这本书翻了个遍。很惭愧的是我甚至提不出来一个问题,因为我根本看不懂里面写了什么。除了第1章 概论、第16章 IT行业的创新、第17章 人,绩效和职业道德,其他我通通一窍不通,只认其字不解其义。等到第二周布置了作业,我再读一遍,希望通过老师给我们上的几节课还有上个小作业的阅读,我能够提的出来问题。

       1.    在第4章两人合作4.5中作者提到了结对编程。我有个疑问,该如何选择结对的人?因为书上所列举的无论是越野赛车的驾驶员和领航员还是驾驶飞机的驾驶和副驾驶,他们都是基本不会变动的,类似于一个指导一个实操,是固定的。但结对编程中是希望两个人轮流来指导与实操,而我查阅了相关资料,并没有找到问题的答案。我个人猜测,如果十分技能点满分的话,如果两个八分的人合作可能有十分的效果,但两个三分的人合作可能只有一分的效果,一个八分和一个三分或许会有五分的效果,但不可能整个组都是八分的人才,那么在一个十人小组一到十分均匀分布的情况下,该如何两两结对编程,才能取得更大效益呢?

       2.    在第5章团队和流程5.2.6中作者提到了特工团队。我对“特工集合”与“团队”两者的区别存疑。我认为“特工”都具有单打独斗的能力,他们大多数是散落在各地各做各的事情,不能把它们当做一个团队来看待。

       3.    在第8章需求分析8.6中作者提到了计划和估计。有句老话说“计划赶不上变化”,比如我就是一个不大喜欢计划的人,因为计划了有其他事打乱了我就会很烦躁。所以任务下来了我都是一边看一边做,到目前为止也没出现过什么问题。所以我想问,计划和估计真的很重要吗?我查阅了相关资料,看到有句话说“凡事预则立,不预则废”,是说明了计划的重要性。我又思考是否任何工作都需要有计划地完成?但又结合我个人实际情况,好像比较小影响的事情,比较个人化的任务,直接做比先计划要方便,而复杂繁重的事件,没有计划就如同无头的苍蝇乱飞。

       4.    在第11章软件设计与实现11.5.3中作者提到了“对下一个导致构建失败的成员,授予‘构建大师’称号”,我对于这种做法的可靠性存疑。在我的经验中,我认为一个人经常导致某件事的失败,他就并不是一个擅长在这件事情上去发现问题的人。

       5.    在第16章IT行业的创新16.1.5中作者说“要成为领域的专家才能创新”是一个迷思。但我却认为这个“迷思”很有趣。我的想法是,不一定非得是领域的专家,但起码你得了解这个领域你才能有创新。如果你对这个领域完全不了解,从未接触过,我认为是无法创新的,因为在你本人看来,这东西应该称为发明了。

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

(1)Microsoft TFS

       优点: 1.不受语言限制

                  2.可与任何GIT客户端结合使用

                  3.供个人或小团队免费使用

      缺点:  1.功能很多但一般会用到的功能很少

(2)Mercuriall

       优点: 1.操作快速

                  2.简单上手

                  3.界面好看

      缺点:  1.分支管理不灵活

                  2.由于基于Python而导致跨平台使用不方面

(3)Apple XCode

       优点: 1.具有统一的用户界面设计

                  2.编译速度快,操作快速轻松

                  3.自动提供撤销、重做和保存功能,无需编写任何编码

       缺点: 1.只能在Mac OS 或ios操作系统上使用

                  2.版本更新后,插件可能会失效

PS.作业四的结论均来自于对百度百科以及网站介绍的总结

posted @ 2019-03-16 14:21  XxxxFR  阅读(355)  评论(1编辑  收藏  举报