4.3 KiB
一个仅供参考的CS学习规划
计算机领域方向庞杂,知识浩如烟海,每个细分领域如果深究下去都可以说学无止境。因此,一个清晰明确的学习规划是非常重要的。这一节的内容是对后续整本书的内容的一个概览,你可以将其看作是这本书的目录,按需选择自己感兴趣的内容进行学习。
必学工具
俗话说:磨刀不误砍柴工。如果你是一个刚刚接触计算机的24k纯小白,学会一些工具将会让你事半功倍。
MIT-Missing-Semester这门课覆盖了这些工具中绝大部分,而且有相当详细的使用指导,强烈建议小白学习。
翻墙:由于一些众所周知的原因,谷歌、Github等网站在大陆无法访问。然而很多时候,谷歌和Stackoverflow可以解决你在开发过程中遇到的95%的问题。因此,学会翻墙几乎是一个内地CSer的必备技能。(考虑到法律问题,这个文档提供的翻墙方式仅对拥有北大邮箱的用户适用)。
IDE(Integrated Development Environment):集成开发环境,说白了就是你写代码的地方。作为一个码农,IDE的重要性不言而喻,一个轻便的编辑器可以让你从产生一个编程点子到开始写代码之间只隔了一个快捷键。个人推荐常用的IDE是VSCode和Sublime(准确的说Sublime只是一个编辑器,但丰富的插件使它基本满足了我的轻量级编程需求)。当然对于大型项目我还是会采用略重型的IDE,例如Pycharm(Python),IDEA(Java)等等(免责申明:所有的IDE都是世界上最好的IDE)。
Vim:一款命令行编辑工具。这是一个学习曲线有些陡峭的编辑器,不过学会它我觉得是非常有必要的,因为它将极大地提高你的开发效率。现在绝大多数IDE也都支持Vim插件,让你在享受现代开发环境的同时保留极客的炫酷(yue)。
Git:一款代码版本控制工具。Git的学习曲线可能更为陡峭,但出自Linux之父Linus之手的Git绝对是每个学CS的童鞋必须掌握的神器之一。
Github:基于Git的代码托管平台。全世界最大的代码开源社区,大佬集聚地。
Makefile:一款工程构建工具。善用Makefile会让你养成代码模块化的习惯,同时也能让你熟悉一些大型工程的编译链接流程。
LaTex:逼格提升论文排版工具。
实用工具箱:除了上面提到的这些在开发中使用频率极高的工具之外,我还收集了很多实用有趣的免费工具,例如一些下载工具、设计工具、学习网站等等。
环境配置
你以为的开发 —— 在IDE里疯狂码代码数小时。
实际上的开发 —— 配环境配几天还没开始写代码。
under construction.
主线课程
under construction.
数学类
编程入门
系统入门
体系结构
操作系统
网络
编译原理
软件工程
人工智能
机器学习
深度学习
定制属于你的课程地图
授人以鱼不如授人以渔。
以上的课程规划难免有强烈的个人倾向和喜好,不一定适合所有人,更多的是抛砖引玉的作用。如果你想挑选自己感兴趣的方向和内容加以学习,可以参考我在下面列出来的资源。
- MIT OpenCourseWare: 麻省理工学院的课程资源开放共享项目,收录了数以千计的各科课程资源,其中计算机类的课号是6.xxx。
- MIT CS Course List:麻省理工学院的CS课程列表。
- UC Berkeley EECS Course Map:UC Berkeley的EECS培养方案,以课程地图的方式将各门课程的类别和先修关系一目了然地呈现,其中绝大多数课程本书中均有收录。
- UC Berkeley CS Course List: UC Berkeley的CS课程列表。
- Stanford CS Course List: 斯坦福的CS课程列表。