每年开学,都有大一同学来问:想学编程、想搞数学建模,该从哪儿开始,看什么。
网上资源多是多,但太散。这个教程说要从 C 语言开始,那个视频说直接上机器学习,看一圈下来反而更懵。
我这些年自己也教过不少学生,陆陆续续写过一批相关的东西,干脆按学习顺序整理成一份指南,专门给刚入学的同学用。
下面这些链接,都是我公众号上发过的文章,点进去就能看。我没有把网上所有好资源都塞进来,只挑了自己看过、用过、觉得靠谱的。顺序上建议从头往后走,跳着看容易卡壳。
一、先把环境搭起来
学 Python 第一件事不是写代码,是装环境。这一步劝退的人比语法本身多,先把地基打好。
Windows 用户照着这篇做就行,从 USTC 镜像下载,装到固定路径,配好镜像源:
装完之后,建议顺手把「路径」这个概念搞明白。以后报的各种「找不到命令」「模块导入失败」,八成都是路径问题:
二、Python 基础
环境好了,按这个顺序看。这四篇篇幅都不长,但把关键点讲到了。
- Python 基础语法5分钟入门 —— 数据类型、容器、索引切片、条件循环、函数、异常,一篇过一遍。
- 面向对象编程入门:用武侠角色理解 Python 中的“类” —— 用武侠角色打比方,把类、实例、继承讲明白。
- 简单说说Python里面的「函数是第一公民(First-Class Citizen)」 —— 理解 Python 的函数为什么特殊,后面学装饰器、回调都靠它。
- 单一职责原则:写好Python函数的第一步 —— 不是语法,是习惯。早点养成,代码质量差很多。
这一阶段的目标很具体:能自己写脚本处理文件、批量改文件名、读一份 Excel 或 CSV 做点统计。做得到,基础就算过关了。
三、数学与科学计算基础
写代码只是工具,真做建模和数据分析,数学底子决定你能走多远。这几篇不要求你数学多好,但帮你把计算机里的数字、统计和常见概念搞清楚。
- 基础知识:初级统计概念的简单介绍 —— 均值、方差、分布这些,用最直白的话讲一遍。
- 单精度浮点数的“分辨率”:为什么在计算机里 1000 万和 1000 万加 0.01 可能是一样的? —— 为什么算出来的数会「不准」,这篇讲得最清楚。
- 你的电脑每秒能做多少次浮点运算?——FLOPS 的故事 —— 算力到底怎么衡量。
- 只测 FLOPS 还不够——四个经典 CPU 测试基准 —— 接着上一篇,讲讲实际性能怎么测。
- 基础概念-拉普拉斯算子(排版修复版本) —— 一个在物理、图像、微分方程里到处出现的算子。
- 一维查找方法综述:从三分、黄金分割到 Fibonacci 与 Brent —— 优化的入门,怎么用最少的次数找到你要的值。
四、数值方法:积分与滤波
这部分开始上强度了。建议不要只看,把代码敲一遍,改改参数看看结果怎么变。
积分和求根,从最简单的梯形法一路到自适应方法:
滤波,做传感器、导航、信号处理、时间序列预测都用得上,也是数学建模里很实用的一块。这篇把从移动平均到粒子滤波的几类方法串了一遍:
五、数学建模实战
这是一个完整的系列,从零讲怎么把一个现实问题变成数学模型,再用 Python 跑出来、画出来。强烈建议跟着做一遍,哪怕只是照抄代码再改改参数。
- 数学建模与Python:探索世界的数字钥匙 —— 总纲,先看这篇。
- 数学建模与Python:高空坠落的硬币传说
- 数学建模与Python:共享单车系统建模-从简单模拟到参数优化
- 数学建模与Python:天体运行模型-从日地月到三体系统的模拟
- 数学建模与Python:能量模拟-从分子运动到宏观热力学
- 数学建模与Python:图灵的形态发生模型-从均匀到有序
- 数学建模与Python:沙堆崩塌模型-自组织临界性
- 数学建模与Python:传染病模型与森林火灾-从空间传播到自组织临界性
学完这些,建议去参加一次数学建模竞赛。校赛、国赛、美赛都行,重点是逼自己完整走一遍「读题—建模—编程—写论文」的流程,这个经验比多看十篇文章都值。
六、科研与论文(提前准备)
大一就开始准备不早。等你要写课程论文、大创、竞赛论文的时候,这些能救命。
- 新手向的 Markdown 数学公式指南 —— 先把公式怎么写学会。
- 学术论文中常见研究方法综述及简单举例 —— 知道论文里那些方法都是干嘛的。
- 学术研究支持工具分类与文献获取方法 —— 文献去哪儿找、怎么管。
- 《给研究生的一些建议》(本人翻译版本) —— 虽然是给研究生的,大一看了能少走很多弯路。
- 高校教师建议大一新生养成阅读论文的习惯 —— 为什么、怎么读论文。
- 计算机相关专业学生的自学指南:从教材到实践的全新学习路径 —— 想系统自学计算机的看这篇。
如果你对 AI 方向感兴趣,可以顺着这两篇往下走:
七、边学边用的工具
下面这些工具都是我用 Python 写的,源码不复杂,可以拿来当练手项目读,也可以直接拿来用。
- Chou(瞅)——一个Python小工具,让你的论文PDF文件名不再是乱码 —— 论文党必备。
- NuoYi 挪移-一个离线的 PDF/DOCX 转 Markdown 工具 —— 把 PDF 资料变成能编辑的文本。
- Huan-一个把网页转换成 Markdown的Python 小工具
- HeiBan(黑板)-将Markdown转换成HTML来当讲义 —— 做讲义、做汇报很好用。
- Xie(写):把 Markdown 转成微信公众号格式网页的小工具
- 推荐一款MarkDown的跨平台离线编辑器,支持随时预览
八、给大一的几条建议
最后说几条老登常谈。
别只看视频。 看的时候觉得都懂了,自己一写就卡壳,这是常态。看一段就自己敲一遍,改改参数、故意写错看看报什么错,比连看三小时视频有用。
从项目出发。 不要等「学完了」再动手,永远等不到那一天。找一个自己感兴趣的小题目,比如把班级成绩表处理一下、爬个天气数据画张图,边做边查,学得最快。
数学别丢。 高数、线代、概率统计,这些课当时觉得没用,等你做建模、看论文、学机器学习的时候,全会回来找你。课上认真听,比以后补课省事得多。
参加一次数学建模竞赛。 不管拿不拿奖,完整做一次的价值都很大。组队、分工、熬夜、写论文,这个过程本身就是训练。
英语要跟上。 最新的文档、论文、教程几乎都是英文的。不用一上来就啃原著,但至少要习惯看英文文档,别一见到英文就去找二手翻译。
别怕报错。 报错是常态,不是你笨。学会看报错的最后一行、学会搜索报错信息,这个能力比记住多少语法都重要。
用好 AI 工具,但别依赖它。 现在用 AI 辅助写代码、查资料确实方便,但基础得自己打。AI 给的代码你要看得懂、能改,否则出了问题完全没法排查。
九、外部资源
除了我写的这些,下面这些是我觉得值得收藏的:
- Python 官方文档:https://docs.python.org/zh-cn/3/ ,中文版,遇到问题先查它。
- 《Think Python》原书:https://greenteapress.com/wp/think-python-2e/ ,免费。
- 数据集平台:Kaggle(https://www.kaggle.com/datasets )和 ModelScope(https://www.modelscope.cn/datasets ),练手用。
- 数学建模竞赛:全国大学生数学建模竞赛官网 http://www.mcm.edu.cn/ ,先看历年题目。
- 书:姜启源《数学模型》、司守奎《数学建模算法与应用》,图书馆一般都有。
最后
大学四年,最不缺的是时间,最容易被浪费的也是时间。大一这一年如果能把 Python 和数学的基础打扎实,后面做项目、进实验室、参加竞赛、找实习,都会轻松很多。
不用着急,也不用什么都学。照上面的顺序,一周啃一两篇,动手做,坚持一个学期,回头你会感谢现在的自己。
有问题欢迎在公众号后台留言,我看到会回。