2020软工-第一次个人作业
2020软工-第一次个人作业
Q | A |
---|---|
这个作业属于哪个课程 | 2020春季计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里 | 第一次作业-热身 |
我在这个课程的目标是 | 系统地学习软件工程开发知识,掌握相关流程和技术,提升工程化开发的能力 |
这个作业在哪个具体方面帮助我实现目标 | 正式学习前的反思总结,规划未来,设定目标 |
第一部分:结缘计算机
-
你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)
其实来北航,来到计算机系,都是特别奇妙的遇见。高考之后选择专业,没有特别喜欢的,也没有特别反感的,大概是因为眼界太窄,了解的也不多;当时有一位长辈是从事电子信息方面的工作,便给我分析了一下电子信息专业的学习内容和就业前景,觉得挺有意思,再按着自己的高考成绩和学校专业排名,兜兜转转选择了北航,现在想来也觉得有趣,来北航的初心大概是二系,现在却已在六系度过了快两年秃秃的学习生活。大一的大类培养,让我看到了信息类的包罗万象,也深刻意识到了自己在物理方面的短板(电子设计基础训练着实令人头大),再结合几个专业的课程设置,便选择了“软硬”结合的计算机专业。
在上大学之前,没有接触过编程,计算机课老师讲的也不过是PS一类的知识,高中听说隔壁班的同学获得信息竞赛第一名保送清华,觉得超级厉害,却从没想过把计算机作为自己学习的专业。就我自己而言,我没有如博客I中博主和部分同学一般早早接触编程,也没有博客C博主对读书和学习的那般炽热和疯狂。但我们或许是很幸运的一代,现在信息渠道信息量大且传播快更新快,我们有了更好的了解这个世界的前提,相比博客D博主突然进入洪水猛兽般的信息时代,我们现在的客观条件可谓是好了许多。虽然难以望其项背,但总有弥补的机会和更多学习的可能,关键就在于自己是否有不安于现状的决心和行动。在计算机系的学习,也让我收获了强于高中数倍的心理承受能力和自学能力。
看了多则博客,深知自己学识浅薄,但是很多时候感觉自己缺少那股执着疯狂的冲劲,相比于非科班的博主,北航已经为我们提供了足够好的平台和资源,没有理由不投入,毕竟道阻且长。
-
计算机是你喜欢的领域吗?是你擅长的领域吗?你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
计算机是我喜欢的领域吗?这个问题我也曾在心里打过无数个问号。坦白说,在大学之前,对我所选择的信息类并没有多深的了解,也就谈不上兴趣浓厚或者喜欢与否,但我对它始终保有一种深入了解的热情,毕竟那是一个对我来讲未知且全新的领域。来到计算机系,学习的过程也并不轻松,debug和上机和大作业带来的情绪起伏曲线像过山车一般,在痛苦和惊喜之间往复,但是在这过程之后,带来的成就感和满足感却也是实打实的。现在问我是否喜欢,我想我的答案是肯定的吧,毕竟相较其他专业,对计算机的了解更多那么一丢丢,哪怕曾经也矛盾纠结过,但越深入,这个领域带给我的感受也就越丰富。至于热爱,我想我还没有到热爱痴迷的境界,相较于博客中各位前辈废寝忘食的钻研学习,我自惭形秽。大学前两年专业相关的学习对我来说更像是完成任务一般,被推着往前走;但进入大三,似乎有点不一样,我开始主动吸收课程以外的相关知识,尝试阅读文献,做项目,从0到1的过程是很艰难的,我想自己正处于这个过程中,并且因为自己起步晚,需要投入更多的时间精力也是必然。
计算机科学是一门交叉性特别强的学科,并且更新速度和发展极快,不似传统工科那般给人一种厚重感,学习计算机常常会让我产生一种自己无法即时更新的焦虑感。似乎学习应该学得越多越充实,但我却感觉越学习越觉得自己掌握的实在是太少了,实在谈不上擅长。
第二部分:在计算机系里学习
-
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答)
我对自己的大学生活整体而言还是比较满意的,但肯定也有吐槽的地方。这个问题的侧重点应该是在专业学习方面,六系课程设置的魔鬼是在大一就常常听学长学姐谈起的,现在想来也是佩服自己当时专业选择的勇气。我理解的“魔鬼”,大概是在痛苦中有所收获、有所得,但现在看来,似乎有些不一样,并不是所有的课程都让我觉得它值得。
- 首先很感激大类招生,让我在大一了解了各个专业的特点,也让我看到了自己的短板,帮助我在专业选择时不至于盲选,大一下的物理课和电设情有可原,但是大二的物理实验着实让人感到困惑,实验几乎是循着上届甚至上上上上上届学长学姐的实验报告而来,现在让我回过头谈实验原理我也说不出所以然,到目前为止,我也没有感受到这门课对我有多大帮助。
- 计算机系课程的特点大概就是理论+实践,从计算机组成到面向对象到操作系统再到编译原理都是如此。理论课学习的知识在实验中会有涉及,但是常常还是会让我有脱节的感觉。实践能力强的同学理论课都不会太差,但是理论学得好却不代表能够运用于实践。当然这和个人能力有很大关系,但是总感觉中间少了衔接的东西。理论课的学分几乎都是实验课的两倍,但是花费的时间却相反,实验课需要不断熬熬熬,也不一定有理想的效果,学期末想起来总会质疑自己的时间分配。
- 再有就是关于课程的评价标准,计算机组成课程设计课的标准是在一开始就很明确的;面向对象之前似乎是一对一互测,会有一部分恶性竞争的弊端,庆幸的是我们这一届进行了改革,改革意味着旧的否定和新的建立,不破不立,可能课程还存在不足,但是也没有什么是一步登天或尽善尽美的,我们也看到了它很大的进步,虽然虐人,但是虐得也挺值得的(吧);编译课设最终目标明确,但是评价标准却比较迷,当完成编译器整体设计进行优化时,我们不是和自己比相较上次优化了多少,而是看整体排名,并且划定了优秀区间,挺残酷,也开始让我思考成本和产出值不值得;一部分一般专业课的课程体系大概也有蛮多进步空间。
我理想中的大学教育应该是在培养学生硬性能力的同时,满足学生个性化的发展。在学校我们接受同化的教育,但是在社会上我们却被要求异化,这个过程的转换不免让人感到迷茫。每个人都有自己擅长和感兴趣的方向,学校可以为我们提供更丰富的可能和指引,这大概也是大学教育和中学教育的区别。学习毕竟是无止境的,学校无法教会我们所有知识,但是可以教会我们如何学习,这个过程需要自己摸索,如果有指导自然会更好。博客B中数据结构课程的例子让我挺受触动的,我们知道要学什么,却很少思考“为什么学”,“我们需要培养的是自己的思考方式,而不是简单地获取知识。”深以为然。
学校给我们提供的,在我看来已经是很好了,不管是课程还是学习资源。专业课程是多年来逐步形成的比较科学的教学体系,不管是老师、助教还是学生都在为课程变得更好更完善而努力,我们也可以感受到课程的变化和发展。至于资源,小班课往往能让人收获更多,参与实验室项目和与导师交流的机会都是在那的,主要看自己是否主动,学校从来没有设定学生的发展上限。
对国外教学了解的不多,仅仅是阅读博客以及老师上课偶尔提到国外的教学方式,我觉得差别还是存在的。国外教学的整体难度和强度或许会比较高,并且更贴合实践,并且不唯分数论,而是更注重是否有热情和学习的能力。国内的教学环境在某些程度上或许不及国外开放和多样化,老师和学校可能也没办法做到,但这也不是依靠老师和学校的行动就能改变的。中国有自己的国情和特色,学生的思维方式和学习习惯也比较固定,若是生搬国外的教学体系,倒有可能过犹不及。若要说改变,可能就不只是大学需要改变了,从学生到家长,从学校到企业,都需要从传统的意识上进行改变,才有可能。但是说到底,适合的往往才是最好的,我们固然可以借鉴国外好的教学模式,但是探索适合我国实际情况的教育体系或许才是重点。
-
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。(必答)
从C语言程序设计到数据结构,从计算机组成到OO、OS再到编译原理,再加上其他专业课大大小小的作业,总的代码行数大概上万了,但现在回过头看大一写的代码,可以说是处刑现场,当时感觉还是挺难的大作业现在看来好像也没什么值得有成就感的。
最复杂的软件作业应该是上学期的类C语言编译器(似乎不算是软件),使用的是VS开发环境和C++语言。经过OO的训练和理论课老师的讲解,代码结构不至于零零散散或者一main到底,有基本的框架,也实现了相应的需求,比如词法分析,语法分析,错误处理,生成代码等功能,但是鲁棒性和可维护性真的是很差,常常会不知道从哪个地方冒出bug,一改又是好半天,并不觉得自己是正儿八经实现了一个软件。
现在回顾之前写代码的经历,才发现自己实在是太有局限性,完成的都是课程中老师让完成的作业,囿于课程内,很少有主动汲取和学习的过程,学习前端和数据库也是浅尝辄止,这大概是在以后的学习生活中需要重点改进的地方。
-
科班出身和北大青鸟有什么区别?
博客G中的故事挺让人震撼的,“我是科班,却没学懂计算机。”博客B博主的困惑也并不少见,在科班和非科班面前,我想我还是坚持英雄不问出身的观点,不存在什么优越感或者歧视链,文凭只是证明罢了,有没有硬实力和进取心才是值得关注的重点。但是这个问题会不会存在幸存者偏差,我觉得也得打个问号。
-
速成的培训班和打基础的大学教育还有mooc之间有区别吗?
如上一个问题所言,最终的教育成果因人而异,但教育模式肯定有区别。
- 培训班和大学教育的目的是有区别的,培训班更多的侧重是技能的训练,目的只是让学员就业,培训机构也只是进入行业的敲门砖,而且毕竟是速成,要想学得精自己肯定得有很强的自学能力。而大学教育是有一个比较缓和的学习曲线,目的是打好基础,培养基本能力素质,计算机行业发展极快,没有人可以预测未来是什么样子的,学校能做的就是帮助我们建立夯实的学习基础和良好的思维模式,一个人是“科班出身”,只能说与培训班学员相比,有较大的概率他对计算机科学打好了一定的基础,但也不等于说他就把硬本领学好了。
- 大学教育提供的客观环境是更让人有动力的,大牛云集,学霸碾压,在这种环境中学习,眼光见识,成长速度比自己单打独斗要好很多。巨大的压力和丰富的校友资源也具有一定的优势。至于mooc,我觉得他提供了一个很好的平台供所有人学习,不存在环境的局限性,想学什么不过是自己意愿的问题。在大一大二我无法很好的吸收课内内容的时候也会在mooc上补补课,但是mooc的教学方式更趋于理论,在实践上的收获不多,也缺少更专业的学习指引,并且在mooc上老师和同学之间不存在紧密的联系和交流,学习效果也就更多的取决于个人了。
-
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
疑问肯定是有的,但现在越来越感受到数学的重要性。数学向来被视为理科中最难的一科,同时也是最基础最严谨的一科。其实坦白说,对数学的感情很复杂,不得不爱它,很少有人能够拍着胸脯说,数学很好学,对大部分同学而言,数学从来都是扮演了一个不温柔的角色,或许它难学的原因,很大一部分是关于它的抽象性。我们现在所接触和学习的数学知识,或许大部分都是被之前造诣深厚的数学家们包装过,屏蔽掉了一些抽象的东西,剩下的都是能够被我们直接应用的精华,这在一定程度上让数学更具有了普适性,但是从大一磨人的的工科数学分析、工科高等代数到之后的离散数学、概率统计,我们似乎只是停留在了简单的了解原理以及计算的层面,却不知道所学习的理论知识如何与实际应用相结合。但在对计算机科学越来越了解的过程中,我看到了矩阵计算在人脸识别方面的应用,看到了概率统计在数据处理分析上的应用,看到了数学模型在深度学习上的应用,虽说对原理的了解不算深入,但是让我认识到,原来数学在学科发展的道路上肩负了如此重要的责任,原来之前所学习的知识不只是为了一个分数,而是真真切切的可应用。
比如高等代数,图像的处理离不开向量和矩阵的使用,线性代数提供了一个看待世界的抽象视角,从一维到二维到三维到n维,万事万物都可以被抽象成某些特征的组合,并在由预置规则定义的框架之下以静态和动态方式加以观察。将具体事物抽象为数学对象,并描述其静态和动态的特性:向量的实质是n维线性空间中的静止点;线性变换描述了向量或者作为参考系的坐标系的变化,可以用矩阵表示;矩阵的特征值和特征向量描述了变化的速度与方向。由此看来,高等代数作为基础的工具集当之无愧。
至于其他学科,比如之前提到的物理实验,我还是有着“为什么要学?有什么关系?”的困惑。
第三部分:未来规划
-
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)
在工作方面,首选应该是技术岗位,但是我并不擅长硬件和偏底层系统这方面的内容,所以会偏向产品研发、设计方面的工作,我期待的工作环境是技术氛围浓厚,具有挑战性和创新性的,希望能够参与创造更大的世界。
关于技术道路,我觉得自己现在掌握的还是太少了,应用的经验也不足,2020年重要且紧急的大概就是考研了,在更高的平台上练好基本功。不觉得自己现在的能力可以支撑起自己的某些野心,所以静下来,打好基础,才是最重要的吧。
至于职业道路,我觉得博客K的前辈给了我很大的启发:
要经常性地跳出自己再来看自己,客观地分析自己的优势和劣势。让自己和别人掂量掂量自己到底几斤几两,了解到自己的长处和特点,然后才能知道自己适合做怎么样的事和并调整自己的职业路线,这是一个“肯定到否定再到肯定”螺旋上升的进化过程。当度过对自己对社会的“陌生期”后,才有谈得上对自己人生和职业的规划。
所以在学生阶段,我会考虑进入企业实习,一方面积累经验,一方面了解自己所学如何应用于工作并且在工作中需要什么样的能力,探索自己擅长的方向,也不断丰富自我,完善自我。
社会道路上,我希望自己可以是自己的主人。本科阶段真正留给我们思考、抉择与成长的时间不足一年,但事实是,我仍然对于自己的未来有迷茫与犹豫,常常说顺其自然,但还是要尽人事。希望自己的生活能像水,倒不是因为“水善利万物而不争”,而是因为水能曲折回环的到达它想要的终点。所有的选择都没有对错,只有不同,选择后最重要的还是坚持走下去的底气和努力。以后还要多去体验新的事情,走很多的路,的确,也还要加把劲。
-
你对于实现自己的梦想已经做了或者计划做什么样的准备?
关于我的计划,眼下比较重要有三件事:1.做好冯如杯项目。2.学好课内课程,学好自己应该学习的,也让GPA好看一点。3.考研复习。比较远一点的计划就是继续跟着学长学姐做项目,丰富自己的经验,也拓宽眼界。在学期中做好暑期企业实习相关的准备。
-
你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
准备读研,所以在近期还是会考虑在实验室实习,这也是一个打基础,了解前沿技术和发展方向的过程,我觉得很重要。暑假有比较长的完整的时间,计划在企业内实习。
-
实习经验究竟有多重要?是否需要马上开始积累实习经验?
实习经验我觉得十分重要,博客中各位前辈分享的经验都谈到基础技能的重要性,也强调了实践的必要性,实习是丰富自我,积攒经验,拨开迷雾的必经之路。关于是否需要马上开始积累实习经验,我想这个问题的答案也是肯定的。就我而言,在大一大二,我需要投入很多精力来学习课内的知识,也没有很厚实的基础,所以在此之前并没有进行实习。现在课程设置变得灵活,实习也应该提上日程,并且实习的准备战线比较长,自然是越早开始准备越好。