编程自学完整指南:Python与C++八个月学习计划
【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning
这篇文章写给没有编程基础、但想认真学会 Python 和 C++ 的人。它基于开源的计算机自学指南 cs-self-learning,读完你会拿到一份分阶段、带周期和"完成信号"的自学计划:学什么课、每周投入多少、怎么算学完、哪里容易卡住,本周就能动手。
先确认你的起点:这份计划适不适合你
开始前先花 1 分钟自我对照,4 条里满足 3 条就可以往下走:
- 能按文字说明操作电脑:会安装软件、会照着报错信息找原因,不指望视频保姆式带练。
- 每周能拿出 15–20 小时:计划按每周 3 个 3 小时以上的固定时段设计。
- 接受课程以英文为主:仓库里大部分课的视频、课件、作业都是英文,个别有中文字幕,但文档基本没有。
- 目标是"会编程"而不是"速成某个应用":如果你要 1 个月内交出一个具体项目,这条路不适合你,直接找实战培训更快。
两种特殊情况:已经会 C/C++、只缺 Python 的,从第 1 阶段跳过、直接进第 2 阶段即可;已经写过完整小程序(哪怕只是课程作业)的,可以把每个阶段的时长压到 2/3。
一屏看懂 8 个月学习规划
总周期 8 个月左右(按每周 15–20 小时估算),前 1 周搭环境,中间两个阶段各约 11–12 周,最后 5–6 周并行加深:
| 阶段 | 时长 | 核心任务 | 完成信号 |
|---|---|---|---|
| 0 环境准备 | 第 1 周 | 装好 Python 与 C++ 的编译环境,学会 Git 基本操作 | 两门语言都能跑通 Hello World,代码已推送到远程仓库 |
| 1 Python 基础 | 第 2–13 周 | 跟完 CS61A,完成课程全部 4 个大作业 | 能独立写出 200–300 行 Python 程序,并实现一个迷你解释器 |
| 2 C++ 核心 | 第 14–25 周 | 跟完 CS106L,完成 HashMap 大作业 | 会读写指针,会用 auto、lambda、智能指针,代码编译无告警 |
| 3 并行加深 | 第 26–32 周 | 每门语言选 1 门进阶课 + 1 个自选项目 | 有 2–3 个能展示的作品,能对着简历讲清楚每个模块 |
注意两点:阶段之间不要压缩到 8 周以下,作业的消化时间占了一半以上;第 3 阶段结束后如果还有余力,按仓库里的 CS学习规划 选方向继续。
本周就能完成的 4 个起步动作
- 第 1 天:把仓库克隆到本地。执行
git clone https://gitcode.com/GitHub_Trending/cs/cs-self-learning,然后通读 使用指南,浏览一遍目录结构。先建立全局地图,再决定从哪页开始,避免一上来就钻细节。 - 第 2–3 天:装环境并跑通两门语言。Python 装 3.x 加一个编辑器,C++ 用 g++ 或 clang 加 CMake。验收标准不是"装好了",而是两边各跑通一个 Hello World,并且你改一行代码后知道如何重新运行。
- 第 4–5 天:过一遍 Git 最小操作集。初始化仓库、commit、push,照着 Git 使用说明 做一遍。从第一天就用版本管理,后面每个阶段的作业代码都有据可查。
- 周末:把学习时间固定进日历。每周标出 3 个 3 小时以上的固定时段,写在日历里而不是"有空再学"。自学阶段最大的变量不是智商,是时间稳定性。
课程与工具怎么选:看情况,不堆资源
Python 方向,三选一作为主线:
- 想扎实打地基 → CS61A(伯克利)。覆盖 Python、Scheme、SQL 三种语言,4 个大作业,最后一个作业是写一个 Scheme 解释器,属于"学完就知道程序到底怎么被运行"的那类课。
- 想要节奏轻、趣味足 → CS50P(MIT),以解谜式小项目驱动,适合时间零碎的人,但体系化程度弱于 CS61A。
- 目标是 AI 方向的编程基础 → MIT6.100L(MIT),Python 与机器学习入门同步推进。
只选一门当主线,另外两门放收藏夹。三门同时开 = 三门都停在第 2 周。
C++ 方向:
- 零基础首选 CS106L(斯坦福)。内容偏现代 C++:auto 绑定、统一初始化、lambda、移动语义、RAII,大作业是独立实现一个 HashMap(对标 STL 的 unordered_map),把整门课的知识点串起来。
- 已经会 C++ 语法、想补算法与数据结构 → CS106B_CS106X(斯坦福),直接跳过 CS106L 的前半段。
工具方面,两条硬建议:
- Git 从第 1 周就配齐,没有商量余地。
- 开发环境想跨机器一致、或以后要做系统类项目,再引入 Docker,放在第 2 个月学不迟。
- 环境配置问题最多花 2 天,卡住超过 2 天就换思路(换操作系统或上 WSL),不要在装软件上消耗第一个月的热情。
新手最容易踩的 4 个坑
- 收藏即学会。仓库里课程几十门,逐门收藏不会让你前进。规避:把"正在学"的资源控制在 3 个以内,做完当前的再开下一个。
- 把"看完视频"当成"学会了"。视频是输入,作业才是输出,CS61A 的 4 个大作业和 CS106L 的 HashMap 是两门课价值最高的一半。规避:每段视频后至少动手做 2 道练习,大作业一个都不跳。
- 用竞赛思维写 C++。把所有代码堆在一个 1200 行的 .cpp 里、只有
cin/cout和 for 循环,没有头文件、没有测试、没有版本管理——这正是新手最容易形成的坏习惯。规避:从第 1 周就分文件写、给自己的代码建 Makefile 或 CMake、每个函数至少写 1 个测试。 - 一报错就停摆。报错是自学的一部分,不是失败。规避:先给自己 30 分钟独立读错误信息、查官方文档,再带着"我试了什么、卡在哪"去提问,绝大多数问题这一步就能解决。
如何自查是否学到位:6 个可勾选信号
第 1 阶段结束时应全部打勾:
- 不翻课程资料,从零写出一个 200 行以上的 Python 程序,变量和函数名都有意义
- 能用递归独立解决树形结构问题(比如统计节点、遍历),并讲清楚递归关系
- 能解释数据抽象的意义:为什么把实现藏在类后面,而不是到处直接操作内部结构
- Git 历史里有 30 次以上提交,且提交信息写的是"改了什么"而不是"作业"
第 2 阶段结束时应全部打勾:
- 能用自己的话解释 C++ 指针和引用的区别,并写出演示代码
- 知道
unique_ptr和shared_ptr各自解决什么问题,以及什么场景该用哪个 - 代码开
-Wall编译无告警,且每条常见告警你都知道含义 - HashMap 大作业独立完成(不看参考答案能复述每个接口的复杂度)
任何一条勾不上,说明该阶段还有欠账,先补再往下走。
接下来去哪
8 个月走完后,打开仓库里的 CS学习规划 按你的方向(系统、人工智能、Web 等)选下一步课程,再配合 好书推荐 补齐各方向的经典教材。下一步只有一个动作:选一个方向,把第 3 阶段的第一个项目排进日历。
【免费下载链接】cs-self-learning计算机自学指南项目地址: https://gitcode.com/GitHub_Trending/cs/cs-self-learning
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考