首页 转载:来自Augists大佬的本科三年总结
文章
取消

转载:来自Augists大佬的本科三年总结

转自Augists大佬的博客网站,原文链接

大三结束了,随着 5 月 29 日最后一门本科的考试英语草率收场,让我觉得突然我的大学就要结束了 :(。当时在寝室里收拾东西的时候还颇为感慨,大学本科四年,19 年入学半年后的 20 年寒假就遇上了疫情,学校开始居家、线上、封校,可惜了只过了半年的正常大学生活。相比于 20 级的惨在于,它像是让你见识了大城市的繁华,突然把你打回乡下。巨大的落差感让人对大学生活充满幻想,又不得不向现实低头

从进入大学之后,我便会每年在 12 月 31 日前回顾自己一年的收获和反思,并将它整理成一点文字。尽管我没有什么文笔,写的可能也只能代表一小部分,但是我仍然希望如果有人因为看到了我对于自己本科学习生活、社会工作、科研科创等方面的回顾和思考,对自己的目标或态度有所影响。希望它不管是对我自己的反思和回忆还是对看到我所写的回顾的你都有帮助

Self

先简单自我介绍一下,详细的一些内容会在 review 部分里写。

Augists,SSDUTer,网络工程系网络安全方向大四

  • 学委,常年教务对线,尤其是 2021 年小学期网络推荐课表全部被挤掉一事与学校沟通的代表
  • DV Studio 副部,一整个大二都在给学院和校区干活
  • 校区心协理事部部长,办活动总指挥+苦力
  • 网络与开源软件协会NAOSI会长,详见

Review

大一上

对于大部分人来说,在进入大学前,可能都没有接触过编程,甚至很多人都没有接触过计算机。这一点在高中改为 3+3 模式后应该后明显的减少,但是在我们这一届,明显很多人都是被调剂到软院的。在大学入学前,我也是这里的大部分人:没有接触过编程,对电子设备的了解浮于表面,只会背背参数,听听别人说谁好

编程对我来说是一个完全没有接触过的领域(其实小学的时候看过一眼 VB,但是仅限于会添加一个 print on click 组件)。高考从一模的全青岛市100名左右到最后高考考砸,再加上被甩,对我的打击确实非常大,但是这也导致我在大一上期间试图让自己把所有精力放在我需要干的事情上,而不是坐在那里空想

高中说实话,我一直认为自己只学了一年多一点点。高二的6月份搬进高三楼的那一个月时间刷透了一整本物理的《龙门专题》之后,物理就基本不怎么需要学了。高中的前两年英语一直是班里的倒数,属于天天被英语老师揪到办公室骂的成员之一,也在我高三上刷完一整本《天利38套》英语卷之后就稳定在了135-140左右。数学这种学科更是从小就没需要学过,所以我的高中除了化学是因为特别喜欢老师,所以一直有在学习之外,其他学科都只学了很短的时间,就打通关了

但是到了大学之后,作为一个高中学习《中等数学》的人来说,我可能没有遗传到家族里的《高等数学》。大学数学对我来说和前面的数学跨了一道很大的鸿沟,因为那种根本不需要学、题目看一看就自己全悟明白了的感觉一去不复返了(在这一点上,很对不起自己遗传的天分。在应该发挥能力的时候贪玩了

尽管我知道数学很难,但是我还是一如既往对它没有什么兴趣。所以我大一上的时间都花在了编程的入门上。我一直非常感谢能在大一上的编程入门选择软国院长樊鑫老师的双语C,课程使用C圣经《The C Programming Language》作为课本。一方面老师在课堂上会注意将所有的专业术语都用英语表述和强调,另一方面也会对于每一个例题现场用记事本进行编写和debug,讲透了每一个例子中的精妙的设计。因为对这些都没有接触过,其实最开始是基本没有完全自己编写代码的能力的。印象里大一上是每天去图书馆,对着xcode,捧着英文版的C圣经,一边读和标记不认识的单词,一边照着书上的示例代码敲。毕竟是C源码,书里的一些代码设计在当时看来特别妙,有的需要反复看才能明白为什么这么写更好,也有的会在老师点的那一下悟到。

一开始对着书上的示例代码“临摹”,也在一定程度上帮我确定了初期的代码规范,这在近些天看到新生问问题的时候给我看的代码时让我特别感概。我在最开始没有接触过formatter等的情况下就一直在模仿K&R的缩进风格,并且对于代码设计的研究也让我自认为在大一的时候肉眼debug能力要强于绝大多数同学。印象比较深的是嘤嘤奇的链表错误,无法通过报错信息反推到具体的错误位置的时候,我直接眼看debug发现的if条件内判断顺序的问题

因为没有基础等因素,让我在大一上没有接触acm,这一直让我感觉非常遗憾,这也是让我非常耿耿于怀的一点。同样没有基础的高中同学,在neu和ouc都成为acm成员参与到比赛里拿牌子(甚至非cs/se专业),而在ssdut,很难。尽管如此,在大一上最后的新生赛(acm组面向新生的算法比赛)里,还是拿到了二等奖(我没记错的话,并且最后只有一等奖发了奖金:( ),并且在题解过程中我明确的知道后面我没有写出来的题目我有准确但是超出我能力范围的思路。不管怎么说,算法直到现在对我来说仍然是一个遗憾

除了专业学习,每当我返回头来看我的大一上,都会觉得是个奇迹。作为班级学委,邀请过学长和老师给大家讲过指针和导论、办过导师的科研方向讲座、在考试前组织英语和数学的模拟考试、在大一下疫情在家期间合办线上自习室等等,我班大一最后也成功拿到“优良学风班”。进入DV工作室,认真参与例会、完成作业,最后也作为拍摄参与了第一个微电影的制作。现在了解的多了,看过别人是怎么规划和度过大一生活之后,会觉得自己在专业上扩展的不够,只是最重要的是收获了用编程的思维去思考的能力(这个时候还不能说是用计算机的思维思考),然后把专业之外的时间贡献给了社会工作。可能以当代大学生的标准来看,我的大一上可能非常充实和精彩了,学习和工作都有个还不错的结果。但是以专业的角度来看,缺少了那一位能帮我指明方向和规划学习的学长

其实在入学不久后,我就进了wilna实验室,但是也仅限于每周去旁听例会的程度,一直没有勇气往前迈出下一步,科研。对于不确定的事情会自然的产生自卑感

最后,大一上的成绩排名在软院的20多名。在我对数学完全没有兴趣学习的前提下,这个结果也是合理的。我眼里的大一上可能就只剩下C和yjn老师每次上课先跑半小时的体育了(顺便,大一我班由于教务安排的问题,体育基本只能选乒乓球和足球的选课事故已在后来的督导会要求教务道歉

总的来说,在完全没有学长学姐指引的情况下,大一上整体还是充实着度过的。因为高中戒掉了游戏,空余时间都被我用更有意义的事情填满了。比较遗憾的只有在专业上没有更进一步深入

题外话:大一上计算过自己的开销💰,在每个月保持着至少一次出去玩的前提下,我每个月的花销还是控制在了800r左右。从小对金钱的观念就非常保守,一直到大二才有非常大的改观。并且我一直不是固定生活费,我习惯没钱了再要,所以生活费周期不固定,但是肯定间隔都会超过一个月的时间

大一下

寒假,疫情爆发。也是这个寒假,我纠正了我十多年来错误的打字习惯,先后购买了罗技k480(用了一个月就卖掉了,短键加上薄膜其实挺适合练习打字的,但是入门之后就不是很合适了)和ikbc poker(后来借“song”给了高中同学用,加上我自己改的陶瓷键帽

同样是这个寒假,我通过TheCW接触到了Vim。作为远古编辑器,它仍然值得我花费一整个寒假甚至更长时间去学习,直到现在我也无法说我掌握了Vim。不同的模式切换和hjkl,让我认识到手指移动距离缩短的概念,也让我最后选择poker这款60配列的键盘作为我的主力,这个观念一直影响我到现在

有关于远古编辑器是否还有存在的价值,以及与现代IDE的比较,我可能还没有资格去下定结论。但是,编辑与编译的分离和接触CLI对我来说的意义要比学习和使用Vim本身对我更重要,我坚信CLI是每一个coder的必修课,当然这绝不只是因为它看起来更酷。让更多人接触到CLI也是我下一年NAOSI最希望能做成的一件事

大一下天天在家线上上课。众所周知,线上约等于没有,我得承认我大一下就是不怎么好好听课。每天起床挂上会议就学自己的去了。这也导致我工数2这么没用但是学分最高的课我只有79分,最后的成绩单里,在一群100、99、98的人中间,赫然有一个79分(●°u°●) 」,最终的大一全年成绩排名降到了60多名(成绩这些东西我不怎么关注,所以可能会有记错的地方

那每天不上课在干啥呢?折腾Terminal。从Vim开始,我对CLI的热爱和执着就有点一发不可收拾。自学的坏处就是,当你没有一个明确的方向或规划时,就会做很多无用功,转化率也很低。但是好在,搭建了博客,开始用云服务器 and so on,因为本科生没有什么复杂的东西,所以姑且就说是向运维发展了吧,不知不觉间给后面能参与到项目里打基础

小学期似乎也是在家线上做的,那个时候我应该还沉浸在各种奇怪的知识里。不过课程设计是我第一次开始试图做一个完整的项目。因为大一期间一直选的是双语课,C/C++的项目大作业我最多只是辅助班里的同学,并没有我认为的实际参与进去。作为第一个GUI程序,我一开始想要写保卫萝卜,但是那个时候就觉得,所有人物、子弹都应该是同时进行,所以我理所当然的引入了我并没有学过的多线程编程,并且不出意外的在变量的共享上遇到了当时无法跨过去的问题。最后是学了一个GitHub上的2048,并且还第一次知道设计模式(因为人家用了,所以我也搬进去了)。尽管没有能完全自己实现一个项目,但是这个过程对我来说还是非常有意思的

大二

软件学院在进入大二之后的某个时间点,会进行专业分流,分为软件工程和网络工程,软件工程下设软件开发与测试、大数据、软件与金融、嵌入式(智能系统控制系)、水下机器人方向,网络工程下也分网络安全和物联网两个方向。实际上,不管是软工,网络工程,还是软国,只有在本科生阶段才有区分,不同的方向区分其实也没有那么夸张,只在几个专业选修课会有不一样。但是两个专业的人数、学习难度、课程分配等方面都会有很大区别,从我的角度看,肯定更推荐网络工程,但是我也希望你是真的喜欢网络等相关的才这么选择,整体上来说,选择什么专业根据兴趣来即可。

我们应该是在大二入学后的11月(忘记了)进行专业分流,我也完全没有犹豫就选择了网络工程系的网络安全,回忆起来,理由大概有以下几个:

  1. 我不喜欢随大流。网络工程系只有100余人,我们这届最后只有119人。相比较去人最多的软测或是排名靠前基本都会选的当前大热的大数据,我更喜欢找一个人少的地方做我更感兴趣的东西,即便它不那么火
  2. 在大一下期间,我接触的很多是和服务器等相关的,从名称上来看,相比与软件,我对网络的兴趣更大
  3. 大一结束之后的某个假期,我托我妈同事带我去她们的信息部门玩了一下午,和一位外派进的做安全的哥哥聊了很久的天。虽然时间不长,不能说有多么深入,但是也让我对安全相关有了一些了解
  4. 正好是选课之前,codesheep 做了一期有关大数据的学习路线图。相比于其他方向,从我对大数据工程师的理解上来看,它的要求非常低,学起来也不会很难,没有必要把这种内容放在课内进行学习,而网安的课程看起来更有意思

总之,最后就选了网路工程系,由于软件和网络分开排名,最终在网络排第五(忘了,也可能是第四

大二一年我感觉就没那么多好说的,我每天就是早上起来就去工作室,一直呆到晚上教学楼关门。几乎每天都会有大大小小的活找上来,可能是同学、部门、学院、校区。忙完迎新的一个月,dv出去大聚了一次,一晚上断断续续喝了4瓶多就被拦住了。瞧了所有大物和一部分数据结构啥的课,给工作室干活。由于正好各种事情都撞一年了,再加上隔壁软国没人、记者团翻脸等等多种因素,导致我们这一年的工作量非常离谱,挤占了非常多学习时间(换句话说,大二因为工作室的原因,没怎么学习),期末考试前的倒数第二周每天晚上都留在教学楼做图到凌晨,不到一个周时间带着10个干事出了不下100张图。不过我也因此接触了一些电脑硬件,经常给工作室的台式机清灰、换件,组环绕屏,装NAS,给工作室升级了一整套网络设备,跑测速跑出了 900Mbps(孩子见识少),还包括搭建了工作室的 ipv6 代理服务器等等。

大二重要的课不是那么多,但是考试并不很好。我当时觉得自己机组学的还不错,结果分就很低(顺带一提,我机组实验是全年级最高分)。这种情况还是挺多的,像是数据库、计网、OS这种,我在平时折腾的时候都已经积累了很多经验了,无论是在课堂理解上还是动手实践上,都要强过别人很多,但是他们三个我好像都只拿了90。大三的网综实验(可以理解为计网实验),每节课我组都早早做完,被一群人围着学(抄),出分后发现还不如后八周上课的同学(因为疫情等原因,后八周上课确实非常曲折,大三上的课一直拖到大三结束才弄完,所以合理怀疑给他们了主观额外加分

学习就说到这里,大二因为不怎么学习,加上我认为我能力很强的专业课都没有拿到高分,相当于摆烂了一整年,结果在网络排 15 名,大家这一年都在摆烂。最终前两年总成绩排在第 9(所有和成绩分数、排名等相关的东西我只能努力回忆,不能保证没有偏差,放出来是我觉得可以作为参考,我不怎么记得住这些东西

比较值得提及的是在科创方面。我觉得是比较幸运,遇上了合得来又很好的人。我们在大二下的4月底开始了DUTyard论坛项目,最开始站长其实是从淘宝买服务开始,到我们一点一点找项目搭建。一开始还搭建在我的树莓派上,挂载了一个硬盘盒和一块机械硬盘,晚上蹲在它旁边,论坛服务炸了就物理重启。晚上经常去找 mega 一块给论坛加各种插件。最终论坛在我还在维护的那半年成绩还算不错,注册了上千名用户,一共有7000多条讨论,并且还做了资料库,引入了课程评价等。这个项目也被我们用于参加了“互联网+”的普通赛道和企业赛道,并且在与华为高管的沟通交流中,很受赞赏(因为学校延迟同步的比赛通知,导致我们在省赛阶段错过了提交材料的时间,最后只拿到了省银,但我记得在与华为沟通的时候,对方已经明确说我们的项目有很大希望能拿到国金了,可惜尽管是企业赛道,评委会并不是企业,这件事对我们的打击还挺大的 通过DUTyard平台,也让大连的其他学校开始有人找我们做项目、打比赛。与经管的合作情况比较离谱,所以只拿了省铜,倒也无所谓了。和主校区的合作就比较让人大跌眼镜了,我们的项目和策划书等内容在已经提交并且不知情的情况下,被主校区经管、人文的某些同学重复提交,并且将奖颁给了他们,而他们是通过提出想要与我们在DUTyard的基础上进行新的合作连理知论坛的前提下拿到了我们DUTyard的项目。最终双方不欢而散,他们也用我们嘉禾连理的名字注册了公司(并且公司与我们无瓜,企查查可查),这件事被老师和书记压下去了,我这里只陈述事实不做评价

大二的小学期期间还去华晨宝马的沈阳工厂去打了个 Hackathon 的比赛,三天两夜的时间,题目我们做的是和零件运输和装车相关的。只记得玩的很开心,宝马的伙食也很好,每天晚上食堂给我们开自助(每天都能吃撑),中午虽然不能去西餐区打饭,但是几个中餐岛的饭都很好吃!(我直接恨不得住进食堂)。虽然吃饭也都算是比赛时间里,3天的时间自己规划和利用,但是这么好吃的饭(●°u°●)」(有点没出息)。我一开始做的有关python转换读取以及一些💡,想要用数据库的方法对数据直接进行处理,但是其他几个人的电脑都没有搭建好数据库环境,在第一天的尝试里把这个方案放弃了。于是就是,讨论算法,嘤嘤奇用c++实现,学长和我们把它转换成python以及做一些数据的读取和写入等,但是大家在第一天都比较放松。去打比赛的队伍里,我和嘤嘤奇一起报,正好遇上认识的本校学长,在主办方的协调下,我们最终五个人组成了Scream队,是唯一一个本科生组成的队伍。其他队伍还有清华、浙大、美国高校的学长,就导致我们从一开始就冲着成功参赛、快乐为主的想法了,甚至第一天还忙里偷闲去玩了会垫球,赢了手提包和圆珠笔。第一天吃完饭我回帐篷(对,宝马给每个人都发了一个帐篷,可以在他们会议室或者大厅搭起来睡觉)躺了一会因为放松直接睡着了,队友也没有管我,一直睡到8点猛然惊醒发现忘了是在比赛了。

第二天就比较紧张,因为我们发现题目比想象的还要难,比赛一共有三个方向的题目,选择我们那个题目的没有一个队伍将结果实现出来。我在第二天提出仿Tetris的装车优化方案,但是由于大家都无法得出比较好的结果,装车就只是由我和学长进行模拟并以动画的形式演示,它对于题目实现本身优化不会有运输问题的提升大。我们组在多次(多到评委都觉得挺烦的)和宝马的工程师们沟通交流后,成为了第一个通过 judgement 的组,并且在持续优化后得到了比评委之前所得到的结果更优的零件运输方案。无论是Tetris模拟还是我们对问题探索的精神,都得到了来自德国总部的工程师的肯定和赞赏,也是这些让他们在最后决定将冠军颁给我们(应该说弯道超车,我们和thu佬不是同一个题目,他们在他们的题目上做的非常出色,并且人家全英文答辩)。第二天晚上,我们组除了一轮答辩的汇报成员,都通宵了。我记得我们得到比评委的结果更优的方案已经是凌晨1点了,再加上做一轮的答辩汇报方案等,最后我又提前做了二轮答辩的方案。你见过凌晨四五点的沈阳嘛,我见过。那种忙碌两天两夜得到了最后的最优结果的感觉,几个人早上一起从会场出来,在宝马的园区里看太阳升起的感觉

大三

大三转去心协做理事部部长,说实话前两年在dv我就认不全人,大聚一下七八十个人,然后来了心协发现好家伙,也70个人,还因为叫人家粉帽子被嘲笑了,我自己部门也二十多个人,到最后也没认全了(●°u°●)」在心协的任务就是筹备和举办活动,但是只能说天时地利人和不能全要,二百多人参加的桌游活动因为操场的大风,剧本杀组被迫搬到了食堂进行。大三下的关心杯因为反复的疫情一直没法线下办,最后我一个人剪完了一整场关心杯改成了线上直播,也算是疫情妥协下能有个比较圆满的结局了。相比之下我们想的很多其他的活动就没有那么幸运了,有的因为疫情或是时间等原因被拖到无法举办。心协的海烧也没有办法出校门。

课程方面倒也没什么,网络的课程都集中在了前两年,大三只剩下一堆专业选修课还都是交大作业。我自认为我在几门例如病毒学、系统安全、网络协议栈、无线网络安全等课程学的还不错,病毒学做了一个Docker本地提权的实验和Dirty CoW病毒的实验,工作量非常大还很难实现,因为我所选择的题目比较难做,和孙伟峰老师也沟通请教了很多次,最后也整理成文档放在了我的博客里。仅Preference就有26个,那一个月的时间投入了非常大的精力在这个课题上。网络协议栈里我也把整个协议的源码做了解析,最终生成的报告就有100页左右。最感兴趣的应该是姚琳老师的无线网络安全课里所介绍的位置隐私,我在课程里提出的有关解决位置隐私的想法,虽然说的比较空,但是我自认为是在认真思考之后形成的。

在这一年我也接触到了游戏主机,这也算是对我影响比较大的一个事情。我在高中把游戏戒掉之后,发现能给我省出来非常多的空余时间。并且本身因为自己很菜,对游戏就没有很上瘾。大三之后不管是借的PS5、Switch还是后来自己买了Xbox、Switch,都是我对新鲜事物第一次接触。大三下又接触到番剧,在比较短的时间里看了不少动漫。大三的时间对我来说,一直都在接触新的东西,包括正经的做科研、转了Golang,去公司实习了一个月。相对放松的生活、没有那么大的学习压力之后,我好像把很多时间放在了见世面上,很多都是以前不想、甚至不敢去尝试的领域,借着大三这段时间去深入的了解了。我相信对于任何一个领域的判断都应该建立在一定的深入了解上,也是这个原因让我在寻找研究生方向时最先pass掉了ai相关。有关保研的我之前以为过了928就可以比较畅快的写了,但是直到现在我也不清楚自己该如何下笔,不过可以看我组织的NAOSI保研wo谈会

2021 年到 2022 年也是一定程度上实现了财富自由,上半年花压岁钱,下半年花自己挣的,从心理上花自己的钱不用问爸妈要还是很舒服。由于我的生活支出比较小,💰基本都花在了购买大件上。HHKB键盘总共花了2.7k,给家里添了把人体工学椅用了1.5k,买Xbox再加个额外手柄和购买西瓜皮以及游戏总共是3k左右,还和同学一起买了Switch和游戏又要小2k,显示器加上支架是1.6k等等,还有一些便宜一点的以及给工作室买了一个落地扇。总共算下来这一年不到的时间挣了有2w不止,可惜自己拿钱多了就败家,现在还想着要组台台式机(梦碎了,已经麻了

这篇 Review 断断续续写了好久,有的时候想写但是又不敢写,导致这个文件从8月2号就创建开始编辑,一直到现在10月12号了,勉强把前面补完,还留了保研不想写

今天受到的打击比较大,连着摆了好几天了,总归不太合适,就回来把这篇 Review 补完了。整个人精神状态都很差,心里难受加上愤怒,让这篇博客草率收尾

希望看到的人能受得了我的流水账,从中获得一点对自己有用的东西或者能了解一个默默付出了三年多却不怎么收到回报的人的唠叨

不知道年底还有没有心情写今年的回顾,可能那个时候会愿意回过头来看看自己吧。活了二十多年了,锻炼的也不少,但是心态仍然是影响我的最大的一个因素。我从没质疑过自己的能力,也相信自己比别人更强,但是内心过于自闭的感性也让我有时候无法处理好我所遇到的事情

但是不管有什么心态的变化,我永远相信 Tech. 是我乃至社会最重要的部分,追求技术的心是不会变的,这也是我坚持到现在,无论遇到几次低谷,不管多慢我都能爬上来的精神支柱

发展路线规划

我也不觉得成绩和奖学金能代表一个人的能力,对我自己来说也一直没有看重成绩,对于一些别的方面也是后来才知道的

我所总结的合适的本科发展路线是:

  • 大一入学后的第一学期是打基础,转换思维的,可以做的是

    • C Programming Language 学透,圣经,里面所有的代码都是源码级的,很多地方必须亲手试一下才能明白为什么这么写更好
    • 科普性质的 计算机基础、计算机网络、操作系统等,可以参考《图解》系列和《网络是怎样连接的》系列
    • 基础的数据结构,了解程度超过顺序表(课程内会接触到链表),能学到简单的树和图的存储最好
    • 简单接触 Linux,有能力进行安装和简单的使用
  • 大一下第一次选择一个特定的方向进行尝试,可以做

    • 选择一个更细的方向并尝试学习到能用来参与项目的程度,一些方向举例
      • java 基础和一些框架的开发使用
      • web 后端,可以基于 java、Go、Python 学习语言基础和 web 框架
      • 深度学习,学习 python 基础和深度学习课程,如李宏毅、李沐、吴恩达等老师,准备参与科研
      • 前端,学完 HTML、CSS 后开始看如 vue、react 等框架,能配合 node 做完整的应用(开发区比较缺前端,可能能更容易的参与到项目中)
      • 移动端开发,如 iOS 开发需要学 Swift,安卓开发看 java 和 kotlin 等,了解一些移动端的设计思路
      • 服务器运维,相对比较简单,多折腾和搭建,对参与项目和后续的课程都有一些帮助
      • 网络安全,下也有很多细分,可以参加 CTF
      • 一些方向开发区并没有充足的资源,例如计算机体系结构、分布式系统等。在读研选择方向时并不占优势
    • 也可以加入实验室,学习实验室的研究方向,如王雷老师的 wilna 实验室做无线感知。也有的实验室会给新人安排学习任务和对应的学长学姐进行指导
    • 跟随 C++ 课程学习 OOP 思想
    • 根据自己感兴趣的方向决定数学的重心,如做深度学习可以多关注线代、做密码学需要在离散上多下功夫
    • 听闻课改后大一下的课程变得繁忙了,所以目标比较少,主要在于尝试一个细分方向
  • 大一小学期如果不前往东软实习的话,就会比较水

    • C++ 深入 STL,这对于后面的保研等需要做算法题的时候会有很大帮助
    • QT/MFC 是第一次课程内抛弃黑窗,去做一个 GUI 的应用。了解 QT 的消息通道思想,对大部分人来说这个没有用处
    • 前端作业,很水,对于不想做前后端的来说了解前端的代码模式就可以
    • 大一小学期开始,可以做第二次细分方向的尝试。由于大二的课程比较多,所以从小学期一直到大二结束都作为这次尝试的时间段。需要注意的是,在大二结束的时候一般来说自己大概要做什么方向就或多或少有一个比较明确的定位了
    • 多关注一些比赛,项目类的如“互联网+”、挑战杯,竞赛类的可能更多一些
  • 软院把大二的课程安排的非常繁琐,尽管核心专业课很多,但是注水课也非常多,需要尽早甄别

    • 在有了大一的成绩排名之后,就能大概预估出自己是否要往保研上走了。如果成绩比较好,可以考虑分一些精力出来,加入到实验室里。软院本科生科研的氛围不算很好,但是每年还是会有很多本科生参与发论文。有一定的科研经历,甚至能有论文作为佐证对于保研的时候来说帮助非常明显,我的巨佬同学本科到现在都已经有三篇论文了

    • 大二的专业核心课比较多,但是课内涉及的不够深入,并且考试比较迷,还是应该自己向外拓展和实践。比如计算机网络可以多去看看自己家的路由器,做一些网络设备;操作系统在 Linux 接触的时候也会有一定的了解

    • 大二全年的课程代码量都很小,除了数据结构会写一点模拟之外基本就不怎么敲了。所以一定要通过项目或算法题来让自己持续敲代码的状态

    • 大二上大概在 11 月左右会继续细分专业,从 20 级开始只分软件工程系和网络工程系了,但是课程主体并没有修改,所以可以参考之前的细分专业:

      • 软件工程:智能系统控制(嵌入式)、软件测试与开发、大数据、软件金融、水下机器人

      • 网络工程:网络安全、物联网(共约 120 人)

        课改之后,只区分软件工程和网络工程,细分专业的课程只要在自己系内都可以选修。以课改前我们的经验,网络相较于软件会在大二课更多更忙,但是大三网络只有选修课,并且很多注水,就显得网络系大三都没啥事。就努力程度和保研难度来说,网络会更好一些,但是相对的是自己放弃了纯软件工程的 title,做网安对于想要出国的同学来说也会稍微麻烦一点,顾忌更多

        就我所在的网络工程-网络安全为例来说,课程设计并不合理。有关 CTF 的网络攻防实践被安排在了大三下学期,而此时对于本科阶段想要入门 CTF 来说已经很晚了

    • 大二下开始有细分专业后的专业选修课,但是作为分完专业的第一个学期,专业课必然是注水的,其目的更多的是在让大家了解一些细化的研究方向,多数课程名字里也会带上“导论”。这些课很多人都不会认真听,也带着有些老师会不愿意讲课。除了摆烂的时候,我会在课程开始的时候多听一听,对这个方向有一个大概的初步了解,可能并不深入,但是会有一个第一反应来决定我是否对它感兴趣,这会成为我后面对课程内容关注程度的一个重要参考。一定不要所有选修课都水过去,会让自己感觉分专业毫无用处,学不到东西

    • 一些课程如大数据导论、以及大三的软件工程课都会有翻转课堂,积极参加和准备,不管准备到什么程度,在将一个新内容尝试学习并转化成内容输出的过程中会学到很多东西

  • 大二小学期是一个比较特殊的时间点

    • 这个小学期之前只开设 java 课程,现在加了 python 可以二选一。课程比较简单,但是对于前面上双语课的同学来说可能是第一次团队合作开发项目,最好可以尝试一些团队管理的方案,这个时间点不管是课内还是课外都已经接触了很多工具了,就不要再用 QQ 互相之间发代码文件,可以开始学着用 Git 做团队项目的管理,去处理冲突,把自己放在真实的工程的角度去考虑开发这件事
    • 大二的暑假前后是参与比赛比较多的一个时期,我个人的很多比赛和奖都是在这段时间拿的。可以多关注和参与,不一定只看学院目前认可的,多抓住机会出去看看,和别的学校的团队交流,有很多比赛学院老师也不知道呢
    • 能力强的同学可以在大二就参与春招了,然后在这个小学期的时间去公司实习。即便最终没有拿到实习 offer 也无所谓,大二有能力去实习的人不多,但是能有机会提前参与企业的笔试面试,可以帮自己在下一年确定需要补的方面
    • 对于已经确定要工作的同学,可以考虑在大二小学期提前选修大三小学期的课程。如果有时间冲突可以找教务处理课程冲突,这样大三小学期就有一个完整的暑假时间来进行企业的实习。对于保研的同学来说有实习经历并不一定是好事,对学校的老师来说,更希望自己的学生能读到博士,有更多时间来深入的进行科研学习,而不是早早的就确定要工作
    • 大二结束后,每个人的意向就应该明确了。保研、考研、工作、出国、考公,这是每个人都绕不开的问题,如果一直到了大三中间都还在犹豫,那很可能哪边都做不好
  • 由于课程设置的原因,大三会有大把的时间交给自己来支配

    • 大三的最核心的课程可能就是软件工程,但是对于很多人来说,它的意义主要体现在考研本院的时候考试的范围
    • 这时候的专业选修课基本摆脱了“导论”性质,一些课程就比较有意思了,不论对这个方向感不感兴趣都可以做深入了解。先把面打开,再从里面找自己最想做的点。并且对于要读研选方向的同学来说,可能很多方向都或多或少在专业选修里接触过一点
    • 网综实验其实就是计算机网络实验,这是比机组实验专业贴合度更高的实验课,也是软院唯二的两门专业实验课之一。学完记得想想自己家的网络拓扑,增添点新设备
    • 大三课程多为大作业形式,尤其是网络系。有空余时间多去准备一些东西
      • 工作:常规来说春招是金三银四,三月是投简历的高峰期,但是不代表 1 月 2 月就没有机会拿到 offer。如果想要找工作,最好从 1 月就开始陆续投递简历,趁寒假再补充补充项目经历、算法能力和八股。22 年的情况表明,金三银四的规律可能已经不再那么明显了,很多公司开始泡池子,拖发 offer 等。但是,大环境不好不代表有能力的人找不到实习,适当降低要求和不要纠结互联网厂是很多人的出路
      • 考研:我周围准备考研的同学大多在寒假回家左右开始准备,舍友回家带了一个大箱子的张宇数学。也有一些同学在大三下返校后开始学习考研的内容。需要注意想报考的学校的考试内容,之前也出现过快要考研了学校突然修改考试科目的情况。就算要考本校这种只考软件工程的,也要准备一些 408 内容
      • 保研:算法题需要尽早开始刷,不要像我一样很畏惧,觉得自己什么都不会不敢做。保研同样注重专业课,一些学校如中科大,面试会以专业课为重心进行提问,对你的其他方面反而关注较少。不过总体来说,rank >= 科研经历 > 科创竞赛 = 项目经历 > 社会工作经历
      • 出国:就当前国际形势来说出国可能并不是最优选,但是无疑本科毕业这个时间点是出国比较好的时候,国外找工作的话短期的硕士是非常不错的选择。出国要求在 rank 不低的情况下尽量多去兼顾科研、实习和志愿活动,也可以考虑像 kzm 类似的交换项目并在结束后申请当地的硕士,门槛会低一些

如果不那么看重成绩排名,建议能选出对自己重要的课程,把重心放在它们上。明确有些如高等数学、大学物理等课程是普适的教育,可以减少在它们上花费的精力(但不是不学 )

软院本科四年的核心专业课是:C、C++、数据结构、计算机组成原理、计算机网络、操作系统、数据库,以及你希望深入学习的方向专业选修课。如果你想继续在这个专业走下去,这些课程都非常重要,一定不能仅限于课内的那点东西

专业书籍参考大黑书系列和动物系列,其中大黑书大部分都可以闭眼买了看,都为学术巨著,有很大的参考性和权威性;动物系列是书籍封面有一个代表性的动物,多为一些编程语言和框架的研究

学院对某些竞赛非常看重,甚至对于某些过于看重,出现了明显的德才不配位的情况。如果你对自己有信心,可以去学习 acm 算法,不过参考 cyq 佬,如果你想拿到一个比较好的成绩,可能需要一定程度上对课内的内容进行取舍甚至放弃。不过对应的,acm 的含金量还是非常高的,不管对于你其他的学习还是工作、保研都有很大帮助(尽管也出现过小公司 HR 说他们不喜欢 acm 选手的情况)。比较可惜的是,开发区的 acm 整体氛围并不好,对于没有 NOI 基础的同学来说很不友好,据我观察,在别的学校是不存在这种情况的,我在东北大学和中国海洋大学的同学都在 acm 铜牌以上,他们在入学前也没有基础

数模比赛在我眼里是一个非常水、门槛低、但是在学校眼里含金量很高的比赛大类,如果你能坚持把全年的数模打完,基本上科创奖学金就没跑了。在和同学的交流中,我的结论是,数模 10 个人中可能有 9 个并没有相应的水平,它的奖对于大部分来说,只是个奖,并不代表你学到了它的思想或是怎样,这也就意味着,对于和我有同样想法的 HR 或者老师来说,如果有一个数模选手和一个软件设计类比赛选手放在一起,我会选择第二个,因为数模这个有很大可能不是有水平。同时,它门槛低到不管你是否了解它,都可以随便报名参加。我在本科期间直接参加了两次数模,组队的成员均为从来不打数模比赛、对相关知识并不了解的同学,我们每次都从零开始,拿到一个国三和一个美赛 H 奖,过后反过来看也只是累了三天而已,并没有什么收获。可能对于大佬来说这两个奖啥也不算,我也并没有看不起数模大佬,但是在这个类别中水分很大,真正有能力的比较少,导致我并不喜欢数模。我的建议是,如果你能找到大佬带,就一定要去参加学习一下,但是如果不是必须要科创奖学金,这三天甚至它的附加时间,我建议不如去参与到一个开源项目中,对你带来的收获可能更大。可以参加,但最好不要在这上面花费很多精力

还有创新创业类比赛,也可以积极参加,但是我作为一个参与比较多这类的过来人的感觉是,它更像是一个 PPT 和关系比赛。没有一个“优秀”的指导老师、没有唬人的 PPT,你的项目很难在这条路上走得远,即便走出去一片光明,身处开发区的不利地理位置也可能让你止步。可以提供一个比较有意思的思路,创新创业类比赛对参赛团队成员的学校和专业都没有限制,可以挂靠和参与到别的学校的团队中,每年这类比赛开始后都会有一些相对较低的高校的经管之类专业的同学来寻找组队,并且大创类比赛的项目门槛较低,很多东西都靠吹,不一定真的要做实现,其他高校的竞争压力会小非常多

推荐课程列表

  • 计算机科学速成课,虽然叫速成课,但是对于计算机的基础学习非常全面,按照一层层抽象讲也能让你对计算机体系有一个宏观的认识
  • C语言程序设计-浙大翁恺,对入门 C 语言来说,翁恺老师的课是最能讲到思想的,配合 C Programming Language 这本圣经一起看帮助非常大
  • C++语言程序设计-浙大翁恺,同一个老师,C++ 相对来说不如他的 C 语言课程,但是仍然是非常好的课程
  • 计算机组成原理-南大袁春风,朋友推荐,大二的课程南大应该做的相对更好一些
  • 操作系统:设计与实现-南大蒋炎岩,这课一开始看真的很震撼,后来发现主体依照 CSAPP,但是老师的一些思想和操作都很亮眼,男神级人物,有幸借面试机会和蒋老师聊天,完完全全被碾压
  • 线性代数-MIT,MIT 的神仙课程,光这个课程就已经翻录过了,老师把线代从设计思想上讲活了。尽管和课内的思路不同,但是非常推荐学习,我也做了这门课程的笔记
  • The Missing Semester of Your CS Education,MIT 的神仙课程,补足一些你在课内不会有机会学习的东西,重点在了解和引起兴趣,非常优秀的课程,博客内也有以前看这门课的笔记
  • 玩转 Linux 命令行,花花自己制作的课程,对于稍微接触了一点命令行的同学来说会收获很大
本文由作者按照 CC BY 4.0 进行授权

Jekyll与Github Pages建站

PyTorch实战第一课:训练三阶多项式