你好,软工
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季软件工程(罗杰 任健) |
这个作业的要求在哪里 | 2021年软工-热身阅读作业 |
我在这个课程的目标是 | 认识软工,拥抱软工,提升相关能力以便日后与其朝夕相伴 |
这个作业在哪个具体方面帮助我实现目标 | 总结过去,展望未来,与软工Say Hi |
一、前言
Scalers在博客中向我们阐述大学生上课为什么一定要认真听讲,笔者在阅读博客伊始便产生如下困惑:
你在上课的时候,是认真听讲,还是在聊天说话玩手机?
即Scalers仅仅预设两种情景,但是结合自身经历,往往存在第三种情景:在上“水课”的时候全身心投入地完成“硬课”的任务(或对自身能力有提升的任务)
所有课程真的都有认真听讲的必要么?在水课上认真听讲与在练肌肉时选择重量过轻的哑铃不停地训练有何差异?难道不应该选择略高于自身肌肉力量可以承受的重量(比如完成硬课中布置的有难度或挑战性的任务),以此进入心流的状态,肌肉力量(个人能力)才会真正得到提升么?
至于为什么存在第三种情景:
- 为了学分要求,除了硬课外,还需要选择水课获得学分
- 水课往往没有硬课实打实的考核方式,侧重平时成绩,所以需要去上水课以获得平时成绩
- 硬课需要课下投入大量的时间钻研并完成所留任务,所以在所获甚微的水课上全身性投入地完成硬课的任务很“划算”
所以鉴于存在第三种场景并结合Scalers的论述,笔者更加认可的观点是:
- 任何课程在最开始的时候都至少需要几节课的认真听讲,如果在认真听讲的过程中,无法体会到老师对课程的精心准备(比如全程自顾自地念PPT,甚至是word文档)或者无法从中获得能力的提升(比如老师总在泛泛而论,无个人见解与指导,即水课),那么在这种课中便无需认真听讲,转向完成其他对自身能力有提升的任务更加“划算”
- 上课认真听讲的确可以培养专注的能力,但是在学院设定的有体系的、精心打磨的硬课上认真听讲足以提升专注的能力,足以掌握这个时代“稀缺的能力”
- 认真地对待自己的每时每刻,为每一时刻赋予其应有的价值
二、结缘计算机
1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
说来惭愧,人生中的前18年与计算机最大的交集可能只有游戏吧,当然游戏也仅仅停留在带来快乐的层面上,也没有萌生开发游戏的念头。
生长在县级市,高考之前的生活无忧无虑,自由自在,可以算作实实在在的“小镇做题家”了吧(苦笑),当然和这位博主和这位博主的初高中生活相比,可谓是天壤之别。
高考那年大数据、人工智能正炒得火热,加之高考分数尚可,便决定来到北航信息大类,又因为对数学的热爱,在经历大一苦哈哈的基础学科的学习之后,有机会也很幸运地来到计算机学院,进一步探索计算机的奥妙。
2.计算机是你喜欢的领域吗?是你擅长的领域吗?你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
经历了三年的计算机相关课程的学习,可以说是喜欢计算机这一领域,在某些方面比较擅长,还没达到热爱的地步。
笔者认为学习可以大体分为三个阶段:
- 感知
- 重复
- 创造
以笔者正在研究的NLP为例:
- 第一次接触NLP是清华大学孙茂松教授来北航开讲座,他向我们展示了九歌系统,展示的过程即为感知的过程,虽然之前也参与过计算机视觉领域的讲座,但是当时九歌在我心中产生的触动是任何CV现有成果无法比拟的(可能也与自己从小更喜欢和文字打交道有关?)
- 大二大三便处于重复的阶段了,找来网课一步步复现NLP发展过程中提出的模型、方法,重走一遍前人的路,找来现有论文,紧跟研究的步伐,在重复中学到新的知识
- 希望未来可以早日进入创造的阶段,将投入转化为有价值、有创新地产出
在感知的过程中,产生了最朴素的喜欢;在重复的过程中,达到了某种程度上的擅长;在未来创造阶段,才能体会到热爱的浪漫!
三、在计算机系里学习
1.你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
对大学生活的吐槽还是有的,比如学院至今也没有完善的培养方案,比如存在一些被历届学生骂的很惨但仍未做出任何改变的课程等等。
理想的大学教育是寓教于实践,即在做中学,而幸运地是,这一点与目前北航计算机学院的培养学生的方式恰恰相同:计算机组成原理、面向对象设计与构造、编译原理等等课程除了理论教学外,均需要完成课程设置的实践任务,让我们在实践中得到能力的提升。
如果总结一下已经过去的大学三年的学习生活,应该是金字塔状的:
- 大一,探索:从高中到大学,接触的事物、理念、观点等急剧增加,所以在大一时给自己定的规划是积极探索,不囿于某一方面,凡事均尝试,同时打好基础
- 大二,拓展:在大一的探索中,确定几个自己感兴趣的方面,在大二的时候进一步拓展相关的知识面,同时不再向不感兴趣的方向投入时间
- 大三,钻研:仅仅保留1-2个技术栈,潜心钻研,同时在不断实践中得到更深层次的理解
得益于大类的培养方式以及计算机学院强调的在实践中成长的核心理念,笔者的学习“金字塔”在逐渐成型,和这篇博客相对比,笔者认为目前北航计算机学院和国外教学做的很类似,比如计组课上从0搭建CPU,面向对象课程完成单元任务的过程中均有详细完善的指导书和细心投入的STAR学生助教,课程也会根据学生的反馈进一步调整,改进。
当然,计算机学院的某些课程也存在内容陈旧等问题,无法像国外教育那样在课堂教学中保证教学内容的前沿性(从这篇博客中可以略窥一二),但这与国内某些领域起步较晚以及现有国际形势下的技术封锁相关,笔者相信经过科研人员的不懈努力,国内的科研成果会赶上甚至领跑国外的,未来会有与国外教育相媲美的,具备本土特色的国内大学教育的!
2.迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
大致在1w行以上,具体而言:
- 大二上学期的Java程序设计,当时完成的是结合文本处理的简易聊天软件,码量大约在1500行左右,第一次使用java语言及第一次应用多线程
- 大二下的面向对象程序设计与构造,共4个单元, 每个单元3次任务,完成所有任务的码量共计4000行左右
- 大三上的编译原理,利用C++搭建了包含词法分析、语法分析、语义分析、错误处理、代码生成和代码优化等完整功能的编译器,码量大约在3000行左右
- 各种前端项目,包括从0手写js、css和html的大一走软项目,到后续利用Vue组件搭建的数据库前端项目,以及机器学习自动化、化学学院基础教学网站等前端项目,码量大约在6000行左右
- 对NLP领域内现有模型及成果的复现,码量大约在3000行左右
最复杂的软件项目应该是为化学学院基础教学网站搭建的前端项目(目前还在化学学院内测中),当时搭建的时候需要兼容很多外部调用的工具,写了很多适配器最后才能正常工作orz,算是实现了从用轮子到改轮子的跨越吧。
四、未来规划
1.对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
未来希望读研后从事NLP领域内的相关工作
- 技术道路:继续加深前端相关的技术栈,以及进一步构建NLP领域的技能树
- 职业道路:未来从事NLP相关岗位工作,如果未来人工智能发展到达瓶颈的话,会考虑回归到前端开发,或者动画设计(作为OO助教为今年OO课程设计制作了宣传动画也极大地提升了笔者的自信心)
- 社会道路:希望以后可以留在北京的字节、百度或者微软亚研院从事NLP研究
特别喜欢这篇博客中的这段话,也是我渴望追求的:
做自己的主人。不要辜负上帝给我们的聪慧的大脑,用它来独立地想问题,用自己的眼睛来看世界,用自己的心灵来感受,用自己的金口来提问。不要害怕,不要退缩。
进入大学后,接触的事物越来越多,心态也愈加浮躁,希望自己可以沉淀下来,独立地思考问题,用心对待每件事,在自己选择的道路上坚定地走下去!