软工第一次作业--热身阅读

项目 内容
这个作业属于哪个课程 2021春季软件工程(罗杰 任健)
这个作业的要求在哪里 个人阅读作业#1
我在这个课程的目标是 完整的体验一次软件开发,和同学合作做出一个有用户的软件项目;在开发过程中学习工程化方法;在体验中明确自己的想法与目标
这个作业在哪个具体方面帮助我实现目标 通过阅读他人的经历回顾与总结,对照自身的经历与想法,明确自己的未来发展与努力方向;借鉴他人的学习方法并进行改进,将其适用于自身

0.写在之前

其实总的来说,我是十分感谢这次作业的,原因有如下几点:

​ 首先,由于大三下这个特殊的时期,很多选择和压力都堆积在这个时间段,导致整个人真的是特别浮躁,无论是看书还是学习。在此次作业的“强制”要求下,我花了不少的时间来阅读推荐的博客,强制自己边读边思考,而不是像读网络小说一样不带脑子的一目十行。在这个过程,自己能够明显感受到心态有些变化,浮躁已经不再那么影响显著了。

​ 其次,虽然时常听到说要进行未来计划和规划,也又在一点一点的思考,但是总感觉收效甚微。在这几天静心研读大佬们的博客之后,结合大佬们的学习、就业和人生的经历和思考,我似乎好像一些想法了。虽然不能说完全明晰自己的未来规划,但是我认为也还是有了一定的进展吧。

​ 最后,确实早已耳闻软工的任务艰巨性,也在三门软工课程的选择中思考良久,最终也算是由于想要进步与改变而选择了这门课程。当然希望自己能够在接下来的学习中,更加理解大佬们在博客中的所说的内容以及明确自己的想法吧。

​ ps:虽然我习惯于在自己的日记本上记录这些与自己息息相关的思考与想法,但是由于作业的要求,此次就以博客的形式来替代自己的日记叭。

1.结缘计算机

1.1 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?

​ 严格来说我接触计算机不算太早。小学时,听说过赛尔号与摩尔庄园之类的电脑游戏,总共来说接触电脑玩游戏的次数屈指可数吧。初中的时候由于寄宿以及想要考一个好的高中,几乎可以说是没有接触。在初中毕业的时候,听说了有同学学习编程并在老师的带领下做出了一个完整的小游戏的时候,可以说是真正令我羡慕和激发我对计算机的兴趣的机缘。并且在此时我们家才有第一台电脑,由于没有任何指导和想法,此时的电脑也只是个打游戏的工具而已。上了高中,凭借着之前仅有的兴趣,我参加了学校的信息竞赛培训,但是也仅仅只有一个月,在综合考虑升学和学校的信息竞赛实力水平之后,我选择了退出,成为了一个普通的高考生。可以说是在上大学之前,我对计算机的了解可以说是很少的了。

​ 结合以上来看我选择计算机专业的原因就很少、很明显了,其一是初中时激发的想要做小项目的兴趣,另一就是该专业的丰厚报酬了,我也不怕谁说我的想法浅薄,毕竟这确实是我最真实的想法而已。之后的过程就自然而然了,结合自己分数结合北航的计算机实力就来到了北航,并在一年的学习之后成功的进入了计算机学院学习。

​ 羡慕这篇博客 我的软件开发生涯 的博主,从小就接触操作系统,接触DOS,Pascal等,即使小时候没有系统学习,但是根据兴趣随便玩玩,也对自己今后的从事计算机行业相关有着很大的帮助。我从小没有太多的接触计算机相关,并且也没有这篇博客 掉进读书的兔子洞 博主的良好阅读习惯和思考习惯,导致认为自己现在的实力着实一般,算是自己比较后悔和遗憾的地方吧。

1.2 计算机是你喜欢的领域吗?是你擅长的领域吗?

​ 就想要开发出一个属于自己的项目的角度来说的话,计算机应该还算我喜欢的领域。想要搭建一个属于自己的网站,想要开发一个自己所想的游戏,羡慕网络穿梭的黑客白客,这些也算是我一直喜欢和学习计算机的理由吧。

​ 擅长计算机?那完全不可能的。时常看着大佬们在比赛场上自信解题,竞速榜上遥不可及的成绩,专业课碾压我的成绩;再看看自己的惰性、缺少的良好阅读习惯和自律,擅长一说可真拉倒吧(捂脸.jpg)。

1.3 你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?

​ 本来想回答热爱的,但是仔细看看后面的问题,好吧,那只能是不够热爱了。专业课的书好像都没有完整的看完一次,天天烦恼自己掌握的知识不够,自己的算法能力过于菜鸟,好吧,这好像确实是不够热爱的表现……

2. 在计算机系里学习

2.1 你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。

​ 其实仔细想想我想要吐槽的点好像更大的问题在于自身吧。比如贵系的“内卷”风气,在绩点和保研的压力下,大家的选课导向一致变成了任务量小并且给分高,为了抢这些课出现了各式各样的抢课脚本,这应该是大家大学里最用功做的事了吧。为了得分高,选做也变成了必做,3000字也能变为6000字……虽然我现在也是这些人里的一员,但是想想这更多的是自己选择的后果吧。本没有必要去选那些分高但是自己不太喜欢的课,没有必要去翻倍写那么“水话”,没有必要去为了“内卷”而“内卷”,可惜奈何自己活成了自己最讨厌的那种人……实在想要吐槽的就是这飘忽不定的培养方案吧,几乎每学期选课前都要确认一次,以及缺少一学期的一般专业加上莫名多出来的4学分核心专业还不减少一般专业学分,就过分刺激的度过了大三上学期。以及感觉北航的课业压力真的很大,我了解到的参加社团活动的大多都迫于学习等事务的压力而退出了。

​ 理想中的大学教育可能是在学习上老师引导理解学习课程的重点内容,及时的交流和反馈,并且给出扩展知识的学习和了解方向,和有兴趣学习的同学交流而不是作为一个加分的学习内容,指引内卷。同时也会课上课下结合学习,而不是课上仅仅指导学习方向然后所有的学习内容都放在了课下,疯狂占用课下时间。在一定的学习压力之外,能够给予同学们一定的时间进行喜欢的社团活动,能够稍微容易的平衡学习和社团活动,而不是两方必须做出取舍或者直接不惜身体爆肝来平衡学习和活动。当然这仅仅是自己理想的一种情况,或许完全不现实,或许也存在不合理的地方……

​ 国外的教育,我没有亲身经历过,仅仅是根据他人的说法进行了一定的了解。最常听到的应该是国外课堂上的频繁互动和交流吧;当然还有老师和同学们更加重视实践,几乎所有学习都要以一种实践的形式来完成;教育以激发同学们的思维活力和创造力为主;不以“绩点论英雄”,或者说不会过于看重绩点和最终成绩;所有任务都会分布在平时之中,还有有严苛的时间表来push,并且给予改正的机会……这些点应该暂时是国内教育不能做到的吧。首先,中国的人口就决定了我们无法像国外那样小班教学,有充足的物力人力财力来让每一个学生都亲身经历和实践。其次,根深蒂固的一种固化思想吧,从小学开始的接受的教育就是认真听讲,听老师所讲的所有内容,完成老师布置的作业,一切都是一种灌输式的方式,以致于丢掉了自己探索真理的机会和乐趣,导致课堂上更多的只是被动的接受老师讲的知识,少了交流与思考。以及小学时的“要考高分你才能读一个好的初中”,初中时的“要考高分你才能读一个好的高中”,高中时的“要考高分你才能读一个好的大学”,以及大学时的“看绩点保研”等,一切的一切都是以分数论,于是大多数人都成为了一个无情的“小镇做题家”。虽然这些也是经常被人提起的问题,但是这不是短时间内就能够得到改变的,不过不得不说的是,现在大家的想法都有了一定的转变,至少我们一直在进步。

2.2 迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。

​ 计组大概2000+行,OO大概4000+行,编译大概3000+行,自己私下做的杂七杂八的东西有2000+行。可能最复杂的还是编译的课程设计吧,从零开始,按照指导书所指导的方法完成的比较整体的项目,大概能算一个比较完整的项目了。

​ 挺遗憾的是代码量好像并不怎么大,以及最复杂的代码量最大的是课程作业,而不是自己对计算机方面其他感兴趣的、自己玩的项目,tcl!!!

2.3 速成的培训班和打基础的大学教育还有mooc之间有区别吗?

​ 这个问题我也算有点体会,自己私下学习的时候并不是看书通过阅读书籍来学习,而是通过查找网上视频,也听过一些网上的培训班视频。视频都是先学一点高级编程语言然后再完成一个项目,就学完可以出师了。仔细听过一点,遇上了底层一点指针啊什么知识,几乎都会说不用了解那么多,你记住就好,好家伙,真就是标准码农生产机器啊。相比于速成的码农培训班,打基础的大学教育无论是从知识学习的角度还是多年的代码量的积累,亦或是代码理解的深度都更强一点。大学教育应该更加看重的基础的掌握和未来深造的基础潜力,深入理解底层逻辑,以便更加灵活的和容易学习研究更丰富的计算机知识,这应该就是二者最大区别所在吧。

2.4 学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?

​ 有过,特别是最初学习时看不到数学和计算机的明显联系的时候,和学不进去数学的时候,总会想这个问题。但是在我接触过计算机图形学之后再也没有这个问题了。曾经有段时间对图形学特别有兴趣,于是开始学习openGL,入门的时候就开始要求线性代数,几个图形视角的线性代数变换直接让我傻掉了,原理不懂,代码更加看不懂,于是边复习线性代数边学openGL相关知识,并且再也没想过这个问题了。

​ 这应该是我解决这个问题的契机吧,而且随着更多知识的学习,各种算法的学习,都由于对数学知识的理解不够深刻和牢固常常困扰很久,而且很多时候都是数学的进步导致了计算机的进步,这也是这个问题有力的证据吧。对于其他学科我体会不够深刻,我想应该也能相似的理解吧。

3. 未来规划

3.1对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?

​ 未来想法的话,其实自己也算不是很清楚计算机行业的不同方向,所以具体的规划或者想法应该是没有的。但是总的来说的话,首先是打好基础,在学校内学好基础知识,并同时积极关注并涉猎IT行业的不同方向,争取早日能够确定自己的方向和努力的目标;其次,我应该是大可能要读研究生的,以此来学习如何做科研,如何进行研究,并以研究为基础来不断打磨自己的技术;然后就是以专研技术为主,通过不断的练习来积累技术经验;最后,我想要不仅仅只有技术,我还想逐渐向架构师或者产品经理转变,有自己的产品设计和产品想法,设计出既能符合市场有能融入自己设计的产品,同时我认为技术出身或者有技术背景的产品经理应该也能更好的和团队进行沟通设计吧。

​ 技术道路:太多的技术栈,知识点,在还没有完全确定的现在,应该还是主要是广泛涉猎一点。但是重点掌握和专研技术的一定的。

​ 职业道路:我应该是先就读研究生,然后再进入职场。没有太多的实习经历,暂时也没有太清晰的想法。

​ 社会道路:在掌握一定的技术之后,坚守道德底线,不进行滥用。我会通过我掌握的技术来做一些能够对社会有用的事,让自己“物”尽其用。

3.2 你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?

​ 因为我的道路选择是继续进行研究生深造,所以我会先去实验室实习。实验室有先进的实验设备,有长期做研究的导师、学长学姐等,在此我可以了解到先进技术的研究方向,向大佬们学习和请教研究经验,如何提出并解决问题,为自己今后的研究道路做准备。待自己研究生毕业之后,再来考虑企业实习和步入职业的具体事宜。

4.关于上课认真听讲

作者在这篇博客你为何要来上课并且认真听讲里提出无论怎样的课程,上课都应该认真听讲。但是我不完全赞同作者的观点。

​ 我的观点是上课应该要认真听讲,但是可以有选择的听讲,但同时对于未被选择的课程,一定要及时采用其他手段补充学习,或许会是一个更优的的选择。

​ 课程讲的不好不能成为不听讲的理由,我不完全认同。不可否认的是,有的老师的自身能力真的是很强,但是在授课内容和技巧方面,很容易得不到大家的认可。那么对于这样的情况,我们去花时间和精力去网上找一个相似课程、并且他的讲授更容易让我们理解不是一件更好的事情么?某老师也说过,对于授课不被接受的老师,我们应该申请换老师来授课,而不是在课堂上浪费双方的时间。此处强调一下我是不完全赞同这个观点,而不是不赞同。我认为对于讲授不好的课程,我们可以想办法去听讲课讲的好的老师的课程,而不是强迫自己去听浪费双方时间的课。

​ 对于作者剩下三点理由我是十分认同的,大学课堂确实和高中课堂一样重要,很多的知识体系,细节知识点都是在课堂上讲授的,上课认真听讲会有利于我们的专业素养的提升。但是我认为,在重要课程且能够听懂并跟上老师思路的课堂上认真听讲,而对于不能够理解老师所讲,课程讲授不够好的课堂上,我们可以做自己的事,并且课下一定要寻找相关优质课程进行学习,或许是一种更好的选择。在线上教学已经相对较成熟的现在,网上的各种优质课程层出不穷,我们其实很容易找到极个别讲授不好的课程的替代课程。相比于花费时间在个别课堂上为难老师和学生,更有效的利用时间去学习线上优质课程不是一个更有的选择吗?

​ ps:虽然我的观点与作者不同,但是我发现了一个有一点无解的问题。从成绩的角度来说,上课是在学习知识但同时对于“保研党”和“出国党”来说,成绩也是上课的一个很重要的产物。那么上课听讲,听考试重点和难点就是一个很好拿高分的方法。但是这样就导致对于讲课不太好的课程,也必须去听讲,因为你要最终成绩。同时,即使线上课程再好,再优质,它也很大可能存在体系有偏差,重点不一样的问题,所以为了考试,为了拿高分,不得不花费时间去听本没有必要听的课。这或许也是我坚信我的观点,但我不敢行于实践的主要原因吧。

5. 参考博客

Scalers:大学生上课为什么一定要认真听讲?

辜新星:时刻调整方向 找到人生的蓝海

徐宥:掉进读书的兔子洞

我的软件开发生涯 (10年开发经验总结和爆栈人生)

对程序员职业的一些建议

美国视界(1):第一流的本科教学课堂该是什么样?

现代软件工程讲义 0 教学方法

posted @ 2021-03-09 21:18  cyy369  阅读(129)  评论(2编辑  收藏  举报