外观
基础与工具全景
工具的意义是降低摩擦,基础的意义是让你知道工具在做什么。理想的计算机研究能力,可以用一句有挑战性的培养目标概括:能在自己设计的 CPU 上运行自己写的操作系统,并用自己写的编译器运行自己设计的语言。
理论基础能力栈
text
┌─────────────────────┐
│ 软件工程 / 数据工程 │
└──────────▲──────────┘
┌──────────────────────┼──────────────────────┐
│ 系统编程 │ 计算机网络 / 数据库 │
└──────────────────────▲──────────────────────┘
┌──────────────────────┼──────────────────────┐
│ 计算机组成原理 → 编译原理 → 操作系统 │
└──────────────────────▲──────────────────────┘
┌──────────────────────┼──────────────────────┐
│ 数据结构 ↔ 算法设计与分析 │
└──────────────────────▲──────────────────────┘
┌───────────┴───────────┐
│ Python / C → 面向对象 │
└───────────────────────┘这不是要求所有人先学完底层课程才能研究,而是提醒:当性能、并发、内存、编译或系统问题成为瓶颈时,你需要知道应当向哪一层追溯。
工具地图
| 场景 | 工具 |
|---|---|
| 代码托管与协作 | Git(worktree / LFS / releases / pages)、GitHub、Hugging Face、Dropbox |
| 编辑器与写作 | VS Code / Vim / Zed、Markdown / LaTeX / Overleaf / Google Docs |
| 终端与系统 | WSL / Linux、zsh / oh-my-zsh、SSH、tmux / herdr |
| 容器与部署 | Docker / Kubernetes、Nginx、Netlify / Vercel / Cloudflare |
| API 与 Python 环境 | FastAPI、uv |
| 深度学习与跟踪 | PyTorch / JAX / PyTorch Lightning、W&B / SwanLab |
| 前端与桌面端 | fnm、Vue / React / Svelte、Tailwind CSS、TypeScript、Electron / Tauri |
| Coding Agent | Claude Code / Codex / OpenCode 等 |
工具这么多,要全学吗?
不需要。更实际的目标是:知道某类工具能解决什么问题,在出现瓶颈时能找到并读懂官方文档。
按需翻阅
先掌握当前工作流中高频、不可替代的工具。不要因为工具列表很长,就同时配置多个编辑器、终端和实验平台。
简单事情直接做
不是所有操作都值得交给 Coding Agent。一条熟悉的 Linux 命令可能比多轮对话更快,也更容易验证。
避免 De-skilling
长期把判断和实现全部外包给 AI,会削弱定位错误、理解系统和手写核心逻辑的能力。Agent 应该扩大你的能力边界,而不是让你失去基础技能。
选择工具的三问
- 它解决了当前哪个明确瓶颈?
- 现有工具或标准库是否已经足够?
- 团队能否理解、复现和长期维护它带来的流程?