前言

最近一直在做一生一芯,跟着做了些PA的项目,感觉自己之前很多所学都有了很多欠缺,也越发发现学校在培养计 划上的自己认为的一些不合理地方,在此记录下:自己如果回到大一,可能会如何开始学习(顺带考虑一下培养计划)。

大一上

应该在大一上学到一门导论课,去知道自己大学四年应该学什么,可以学什么,同时可以将这些知识进行一个简单的串联, 未必要将每一个知识点学的很深,但希望可以覆盖到每一个知识点。

程序设计基础肯定要有,但课设(挺想把C语言课设搬到大一上的,这里一并说了)希望可以有一个培养为上,内容次之的 过程。

现在的课设很多开始已经是报告要卷,内容要卷的状态了。什么数据库,前端,GUI,一些“卷王”做出了很多远超于 课设本身内容的事情。

希望课设是将课上所学实践起来。而不是在各种内容之外的地方去竞争。也希望未来的学弟学妹都能够真正自己思考,动手 写出课设,而不是在网上copy代码。

可以让学生多学一些工具,比如利用git进行团队协作(老实说这个我现在都还没做好),通过make工具链编译。未必要成为 课设加分项,但也可以让学生开始接触一些试试(我现在就在被makefile折磨)。

这里点赞一下我们的实验课老师,他实验课的开始就让我们体会了一些git的用法,据说现在学弟学妹还可以在CG平台实验了。

大一下

学会工具使用!学会工具使用!学会工具使用!

一定需要一门课来教一些工具的使用了,命令行,shell,版本控制,文本编辑…。狂吹The missing semester of your CS education 。

如果说大一上已经开始接触git了,你可能感受到(或没有)他的便利,如果没有,尝试继续在日常使用。
如果你没有开始,用qq,U盘传文件的方式已经让你感到麻烦,开始git吧,找寻一种更高效(开始可能不)的方法。

学会使用这些工具未必能让你立刻觉得你付出的时间会有回报,但他们一定会穿插在你学习计算机的每一个时刻。

对于C++,老师上课第一件要说的就是:学的是面向对象程序设计,只是用C++来教学,因此将更多实时间放在面向对象 上应该是个好主意。

装一台虚拟机,装上linux(颇有私货),但从无到有掌握linux确实能提高很多你的能力(包括查阅文档)。

建议

老师的PPT很老,对于教学来讲足够了,但对于计算机前沿来讲显得过于陈旧。可以多上网冲浪看一看,现代计算机发展到了哪一个阶段。

多实践,多敲键盘,学会计算机的最好办法。

查阅手册,查看代码,搜索网页。解决问题的最好办法

结语

祝你早日成为计算机科学家