【Python实习路线 00】大二开始准备第一份实习:我的 Python + AI 学习路线
«这是我为自己记录的一条学习路线。
从大二开始,我准备系统补充 Python 工程开发能力,同时继续自己的 AI 科研学习,希望在之后能够找到一份 Python / AI 应用相关的实习。»
- 为什么现在开始准备实习
我是一名计算机科学与技术专业的学生,目前即将进入大二。
在之前的学习中,我把比较多的时间放在了课程学习和科研项目上,也接触并实践了一些人工智能方向的项目。
但是,在这个过程中我逐渐意识到:
“能够完成科研项目”和“具备实际的软件开发能力”并不是一回事。
之前做科研的时候,我更多是在 Linux 服务器上配置环境、阅读论文、运行项目代码、修改模型以及分析实验结果。
这些经历让我接触到了 PyTorch、Transformer、ViT、计算机视觉以及 Test-Time Training(TTT)等内容。
但是,如果让我现在独立开发一个完整的后端或者 AI 应用,我还有很多东西不会。
例如:
- 如何设计数据库?
- 如何设计 API?
- 如何开发一个完整的 Web 后端?
- Redis 到底应该在什么场景使用?
- Docker 如何部署一个完整项目?
- 一个大模型应用从 API 到 RAG 是怎么构建起来的?
- 如何把自己的代码真正做成一个可以使用的项目?
这些问题让我意识到:
«现在开始补充工程能力是比较合适的时间。»
如果等到大三、大四再开始准备实习,时间可能会比较紧张。
所以我希望从现在开始,一边学习,一边做项目,一边记录自己的成长过程。
我希望以后回头看这个博客时,可以看到自己是如何从“会跑科研代码”,逐渐成长到“能够独立开发 AI 应用”的。
- 我目前的基础
目前我的学习经历主要分成两个部分:
计算机基础 + AI科研实践。
计算机基础
目前已经学习过 C、C++ 等课程内容,对基本的程序设计、数据结构和算法有一定了解。
Python 方面虽然没有进行过非常系统的学习,但是因为科研项目的原因,已经有了一定的实际使用经验。
例如:
- Python
- PyTorch
- Git / GitHub
- Linux
- CUDA / GPU服务器
- 深度学习项目环境配置
AI科研实践
之前参与过一些人工智能方向的科研项目,因此接触过:
- CNN
- Transformer
- Vision Transformer(ViT)
- PyTorch
- 计算机视觉
- 语义分割
- Test-Time Training(TTT)
- 论文阅读
- 论文代码复现
- 实验结果分析
也实际运行和复现过一些相关项目。
在这个过程中,我逐渐熟悉了:
论文
↓
理解模型
↓
配置环境
↓
运行代码
↓
修改代码
↓
实验
↓
分析结果
- 我目前存在的问题
虽然已经接触了不少 AI 和科研项目,但是如果从“实习要求”的角度重新审视自己,我发现目前还有很多不足。
第一,Python基础不够系统
以前使用 Python 更多是:
«看懂代码 → 修改代码 → 运行代码 → 调试代码»
但是对于 Python 本身的一些机制,我并没有进行系统学习。
例如:
- 面向对象
- 装饰器
- 生成器
- 上下文管理器
- 类型注解
- Python项目结构
- 日志系统
- 异常处理
- 虚拟环境与依赖管理
所以我准备重新系统学习 Python。
第二,工程开发能力不足
目前我的科研代码能力相对多一些,但是:
«从零开始开发一个完整项目的经验比较少。»
尤其是:
- 后端开发
- API设计
- 数据库
- Redis
- Docker
- Web开发
这些都是我需要补充的。
第三,数据库基础比较薄弱
目前对 MySQL 和 SQL 的掌握还比较有限。
但是以后开发一个真正的 AI 应用,不可能所有数据都直接存在 Python 程序里面。
用户信息、论文信息、聊天记录、项目数据等,都需要数据库进行管理。
因此 MySQL 也是我接下来重点学习的内容。
第四,对大模型应用开发还不够熟悉
虽然之前学习过 Transformer,也了解一些模型原理,但是:
«理解 Transformer ≠ 会开发 LLM 应用。»
我还需要继续学习:
- LLM API
- Token
- Embedding
- 向量数据库
- RAG
- Function Calling
- Agent
把以前偏“模型研究”的知识,逐渐扩展到“AI应用开发”。
- 为什么选择 Python + AI 应用
我目前比较明确的一点是:
«暂时不准备把自己的方向铺得太散。»
与其同时学习 Java、Python、前端、C++、各种 AI 框架,我更希望先把自己已经有基础的方向继续深入。
选择 Python + AI 应用,主要有三个原因。
第一,Python是我目前最熟悉的开发语言之一
虽然 Python 基础并不扎实,但是我已经通过科研项目积累了一定的实际使用经验。
因此相比完全重新学习一门语言,我更希望先把 Python 从:
«“能够运行科研代码”»
提升到:
«“能够独立完成工程项目”。»
第二,我已经有 AI 科研基础
我之前已经接触过:
«PyTorch → Transformer → ViT → TTT → 计算机视觉»
因此如果继续往:
«Python → LLM → RAG → AI应用»
发展,可以形成比较自然的连接。
第三,我希望让“科研”和“工程”结合起来
我不希望因为准备实习就完全放弃科研。
所以我目前给自己规划的是:
我的学习方向 │ ┌───────────┴───────────┐ ↓ ↓ Python实习路线 AI科研路线 │ │Python工程开发 Transformer
FastAPI ViT
MySQL TTT
Redis CV
Docker 论文复现
LLM 实验分析
RAG 科研创新
│ │
└───────────┬───────────┘
↓
AI应用项目
希望最终能够形成:
«既懂 AI,又具备一定工程开发能力。»
- Python 实习路线
目前我给自己规划的学习路线是:
Python基础
↓
Python工程化
↓
Git / GitHub
↓
Linux
↓
MySQL / SQL
↓
HTTP / Web
↓
FastAPI
↓
Redis
↓
Docker
↓
LLM
↓
Embedding / 向量数据库
↓
RAG
↓
Agent
↓
AI应用项目
具体来说:
第一阶段:Python
系统补充 Python 基础和工程能力。
第二阶段:开发基础
学习:
- Git
- GitHub
- Linux
- HTTP
- MySQL
- SQL
第三阶段:后端开发
重点学习 FastAPI,尝试自己设计和开发 API。
第四阶段:项目工程化
继续学习:
- Redis
- Docker
- 日志
- 异常处理
- 项目部署
第五阶段:AI应用
学习:
- LLM API
- Embedding
- Vector Database
- RAG
- Agent
最后通过完整项目把这些技术串起来。
- 学习目标
我希望自己接下来不是单纯“学很多技术”,而是达到一些比较具体的目标。
Python方面
能够:
«独立完成一个结构比较规范的 Python 项目。»
后端方面
能够:
«使用 FastAPI 独立设计和开发基本的 Web API。»
例如:
/register
/login
/upload
/documents
/chat
/history
数据库方面
能够:
«独立设计基本的 MySQL 数据库,并完成增删改查以及基本的 SQL 查询。»
工程方面
能够:
«使用 Git 管理项目,并使用 Docker 完成项目部署。»
AI方面
能够:
«独立调用大模型 API,并完成一个真正能够使用的 RAG 应用。»
最终目标
我希望最终达到的状态不是:
«“我学过 Python、FastAPI、MySQL、Redis、Docker……”»
而是:
«“我可以使用这些技术独立完成一个 AI 应用项目。”»
这是我给自己设定的核心目标。
- 项目规划
学习技术的最终目的还是为了做项目。
因此我准备边学习边开发自己的项目,而不是等所有课程全部学完以后才开始。
目前比较确定的一个项目方向是:
AI科研知识库
这个项目也和我目前的科研方向比较契合。
设想中的基本流程:
用户
↓
上传论文PDF
↓
PDF文本解析
↓
文本切分
↓
Embedding
↓
向量数据库
↓
检索相关内容
↓
RAG
↓
LLM
↓
生成回答
例如,我可以上传一篇关于 TTT 或 Transformer 的论文,然后询问:
«“这篇论文主要解决了什么问题?”»
«“作者提出的方法和传统方法有什么区别?”»
«“实验中使用了哪些数据集?”»
系统根据论文内容进行检索,然后让大模型基于检索到的内容回答。
后续还可以加入:
- 用户注册与登录
- 论文管理
- 聊天记录
- 关键词搜索
- 引用来源
- Redis缓存
- Docker部署
- Agent功能
这个项目既可以锻炼我的 Python 工程能力,也可以和自己的科研方向结合起来。
- 后续学习记录
从这篇文章开始,我准备正式记录自己的 Python 实习学习路线。
后续会按照学习进度持续更新,例如:
【Python实习路线 01】
Python基础:变量、数据类型与基本运算
【Python实习路线 02】
Python列表、元组、字典与集合
【Python实习路线 03】
Python函数、参数与返回值
【Python实习路线 04】
Python文件操作与JSON
【Python实习路线 05】
Python异常处理与模块
【Python实习路线 06】
Python面向对象
……
【Python实习路线】
Git / GitHub
【Python实习路线】
Linux
【Python实习路线】
MySQL
【Python实习路线】
FastAPI
【Python实习路线】
Redis
【Python实习路线】
Docker
【Python实习路线】
LLM
【Python实习路线】
RAG
【Python实习路线】
AI科研知识库项目
我不希望这些文章只是简单记录“今天看了什么课程”。
我更希望记录:
«学到了什么 → 写了什么代码 → 遇到了什么问题 → 怎么解决 → 最后应用到了什么项目。»
这样几年以后再回头看,这个博客不仅是一份学习笔记,也能够成为自己大学阶段技术成长的记录。
写在最后
现在的我其实还没有真正达到“能够胜任实习”的程度。
Python还需要继续补,工程能力也比较欠缺,数据库、后端和大模型应用也都是刚刚开始。
但是我觉得:
«现在开始并不晚。»
与其一直等到“准备好了”再开始,不如从现在开始,一边学习、一边实践、一边记录。
希望下一次回头看这篇文章的时候,我已经完成了:
Python
↓
工程开发
↓
AI应用
↓
项目
↓
实习
这就是我接下来一段时间准备努力的方向。
从现在开始,记录自己的成长。