个人阅读作业#1
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季软件工程(罗杰 任健) |
这个作业的要求在哪里 | 个人阅读作业#1 |
我在这个课程的目标是 | 初步掌握软件开发技术 |
这个作业在哪个具体方面帮助我实现目标 | 对计算机专业、对个人规划有更深刻的认识 |
第一部分:结缘计算机
-
你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
选择计算机专业也是在考虑了很多因素后作出的决定。在人生的前18年,电脑游戏没少玩,但是对计算机技术却没有什么了解,倒是对数学比较感兴趣,所以一开始想选择数学专业或者金融专业,但是数学专业太过单调,金融专业可能不能很充分的挖掘我的数学能力,于是计算机这个专业引起了我的注意,这个专业可以培养较强的数学能力和逻辑思维,同时计算机技术也是非常热门和新颖的技术,很多行业都是需要用到的,所以本科学习计算机专业对研究生跨专业学习有很大帮助,所以在再三权衡下,我选择了计算机专业。
对比本专业中信息学竞赛、ACM的大佬,我是毫无基础进入这个专业的,当别人快速AC了所有题时,我还在为语法焦头烂额,不过在经历大一上学期的学习和练习后,大一下学期的数据结构课已经成功的跟上啦。所以呢,虽然我的基础比较差,但是我的理解力和执行力还是挺好的。
看了这些博客,惊讶于许多博主从小就开始接触计算机技术,同时他们也有着对计算机满腔的热爱,所以在这个行业有很多的建树。对比这些博主,我的条件就逊色了不少。
-
计算机是你喜欢的领域吗?是你擅长的领域吗?
计算机以前不算我喜欢的领域,但是经过大学的了解与学习,现在已经成为我喜欢的领域了。当我做出来精美的网页,当我做出来编译器时,我都感到十分有成就感。可能就是这些计算机给我带来的成就感让我喜欢上了计算机。
擅长这个问题,回答起来还是要看比较的纬度。学了三年计算机,计算机已然成为我所有技能点上最为闪耀的一个。比起在计算机领域已有颇多建树的大佬们,我只能算刚刚入门。
-
你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
这篇博客简直是我的真实写照。“有易学易懂的视频吗”,“有中文资料吗”,“这个技术我不懂,你可以教我吗”,这几句话也常常挂在我的口中,这么看来,好像真的不爱这个专业。但是我也会因为写代码熬夜,会硬着头看英文的资料,可能也是热爱这个专业吧,但是更很多时候我更热爱我的舒适圈。
第二部分:在计算机系里学习
-
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
生活处处是槽点,这次就选个“内卷”来吐槽吧。大一的大类招生,本意是找到自己的兴趣,找到自己的发展方向,结果成了内卷的摇篮。排名靠前的学生大多选了计算机专业,难道成绩好的同学兴趣都那么一致?然后是保研、GPA的竞争,大一的内卷胜利者开始了新一轮的内卷。不过这也是没有办法的事情,毕竟保研名额那么少,成绩还得按照正态分布。如果说课程的槽点、培养方案的槽点还是可以不断完善的,那么在这个资源匮乏的时代,“内卷”是不是不可避免了呢?
我理想的大学教育是注重以兴趣驱动、需求驱动,而不是成绩驱动。学生对课程、项目选择是因为感兴趣去选择,而不是因为这个课水、给分高,在这样的教育中,学生能够感觉到自己是主导,而不是成绩主导了自己。
看了博客N描述的世界一流本科教育,真心感叹国内外教育差距之大。
我认为原因是国内外大学对本科教育的定位不同。我所了解美国对本科的教育非常重视,甚至超过了研究生,并且强调的是尊重学生的个性,培养学生的终生学习能力。因此,学校可以给本科生提供优秀的教育资源,老师也会花费很多的时间精力在课程上。但是在中国,大学注重提升学校的学术能力而非教学质量,实验室多对研究生开放,老师多把精力放在科研上,也就有了“万年不变的课件”,“大水课”这些令人啼笑皆非的东西。中国的本科还强调升学率、就业率,这也在一定程度上造成了现在大学生唯分数论、内卷的局面。
-
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
主要的代码量在于计算组成实验(约3000行)、oo作业(约4000行)、编译实验(约3000行)和数据库大作业(约2000行)。
让我印象最深的作业是oo第一单元的作业,需要写一个程序对表达式求导,作业有三次迭代,最后一次迭代需要求导的表达式非常复杂,涉及到多个基本表达式的嵌套,而且给的时间非常短,只有一周不到的时间。同时,这个作业是迭代完成的,我在前面的作业没有考虑到后面这些复杂的情况,就导致思路错误,需要重新思考并重构。
-
科班出身和北大青鸟有什么区别?
博客H中描述的前妻是北大青鸟出生的,可以看出一些和科班出身的区别。
一是自学能力。可以看出博客中的前妻是肯吃苦的人,但是为何学习ios非常慢?而对我们来说,自学已经成为了家常便饭,虽然一问大家都会很多语言:C,C++,Java……,但是其实我们只正儿八经的学过C,但是在布置任务的时候可没人管你。你不会?一天速成吧。还有很多同学都进了实验室工作,那更是没有学过的东西,也没有老师、课本,还是得自己查文献查代码。至于我们怎么具备这种自学能力的?被逼的,逼着逼着就有了。
二是对代码的掌控能力。北大青鸟出身的人只关注代码如何实现功能,而不是关注代码如何更好的实现功能,这就有了博客中所写代码是面条代码,我认为究其原因不是因为没有良好的编程习惯,而是对计算机的了解只是浮于表面。科班出身的人知道函数是把功能抽象出来,当程序中需要反复使用某个功能的时候,将该功能抽象为函数可以大大提高代码的简洁性,特别是实现一些复杂的功能例如递归,函数是必不可少的,忽略函数的使用,可以反映出这样一种计算机思维的缺失:将复杂功能分解为简单功能的组合。同样,我相信,在我们学习了编译技术知道怎么写代码可以让汇编出的代码更高效,学习了计算机组成知道怎么写代码可以减少流水线的空转和清除,所以我们可以写出更高效的代码,而北大青鸟出来的人是不会想到这些的。
还有一个方面是博客中没有提到的——数学的学习。我们一进校就接受了各种数学的学习,这些数学基础毫无疑问可以让我们在这个领域有更深入的发展,例如深度学习、数据建模等,而北大青鸟出身的人由于没有这些基础,只能做着最基本的码农工作。
-
速成的培训班和打基础的大学教育还有mooc之间有区别吗?
速成的培训班,以盈利为目的,所以教学只有一个目标——利益最大化,实现起来就是教学周期短,而能力的培养是一个漫长的过程,缺乏这些能力结果在上一个问题中已经提出。
我觉得mooc学习和大学学习是互补的,可能这也是近年来大力推广mooc的原因之一吧。mooc中的资源比学校的课程资源多得多,且不乏大牛学者的课程,若能好好利用一定会受益匪浅。但是毕竟是开放给全社会的课,课程的深度和难度并不会像学校的专业课那样。所以我觉得mooc用来开拓视野,需要深入学习的专业课还是大学课程较好。
-
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
确实学习数学课的时候有过这样的疑问,我认为主要是我们当时所需要编写的代码是很简单的,不需要用到过多的数学知识,所以体现不出来数学的重要性。现在,随着学习的深入,发现复杂问题的解决都是需要用到数学的,而计算机是帮助我们实现数学计算的工具。例如贝叶斯网络需要是以概率论为基础的,机器学习多用到矩阵的变换。
因为是大类招生,在大一的时候学了很多其他系的基础课程,主要是为选专业做准备,但是分完专业后感觉就没有什么用处了,或许在将来,学科融合的时代,可以发挥很大的用处吧。
第三部分:未来规划
-
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
和博客L的博主一样,我也认为技术是实实在在的东西,技术让人感到踏实。所以我未来应该会从事技术相关的工作,但是我也不想仅仅成为一名码农,我想从事数据分析的相关工作。
技术道路:计算机技术更新迭代快,所以我需要不断更新自己的技术。短期内,我打算继续深造,更深入的学习技术。之后进入企业,通过实践不断打磨自己的技术。
职业道路:我认为职业道路开始要以技术为本,不断增强自己某一方面的技能,首先做到不会被这个行业淘汰。之后有了自己的技术和经验后尝试转型,可以做架构师之类的。
社会道路:偏向简单的社会圈子,在工作中尽力维持好的工作关系。
-
你对于实现自己的梦想已经做了或者计划做什么样的准备?
- 注重数学能力。因为数据分析需要用到较多的数学能力,所以在平时的学习中,我比较注重数学能力的提升,选修了很多数学方面的课程,也会参加一些数学竞赛。
- 正在准备出国留学。现在所学的还是比较通识的教育,所以我希望研究生可以更加深入的学习数据分析这个方向。
-
你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
我倾向在企业内实习,一是我已经有过一些实验室的经历,但是企业经历还是空白。所以我希望走出校园,体验在企业中工作的感觉。
二是看了这篇职业规划的博客,其中有句话挺有意思的
个人的职业规划就像软件工程。我们都知道软件项目最大的敌人是需求的不明确和需求的大面积变更,同样,在个人的职业规划中,自我需求的不明确和需求的变更也是非常危险的,尤其是在职业计划实施了四五年后需求的变动和改变。
虽然目前我已经有了我未来想要发展的职业方向,但是就像软件需要严格的测试,我也需要检验我到底适不适合这项工作,如果出现了偏差需要及时debug或者重构。我觉得从长远角度来看,我的大部分职业生涯都是在企业中,所以最好的检验方式就是去企业中找到相关的实习,一是可以设身处地的体验这个职业,更准确的判断自己是否适合这个职业;二是可以积累实际的工作经验。
-
实习经验究竟有多重要?是否需要马上开始积累实习经验?
我认为实习经验是非常重要的,虽然有很多课程都要求完成一个类似于工程的大作业,但是这与实际的工程差别还是挺大的。课程中,这个大作业的要求已经被抽象和简化,我们要做的主要是实现要求的功能和减少bug。而在实习中做的项目,是要解决一个实际问题,考虑到的因素很多很复杂,比如成本、工期等,也不会有老师、助教详细的指导,这些经验是只有实习,只有完整参与到一个项目中才能得到的。
现在已经大三了,还有一年就面临着工作或者深造。选择工作,毫无疑问实习经验可以让你在工作中更快的上手。选择深造,研究生也是需要进实验室,做研究发论文的,本科在实验室的实习经验可以让你更快速的适应研究生的学习方式。