CSer 成长手册
废话少说,这是我在瓜大经历三年的学习生活之后,从一个计算机小白成长为一名及格的 CSer 所积累的带有个体性质的经验教训,但我想尽力把它做成一个较为普适性的指导参考,如果能对你们有任何帮助,我都会感到非常开心。
注:因博主是大二数转计的,大学前基本没碰过电脑,因此水平有限,请选择性阅读。
瓜大计科人才培养情况
先下个暴论,瓜大计科的培养体系是有些糟糕的,课程设置和人才培养目标较为单一,理论课与实验课脱轨较为严重,康班等计算机拔尖班级主要以计算机系统方向为主,产出人才也大都是体系结构方向的,在计算机理论和应用方面的培养较为薄弱,CV、NLP、ML 等方向的课程设置都很基础,甚至没有配套的实验实践课。如果完全跟着学校的方向走,很难有机会提前进组(据我所知很大一部分 AI 方向的老师都非常乐意收本科生打工,但系统方向的很少,这也跟康班大部分都在打比赛做项目有关,因此我校计科发 paper 的本科生其实很少),未来的选择会比较局限,甚至如果你工程代码能力跟不上,面对突如其来的 CPU、OS、编译器等大工程项目开发,很容易就去选择参考一份简单的代码实现,导致对知识的理解深度还停留在理论课水平;但完全反抗学校课程安排走自己的路也难免会导致成绩不甚理想,与自己的真实实力相差甚远,甚至难以卷到一个保研名额。
以上情况也跟计院的系统方向是传统强项有关,这个可以参考每年我校推免到北京大学计算机学院的各位大佬的情况。如果你对系统方向比较感兴趣,工程代码能力强,跟着走很容易获得几个过硬的项目开发经历,否则可能会导致最终手上拿不出什么值得吹嘘的东西。
总体建议
因此对于什么概念都没有的普通小白,我的个人建议是,大一别管什么基地,卷一年把所有基础理论课学好拿到高分,第一个暑假重点鼓捣各种计算机工具的使用和优良网站文档的阅读(PS: 有时间最好学学 Excel、PPT 等基本操作);大二可以选择加入一些基地,但还是需要把理论课放在首位,建议有能力的提前修读大三的数理类课程,然后下学期你会在计组课上会遇到你的第一个大项目,试着凭借你暑假积累到的阅读能力和动手能力去找一个有难度的、优秀的参考项目和文档(比如,什么年代了还在写传统五级流水?),花时间去模仿实现。如果这次的经历让你感到满足和愉悦,或者说至少不害怕,那你可以考虑坚持做系统方向,借着这个感觉继续去做好操作系统、编译器和智能芯片设计等项目,至少去北大的机会会高很多。否则,大二暑假好好学习 Pytorch 等工具,找几个项目练练手,然后大三就去找老师推销自己进组(不知道咋找导师的,可以去蹭各个 AI 方向的第一节选修课,课后直接问老师就行),跟着硕博生或者老师积累点经历。大三还有个数据库项目,本校跟着老师做的人不多,但他们组里的研究生团队拿到过 OceanBase 大赛的银牌(金牌是清华大学团队),含金量和技术力还是很高的。
至此,进可攻退可守,选择范围会大很多。
今天的“水货”就到此为止,接下来分享一些更加实用的东西,以方便你在暑假的时候鼓捣:
软件推荐
程序编辑器
通用:VSCode(配置挺折磨新手,但确实好用)、NotePad++(平替记事本)
C/C++:Dev-C++,推荐下载此版本(轻量级) 、Visual Studio 2019(功能全面,但比较臃肿,个人用的不多)
Python:Jupyter(Anaconda 自带,鼓捣好了绝对不比 VSCode 差)、PyCharm(大型项目,用得不多)
Java:IntelliJ IDEA、Eclipse(写 Java 少,感觉一般般)
笔记类
Word、Typora(破解版:b 站视频教程)、Obsidian
注:学习成本逐渐增加,解锁第二个软件前请花几小时学下 Markdown 语法,解锁第三个软件前请确保你计算机功底和时间都足够
其他专业软件
Vivado2019.2(数字逻辑),WSL、VMware(虚拟机,更推荐就使用 WSL),Docker(容器,可以帮你省去许多配环境的麻烦),Zotero(文献阅读)
技术力
Clash(机场代理,梯子自购),IDM(下载工具),everthing(搜索工具),QuickLook,格式工厂,Snipaste(截屏工具),Windows Terminal(终端工具,美化配置上可能有点小麻烦),同时也少不了 将 Windows Terminal 添加到右键菜单,PowerToys(挺好用的功能集),PicGo(制作你的图床),向日葵(远程控制电脑)
网站推荐
推荐使用 chrome(插件多)或 edge dev(有 new bing)浏览器
能力提升类
The Missing Semester (学习命令行等基本知识),LeetCode、百练 OJ、AcWing 等算法平台,以及各类大型公司推出的产品及技术文档(如 Pytorch、paddlepaddle 等)
CS 自学指南(难度较大), CS-Notes 面试笔记 ,interview,图解系统
注:第一行是最重要的学习资源,特别是技术文档,后面几个仅作为知识扩充
实用类
Gitee、Github 等代码托管,沙拉查词,Tampermonkey 油猴插件(自行探索实用脚本,如百度网盘破限速等等),SMS-Activate 在线接受短信的虚拟号码服务 (注册 chatgpt 啥的都需要),zhelper Search(电子书下载,自行搜索使用方法),Compiler Explorer(在线编程,汇编语言支持很好,适用于计组、编原等底层课),Tilipa(一个资源整合的网站,包含一些绘图工具,其中 Handdraw 是手绘风格的,挺有意思,还有一个日志分析工具,可以迅速打开超大文件),GeoGebra - 数学绘图,Overleaf(支持在线协同写论文或报告),在线 LaTeX 公式编辑器(方便初学者上手),公式识别(图片转 Latex/markdown), Connected Papers(找文献)
休闲类
书籍推荐
CSAPP (计基实验就跟着它做吧)
《算法笔记》、《Python 旋风之旅》、《Python 机器学习基础教程》等等太晚了就不列举了
如果帖子没沉,反映良好的话会再更的