作为一个在SCNU 读 CS 本科的过来人来说,似乎时间过去得很快,花了一点时间反思了一下大学的几年所做的事情、想做的事情。做一个简单的回顾和总结,望后来者可以有所收获。
时代性
我于2014年入学SCNU,当年报考学校的物理专业,可惜没选上,被调剂到了CS专业。而同年大部分学生跟我一样都是被调剂来的,我们和旅管,这个文科专业的调剂终点,一起来到了西三这个宿舍。再度期间经历了换门窗、装空调、加装热水淋浴、被HK Photographer 拍出「Silenced」的大作, 也算是经历过了西三宿舍的巨大变迁。
说回调剂,因为大部分人都是调剂生,所以观念上大家都没有比较好的技术向往,都是冲着拿毕业证即可的方向前行。所以如果你期望着华师CS能有想中大、上交大这种CS学院的学术氛围,那么很抱歉,学院和宿舍都提供不了这样的环境。
当然我不清楚如今的SCNU CS 发展到了什么程度,是不是已经变成了大家趋之若鹜的香饽饽。下文可能包含了我年代的历史局限性,请谨慎阅读和参考。
那么,如果你作为一个「有追求的技术人」,你如何在SCNU这样的环境里面独立成长。
所谓独立成长,指的是大环境所趋,不要过分依赖师兄师姐,他们不过是比你多「混」了一年而已,真的只是「混」。
ACM
大部分CS人都离不开ACM这个话题,我该不该走ACM的道路。我很直白的说,在SCNU,可以做,但是别指望平台能给你多大的帮助。当年仅有一丝基础的我都轻松取得ACM新生赛的一等奖,可想环境如何。
同时SCNU是没有自己独立的OJ系统的,那么意味着学院并没有相关的培养路线,更多的是自己学习。而校内的ACM赛随着时间的推移,大部分CS的学生已经开始打不过数科的学生,很悲哀也很现实。因为ACM并不需要太强的编程水平,所以思维更好的数科学生就能够表现得更好。
如果你真的想走这条路,那么我的建议是:1位数科学生+2位CS学生的组队搭配最合适,建议在新生赛中表现得足够优异,然后结交优秀的朋友组队。成绩在省一、省二即可。
数学建模大赛
到了大三大四,很多人会选择参加美国数学建模大赛,这个简单来说就是如果你有出国的想法,哪怕是一丝想法,都建议在大二大三就去参加一次建模大赛,这是你可以写进CV里面为数不多的几样有价值的比赛。同时这个比赛因为过分内卷,已经变得很容易了,轻轻松松都可以拿到银奖,这对出国有很好的帮助。
大小挑
这是一个统称,是的是挑战杯,好像是市挑战杯和省挑战杯。 它比较适合两类人群:
- 一类是女生可以在比赛中学会写方案写策划表达策划的能力,这对之后的工作有很大的帮助(个人偏见:女生很少会走编程路线,都会走业务、策划、PM方向,那么这是有价值的)
- 第二类是希望靠事业单位、公务员的人,它也是可以很有说服力的奖项,可以在CV中给出足够抢眼的点
至于IT人,我个人建议不参加,因为参加大小挑的都是只需要去到策划+prototype阶段,所以并不需要IT人过于参与编码,所以别期望会在期间得到足够多的编程能力提升。
师兄、师姐、老师的编程小组
有一些师兄师姐或者老师会让你帮忙参与做一些项目,这些项目来源有几种:
- 来自师兄师姐的可能是:他们的大小挑项目代码、他们老师给他的任务转手给你
- 来自老师的: 可能是老师挂名的某某公司需要做的内容,老师让你来做,有时候也会给你一些报酬
个人建议是:都不做,因为这些项目绝大部分都是采用老旧的技术,或者是一些很无聊的内容,你在里面没办法得到足够来自技术方面的成长,同时还会配有DDL。
当然有一种情况除外,你的成绩很好,想留校保研、读研,那么你需要这个老师的帮忙,那么可以通过关系跟他打好关系。
课程相关
虽然SCNU是一所211学校,但是CS绝对不是他的王牌专业,甚至可以说是吊车尾的专业。大部分老师的PPT在我读书的那年就已经用了少说5年了,所以建议学会用搜索引擎,善用Github来做相关学习资料的搜索。
但是有一些课是很优秀的,可以完全认真学认真听:
- 王立斌的「计算机概论」/「密码学」,这个老头子虽然言辞犀利,但是他的课是一个很棒的CS入门教学,而且他是CS院内唯一一个推荐你用英文原著的老师,你以后会感谢他的。 他的密码学也是很优秀的。同时老头子人挺好的,下课可以多抓着问问题,是院内为数不多还跟业界前沿保持联系的老师。人很热情,啥问题都能问题。
- 某个年轻讲师的计算机网络TCP/IP,这是一门网工学生才会上的课程,从零开始跟你从表面到细节全程走一遍TCP协议,可以说老老实实地给你打下扎实的网络基础。老师还很年轻,所以没啥架子。
- 某老头的编译原理,我不清楚目前CS还是否开展编译原理课,但是开展了请务必选择这位老师的编译原理,这老头对编译原理的讲解是有一套的,他讲的LL1 LALR 至今我还在用,而且他的课程对编程语言没要求,这可能是你大学唯一一门可以用自己喜欢的语言写parser的课程了。想当年用 go 写 parser, 用 js 写 lexer,最后用 python 写 runtime,想想就刺激。这老头的名字我不记得了,但是他本科在SCNU,研究生在SCNU,此后一直在SCNU教学,甚至校内5000米的纪录都是他的,他自谑「SCNU土特产」。
专业选择
我不清楚现在是否还是走大类分流的教学模式,如果是,我建议你还是走网工方向。(PS:是不是开了AI和人工智能方向)。虽然说IoT 和软件工程都是不错的,但是网工方向绝对是学院培养的终点,大部分优秀的学生都往这边走了。同时个人的体验是网工学生学了软工的绝大部分干活课程,还额外上了网络相关的课程。可以说是上最多的课、挨最毒的大了。
NOTES:有一类人不能选择网工方向,是不能,不是不推荐。如果你又了明确的事业单位目标、公务员目标,它们的招新需求是计算机学位,那么请选择软件工程方向。因为网工方向发的是「网络工程」学位,即 Network Engineering, 不是 Computer Science
英文
很多中国学生的英文都不太行,甚至很多人还在CET-4 或者 CET-6 上挣扎。这可能是一个比较错误的努力方向。个人建议是:
- 以学习雅思、托福为主,经可能在大一下之前在高三英文能力没消退之前考到 雅思 6.5 托福 95 以上,那么你可以在大二的时候开始申请学院里面的交换留学。很多人在知道可以去交换的时候才发现语言成绩不够,而且也不够时间去备考了。(尤其是这些年雅思托福的考场在缩减,报考更加难了)。在有足够好的雅思托福成绩下,CET-4真的就太简单了。至于 CET-6,如果你有意愿进事业单位,请学习CET-6,否则对于互联网公司来讲,雅思6.5 或者 7 的成绩价值远高于 CET-6。
- 抛开英文的功利性来讲,如果你需要从事IT行业,英文的能力也是必备的,无论是科研党的快速阅读英文论文,还是工程党的快速阅读框架文档。 英文会从你进入CS行业的第一天开始围绕在你身边。
最后
互联网的发展,即便进了SCNU,也不要被院校和身边的人所局限,善用搜索引擎,善用资源(学校靠谱的老师、学校的交换留学、雅思托福时机等等),你才能逃脱出在大四的时候BAT这些公司看到你干瘪CV的模样。
同时历史的局限性,我不太清楚SCNU这些年的CS发展变得如何了,所以内容请自行斟酌真伪。