第一次作业:自我介绍以及阅读与思考
第一次作业:自我介绍以及阅读与思考
这个作业属于哪个课程 | https://www.cnblogs.com/harry240/p/11469058.html |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/harry240/p/11469058.html |
我在这个课程的目标是 | 1.了解掌握现代软件工程的思想 2.这门课程取得一个好的成绩 |
这个作业在哪个具体方面帮助我实现目标 | 1.让我更加了解自己的优缺点 2.了解到博客园这个学习的好网站 |
1.自我介绍
我叫徐睿,是一名计算机科学与技术专业18级的学生。从小成长并生活在湖北省的小城市,长大后通过高考离开了家乡,来到了西南石油大学计算机科学学院。可能是急于摆脱家庭的束缚,也可能是想证明自己有着独立生活的能力,不远千里来到了成都这个城市。由于从小生活的地方纬度和成都很相似,所以来到成都后,反而并没有像北方的同学那样对于成都的重湿少阳来得不适应,反而觉得气候适应,是一个读书生活的好地方。在这里我遇到了一位好的辅导员,也结交了不少志同道合的有趣的朋友,最重要的我正在学习我最喜欢的专业。
我在高中三年当中,成绩最好的一门不是理科反而是英语。到了大学之后我也没有松懈下来,依旧坚持着学习英语。大一结束后我也如愿以偿地拿到了四六级的高分通过。对于这门学科而言,我认为有意识的记忆和大量的练习对我有着巨大的帮助:在日常生活当中,遇到认识或者是不认识的单词,都会在心里默识,让认识的单词记忆得更加牢固并记住新的单词,遇到英文美句,也会统一写在本子上。而针对四六级考试而谈,我觉得尽早提前有计划的准备是最好的方法,长期的语言练习会让自己的语感增强,而且到了真正面临要考试的时候也不会手足无措。
我觉得在博客园的世界里,学英语的方法也在这里得到了印证。例如在访问其他人的博客当中,可以见识到不少有趣的观点,严谨的专业论证以及程序员对于行业的各种想法。当我看到这些博客后,都会不自觉地默默记下他们的观点。在网上班级里,我们也可以在课程过程当中留下自己的学习记录,到了期末甚至未来,都可以回过头来看看,这个学期我们学习到了什么。
对于《现代软件工程》这门课程,我希望能学习到软件工程的思维和意识,更好地理解在创造软件的这个过程当中,团队协作与个人能力的重要性。
2.对于问题的看法
1)回想一下你初入大学时对你所在专业的畅想
-
当初你是如何做出选择你所在专业的决定的?
从小的对数码产品的关注,再加上这几年IT业的火热,最后自己内心也有着崇高的理想——在互联网世界留下自己的一番作为。因此我选择了我现在所在的专业。
-
你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
在过去的一年里,我接触到了以下几门专业核心课程——《C语言程序设计》《数据结构与算法》《面向对象程序设计》,我认为这几门课程符合我对自己所在专业的期待,但我认为远远不够。作为一名计算机科学与技术的学子而言,应区别与软件工程专业,对硬件方面的课程应该加多加深,到目前为止,对于计算机硬件方面的认知,还仅仅停留在计算机导论课的程度,感觉自己还远远到不到应有的水平。而作为一名计算机科学学院的学生而言,在未来很有可能进入互联网企业工作或者实习,但自身对于网络服务器等专业知识的认知还很表面,无法胜任互联网后端程序猿设计的工作。
-
你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
我觉得我现在所在的专业是我喜欢的领域,一方面计算机科学与技术软硬件兼之,对于未来的发展而言,成为软硬件专业知识兼备的人才是非常难得的,当然当前中国的计算机硬件发展方兴未艾,在未来很有可能会成为很好的发展方向,因此它是我喜欢的领域。当目前为止,计算机科学与技术并不能算是我擅长的领域。擅长,意思是指在某方面有特长;指对某些东西比较了解,做起来比较得心应手。而目前我尚在积累专业知识这个过程当中,终有一天,计算机将是我擅长的领域之一。
-
将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
将来我会选择从事与我专业相关的工作——技术主管。我会比较考虑深圳,成都,上海这三座互联网业发达的城市。
2)对照前人们走过的路和描述未来发展,现在的你
-
自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
我现在具备基本的调试bug,会写简易代码的能力。技能有较强的与人交流,乐于接受新的技术的技能。以及会说英语和日语,能够与外国人交流。已经写过的代码量有5000行。目前我做过的最复杂的项目是学院要求的购物管理系统,在这个项目当中,需要熟练掌握C语言以及数据结构中有关链表等知识,在后期调试工程当中,也需要较强的耐性,不断重复各个模块的功能,以保证每一项功能都能实现。在和老师同学交流的过程当中,也需要较强的语言组织和语言表达能力。
-
离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
在专业知识上还有很长的路要走,包括前期分析和设计、代码书写、后期调试等等。技能方面则是专业领域不突出。能力方面则是团队协作能力还需要进一步加强。
3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
-
对照以上你阅读的前人们的经历,你的选择是什么?
我的选择是在本科毕业之后,继续前往更好的地方学习深造。等到硕士毕业后,参加工作,累计工作经验,选择创业。
-
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
在这种选择下,等到硕士毕业之后,在面对暗流涌动的互联网行业当中,我自然会比一本科毕业就去参加工作的同行们少了三年的工作经验。而最后选择创业,也同样是危机与机会并存,并不会有一个安稳的生活状态。而优势则在研究生的学习过程当中,会比本科阶段更加深刻地理解自己所在的专业。而有一个硕士文凭,在工作选择方面,也能抢占先机,去选择自己喜欢并适合的工作。
-
针对你的选择,你给自己的大三设定的规划安排是什么?
在大二的学习过程当中,我会在专业课程之外,多读书,去学习一些与网络工程和计算机硬件有关的专业知识。给大三设定的规划安排是能够找到机会多多出去实习,让 知识不仅仅停留于课本,而是真真切切地落实到程序设计、硬件设计当中去。
-
你对于实现自己的梦想已经做了或者计划做什么样的准备?
对于学院要求的课程做到课前预习,课后复习并完成作业,好好准备考试,让自己的绩点好看。对于企业要求掌握的知识,则是购买和收集了相关的书籍,通过网络等各种方式来掌握它们。
3.提有质量的问题
1)MBP存在的意义
通过书中对MVP和MBP两种方法的描述,我感觉MVP方法可能就是现已知可行方法的最优做法了,而MBP的方法在我看来耗费了大量的时间精力还无法确定最后的结果是否值得,那么它存在的意义又是什么呢?
2)典型用户?
书上提到:“我们要定义好用户的角色,正如戏剧中有正面和反面的角色,软件系统中也有受欢迎和不受欢迎的典型用户。如果用户有不同的安全需求,切记要定义不同的角色来适应这些需求”。那我们应该如何定义典型用户呢?
3)要成为领域的专家,才能创新?
不一定需要成为领域的转接,才能创新。世界上很多技术的更新换代,并不是张口就来,而是一代一代的技术人员前仆后继,才能使创新延续下去。
4)项目经理
一名IT公司的项目经理到底需不需要有扎实的编程方面的技术?通过网上查阅后,有的说需要,有的也说不需要,那么项目经理到底是重管理还是重技术?
5)好的想法不会赢
在互联网这个优胜劣汰的这个世界里。想法的提出和筛选本来就是一个不断大浪淘沙的过程,好的想法不断涌现,坏的想法不断淘汰。而成功则出自于这些好的想法。好的想法不会赢,什么想法会赢呢?
4.了解和调查源程序版本管理工具
1) Rational
RUP的优点:
\1. RUP是建立在非常优秀的软件工程原则基础上的,例如迭代,需求驱动,基于结构化的过程开发。
\2. RUP提供了几个方法,例如每一次迭代产生一个工作原型,在每一个阶段的结束决定项目是否继续,这些方法提供了对开发过程的非常直观的管理。
\3. rational公司已经并将继续对RUP进行开发,使这个基于html的软件工程能够被裁减以适合你的组织的实际需要。
RUP的缺点:
\1. RUP仅仅包含了开发过程。它没有完全覆盖软件过程,从图1能够明显看出,它丢失了维护和技术支持这两个重要的阶段。
\2. RUP不支持组织内的多项目开发,导致组织内的大范围的重用无法实现。
\3. RUP缺少开发商的支持。你能自动完成软件过程的每一个方面?rational提供了所有的工具供你选择,例如是否有rational help desk或者rational persistence modeling 4. RUP在度量管理,重用管理,人员管理和测试上有缺陷。
总结:RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。
2) SVN
SVN的优点:
\1、 管理方便,逻辑明确,符合一般人思维习惯。
\2、 易于管理,集中式服务器更能保证安全性。
\3、 代码一致性非常高。
\4、 适合开发人数不多的项目开发。
SVN的缺点:
\1、 服务器压力太大,数据库容量暴增。
\2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
\3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
3) Git
Git的优点:
\1、适合分布式开发,强调个体。
\2、公共服务器压力和数据量都不会太大。
\3、速度快、灵活。
\4、任意两个开发者之间可以很容易的解决冲突。
\5、离线工作。
Git的缺点:
\1、学习周期相对而言比较长。
\2、不符合常规思维。
\3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。