软工热身作业
项目 | 内容 |
---|---|
这个作业属于那个课程 | 2020春季计算机许愿软件工程(罗杰、任健) |
这个作业的要求在哪里 | 第1次个人作业 |
我在这个课程的目标是 | 创造“足够好”的软件 |
这个作业在哪个具体方面帮助我实现目标 | 帮助我总结自己的经验和不足并明确对未来的规划 |
结缘计算机
你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
对于我来说,在进入计算机专业之前,进行了两次选择,第一次是选择进入北航的信息类工科试验班,第二次则是在大二分专业的时候选择进入计算机专业进行学习。
在我高考那年,计算机领域发生了一件非常出圈的大事,就是AlphaGo的出现。在此之前,我仅仅是听说过“人工智能”这些概念,并不清楚它究竟能够做什么。所以,当我听说AI打败了世界一流高手,而且是在我一直觉得特别复杂的围棋这方面时,我是很震撼的。而且当时突然兴起的VR、AR等技术,让我觉得以前只有在影片中才能看到的那些画面都有了成为现实的可能。我由此也对计算机方面产生了非常浓厚的兴趣。再加上当时的分数段并没有合适的符合我当时的第一志愿经济类的学校,我便决定进入北航的信息类工科试验班进行学习。
在大一一年的学习中,我接触了很多以前没有接触过的东西。从C语言到数据结构,从看见自己编写的第一个小程序成功运行时的喜悦,到后来debug de到头秃后终于解决问题的成就感,我也慢慢发现了自己对于程序设计这方面的兴趣。大一上学期开设的计算机导论与伦理学,也介绍了许多我没有听说过的计算机领域的发展方向,让我了解了很多计算机专业的知识。
虽然的目标是计算机专业,但是到了真正选择专业的时候,我也犹豫过。由于当时自己的成绩并不是很好,很担心能否顺利进入计算机学院,或者进入之后会不会跟不上学习进度。但是仔细考虑后还是决定遵循自己的初心,去接受这份挑战,我也很幸运地搭上了计算机学院的末班车,顺利地进入了自己心仪的专业进行学习。
在进入大学进行学习之前,我对计算机方面的了解颇为匮乏,对计算机的使用也仅仅局限在处理一些文档,玩玩游戏这些方面。跟同届的同学比,我的基础应该是处在下游的。在大佬们在专业知识方面侃侃而谈的时候,我还在摸索着怎么把一个 Hello,world 程序跑通。跟博客I的博主比,更是相去甚远,既不像他起步那么早,在摸索和实践中积累了丰富的经验和知识,也没有他那样的对于计算机的激情和热忱。
计算机是你喜欢的领域吗?是你擅长的领域吗?
喜欢是肯定喜欢的,在前文中我也提到了自己对于计算机领域的喜爱之情,我到现在依然觉得能够用AI打败世界一流围棋高手是一件很酷的事情,那可是围棋啊,小时候看的《围棋少年》里的那种围棋啊。但是说到擅长,很惭愧,在大学里学习了三年,我依然不能说这是我所擅长的领域,了。前路漫漫,任重道远,在这个领域的我,还是需要更多的努力,才能让自己在这个领域称得上是擅长。
你热爱这一专业吗?你对计算机的热爱是怎样的的?仅仅是口头上的吗?
我不敢说我对于计算机的那一份喜欢可以称得上是热爱,由其是在看过了很多真正热爱计算机的大佬的经历之后。博客I中的一个小故事给我的触动很深:
一个周末,我们几个热衷学习编程的在学校留宿的同学,跟平时一样,到电脑老师的房子用他的机器,因为周末的时候电脑室不开,而且电脑老师也乐意于让我们学习电脑。但那个周末老师不在家,而我们习惯了每个周末都用他的电脑,大家又没有钥匙,碰巧另外一个老师经过,说:"break in啊",当时就震惊。然后大家都说:你看,这老师都让我们闯进去了,那就闯呗。最后,我们爬窗进去了。当晚大家的确研究了不少东西。我们还在老师的房子里面开小灶,弄了一锅粥,吃得挺开心的。大家累了倒头便睡。第二天早上,老师开门看见我们和变样了的房子,“责骂”了我们一顿,他其实也没有什么的,呵呵。不过我们之后都没有在未曾得到老师的同意之前“入侵”他的房子了。
我觉得只有像这样想方设法地去解决问题并且乐在其中的人,才可以称得上是真正的热爱吧。
在计算机系里学习
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
总体上来说,我对于在北航计算机学院的学习经历是满意的。从计算机组成、操作系统、编译技术,到数据结构、面向对象、算法设计与分析,学校在硬件和软件方面都对我们进行了非常系统化的培训。
在大学课程的教学方面,我能感觉的到许多课程都在探索更科学、更系统化的教学方法,也在积极地去学习国外的教学方式。在博客O中,作者介绍了一些他在美国读研期间的课程的作业,我感觉和我们现在许多课程的作业的模式相似度还是很高的,比如分组进行作业,分阶段检查成果,甚至在通过git提交作业这些方面,我们的许多课程也是这么安排的。但是,我觉得我们也有一些需要注意的地方,毕竟中国和美国的基础教育还是存在很大的差别的。我们中的很多人并不是像美国孩子那样,在高中甚至更早之前,就经历过这种模式的学习活动了。而我们的基础教育还是以应试教育为主的。所以,如何帮助学生实现这个过渡,也是我们的学校应该去思考的问题。
我理想中的大学教育就像博客P中说的那样,是一种健身教练/健身学员的关系。每个来健身的人,都是想健身才来的。而每个人的基础不一样,目标不一样,健身教练给出的健身计划也不一样。在完成健身后,学员根据自身情况给出反馈,教练根据反馈确定下一阶段的计划。具体的描述在文章中说的已经非常清楚了,在这里我就不再赘述了。
至于和国外学校的比较,在计算机领域的发展方面,国外目前还是领先的。而一个学校在一个领域的发展情况,在很大程度上也就决定了它能够提供给学生的教学资源的天花板。从这一点上来说,我们和国外的学校肯定是和国外有差别的。而具体到老师个人的教学上,我也觉得不太能做到像国外那样。像博客Q中提到的博主在UCSD的课堂的经历中说的:
一般上来他就讲他工作时的一些故事,讲他身边的奇葩工程师,特别二逼的manager,特别照顾他的mentor等等,然后就开始讲Head First Design Pattern,用了三周时间过完了一本书,有用了两周时间过完了Head First Software Development,上课基本没有讲义,直接维基百科,无比飘逸。
事实上我也遇到过老师在课堂上分享自己的工作经历,花大段时间说一些自己工作研究中的趣事的,但是我身边的一些人,包括我自己,就会开始吐槽他讲课水,没营养,没干货。总之就是众口难调吧,我也觉得没有必要去特意学习国外老师的授课方式,每个老师都有自己独特的授课方式,而且学校也给了我们机会去选择自己喜欢的老师,虽然很多时候都抽不中吧。
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
迄今为止写的代码量没有具体的统计过,上万行应该是有了,但是大部分都是重复造轮子,质量也参差不齐。
我做的最复杂的作业应该就是上学期的编译技术课程设计了吧,需要从最基础的部分做起,一点点的搭建一个自己的小编译器,然后自己测试可靠性等。
科班出身和北大青鸟有什么区别?俗称的培训班和打基础的大学教育还有mooc之间有区别吗?
这两个问题我觉得可以放在一起来说。科班出身跟其它的肯定还是要有区别的。博客G的博主描述了他见过的很多培训班出来的学生:
1.求职简历都写的完全一样;
2.缺乏自学能力;
3.不懂得任何良好的编码习惯、调试、调优技巧;
4.很多老师和培训机构为了追求就业率,传授各种简历面试技巧,甚至不惜帮助学生作弊;
5.因为无知而狂妄。
我觉得科班出身的人比其它的多的就应该是自学的能力和独立思考的能力,以及许多良好的习惯和技巧等。当然,我并不是觉得跟其它的人相比有什么优越感,我们拥有这些是因为教育资源和教育方式的不同,也因如此,我们更应该去积极地利用我们所能接触到的教育资源去充实自己。
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
说实话,我确实有这样的疑问,而且我不止有这样的疑问,我还确确实实地去做了(捂脸),当然后果也很严重,现在写程序的时候,都需要用到之前学到的数学知识,比如线性代数中关于矩阵的知识,而且对gpa影响也挺大的。其他学科我觉得也是一样的,计算机专业日后的发展方向一定是和许多学科有交叉的,需要用到很多专业的专业知识,现在多学一点总不是坏事。
未来规划
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
对于未来的工作,其实有很多的想法,希望进入一家自己喜欢的企业,帮助自己喜欢并且一直在用的软件和它的公司变得更好吧。我觉得相比于薪水和福利,从事一份自己喜欢的工作,在自己喜欢地方工作更加重要,对于我来说,这样才能让我自己充分地发挥出自己的积极性和创造力。
目前的注意力还是主要集中在考研这方面,一是觉得自己在之前本科学习中浪费了太多的时间,需要学习的知识和技能还有很多没有掌握,需要再巩固完善一下自己的知识体系,二是觉得本科的教育很多都是比较基础的,而自己也没有去学习一些额外的知识,所以对于前沿科技涉及得很少,希望去接触一下最前沿的那些领域,这样自己以后步入社会从事工作的时候能够更好地去应对。
至于毕业之后的事情,目前还没有什么具体的考虑,像骑单车的故事里描述的那样:
爸爸教儿子骑单车,儿子总也学不会。爸爸看出了问题所在,于是在再一次示范后让儿子看身后弯弯曲曲的车轮印,并语重心长地说:我儿,虽然你看见别人骑车时车头很直,但那也是因为他在时刻调整方向,才能顺利前进啊!
人生本来就是曲曲折折不断调整着方向前进的,可能等我过几年,心智更加成熟,经历更加丰富的时候,会有其它的选择吧。