软件工程第零次作业

第一部分:结缘计算机

在进入大学之前,我的生活和计算机似乎没有太大的关联。要说和计算机有关的生活,也就是打游戏了吧。因此在高考填报志愿之前,我从来没有想过会去学习计算机。后来选择计算机,仅仅是听说这个专业很火,很多人学。

大一上学期的计算机基础操作,学了一点点Python。第一个程序是print(‘hello, world’),运行后在屏幕上看到hello, world一行字十分激动。这是我写的第一个程序。再到后来,老师讲了变量,表达式,函数以及Python的面向对象。当然那时候的我是不能理解面向对象的。

但后来我渐渐发现,我周围的同学并不都是和我一样对计算机和编程一脸懵逼。他们进入大学前有了很强的编程能力,博客I[1]也是这么说的:“我把所有课余时间都放到学习电脑和编程中了。很少玩游戏,而且比较少参与课外活动,周末和假期都把所有时间都投入到学习编程中。高中,学习的确繁重,但我仍然把相当多的学习时间都放到学习编程中。”这让我意识到,原来一开始我就落后了别人那么多,不努力追赶,就会掉队。

1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)

  当初选择计算机专业的时候,只知道这门课是敲代码的,学完就可以做游戏做软件。因为不曾接触过计算机编程,也不了解专业的内容,所以在开始学习这个专业之前,谈不上喜欢这个专业。

  到了大学和同学比较,发现我的条件并不怎么样。一切从零开始。我在读博客时发现很多很厉害的人在初中高中就接触了计算机和编程,这一点我是比不上的。但了解了这个专业之后,我喜欢上了计算机,我也相信这份热爱能帮助我更加努力的学习。

2. 计算机是你喜欢的领域吗?是你擅长的领域吗?

  学习了两年计算机,确定了计算机的确是我喜欢的领域。我很享受自己写的程序正常运行时的成就感。一个程序能快速且精确地处理输入,然后把结果输出出来,我认为这是十分神奇的,即使十分清楚它的内部逻辑是怎样的。我还记得在不了解递归时看到了汉诺塔问题。网上的简洁的递归程序让我十分着迷,即使了解了函数调用,但我从来没有想到过函数里面还能调用自己。这些以及其他一些神奇又精炼的算法和表达式让我喜欢上了计算机和编程。

  计算机专业是不是我擅长的领域,这个问题很难说。至少作为一个理科生,可以自信的讲解决理科的题目是我擅长的领域。而计算机编程也能表述为一个个数学题,所以我想我应该也是擅长的吧。

3. 你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?

  我认为我是热爱这一专业的。中学时代,做语文英语的题目总是让我昏昏欲睡,而面对数理化时却从来不会这样。因为我当时是热爱数理化的。到了大学,敲代码时我总是很亢奋,有时候过了睡觉的时间都浑然不觉。所以我想我是热爱计算机的。

第二部分:在计算机系里学习

现在我也已经在计算机系里面学习了两年了,学过了数据结构,学过了计算机组成,学过了面向对象和操作系统,以及一系列的数学课程。让我真正入门编程并快速提升编程能力的就是大一下学期的数据结构。首先是快速掌握C语言的基本语法,以及指针操作。然后讲了链表,树和图。课上讲的都是照搬书上的内容,讲完一遍感觉还不是自己的东西。真正帮助我的是课后针对性的编程题。每道题都紧扣课上的基础内容,需要自己实现各种数据结构。同时又有难度上的提升。这对于当时的我来说很有挑战性。完成了这些编程题目之后,才算是真正理解了这些数据结构的内涵。博客B[2]中也提到了类似的经验:

我们的授课老师,却只讲最简单的概念和不深的理论描述,给我的感觉就是,“数据结构”几乎是门和“离散数学”差不多的数学课——他用最肤浅的知识,“成功地”告诉了我们“数据结构”是门几乎不用动手写程序的课程,只用上课听听就好了。于是乎,一门需要动手实践、将会极大地提高我们编程素养和思维能力的课程,就被我们这样迷迷糊糊上完了。

2005年准备研究生考试的时候,我旁听了朱仲涛老师的“数据结构”课,当时的感觉只能用两个字来形容:震撼。在他的课上,我对数据结构有了全新的认识,对计算机也有了一点与以往不同的了解。他的讲课风格非常独特,他只用1/5的时间简述一下要讲的内容,剩下的时间都是当场写程序。

在读了大神的博客之后,发现他们在本科学习阶段做的最多的一件事就是看书,并且自己敲书上的每一行代码,然后运行。这是我没有做到过的。本科学习是积累的过程,要看很多书,要深入的看书,包括每一块代码和每一章末尾的习题。只有拥有异于常人的精力和对计算机的热情才能真正学好这门课。

大二上的计算机组成原理一方面让我们了解了计算机中最底层的运行原理,另一方面,我们通过数周的编程,修改和重构,完成了真正意义上的完整的项目。当完成编码后看到输入的一条条汇编指令得到结果的时候,这种成就感是十分醉人的。

大二下学期的面向对象课程让我们初步感受到什么是结构化和模块化编程。你写代码不仅仅为了完成当前需求,还需要考虑到需求的更新和补充,以及其他人能够快速的读懂你代码的逻辑。因此面向对象的三个精髓:继承,多态,封装变得尤为重要。

1. 你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答)

2. 迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。(必答)

到现在为止,我大概写了近万行代码。我认为最复杂的软件项目是MIPS流水线CPU。这个作业大概有上千行代码,直到P7时,能支持二、三十条指令,以及中断处理。这项作业的难度逐步提升,完成P5以后,原来的一部分代码由于逻辑结构不够清晰,已经很难再扩充功能支持更多的指令,因此我在P6时将大部分代码重构。重构之后的代码在扩充功能时变得十分清晰而简单。P7增加中断处理时也并没有那么困难。

第三部分:未来规划

有时候的确也会去想一想以后走怎样的路。博客L[3]中也这样写道:“如果你对技术的热情一般,也没有太多的自我价值的追求,也不想拼搏,而且对吃大锅饭不反感,对没有激情的工作不反感的话,那么,你应该去事业单位,当个公务员,走走常规则的人生,养养老也不错。这里,我多说一句,根据中国的现在国情来看,如果你有自我价值的诉求,你要去大城市,去好的公司,走体制外的路线,如果你又不想来大城市 ,只想呆在地方的话,那么,我个人非常建议你走体制内的路线,在地方,只有体制内的路线是最好的。”一方面我希望将来的工作富有挑战,另一方面,生活在大城市里对无依无靠的毕业生来说是很困难的。而最终要走哪一条路,只有自己经历过才能知道。阅读过博客A之后我也意识到了面试时技巧的重要性,同时本科期间多看书多做题是有助于面试的。

1. 对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)

在未来,我希望能从事和前沿技术密切相关并且投入实际应用的工作。进入社会投入到工作中时,应该抱着提升自己的态度,多学习多积累,这将是未来自我发展的基础和本钱。

[1] http://www.cnblogs.com/unruledboy/p/DevCareer.html

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

[3] http://coolshell.cn/articles/4561.html

时间: 2024-10-17 17:27:47

软件工程第零次作业的相关文章

软件工程管理——第一次作业

这是软件工程管理课第一次作业,也是我的第一篇随笔. 这篇随笔分为四个部分:1.自我介绍. 2.对这门课的期待. 3.第一周工作统计. 4.第一个小项目(词频统计与四则运算选其一). 一.自我介绍        我叫夏一鸣,是东北师范大学计算机科学与信息技术学院,计算机应用技术专业的研一学生.本科也是东北师大的,专业是计算机科学与技术.我来自湖北咸宁,是一个南方小伙,为人还算随和乐观,希望老师和同学们多多关照. 二.对这门课的期待        我想,大家之所以选了这门课,当然初衷都应该是想学到一

软件工程个人阅读作业

这是软件工程的最后一次个人作业了吧,大概.首先我对本学期软件工程的大作业做一下总结.我们小组选择了制作mooc端的应用.在两个开发周期中,我负责的模块都是应用的UI.但是不得不说在分配任务的时候我们小组存在一些bug.我是按照小组发布的工作安排进行学习和编写代码的.但是在后续过程中其他人和我说他看的也是UI部分.还好这个问题还是很好的解决了.第一阶段我们小组的主要问题是在联网方面一直没有调通,同时服务器端没有任何开发文档,这个我们的开发造成了很大的困扰.就我个人来说,在这一阶段这些问题对于我的影

软件工程第一周作业 - 导航

本周作业内容链接 软件工程第一周作业 - 关于计算机.职业生涯 http://www.cnblogs.com/vector121/p/7496387.html

个人作业——软件工程实践总结作业

一.回望暑假,展望未来 1)参加软工实践之前,我可能只是在C++方面,有能力完成一些编程题目:在参与课程的过程中,我主要拓展了Android开发方面的知识.不足方面,我认为在合理安排时间方面十分欠缺,几乎每次要交的内容,都是在截止日期前不久奋力完成. 2) 1.我在这门软件工程实践中,完成了1200行代码左右. 2.软件工程各次作业消耗时间 作业名称 时间 软件工程实践2017第一次作业 2小时 软件工程实践2017第二次作业 3天 结队项目--第一次作业 2-3天 团队第一次作业--团队展示

软件工程 第二周作业

##软件工程第二周作业 提出问题 1. 一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢? 2. 关于5.3.5 老板驱动的流程,这种开发流程模式存在着一些问题,那要如何解决这些问题呢? 这种模式当然也有它的问题. 领导对许多技术细节是外行. 领导未必懂得软件项目的管理,领导的权威影响了自由的交流和创造. 领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队. 领导的精力有限,领

【附加作业】沈航软件工程期末附加作业

附加作业回答以下几个问题: 你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可:                                                                                           回答:本人并不是那种鸡蛋里挑骨头的人,第一次上本门课程,感觉特别有兴趣,幸运的是能够碰到这么负责的老师和助教,但是还是存在一些小问题我简单的提一下:感觉上课的时候还是有一些死板,有时候老师在上面讲课,学生

附加题(二)——沈航软件工程期末附加作业

附加作业回答以下几个问题: 你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可:                                                                                           回答:我对这次软件工程课程的改革十分认同.因为听上一届的学姐学长们说,软件工程课程极其无聊,就是上课老师自己在上面念PPT,同学们在下面昏昏欲睡,考试之前老师给大家划一下重点,然后背一背就过了,根本无法学

软件工程个人阅读作业2

转眼到了第九周,软工也过半了,老师要求阅读文章并根据自身体会写一下阅读感受,我只读了前三篇,以下是文章大意和个人的一些体会. 文章一: No Silver Bullet: Essence and Accidents of Software Engineering 文章大意:软件工程发展到现在遇到了很多问题:复杂性.整合性.易变性和不可视性这几点是软件工程开发所面临的本质问题.为了解决这些问题,人们使用了很多方法:高级语言.分时系统和统一编程环境,然而这些都没办法解决本质问题,只是从一些程度上减少

软件工程——第二次作业(2)

施工中-- 作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 项目要求是编写出一个拥有"词频统计"功能的小程序,作为一个小程序,若只是实现基本的词频统计功能,其实并不是很难.但是,如果再附加一些需求和功能的话就会让我感到有点难度了,更何况为了以后课程的要求,我选择使用Visual Studio 2015编译器和C#语言这两种从未学过的工具,在4-5天之内共10个小时左右(预计,但是实际上确实是花了更多时间