如何学习编程
编程之路上,如何去练习以及比赛(代码篇)
“代码不会骗人,编译器永远说真话。”
—— 某位 Debug 到崩溃的选手
1. 如何开始学习编程
路径 | 自学 | 课程 |
---|---|---|
资源 | 官方文档、开源书、B 站、Stack Overflow | MOOC(Coursera / 学堂在线)、大学课堂、付费训练营 |
节奏 | 自定,容易三天打鱼 | 固定课表,有人催作业 |
成本 | 时间成本极高 | 金钱成本可能极高 |
优势 | 练成“搜商”,终身受用 | 体系化,少走弯路 |
坑 | 信息过载,容易学废 | 填鸭式,学完还是不会写 |
建议组合拳:
- 先用 1~2 门优质课程打通任督二脉(语法 + 基础算法)。
- 再转自学模式,项目驱动 + 刷题巩固。
2. 刷题练习大法
2.1 有效刷题的三板斧
-
难度阶梯
语法题 → 经典模板题 → 提高题 → 综合题 → 毒瘤题。
不要一上来就 Hard,人会裂开。 -
三遍法
- 第 1 遍:独立思考,写不出来直接看题解。
- 第 2 遍:隔天默写,确保理解。
- 第 3 遍:一周后回炉,手写 bug-free。
-
错题本 2.0
用 Git 建mistake/
目录,每道 WA 代码单独 commit,写 50 字总结。
下次比赛前git log --oneline
复习,效率爆表。
2.2 使用 AI 刷题的正确姿势
场景 | 正确打开方式 | 错误示范 |
---|---|---|
读不懂题 | 让 AI 翻译 + 举例 | 直接要代码 |
没思路 | 让 AI 给“提示链”:先暴力 → 再优化 | 一键复制粘贴 |
Debug 不出来 | 贴报错,让 AI 做 gdb 助教 | 把 AI 当 Stack Overflow |
底线:把 AI 当教练,不当枪手。
2.3 如何“抄”代码
- 手打而不是 Ctrl-C / Ctrl-V。
- 逐行加注释:抄一行,问自己“这行不写行不行?为什么”。
- 改变量名、改结构,确保和原实现不一样。
- 闭卷复现:隔一天,凭记忆再写一次。
经过这四步,抄来的代码就内化成肌肉记忆了。
3. 如何对待编程赛事
把比赛当体检:
- 赛前 2 周:专题复习 + 真题模拟。
- 赛中:先签到题稳心态,再开中档题,最后冲难题。
- 赛后 24 h 内:补题 + 写总结博客,趁热打铁。
长期主义:
把每一场比赛当作里程碑,而不是终点。
赢了总结优势,输了总结教训,持续迭代,终有一日你能把奖杯当杯子用。
如何速通各个考级/赛事
1.电子学会
电子学会为考级,需要支付考级费,目前如果第一次考级有成绩,就不能进行第二次考级,所以机会要把握
电子学会会公开考级内容,首先目标就是攻克各个内容,把不会的变成会的
刷题:多刷往年的真题,考级的时候会遇到往年的真题
2.计算机学会(CSP-J/S等)
非专业级认证和专业级认证,需要报名费,需要实打实的学习,练习
可以考很多次,分为初赛(选择判断),复赛(编程)
刷题:各个OJ平台提供考前模拟,多参加比赛也是有效措施
###蓝桥杯
需要报名费,多语言赛事,含金量高
分为多个级别,最高为国家赛事参加此比赛的人挺多,所以蓝桥杯的比赛建议较多
接下来,给出蓝桥杯(其他比赛也可以参考)的刷题建议
一、先定目标
- 省三:保基础题 + 填空题 60 % 正确率
- 省一/国二:真题 80 % 以上,难题至少暴力分不丢
- 国一:所有模板秒敲,能在 30 min 内切掉 2 道中等题
二、知识清单(按权重排序)
- 必考模板
‑ 前缀和 / 差分 / 离散化
‑ 二分、双指针、单调栈 / 队列
‑ DFS/BFS(连通块、最短路、拓扑)
‑ DP:背包、区间 DP、状压 DP、树形 DP
‑ 图论:最短路(Dijkstra / SPFA)、最小生成树、并查集
‑ 数学:质数筛、快速幂、GCD/LCM、组合数取模 - 常考数据结构
‑ 堆、Trie、线段树(区间最值 / 区间和)、ST 表 - 语言技巧
‑ C++17 语法糖(auto
、tuple
、bitset
)
‑ Python 选手务必背熟itertools
、bisect
、deque
三板斧
三、刷题路线(12 周示例)
Week 1-2 语法热身:数组、字符串、排序 100 题
Week 3-4 搜索:DFS/BFS/回溯 50 题
Week 5-6 动态规划:背包 + 区间 DP 50 题
Week 7-8 图论:最短路 + 最小生成树 40 题
Week 9-10 数学 + 数据结构 40 题
Week 11 历年省赛真题(限时 4 h 全真模拟)
Week 12 查漏补缺,整理模板,二刷错题
四、题单 & 平台
- 官方真题:近 5 年省赛 + 国赛(官网 PDF + 第三方题解)
- Luogu 题单:
‑ P2670-P2680(蓝桥杯专题)
‑ P3916-P3920(国赛难度) - AcWing 蓝桥杯辅导课:配套 300 题,每题都有视频
- 天梯赛 L1-L2:保持手速,训练 30 min 内切 5 题
五、每日训练节奏
- 30 min 复盘昨日错题
- 90 min 新题:先独立思考 20 min → 看题解 → 手打一遍 → 闭卷复现
- 30 min 模板默写:每天 2 个核心模板
- 周日参加一场线上模拟赛(Codeforces Div3 / AtCoder ABC)
六、考场技巧
- 开题顺序:填空 → 签到编程 → 中档题 → 难题骗分
- 对拍脚本:每题留 5 min 写随机数据 + 暴力对拍
- 文件读写:C++ 用
freopen
,Python 用sys.stdin.readline
- 时间分配:
‑ 填空题 8 min/题
‑ 基础编程 20 min/题
‑ 中档题 40 min/题
‑ 剩余时间攻难题或检查
七、错题管理
建立 mistakes.md
:
| 日期 | 题目 | 错误原因 | 改正要点 | 下次复习日期 |
|----|----|--------|--------|------------|
每周日统一回顾一次。
八、常见坑
- 别一上来刷官网压轴题,会被劝退
- 不要盲目抄板子,必须亲手敲三遍
- 不要忽视大数、边界、取模、爆
int
这类低级错误
`
此路线坚持 2-3 个月,省一基本稳;冲刺国一需再加 1-2 月难题训练。