软件工程热身作业
项目 | 内容 |
---|---|
本作业属于北航软件工程课程 | 2020春季计算机学院软件工程(罗杰 任建) |
本作业的要求请点击链接查看 | 2020BUAA软件工程热身阅读作业 |
我在这个课程的目标 | 提高自身的代码能力、学习团队协作开发的过程 |
本作业帮助我实现目标的具体方面 | 了解软件工程中需要的技术、思考自身的职业生涯规划 |
作业正文 | 见下文 |
其他参考 | 博客1 博客2 博客3 博客4 |
第一部分:结缘计算机
问:你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
我选择计算机专业大体上还是盲从的心理。在上大学之前,从初中到高中,我对于理科学习的态度一直都是:也不是不能学下去,也不是毫无兴趣,如果努力之后都能学好,既然理工科比文史科有更好的发展前景,那不如就选择理工科吧。就这样,初中时期沉迷于文学历史并认为将来绝不可能选理科的我在高中时很自然地跟着大多数人选择了理科。在高考结束后又坚决地否决了所有的非理工类学科。本着不能浪费高考成绩的态度,我需要在同济和北航之间作出选择。因为地域因素,家长更偏好同样属于北方的北京,再加上同济招生办的老师认为我的成绩无法进入最顶尖的几个专业,我便选择了北航信息大类。在大一结束后专业分流时,一方面是因为身边成绩差不多的同学都认为计算机专业更好,一方面也是因为听说计算机学院的课程设置非常“硬核”,我认为这样有利于挑战自己,学到更多的知识,所以我最终选择了计算机专业。
我认为我在计算机的学习上是一个资质比较平庸的学生。首先,我的理科思维、数学能力一直都不算太好。中学时期的理科学习只是在极其有限的知识范围内不断重复,只要重复的够多,也能获得差不多的成绩。但我清楚地知道我和别人在思维和能力上的差距。大学中的数学课也大多靠死记硬背刷题通过,往往只能得到一个不好也不坏的成绩。
和这些博主相比,我想我的差距首先在于接触计算机的时间,我在大学之前对计算机的认识仅限于使用,从未接触过编程方面的知识;其次在于钻研的兴趣,对于相关的知识,我并非全无兴趣去了解,但经常在碰了一次钉子、遇到不理解的知识或解决不了的问题以后就停滞不前了。博客1的博主从初中就开始研究电脑,并有了为电脑学好英文的目标;高中时尽管学业繁重还是能花费相当多的时间去学习编程;大学时即便选择了英语专业,依旧能够坚持自己对电脑的热情。他不仅接触计算机的时间很早,而且有坚持不懈的精神。
问:计算机是你喜欢的领域吗?是你擅长的领域吗?
计算机学科是我喜欢的领域,但是我觉得我还谈不上真正的热爱。我认为任何学科都有其迷人之处,我对很多学科都抱有求知的热情。在计算机学科上,我喜欢按照自己的想法有序地搭建起一个结构并能够顺利运行的感觉,我喜欢那些巧妙简洁的算法的美感,我也为历史上那些从技术理论到改变生活的应用惊叹。我认为,计算机并不是我擅长的领域。我投入的精力与时间还不够多,我接受学习新知识的速度相对较慢。
第二部分:在计算机系里学习
问:你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
对我的大学生活,我最想吐槽的就是“学到新知识”的理想与现实中有限的时间和有限的学习能力之间的矛盾。这样的矛盾在操作系统课程设计中体现得最为明显。完成课程设计肯定是要建立在理解原理的基础上,可是为了在有限的时间内完成任务,往往等不及理解原理就拿着现有的代码囫囵吞枣。大块的debug时间投入在无意义的比对中。计算机学院的各门以硬核著称的核心专业课都在进行改革,显然,现今并非是最好的面貌。
我理想的大学教育,在专业技能方面,应当培养学生扎实的基础学科功底和一定的与工业或科研接轨的应用能力;在个人素质方面,应当培养学生交流、组织、团队协作等种种社会能力。我认为学校在这些方面都给予了学生一定的支持,但我往往不能很好地应用、与设想的效果相去甚远。譬如,许多课程设置其实“干货满满”,但往往应付了事,完成课程的底线要求后就不再付出精力。数学基础课只顾作业和期末刷题,掌握并不牢固;一般专业课只顾最终的大作业或是期末突击,课堂听讲敷衍了事。要想真正学到东西、培养编程能力,还是要靠“硬核”的几门核心专业课,特别是课程设计。学校的确给了我们很多东西,但是标准却松紧不一,那就一定会把大部分的时间投入到收益最大、要求最紧的课程上。记得在上学期,我为了找出编译器中的一个bug,几乎有一周的时间没有学任何其他的东西。不能说这样debug的意义不大,但是显然用这些时间能完成很多其他收益更大的东西。
在各种专业课课程设计的教学方式上,通过阅读博客2,和老师们对各门课程逐年发展完善的介绍,看得出来老师和学院已经在努力向国外优秀的大学学习和靠拢了。
问:迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
我没有具体统计过我写过代码的总数量,大体来说就是和大多数同学一样在计组、面向对象、编译原理等课程设计上所写的大作业,再加上在一般专业课的大作业和冯如杯中写的代码。
我做过最复杂的软件作业可能就是上学期的编译器了,共有大约3000多行,但是代码质量并不高,而且就概念来说它并不能被称为是一个真正的“软件”。
第三部分:未来规划
问:对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你的技术道路,职业道路和社会道路?
其实我目前只是按部就班、走一步看一步,各种IT行业的领域在我看来都可以作为未来的工作方向。无论是近年大火的人工智能还是软件工程师,都可以在接触之后再下定论。因为考虑到希望在学术上更进一步,我目前的规划是国内读研,再之后的职业道路还没有确定下来。
博客3的博主如此写道:
从第一次面试,到选定工作Offer,前后只有短短四个多月的时间。但是为了得到自己喜欢的工作,我从确立兴趣方向、进行各种准备到应对面试、最后选择职业发展道路,付出的时间和精力比这要多出许多。
确立求职目标:IT业的产品经理和管理咨询业的分析师
整个求职过程中,我一共只投了十家公司:谷歌(产品经理)、微软(项目经理)和百度(工程师),六家管理咨询公司及中国移动(产品设计岗)。在年后才拿到最终Offer的同学中,这算是非常少了,主要原因是我在求职季节到来之前就立下了明确的求职目标,即IT业的产品经理和管理咨询业的分析师,并且针对这个目标进行了充分准备。
他的经历给了我很大的启发。求职规划和生涯规划一定要尽量细致、可行,这样才能把力聚至一处,才能更有可能获得达到目标。当然,这是决定求职之后再做的工作。我目前还处于学习完善自己的阶段,博客4的博主给了我更大的启发。
即便这样,如果纯按照现在需要的知识看,我在“没用”的东西上浪费的时间还是很多。不过我倒不愿意称这些为浪费,在我看来,成长路径中有很多的偶然,没人知道在一些关键时候需要什么样的知识储备,所以踏实地多储备一些是好事。我在大四的经历和其他的一些经历都告诉我,以前通过看书、自学,彻底地弄懂的一样知识,会在某个不经意的时候,突然被用到。这时候对当年积累的庆幸和再发现的快乐,就像蓦然回首见到灯火阑珊处的秋水伊人一样,是没法用文字描绘的。
多读书,扎实地学习知识,少去考虑一些将来“是否有用”的问题,也许才更能从学习这件事中收获快乐吧。
问:你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
我将来希望在本校读研,因此还是希望能够在实验室实习、积累更多的科研经验。