尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

cs-self-learning 使用指南:面向三类读者的计算机自学路径规划与核心课程清单

cs-self-learning 使用指南:面向三类读者的计算机自学路径规划与核心课程清单 cs-self-learning 使用指南面向三类读者的计算机自学路径规划与核心课程清单【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning本篇基于 cs-self-learningCS 自学指南仓库中的 使用指南 一文展开系统讲解这本开源自学手册的定位与使用方法针对初入校园的本科生、时间有限的研究生与职场人、以及已确定深耕方向的高级读者三条差异化路径给出可落地的选课策略、生产力工具清单与 11 门核心专业课的取舍依据。读完后你可以按自身情况定制一份与 CS学习规划 衔接的自学方案并知道如何在该仓库中检索、验证每一门课程的先修要求与预计学时。为什么需要一份使用指南随着贡献者增多本书收录的课程持续扩展覆盖数学、编程入门、体系结构、操作系统、编译、网络、数据库、机器学习、深度学习、深度生成模型等二十余个分支。正如 使用指南 开宗明义想把书中所有课程全部学完是不切实际也没有必要的甚至会事倍功半。因此本书按读者需求将读者分为三类帮助每个人精准规划属于自己的自学方案而不是把整份目录当任务清单。从仓库结构可以印证这一设计mkdocs.yml 的nav字段定义了整本书的目录树从前言如何使用这本书到各课程分支与后记docs/目录下每个分支如docs/操作系统/、docs/机器学习系统/对应一组同类课程且每门课都提供中文.md与英文.en.md两个版本。换句话说这本书本身就是一个可导航的课程搜索引擎而使用指南是它的入口索引。以下三节完整继承 使用指南 的三大章节骨架并结合仓库中的课程文档补充先修要求、难度与学时等信息。路径一初入校园——低年级本科生的全面打基础方案如果你刚进入大学或仍处低年级且就读或想转入计算机方向学习就是你的本业有充足的时间与自由不必过早纠结学了有没有用。这一节的核心结论是打破高中式的被动学习在课内之外补齐实践能力的短板。1. 先破除按部就班的学习心态原文指出国内大部分高中把一天每一分钟都排满学生只需被动跟着课表完成任务而大学自由度骤然变大——课外时间自由支配、没人整理知识点与提纲、考试也不像高中那样模式化。如果还抱着乖学生心态老实按部就班结果未必如愿专业培养方案未必合理教学未必负责认真出勤未必能听懂考试内容未必与授课内容挂钩。因此想改变现状得先活过去并具备质疑现状的能力。低年级阶段打好基础是全方面的事课内知识固然重要但计算机强调实践很多课本外的能力恰恰是国内本科教育的欠缺之处。2. 其一学会写优雅的代码原文提醒国内很多大一编程入门课会讲成极其无聊的语法课效果不如直接看官方文档。刚接触编程时就应去了解什么样的代码是优雅的、什么样的代码 have bad taste。即便面向过程编程例如 C 语言模块化和封装的思想也极其重要。如果你只想着在 OJ如 OpenJudge上通过题目图省事用大段复制粘贴和臃肿的main函数长此以往代码质量将一直如此一旦接触稍大的项目无尽的 debug 与沟通维护成本将把你吞没。写代码时应不断自问是否有大量重复的代码当前函数是否过于复杂Linux 提倡每个函数只需要做好一件事这段代码能抽象成一个函数吗学完面向过程编程后大一下学期一般会讲面向对象C 或 Java。这里非常推荐阅读 MIT 6.031: Software Construction 的 Notes它以 Java 为例2022 年改用 TypeScript非常详细地讲解如何写出优雅的代码涵盖 Test-Driven 开发、函数 Specification 设计、异常处理等内容。从该课程文档看其先修要求仅为掌握至少一门编程语言预计学时 100 小时难度 5 只——与原文的推荐定位一致。此外接触面向对象后了解常见设计模式也是必要的原文推荐《大话设计模式》一书浅显易懂。面向对象的精髓在于把实际问题抽象成若干类及其关系而设计模式是前人总结的精髓抽象方法避免课程沦为纠结继承语法与脑筋急转弯题目的语法课。3. 其二学习能提高生产力的工具和技能原文推荐 Git、Shell、Vim 三类工具并强烈推荐 MIT Missing Semester 这门课。该课程文档难度仅 2 只、预计 10 小时覆盖 Shell 编程、命令行配置、Git、Vim、tmux、ssh等内容基本涉及本书必学工具分支中的绝大部分。CS学习规划 中的必学工具一节还给出了更完整的工具矩阵Git、GitHub、Vim、Emacs、GNU Make、CMake、LaTeX、Docker、实用工具箱 等每篇都有独立的使用指导。原文还给出了一条生产力定律一切需要让手离开键盘的操作都应该想办法去除。切换应用、打开文件、浏览网页等高频操作都有插件可以快捷化如果某个操作每天用到且耗时超过 1 秒就应想办法把它压缩到 0.1 秒——毕竟以后数十年你都要和电脑打交道形成顺滑的工作流是事半功倍的。最后一条建议学会盲打如果还需要看着键盘打字应尽快找教程学会。4. 其三平衡课内与自学质疑现状但也得遵守规则绩点在保研中仍相当重要。因此大一应尽量按课表学习辅以优质课外资源微积分与线代可参考 MIT 18.01/18.02 Calculus 与 MIT 18.06 Linear Algebra 的课程 Notes假期可通过 UCB CS61A 学习 Python。从课程文档看CS61A 无先修要求、预计 50 小时且不止是语言课——它深入程序构造与运行原理最后一个 Project 会要求用 Python 实现一个 Scheme 解释器并掌握函数式编程、数据抽象、面向对象等抽象手段。个人经验层面的提醒大一数学课学分占比大且不同学校、不同老师的考试风格迥异自学也许能帮你领悟数学本质但不一定能直接换来好成绩考前最好有针对性地刷往年题、充分应试。5. 大二之后进入自学的殿堂升入大二后专业课居多此时可以对照 一份仅供参考的CS学习规划 彻底进入自学。这是作者根据三年自学经历提炼的全套指南每门课的特点与选课理由都有介绍。其核心策略原文原意对你课表上的每个课程规划中基本都有对应的国外课程且在质量上具有显著优势只要考前将老师念了一学期的 PPT 拿来突击复习两天取得不错的卷面分数并不困难如果有课程大作业可以尽量把国外课程的 Lab 或 Project 修改一番以应付课内需要。作者举了一个真实案例上操作系统课时发现老师还在用早已被国外学校淘汰的课程实验便发邮件将实验换成自己正在学习的 MIT 6.S081 的 xv6 Project——该课程文档显示其先修要求为体系结构 扎实的 C 语言功底 RISC-V 汇编整学期共 11 个 lab在 xv6基于 RISC-V 的教学用操作系统上逐个添加新机制自学同时还无意间推动了课程改革。总之灵活变通是第一要义目标是用最方便、效率最高的方式掌握知识。原文最后提醒少点浮躁和功利多一些耐心和追求——自制力并非自学的先决条件关键看你想从自学中得到什么抱着会一门语言就能月薪过万的幻想说再多也是废话。路径二删繁就简——研究生与职场人的核心课程精简方案如果本科毕业读研、在职或是其他领域想利用业余时间转码你也许没有足够时间系统学完 CS学习规划 的全部内容但又想弥补本科时期欠下的基础。这一节的取舍原则是这部分读者通常已有编程经验入门课程不必重复工作方向大体已定也没有必要对每个计算机分支做特别深入的研究更应该侧重通用性的原则和技能。作者由此选取了自认为最重要、质量最高的 11 门核心专业课完整继承如下表先修、语言、难度与学时等列依据仓库中各课程文档的课程简介补充课程方向课程名先修要求主要语言难度预计学时离散数学和概率论UCB CS70: discrete Math and probability theory无无60 小时数据结构与算法Coursera: Algorithms I IICS61AJava60 小时软件工程MIT 6.031: Software Construction掌握至少一门编程语言Java100 小时全栈开发MIT web development course掌握至少一门编程语言JavaScript/HTML/CSS/NoSQL因人而异计算机系统导论CMU CS15213: CSAPPCS61A, CS61BC150 小时体系结构入门Coursera: Nand2Tetris无任选一门编程语言40 小时体系结构进阶CS61C: Great Ideas in Computer ArchitectureCS61A, CS61BC100 小时数据库原理CMU 15-445: Introduction to Database SystemC、数据结构与算法、CSAPPC100 小时计算机网络Computer Networking: A Top-Down Approach有一定的计算机基础无40 小时人工智能Harvard CS50: Introduction to AI with Python基本概率论 Python 基础Python30 小时深度学习Coursera: Deep Learning机器学习基础 PythonPython80 小时学完这些课程无论你具体从事什么工作原文的判断是你都不可能沦为一个普通的调包侠而是对计算机的底层运行逻辑有更深入的了解。从各课程文档的内容看这套组合的覆盖面可以概括为数学与算法地基CS70 把逻辑证明、图论、数论、多项式环、概率论与稳定匹配、网络拓扑、RSA、纠错码、哈希表等算法应用一一对应Algorithms I II 则强调为什么这么做、如何实现它、用它解决实际问题三步走法并配有 10 个高质量 Project系统主线CSAPP 覆盖汇编、体系结构、操作系统、编译链接、并行、网络共 11 个 Project代码框架全部开源Nand2Tetris 从与非门开始造出一台计算机并运行俄罗斯方块硬件部分搭 CPU 跑简单汇编软件部分写编译器与简单 OSCS61C 沿 CS61 序列深入 C 语言如何一步步转化为 RISC-V 汇编并在 CPU 上执行四个 Project 分别覆盖 C 程序设计、RISC-V 神经网络、Logisim 搭建流水线 CPU、OpenMP/SIMD 并行优化应用与 AI 主线15-445 要求你在教学数据库 Bustub 中实现 Buffer Pool Manager、B Tree、Query Executor/Optimizer、Concurrency Control 四个组件Top-Down 网络课 提供作者自录的网课视频、交互式在线章节测试与 Wireshark 抓包 lab编程作业偏少可用 Stanford CS144 补充CS50 AI 提供 12 个设计精巧的编程作业如强化学习训练 Nim 游戏 AI、alpha-beta 剪枝扫雷适合入门或休闲Deep Learning 从神经网络讲到 CNN、RNN 与 Transformer。需要说明的适用前提表中先修关系如 CSAPP 要求 CS61A/CS61B、15-445 要求 CSAPP是各课程文档的原始设定零基础读者可参照 CS学习规划 的课程地图补齐先修不必拘泥于表的顺序。路径三心有所属——确定方向后的深耕与多视角学习如果你对核心专业课已掌握得相当扎实并且确定了自己的工作或研究方向那么书中还有大量未在 CS学习规划 中提到的课程可供探索。原文指出两点机制均可以从仓库导航中得到验证课程分支持续新增。从 mkdocs.yml 的nav看除主流分支外已新增机器学习进阶如 学习路线图、CMU 10-708、Columbia STAT 8201 等与机器学习系统CMU 15-442、10-414、EML 等等分支同时还有深度生成模型、大语言模型、计算机图形学、系统安全等方向。同一分支下的多校同类课程提供不同视角。原文以操作系统分支为例它包含四所学校的课程这在本仓库中一一对应MIT 6.S081、UCB CS162、NJU OS、HIT OS。如果你想深耕一个领域学习这些同类课程会给你看待同一知识的不同视角、不同的侧重点与课程实验。此外本书作者还计划联系相关领域的科研工作者分享细分领域的科研学习路径让 CS 自学指南在追求广度的同时实现深度上的提高。如果你希望贡献这类内容例如分享某个领域的自学经历与资源使用指南 给出的途径是与作者邮件联系zhongyinminpku.edu.cn。结合 README.md 的说明标准贡献流程是参考仓库中的 template.md 作为课程文档模板在 mkdocs.yml 的nav中添加入口并同步提供英文翻译docs/**/*.en.md通过 Pull Request 提交中英混合排版需遵循中英文混排的要点规范。仓库结构与延伸阅读如何高效使用这份指南基于仓库结构可以归纳出阅读与检索本书的几条实用路径入口与骨架index.md 是前言介绍本书的由来、自学的利与弊、适合人群与交流群的建立方式使用指南 负责按读者分流CS学习规划 提供完整的课程地图包含必学工具好书推荐环境配置PC 端与服务器端与分方向课程四大部分后记 与 好书推荐 是补充读物。课程文档的统一模板每门课程文档由 template.md 规范都包含课程简介所属大学、先修要求、编程语言、课程难度、预计学时、课程资源课程网站、视频、教材、作业与资源汇总三部分。因此上文表格中的先修、语言、难度、学时列并非主观估计而是直接取自各课程文档可逐篇核验。中英双语通过 mkdocs.yml 的i18n插件每个中文文档旁都有对应的.en.md英文版站点同时构建两种语言版本。环境配置CS学习规划 的环境配置一节区分 PC 端Windows 用户可用 Scoop 获得类 Unix 体验与服务器端Linux 基础、Docker、CI/CD 等可与 MIT-Missing-Semester 配合使用。最后重申 使用指南 的主旨本书的价值不在全部学完而在于让每一类读者都能按自身的时间、基础与目标精准地取用其中资源——初入校园者全面打基础删繁就简者补核心短板心有所属者沿多校课程深耕方向。【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表