项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2020计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里 | 第一次作业-热身! |
我在这个课程的目标是 | 了解软件开发,提高自己的工程能力和团队协作能力 |
这个作业在哪个具体方面帮助我实现目标 | 认识自己,规划未来 |
参考博客 | 博客I,博客G |
第一部分 结缘计算机
1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
1.1 为什么选择计算机专业
我的高中,与大多数人的高中一样,沉浸在题海中。每天脑子里除了每道题的解法别无他物。因此自然没有对专业选择的思考。
在填报志愿时,脑海中浮现了两个画面或者说是缩影:
- 年幼的我坐在电脑桌前玩着电脑游戏,思考“金手指”是怎么来的。
- 我的好朋友向我诉说他对计算机的各种神奇操作。
计算机的神奇与神秘早已吸引了我多年,而我的分数又正好与北航分数线相契合,我便直接将目光投向了北航。说来也巧,别的大学在志愿选择里还有更细的专业划分,而北航只有工科信息试验班,免去了选择更细专业对我的困扰,这更加坚定了我的选择。
在进入北航之后,一年级的我得益于之前的些许数学基础,在占据很大学分的数学课程取得了不错的成绩。在编程上,每一次ac都带给了我与当年做出数学题的快乐,因此我的成绩处在了书院中游,便自然而然地选择了同学们口中谈论很久的热门专业计算机专业。真正对计算机专业的喜爱,是在选择计算机专业之后了。
1.2 条件如何
初入大学,在计算机相关的条件上,我可以说是处于最底层。在上第一堂c语言课之前,我唯一对编程的了解就是HELLO WORLD!。完完全全是从零开始,两年半的学习中,对课堂知识的掌握还算是马马虎虎,然而课堂外浩如烟海的计算机知识让我感觉我只是广阔宇宙中的一粒微尘。对自己的评价也只是普普通通,没有过人之处。
1.3 与博主比
与博客I的博主相比,我差了很多,他从初二开始就接触编程并且对它产生了浓厚的兴趣,而我在大学之前都没有对编程的了解和兴趣,只是将它看成一个高大上的名词,从没有想过我会与它结缘。而与博客G的女主人公相比,我也不像她一样是在生活的压力下被迫选择计算机行业。因此我只是普普通通的平凡人。在学习的过程中也遭遇过阻力,也有过半夜de不出bug想要放弃的时候,但也还是坚持到了现在。我也相信通过自己的努力,一定能越走越远。与博主们唯一共通的可能就是踏踏实实做好每一件事吧。
2. 计算机是你喜欢的领域吗?是你擅长的领域吗?
我可以确定的回答,计算机是我喜欢的领域。为什么喜欢呢?可能是一个个熬夜debug的夜晚,可能是一个个ac带来的快乐,也可能是学习各种神奇技巧时的惊诧等等。喜欢的原因很多,可以确定的是那种解决难题勇攀高峰的感觉让我不可自拔。越接触这个领域,就越感觉到自己的无知,无数未知且有趣的知识让我不能停止前进的脚步。
说到擅长,完全谈不上擅长。我现在对计算机的理解和应用完全是机械的简单的,没有自己的思考,只是跟着一个个任务在走,而不是思考自己到底喜欢什么到底想要学什么,因此擅长这个词用不到我的身上,在很长一段时间里,也许5年10年20年甚至到我老去,我也用不上这个词。永远都走在学习的路上。
3. 你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
这一段话里的表现可能才能算是热爱:
我是一个英文专业的大学生,但我真正想做的,却是成为一位IT人。六年多以来,废枕忘食,连那“黑色七月”前的莘莘学子浴血奋战,杀得昏天暗地的疯狂日子里,我仍然是“两耳不问窗外事,一心只顾编程序”。更离谱的是,连在答语文考卷的时候,我不由自主地想起前一阵子的还没有完成的程序来。
-- 引用自博客I
扪心自问我对计算机是达不到这一种热爱的。然而我也有自己的喜欢,我的喜欢表现在,我愿意为了学习计算机去付出努力,即使受到挫折,也只是消沉一阵便又重整旗鼓。因此我的喜欢是在实际行动上的,而不只是口头的。
第二部分 在计算机系里学习
1. 你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
1.1 对大学生活吐槽
- 首先就是选课的问题,选课时五花八门的课让我们挑花了眼,一阵挑选之后心满意足地关掉选课界面等待抽签结果。看到结果后却傻了眼:
课表上空空如也。 - 理论与实践的分值比。计组,操作系统,编译,每一门课程的课程设计的工作量都很大,然而却没有得到能与工作量相配的学分。很多同学(包括我自己)迫于这样的分值比不得不放弃了一部分课程设计的工作,令人遗憾。
1.2 我理想中的大学教育和与学校给我的区别
在高中时,我想像中的大学是这样的:与高中的严格安排不同,大家可以自由安排自己的时间,组成自己的小组在实践中讨论学习。然而在现实中,我学过的狠多大学课程都与高中课程一般无二,靠考试评分,更重视理论。计算机系相比之下已经是很注重实践了,但还是让人感觉不够。就像我上面说的,理论和实践分值比应该持平,这二者是不能分离的,它们同样的重要,那么它们就需要同样的分值来引起学生的重视。
1.3 老师和学校能做到国外那样吗?
我们可以做到像国外那样,可以看到我们的课程也正在向国外的课程学习发展,但不可否认由于我国国情,真正做到那样是需要时间的。但我们也没有必要完全与国外一样,我们有自己的优势,对于基础的重视也会让我们在实践时事半功倍。因此我们只需要改变理论和实践的地位,让二者在大学教育中齐头并进,可能就能达到最适合我们的效果。课程改革的路上我们也会越来越好。
2. 迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
到大三下,写过的代码加起来可能超过了10000行,其中大部分是课程设计。最复杂的软件项目就是上学期的编译器设计,让我们根据给定的文法完成一个小型编译器。课程将其分为了词法分析,文法分析,错误处理,语义分析生成中间代码,代码生成,代码优化等几个方面,主要难点在于最后的代码优化,由于前期写的代码架构太差,尽管进行了多次重构,但已经过于复杂,因此到了最后的优化阶段我感觉到力有不逮,便只做了粗浅的优化,留下了遗憾。当然还是有收获的,在写编译器的过程中捡起了一些已经遗忘的知识,也学习了一些从前没有用过的写法。
3. 科班出身和北大青鸟有什么区别?
我比较赞同这一点:
缺乏自学能力
-- 引用自博客G
最大的区别可能就是科班出身的人在大学里培养了一些自主学习的能力,而北大青鸟可能更多是了解别人教的。当然这也不能一概而论,因人而异。
还有就是科班出身的人接受的是更基础更全面的教育,他们的知识是成体系的。主要区别就在于这两者的目标不一样,北大青鸟的教学面向就业,他们是需要短时间看到成效地,这就导致他们不可能特别细致地从基础教起。
4. 速成的培训班和打基础的大学教育还有mooc之间有区别吗?
我在上个问题中提到,两者目标不一样。速成的培训班,目的是就业,主要抓一个速成,他们的教学只想在最短的时间里让你学会最多的最有用的东西或工具,而不是教你这些工具的实现原理,为什么能这么用。而大学教育主要抓的是一个成体系和基础。因此选择哪种是根据目标决定的,就好比博客G中的女主人公,如果你让她去接受大学教育,先不说她能不能学会,她的生活条件根本就不支持她接受这种基础缓慢的教育。
5. 学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
在当初学这些的时候我确实有这样的疑问。因为在学这些的时候我们学的简单编程好像根本用不到这么高深的数学知识。但随着我们的学习逐渐深入,逐渐发现没有数学知识,很多算法就根本理解不了,最多只能是照猫画虎。这样的似懂非懂多了会导致以后的路越走越窄,因此学习数学是学习计算机的基础,想要深入学习计算机,数学基础是必不可少的。其他的学科可能跟计算机没有特别大的联系,但是我们人生并不只有计算机,计算机里也不只有技术,它们对我们的人生观世界观的树立会起作用,同样影响我们的人生。
第三部分 未来规划
1. 对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
我想从事跟技术研究有关的工作,在某一个领域一直钻研下去,具体的领域由于了解不足够还没有确定。
暂时的规划是尽量考上研究生接受更多教育。职业方面在不影响考研的前提下尽量进行实习。当然最重要的是积累知识,如果自己没有足够的功底,那么一切都是空谈。
2. 你对于实现自己的梦想已经做了或者计划做什么样的准备?
目前最重要的计划是准备复习考研,考上研究生对我的梦想来说是一个很重要的部分。除了考研,还有就是加强对英语的学习,许多计算机方面的顶级论文都是用英文写作的,想要学习先进技术英文必不可少。其他还有锻炼自己的交流能力,学会如何与他人进行有效的交流会让许多事情变得简单。
3. 你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
我打算在企业内进行实习,在企业内实习可以积累真正工作的经验,也可以锻炼与人沟通的能力,而这些正是我目前所缺少的东西。
4. 实习经验究竟有多重要?是否需要马上开始积累实习经验
对于个人来说,总有一天都要走上工作岗位的,与其在那时碰更多的壁,绕更多的弯子,不如在大学时就先解决一些。实习对我们是非常有利的。是否需要马上开始积累实习经验因人而异,能力强的人可以提早实习,能力稍弱的人可以在打好基础之后再实习,但个人认为实习越早越好,拥有更多的经验在生活的方方面面都会有更多的底气。