软工热身——回顾&展望

项目 内容
这个作业属于哪个课程 2021春季软件工程 (罗杰 任健)
这个作业的要求在哪里 第一次阅读作业
我在这个课程的目标是 从实践中学习软件工程相关知识(结构化分析和设计方法、敏捷开发方法、软件测试、软件项目管理、软件开发工具和环境等),培养合作开发能力
这个作业在哪个具体方面帮助我实现目标 总结过去,对比其他博主的经历,反思自己在技术上和技术外的缺失,以更好规划未来

第一部分:结缘计算机

我为什么选择计算机专业?(必答)

在985吧,剃头哥为代表的伪化生劝退者发表了大量阐述天坑专业危害的言论,使得正在填报志愿的我接受了“专业比学校更重要的观点”。关于专业推荐,当时知乎和9吧主流的观点是:金融热潮正在衰退,门槛提高,起步清北复交;医学后期职业,社会地位有保证;计算机万金油,进可进大厂快速实现财富积累,退可考公务员,稳定清闲。因此,对医生职业天然抵触的我自然地选中了计算机专业。

简言之,选择计算机专业并不是出于兴趣,也并不是完全的巧合,而是以就业前景为目标,收集、综合信息后作出的选择。于是乎我先选择了计算机专业,再在可以填报的一众计算机强校中选择了北航,最后通过大一一年的学习,成功分流进入了北航计算机学院。

我认为我的条件如何?和这些博主比呢?(必答)

直到进入大学,我才第一次接触编程,因此,对很多在高中甚至更早就有着信息学竞赛经历的同学,或者博主I这样中学时期就在钻研软件开发的人,我一直非常羡慕。不仅是对他们已有的技术段位感到渴望,更羡慕的是他们对于计算机科学与技术这个庞大学科的整体有了初步的认识,他们有着一套适合自己的摄取专业知识的方法,他们有一些圈子,一些志同道合的朋友,可以分享交流技术。这些东西都是我欠缺的,我苦恼于无法进入大佬们的圈子,无法理解他们谈论的内容,感觉自己被远远甩在后面。

但当我大二进入计算机学院之后,逐渐发现在CO,OO,OS这些核心专业课上,我也可以通过付出多一些的时间,获得一个相对较高的分数。起跑线的差距是客观存在的,但是努力也是有成效的。

再将视野扩大一些,虽然我只是北航计算机学员中非常普通的一员,但和国内每年数百万的大学生比,和同样从小地方出来的高中同学们比,已经站在了一个不错的平台上。虽然和身边甚至顶尖名校的大佬们比,我的条件基本空白一片,一时难以追赶;但是如果能够利用好这个平台的资源,把眼前的挑战完成好,也算不虚此行。

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

我觉得我对计算机并没有纯粹的热爱,只是喜欢学习过程中一些及时的回馈:我喜欢看AC时的绿色,喜欢调通一大段代码的感觉...这和中学时期的我因为擅长数学、物理从而喜欢上数学、物理课没什么区别。这个领域的很多知识对我很有趣,但是要掌握它们经常需要经历一个很头疼的过程;在这之前,我常常被大篇幅的英文文档,或是通篇晦涩难懂的博客(因为自己的知识基础并不足以支撑自己读懂),或者是百度不到(在学习计算机的很长一段时间内,可能是我惟一使用的搜索引擎)的玄学问题劝退。缺乏内在的持续学习动力,使我在这个学科上付出的时间并不足够,因此它并不是我擅长的领域。

第二部分:在计算机系里学习

我对我的大学生活有什么想要吐槽的地方吗?(必答)

在很长一段时间里,我的大学生活里的正经事只有上课,而且即使是听课完成作业这种学生最本分的工作,都让我觉得自己像个异类。大一时候班级整体的氛围让我有种还处于高中的错觉,每当出去自习或者在宿舍学习被其他同学看见,总是少不了“还在学习啊,都学了一天吧”,“太强了”这样的问候。

我觉得最遗憾的事,就是没有在更早的时候看到最优秀的那批同学在做什么,以至于错过了很多大学生活中的可能性。当周围同学在学业上都没有什么追求时,我一度陷入自我怀疑,毕竟论基础和视野,小地方出来的我比他们中的大部分还要差不少,我的野心是不是远高于我的客观条件?

我理想的大学教育应该是什么样子的?跟学校给我的有什么区别?(必答)

我理想中的大学教育应该首先让学生看到各种可能性,而不是只有一个模糊不清的培养方案,虽然这些可能性我也可以从师兄、从同学那里了解。

我理想中的大学教育,每一门课程都有匹配其授课时间的价值,有相对统一的给分标准。或许这样,我们就能够从唯分数论中摆脱,选择一些真正自己感兴趣、有价值的课程,而不用费劲心思争得一两门给分高的课,即使它对于个人成长的价值不高。现在的6系中,存在这样的一些专业课:每周的任务是机械复制粘贴指导书中的命令行,没有任何原理学习;存在着这样的一些专业课:课程名字非常技术向,但实际的教学内容仅仅是如何制作 PPT 画大饼;存在着这样的一些专业课:期末考核时一个完成度较高、界面美观的程序和一段玩具级别的代码得分完全相同。

我一直觉得大学生的格局确实不应该局限在一纸分数上,但是升学确实是很多同学要面临的最现实的问题;因此只有评价体系相对公平,课程质量都在及格线以上,才能够促使同学们在追求分数的同时,发展兴趣,收获真才实学。

比较我在中国大学的经历,我的老师和学校能做到和国外那样吗?为什么?(必答)

肯定还是有很多不同的。

首先国外大学的自由度会更高一些,比如脱产实习,gap year,本科学习时间也不一定就是4年。相伴的还有管理的相对松散,一般没有什么班级的概念,也就没有辅导员保姆式的监督服务,完完全全是自己对自己负责。国内没有学习这样的模式,我觉得是正确的,因为中国基础教育模式和高考制度下的教育体系使得大部分学生缺乏自我管理、自我规划、自我激励的能力。如果失去了外力的提醒督促,有可能出现适应不了大学生活的情况,毕竟即使是现在,导员在通知群三令五申的内容也总有人忽视。

国外大学似乎更看重团队合作。在我和国外同学交流的过程中,明显感觉到他们小组形式的project更多,而且对待合作的态度更加严谨。具体来说,就是他在合作中会有一些比较正式的交流讨论,并且有相应的会议记录,如果遇到合作态度消极的队友,也不会惯着,而是及时向老师、助教报告。

国外大学中,本科生似乎有更多与老师、教授面对面交流的机会。比如在 office hour 中,不管是学术问题还是人生困惑,都能得到教授们的建议。在国内,基本没有 office hour,这可能是因为国内大学多为公立学校,师生比略低一些(例如,在 2021 QS 排名中,北航综合排名449,但师生比却排在532位;综合排名23的北大,师生比仅仅排在160位);此外,在国内大学的考核体系下,教师们也更难挤出这样的大块时间。

迄今为止,我写了多少代码,描述我做的最复杂的软件项目/作业。(必答)

项目 行数
C语言程序设计 2000
数据结构 3000
计算机组成原理 2000(重复较多)
面向对象设计与构造 5000
编译原理 4000
数据库大作业 500

算法课伪代码写了不少,但是实际实现跑起来的代码并不多;其他各类大作业零散也有一些代码,但主要是在开源项目基础上的一些小的修改、调用。因此,总的代码量大概 20 k 不到。

其中比较复杂的项目应该是编译原理课程中实现的类 C 文法的编译器。编译器包括词法分析、语法分析、语义分析、中间代码生成和优化、目标代码生成几个部分,同时拥有错误处理功能。不过整个程序的逻辑并不复杂,从遍历输入开始,进行多轮扫描,以上一轮输出作为输入,进行分析/优化。

数据库大作业是一个较简陋的不考虑并发 web 项目,但也是第一次体验数据库设计、前后端开发、部署、测试的较完整过程。

第三部分:未来规划

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

目前是想继续深造,起码读个硕士,然后试着竞争一下互联网大厂的算法岗,虽然我并不赞同“读完研究生还去做开发,研究生不就白读了”这样的观点。此外,去金融领域做业务一线的程序员似乎也不错,比如量化算法、风控模型。不过如果需要去搞量化的话,肯定还需要一些金融背景,毕竟本质还是投资,计算机只是辅助工具。但是主要搞运维的技术岗就不是那么有趣了,关于银行的技术岗,陈皓博主也提到

最主要的是,由于初到银行,很多技术和产品从未见过,而主要实施却由外面公司来完成,银行自己内部中有经验的人又不愿意与人分享知识。虽然可以拿很多红包,整天也很清闲,不是看报纸就是打游戏,但陈皓感觉到那并不是自己喜欢的工作,没有任何激情和斗志可言。和大四时在那个软件公司中的技术氛围相比,完全就是天壤之别。

对于进入互联网大厂后干到35岁之后何去何从,就需要看那时候积累的能力、财富、人脉能够支持我做出什么选择。最近看到两会中有关于放宽考公年龄的提案,或许以后还能多一条退路。

对于技术道路,我非常羡慕陈皓博主能够如此广泛地涉猎各类技术

在到上海的头一年中,看了四、五十本书,研究的技术包括 PB, delphi, SQL, HTML, CSS, DHTML, java, Perl, CGI, ASP, PHP, JSP, XML, UML, MFC, Lotus Notes, Unix, Oracle, Informix, C++, ActiveX, ODBC, ADO, .NET, COM, 乃至 CISCO 路由器的配置, Photoshop, 3DMAX

如果有机会,我希望自己能够多懂一些,但是由于起步比较晚,不可能一口气就成为全栈大佬,还是需要首先瞄准一些小方向,学习并且深入。目前比较感兴趣的领域是CV,但也在涉猎别的一些领域,尝试对计算机领域的各个分支做初步了解,也希望能够在这个过程中找准兴趣点。

实习经验究竟有多重要?是否需要马上开始积累实习经验?

就我了解到的情况,一线互联网公司似乎对于本科生的项目经历要求并不高,好的项目固然是加分项,但是项目经历少的本科生也有很大的机会,只要能在面试中体现出扎实的基本功以及算法思维。

有升学规划的我目前还是偏向实验室实习,或许能够帮助自己更早进入研究生状态。至于研究生阶段的实习经验,和一些学长交流过后,我觉得如果能够跟着导师做一些有意义的项目、研究,也不一定非得去企业实习。

posted @ 2021-03-10 21:47  潜行的蚂蚁  阅读(125)  评论(4编辑  收藏  举报