课程属性
所属课程 | <课程的链接> |
---|---|
作业要求 | <要求的链接> |
课程目标 | 深入了解软件工程,多方面学习 |
作业目标 | 学习博客使用,培养自学能力 |
一、自我介绍
我是李雅杰,或许我比别人多花了一年时间踏入大学的大门,也正因为这一年,我学会了很多,它教会了我诚恳,坚持,包容,自信,乐观,也让我结识了一群可爱的朋友,一群有梦想的年轻人,大家所看到的我的内在就像我的外表一样,敦厚和实在是我对自己最好的概括。我待人诚实,从没有花言巧语,但真诚和厚道使我总能赢得朋友的信赖。 “将来的你一定会感谢现在努力的你”很喜欢这句话,它陪伴了我很久,也送给大家。
二、阅读与思考
(1)回想一下你初入大学时对你所在专业的畅想
a)当初你是如何做出选择你所在专业的决定的?
我是半路转到计算机这个专业的,其实如果在上学期问我,为什么要转专业,又为什么要转到计算机科学与技术这个专业,我可能根本不知道怎么回答。大一的时候很迷茫,不知道未来的方向,也不知道未来我想从事什么职业,迷迷糊糊地跟着主流来到计算机专业,成为“程序猿”的一员。
b)你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
经过了大一的迷茫,大一与大二之间的暑假,我有意识地去主动了解与计算机有关的知识,直到现在,我才慢慢喜欢上编程,万事开头难,深入了解了这个专业才发现它的有趣性,可以通过一串串代码敲出一个个有用的程序,看着很有成就感。 上学期所接触的C语言和数据结构的课程,可以说是带领我进入了编程的世界,它们为我们学习编程打下了坚实的基础,很符合我对自己的专业的期待。
c)你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
就目前我对编程的兴趣,我很喜欢现在的计算机科学与技术,虽然到现在我对编程还不是很熟练,但是我从不畏惧学习路上暂时的荆棘,我或许没有这方面的天赋,但我有时间,我可以比别人多花一倍时间来弥补不足,相信终有一天,我可以非常熟练掌握各方面知识,让它成为我的擅长的技能。
d)将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
我将来会选择从事与我的专业相关的工作,成都是一个你来了就不想走的美丽城市,我希望可以留在成都,在选择具体的公司方面,还没有了解过,当然,希望是实力比较雄厚的公司,岗位的话,软件工程师是一个比较好的方向。
(2)对照前人们走过的路和描述未来发展,现在的你
a)自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
自我感觉我已经基本掌握了初步编程,比较熟练掌握C语言编程,C++目前正在学习中,也已经get到自学的能力,大学就是培养独立、自学的能力,为我们走向社会打好基础。已经写好的代码量应该过千了,但是还没有上万,争取在今后的学习中,能够早日破万。目前我觉得做过的作业中最难的是上学期要求的编程设计一个小游戏,我做的是俄罗斯方块,起初我想加个背景音乐和换个好看的背景,奈何掌握的技能不够,都没实现,我觉得难在我们是初次练习,俗话说熟能生巧,我相信我们下次设计游戏时就会比第一次轻松很多。
b)离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
截止上学期,我们才初步接触了两门专业课,距离成为一个合格的本科毕业生还查了很大一截,比如敲代码的速度都还没有练上来,目前也还没有接触项目的开发,总之,现在还差很多。
(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
a)对照以上你阅读的前人们的经历,你的选择是什么?
我目前的打算是,本科毕业后,进行进一步的学习,即考研,毕竟本科的学习只是学习了初步的知识,我觉得想要更熟练的掌握相关技能,还需要进一步深入学习。
b)在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
考研相比其他同学来说可以深入学习专业知识,但是对于本科毕业就进入工作阶段的同学,他们可以更早地进行实践,累积经验,毕竟实践是检验真理的唯一途径。
c)针对你的选择,你给自己的大三设定的规划安排是什么?
我在大三阶段,在完成课程的同时,多学习各方面知识,全面进行考研备战,争取一次考上。
d)你对于实现自己的梦想已经做了或者计划做什么样的准备?
目前来说,为专业知识打好坚实的基础非常重要,在学有余力的同时,可以多参加一些竞赛,为理论知识提供实践的机会,当然,英语这门学科也不能落下。
三、提有质量的问题
(1)在80页中,我看到了“牛仔式编程”,以前从没听说过。我查了资料,牛仔式编程指的是不符合正常编程逻辑和正常编程规范,也可以叫做非常规编程 ,它的优点是可以在特定的时候,减少代码,提高效率,但是这个需要扎实的专业知识和丰富的经验,当然,也有缺点是可读性很差,在代码复查时给程序员带来了很大的麻烦。
(2)在第五章的团队与流程的学习中,有“团队精神”和“集体主义”,我觉得它们的主要意思都是某个集体同时协作完成某项任务,它们有什么区别呢?
(3)在128页的MSF的9条基本原则中,如何让一个团队一下子全部接受是值得考虑的问题,若是充分授权和信任,团队中也许就会敷衍了事,此时,需要激励机制还是团队成员的个人自觉呢?
(4)在第八章的需求分析中,书中谈到用户提出了需求,进一步让项目有了市场,但是,用户的需求五花八门并且在项目开发过程中对需求也会产生改变,那么团队应该怎么做,才能比较成功地完成项目任务?
(5)在16章的IT行业的创新中,谈到“灵光一闪现,伟大的创新就紧随其后”,灵感是创作的源泉,那么在学习中怎么培养灵感呢?
四、了解和调查源程序版本管理工具
(1)Git
优点:适合分布式开发,强调个体;公共服务器压力和数据量都不会太大;速度快、灵活;离线工作;任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:资料少(起码中文资料很少);学习周期相对而言比较长;不符合常规思维;代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息;公共服务器压力和数据量都不会太大;模式上比SVN更加复杂。
(2)Rational
优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。它简历了简洁和清晰的过程结构,为开发过程提供较大的通用性。
缺点:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。
(3)Trac
优点:有良好的扩充性;比较完备的设计;非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。
缺点:不支持多项目;需求和缺陷没有分离;中文化不完整,美术人员接触起来困难重重;不显示中文名,本地化做得很差, 核心功能很少,不安装插件基本上没法用。