• 第一次阅读作业


    作业属于的课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/

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

    我在这个课程的目标:1、其实我最主要的目标就是想弄懂,软件工程到底是干嘛的。之前我一直有一个疑问,就是软件工程和隔壁计算机专业差不多嘛,我见他们也是天天敲代码,都是程序员??   上了几次课我发现,原来是很不一样的。希望通过这门课,为我以后的学习指明方向;2、学习这门课,是专业必修课之一,有着很高的地位,无论是对提高点,还是对自己学习知识,都有着很大的帮助。

    这个作业在哪个具体方面帮助我实现目标:这次作业是阅读作业,通过阅读了优秀的大佬们的博客和教材,使我看见了更大的世界。这个作业同时也是我第一次写博客,让我从此接触了博客和更多优秀的人。

    一.建立博客并介绍自己


    我的博客地址:https://www.cnblogs.com/cherish599/

    自我介绍:

      软工5班的一名同学。就性格而言,我觉得我是不内向也不外向的人吧。一直以来,我觉得自己是一个勤奋好学,善于总结,责任心强,善于助人的人 。平日里,我喜欢看一些电影,听听音乐,有时间去和室友们打球。也说一下我的最大缺点,我觉得我做事很容易急于求成,就比如编程一样,总是希望能够拿出作品,看到结果。我觉得这是一个很不好的习惯,现在我也在天天暗示自己,静下心来,量变决定质变。我的座右铭是:既然选择了远方,便只顾风雨兼程。

    二.阅读与思考

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

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

      还记得高考出成绩的那一刻,看到了自己的成绩单,真的觉得是万分的不理想。当天晚上我一晚上都没有合眼,心里一直放不下自己心中的大学梦,想想以后自己的出路。后来来了石油大学读书,当时被理学院的电子信息科学与技术专业录取了。因为是理学院,我当时想的是不想学一些太偏向于数学的专业,况且理学院我了解的在我们学校不是很强,于是就有了转专业的想法。因此,经过我们学校各个专业的综合比较,我来到了软件工程。因为一方面,我很关注每个专业毕业的就业问题,毕竟学习还是为了更好地就业。软件工程的薪资大大的吸引了我。说实话,当时的我并不是特别了解IT行业,也并不是怀揣着兴趣来的,而是怀揣着对未来的向往。其实现在想想自己当时是很不对的,我现在觉得一个人以后要是可以从事自己喜欢的事业,无论薪资怎么样,但他至少是开心的。

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

      其实大学前两年,我个人觉得如果单单是依靠学校开设的课程,离成为大佬还是有很长的距离的。因为大一大二期间,学的基础课程要多一些。我也读了老师发的大佬们的博客,我见大佬们的成功,并不是因为他们上学期间的课学的多少,很多东西都是自学的。刚来到这里,我还记忆犹新,当时老师上课我根本跟不上节奏。就拿大一下学期的《数据结构》来说,我真的觉得当时是我的噩梦。因为数据结构是需要至少有点C语言的基础的。我到现在都特别后悔,自己大一的寒假没有好好利用,至少应该把C语言的基础补了呀,但我并没有这样做。所以那段时间,我只有数据结构和C语言一起来学。现在反思一下自己,真的已经浪费了大把的时光了。并且我越来越觉得,大学的这种生活并不是我想要的。本以为转专业之后能够好好学习编程的。但是到现在为止,我觉得自己是在软件工程这个专业是有点失败的。一直以来,我心里都急于求成,想早点见到成效。

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

      说句心里话,我一直觉得,软件工程并不是的喜欢的领域。擅长二字我觉得就更谈不起了。因为当初转专业,我并没有考虑自己的兴趣就来到了这里。一直以来,我觉得我更偏向于喜欢偏向于文艺方面点的学科。在这个专业以来,我一直觉得我学编程的节奏特别慢。我觉得我在编程上花费的时间,可能要有正常人的两倍时间,可能比起大佬们,我会花费三倍甚至更多时间都有可能。我虽然花费的时间长,但我也并没有取得很好的成就,可能还不及他们学的精。这可能真的让我觉得,我的付出和收获不是很成正比。还记得当时学习数据结构的时候,数据结构这本书基本上每天都会在我的书包中。我差不多一有时间就会看看,可是我能觉得越学越容易弄混。就拿最后的排序那一点来讲,我到最后快要考试的前两天才真正理解了快速排序。每次上机实验的作业,我觉得我每次做出来的时间都很紧张。虽然到最后考试考了九十来分,但是我觉得自己学的根本就没有真正学到数据结构的精髓,到真正使用的时候,还是不太会。而且学完之后真的特别容易忘,我觉得记这些东西比记英语单词还要忘得快。

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

      我觉得如果没有太大变故的话,我还是想从事软件开发的工作。正如我之前所说,既然选择了远方,便只顾风雨兼程。即便我对软件开发并没有特别强烈的兴趣,但是我觉得我还是要理性的工作。教材《构建之法》第47页提到很多人认为自己需要灵感和激情,才能为宏大的目标而奋斗,才能成为专业人士。著名艺术家 Chuck Close 说:我觉得灵感是属于业余爱好者的。我们职业人士只是每天持续的工作。今天你继续昨天的工作,明天你继续今天的工作,最终你会有所成就。我也相信,坚持下去,最终会达到自己想要的人生状态。我想去珠江三角洲地和长江三角洲地区工作。大一点的IT公司,岗位的话,我以后想从事人工智能或者大数据方向。

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

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

      我现在具备的专业知识有C语言,C#和Python,数据结构,数据库原理和操作等。但我觉得这些东西学的还都是真的是皮毛,除此之外,我还会一点PS的有关知识。已经写过的代码量,个人感觉也应该够上万行吧,但真正有效的代码我觉得要少一点。

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

      我觉得离成为一个合格的软件工程的本科毕业生,在专业知识上自己掌握的量还是少之又少,并且还是很不熟练的。我觉得我现在的状态就是老师上课时讲的第一个医生,刚刚在书上看到病人的病例,开刀的过程中非常严谨,时不时还要停下来翻书看看。要是真正自己做一个项目出来,自己还差的很远。

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

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

      是啊,转眼间已经快要迈入大三了,又是面临着人生的重大选择,就像当初高考一样。高考留给我的遗憾是我一生都难以忘记的。在高考结束后到现在的日子里,我一共做了六次关于在高考考场的清醒,而且梦的都是一个含义,就是高考失败了。不是梦见高考考砸了,就是梦见自己高考迟到了,进不去考场。一次又一次的从梦中惊醒,让我每天都对自己说,你不能就这样放弃了,上了大学,你照样有机会,也可以翻身。所以,我现在的决定是我要考研!!!一方面是为了圆自己高考当年的大学梦,另一方面,现在的局势让我认清,本科学历真的是越来越不值钱了。可能这时候会有人喷我,像马云,俞敏洪等一些知名的企业家,在演讲的时候经常会说,学历不重要。可是他们官网的招聘信息依然是要求本科以上学历。“学历不重要。能力才重要”这句话本来就是一个伪命题。学历和能力是相辅相成,互相成就的一种关系。

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

      在我看来,我觉得我在复习考研的过程中,我的优势是之前学过的每一门科目我都会认真去学,而且大一期间就过了四六级,英语基础相对好一点点,并且之前在理学院高数和线性代数等都学的很认真。我可以有很多的时间去复习专业课之类的。劣势是我以这一来都有一点急于求成,耐不下心。我想我高考失败的很大一部分原因就是这个吧。但是我想,我已经有了前车之鉴,吃一堑长一智,只要我能够坚持下去,还是很有成功的希望的。

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

      从现在大二下学期到大三上学期,我觉得还是以专业知识为主。不断提升自己的编程能力和对计算机的有关知识。要给自己每天制定相应的目标。比如说至少保证每天要有100行有效的代码。除此之外,对于专业课的非编程的基础知识,自己也要用心去学,因为只有把这些都学会了,并且学精了,才能保证我以后成为一名合格的软件工程师。然后大三下学期,我觉得这时候的学习重心就要发生一点变化。将更多的精力放在考研备考,但是编程这一块也不能拉下了,隔一段时间,就会手生,这个我是有切身体会的。

     三.提有质量的问题

      1、书中第二章的2.4 p38 ,作者介绍了两个软件设计原则。其中一个原则是开放-封闭原则:软件实体应该是可以扩展的,同时是不可修改的。当时我读这句话的时候总觉得很矛盾,开放-封闭原则,到底怎么样是开放,怎么样才又是封闭。看了半天书,自己还是没有搞懂。后来上网一搜,原来很多人都和我有着同样的疑惑。我觉得这个解释最令我满意:https://www.cnblogs.com/feichengwulai/articles/3613037.html  后来我觉得其核心的思想是:软件实体对扩展是开放的,而对修改是封闭的。

      2、书中第二章的2.4 ,作者多次提到 API 这一概念,我甚至读不懂API是干嘛的。下面的解释来自百度百科:http://baike.baidu.com/link?url=SRyhfhGcHOL9yNd2pHBTuQ2uCq9PlJCv14QRDYH5paf13ee_elnTF4Ohh6P7ZjGbUCQMU0GQbEGyeKU8JhWyU_  不过我觉得我读完之后还是觉得对于现在的我很陌生。我想等之后自己学的深一点之后再对其进行研究。

      3、在第四章的4.4.2 代码复审的步骤,作者提到,在复审前,代码必须成功的编译,在所有要求的平台上,同时要编译Debug| Retail版本。编译要用团队规定的最严格的的编译警告等级。我对编译的Debug| Retail版本不是很了解,为什么在所有的平台上都要编译Debug| Retail版本? https://blogs.msdn.microsoft.com/brada/2004/02/29/debug-and-retail-builds/ 在微软上,强调正在研究的项目中发现了许多错误,只需在已检查的版本上运行它们,或者将已检查版本的系统dll复制到零售版本中。

      4、第十六章16.1.3 作者提到了好的想法会赢,但作者又提到了QWERTY布局的键盘,和很多人认为更有效率的Dvorak键盘。虽说Dvorak键盘的想法很好,但是却没有赢,现在流行的还一直都是QWERTY布局的键盘。作者特意提到,是因为长期以来,人们习惯了QWERTY布局的键盘的原因,所谓先入为主。但我觉得可能并不是人们长期习惯的影响。真正好的东西,足够好是完全可以改变人类的生活习惯的。尽管可能会有一点不兼容,我们还是要大力创新。Dvorak键盘的失败也有可能是因为推广力度不够等其他原因造成的呢。  

      5、第十四章中14.2 软件的质量保障工作,但是作者介绍的都是一些和测试角色有关的问题。并且说了软件的质量保障(QA)和软件测试(Test)是不同的。我想知道软件质量的保障工作仅和测试角色有关系吗?软件的质量的保障工作究竟都有哪些?以下内容来自百度百科:https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F%E4%BF%9D%E8%AF%81/3543776?fr=aladdin

     

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

    1、GIT(分布式版本控制系统)

     以下内容来自百度百科

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

     

     

     

     

     

     

     

     

     

     

    2、Github (GitHub是目前世界上最先进的分布式版本控制系统)

    https://blog.csdn.net/weixin_40783315/article/details/84981875 有更详细的的介绍

    优点 缺点
    速度快, 成熟的架构,开发灵活 资料少,学习成本比较大,学习周期比较长,要求人员素质比较高
    离线工作,管理代码成本低,不需要依赖服务器 代码保密性差
    良好的分支机制,可以让主干代码保持干净 不支持中文,图形界面支持差,使用难度大。不易推广
    Git对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理 不符合常规思维

     

     

     

     

      

      

     

     

     

     

    3、BitBucket

    优点                    缺点                      
    对于小团队免费,最适合小型开发团队 不开源
    一个集成的查询管理系统 系统不稳定

    集成Jira工具。BitBucket和Jira在整个开发阶段都做了整合,

     

    支持Git,CodePlex,Google Code,HG,SourceForge,SVN导入

     

     

      

      

      

  • 相关阅读:
    编写ocx出现未能注册输出。请确保您有修改注册表的相应权
    电子商务网站交互设计
    浅析Spring AOP
    ubuntu aptget
    URL对SEO的影响
    向各大搜索引擎提交你的网站
    站长SEO常用查询工具
    ubuntu关机重启命令
    vi中:x和:wq的区别
    RPM/AlienHowto
  • 原文地址:https://www.cnblogs.com/cherish599/p/10548024.html
Copyright © 2020-2023  润新知