Hello 算法编程环境安装指南:VS Code + 多语言运行时配置全攻略
<output_article>
《Hello 算法》是一套配套完整代码仓库的数据结构与算法教程,其示例代码覆盖 Python、Java、C++、C、C#、JavaScript、TypeScript、Go、Swift、Rust、Ruby、Kotlin、Dart、Zig 等十多种主流语言,分布在仓库的 codes/ 目录(见 en/README.md)。要流畅地运行书中的示例、对照动画逐步调试算法,你需要先搭好一套统一的编程环境。
本指南以英文文档 en/docs/chapter_appendix/installation.md 为骨架,系统讲解“VS Code IDE + 各语言运行时 + 关键扩展”的完整安装流程,并结合仓库中的 Dockerfile 与语言工程配置文件(CMake、go.mod、Cargo.toml 等),帮助你在本机一键运行任意语言的算法示例。
为什么选择 VS Code 作为配套 IDE
仓库官方推荐的本地 IDE 是 VS Code。它开源、轻量、跨平台,可运行在 Windows、macOS 与 Linux 上,通过扩展生态支持几乎所有教程涉及的编程语言。
选择 VS Code 有三个贴合本仓库的实用理由:
- 语言覆盖广:Python、C/C++、Java、C#、Go、Rust、Dart、Swift、JavaScript/TypeScript 均有官方或社区维护的高质量扩展,配合
launch.json即可完成断点调试。 - 一键运行示例友好:书中大量示例期望“拿到即可运行”,VS Code 内置终端 + 任务系统可以让你在编辑器内直接执行
codes/下任意章节脚本。 - 与 Docker 工作流互补:仓库提供了 Dockerfile(代码运行容器)与 docker-compose.yml,用 VS Code 的 “Dev Containers” 扩展可直接把整个
codes/挂载进容器开发。
安装步骤:访问 VS Code 官网下载与你操作系统匹配的版本并完成安装。
VS Code 的扩展安装入口统一为左侧活动栏的 Extensions 图标(或快捷键 Ctrl + Shift + X),在搜索框输入语言关键词,点 Install 即可。以下所有“安装 XX 扩展”的操作均指这一入口。
Python 环境
Python 是本仓库中使用频率最高的语言,codes/python/ 中每个章节都以独立的 .py 文件组织(如 climbing_stairs_dp.py),文件可被直接执行。
安装步骤:
- 下载并安装 Miniconda3,需要 Python 3.10 或更新版本。仓库中的代码使用现代 Python 语法(如类型注解
-> list[int]等),3.10 以下版本无法解析。 - 在 VS Code 扩展市场搜索
python,安装 Python Extension Pack。安装后 VS Code 会自动识别 conda 环境,并在状态栏显示当前解释器;选择正确解释器后,可直接点击右上角“运行”按钮执行.py文件。 - (可选)在命令行执行
pip install black安装 black 代码格式化工具,保持代码风格与仓库一致。
语言版本门槛有真实依据:仓库的 Docker 镜像统一采用
python:3.10.0-alpine(见 Dockerfile),而代码运行容器镜像也安装python3.10并通过update-alternatives设为默认python(见 codes/Dockerfile)。
一键跑通全部 Python 示例
codes/python/ 目录内置了批量回归脚本 test_all.py。在终端 cd codes/python 后运行:
python test_all.py
脚本会 glob.glob("chapter_*/*.py") 收集全部章节脚本,逐个以 subprocess 拉起子进程执行,收集非零退出的错误并抛出 RuntimeError。你的环境如果能让它全部通过,就说明 Python 侧就绪。JavaScript 与 Ruby 也提供同样的 test_all.js、test_all.rb 脚本,可用于验证对应运行时。
C / C++ 环境
C 语言代码位于 codes/c/,是仓库中需要最完整工具链的语言:编译、链接、CMake 构建、GDB 调试缺一不可。C++ 代码位于 codes/cpp/。
安装步骤:
- Windows:安装 MinGW-w64 以提供
gcc/g++编译器;macOS 自带 Clang,无需额外安装。Linux 发行版通常可用包管理器安装gcc g++ gdb(仓库的 codes/Dockerfile 正是apt-get install -y g++ gdb)。 - 在 VS Code 扩展市场搜索
c++,安装 C/C++ Extension Pack。它会附带 C/C++ 扩展(IntelliSense、调试)、CMake 工具与调试器支持。 - (可选)打开设置页(
Ctrl + ,),搜索Clang_format_fallback Style,将其设置为:
{ BasedOnStyle: Microsoft, BreakBeforeBraces: Attach }
这一配置会让 Ctrl + Shift + I(格式化文档)遵循微软风格、并在控制块前“贴附”大括号,与仓库 C 代码的书写风格保持一致。
用 CMake 构建 C 示例
codes/c/ 用 CMake 管理工程,根目录 CMakeLists.txt 声明了 project(hello_algo C) 并设置 CMAKE_C_STANDARD 11——即全仓 C 代码统一按 C11 标准编译。顶层 CMakeLists.txt 通过 add_subdirectory(...) 引入 13 个章节子目录(复杂度、链表、栈与队列、哈希、树、堆、图、搜索、排序、分治、回溯、动态规划、贪心),每个子目录有自己的 CMakeLists.txt 定义各自的可执行目标。以任意章节目录为构建根即可单独验证:
# 在 codes/c 目录下
cmake -S . -B build
cmake --build build
之后在 VS Code 中安装 C/C++ 扩展后,打开 codes/c 即可获得语法高亮、跳转与 CMake 目标列表;调试 C 示例需要先编译生成可执行文件,再用调试器附加。
Java 环境
Java 代码位于 codes/java/,按包 chapter_* 组织,每个章节一个源码目录,类中包含 main 方法可直接运行。
安装步骤:
- 下载并安装 OpenJDK。文档标注需 JDK 10 或更新版本(中文版表述为 “> JDK 9”,两者同义);仓库容器使用
openjdk-17-jdk(见 codes/Dockerfile),因此建议直接选用 JDK 17 LTS 以获得与仓库一致的长期支持版本。 - 在 VS Code 扩展市场搜索
java,安装 Extension Pack for Java。它整合了 Language Support for Java(基于 Eclipse JDT)、Java 调试器与 Maven/Gradle 支持。 - 用 VS Code 打开
codes/java目录,扩展会解析所有.java源码并构建工作区;打开带main的类(如 n_queens.java),点击 “Run” 即可运行。
C# 环境
C# 示例位于 codes/csharp/,是一个以 hello-algo.csproj 与 csharp.sln 组织的 .NET 工程。每个章节按目录承载类,其中常用辅助方法通过 GlobalUsing.cs 全局引入,便于顶层语句直接调用。
安装步骤:
- 下载并安装 .NET 8.0。版本要求有明确出处:仓库代码运行容器安装的正是
dotnet-sdk-8.0(见 codes/Dockerfile),因此 SDK 版本以 8.0 为准。 - 在 VS Code 扩展市场搜索并安装 C# Dev Kit。这是微软官方出品的一体化扩展(含 C# 扩展、.NET 工具与解决方案资源管理器),安装后可对
.sln/.csproj提供完整支持。 - 也可选择使用 Visual Studio(Windows/macOS 桌面版),其对 .NET 8 的支持同样完善。
在 VS Code 中打开 codes/csharp 后,可直接在终端执行:
dotnet run
或针对具体章节文件运行 dotnet run --project .,C# Dev Kit 还允许你右键单个 .cs 文件选择 “Run”。
Go 环境
Go 代码位于 codes/go/,以 go.mod 声明模块,章节包与工具包分离(章节子目录 + pkg/),每个示例文件含 main 或可独立调用的函数。
安装步骤:
- 下载并安装 Go(当前主流稳定版即可,仓库容器亦采用通用安装流程)。
- 在 VS Code 扩展市场搜索
go,安装 Go 官方扩展(gopls 语言服务器集成)。 - 按
Ctrl + Shift + P打开命令面板,输入go,选择 Go: Install/Update Tools,在弹出的列表中全选并安装。该命令会批量安装gopls、dlv(调试器)、staticcheck、goimports等工具链,是 Go 扩展正常工作的前提。
安装完成后,打开 codes/go,在终端 go run . 或对单个文件执行 go run ./chapter_searching 即可运行;命令面板 Go: Debug Test at cursor 支持断点调试。
Swift 环境
Swift 示例位于 codes/swift/,以 Swift Package Manager 组织:Package.swift 声明可执行目标,Package.resolved 固定依赖版本。Swift 目前主要支持 macOS 与 Linux。
安装步骤:
- 下载并安装 Swift。macOS 用户可跳过(Xcode 已内置工具链);Linux 用户下载对应发行版 tarball 后需将
usr/bin加入PATH。 - 在 VS Code 扩展市场搜索
swift,安装 Swift for Visual Studio Code(由 Swift Server Work Group 维护)。它提供语言服务、构建任务与测试集成。
在 VS Code 打开 codes/swift 后,扩展会自动识别 Package.swift;运行任一章节目录下的可执行文件,可在集成终端执行 swift run,或利用扩展提供的 Run 按钮直接运行当前 target。
JavaScript 与 TypeScript 环境
JavaScript
JavaScript 示例位于 codes/javascript/,公共模块集中在 modules/。安装步骤:
- 下载并安装 Node.js(建议 LTS 版本)。
- (可选)在 VS Code 扩展市场搜索并安装 Prettier,获得与仓库一致的代码格式化能力。
JS 示例是纯 Node 脚本,直接在终端运行:
node chapter_array_and_linkedlist/array.js
批量自检可运行 node test_all.js(见 test_all.js)。
TypeScript
TypeScript 示例位于 codes/typescript/,工程配置见 package.json 与 tsconfig.json。在 JavaScript 环境就绪后继续:
- 安装 TypeScript Execute (tsx),使 TS 文件可被直接执行而无需先编译:
npm install -g tsx
# 之后在 codes/typescript 下直接运行
tsx chapter_array_and_linkedlist/array.ts
- 在 VS Code 扩展市场搜索
typescript,安装 Pretty TypeScript Errors。它将 tsc 默认的单行错误提示渲染为排版清晰的错位图(diff 风格),在大型章节目录中排查类型错误更高效。
Dart 环境
Dart 示例位于 codes/dart/,章节目录扁平组织,每个 .dart 文件含 main。安装步骤:
- 下载并安装 Dart SDK(当前为 3.x 系列)。
- 在 VS Code 扩展市场搜索
dart,安装 Dart 官方扩展。它会附带 Dart Code 所需的调试支持(需配合 Chrome 或 Dart VM)。
在 VS Code 中打开 codes/dart,单个文件的 main 上方会出现 “Run” 按钮;也可在终端执行:
dart run chapter_sorting/bubble_sort.dart
Rust 环境
Rust 示例位于 codes/rust/,以 Cargo.toml 组织;src/ 下还有独立工具模块。安装步骤:
- 下载并安装 Rust。官方推荐方式是在终端执行
rustup-init,它会一并安装rustc、cargo与rustup(无需单独安装 Visual C++ Build Tools——Windows 用户除外,需先装好 MSVC 工具链)。 - 在 VS Code 扩展市场搜索
rust,安装 rust-analyzer。它是 Rust 官方的语言服务器,提供补全、跳转、类型内联与cargo check诊断。
rust-analyzer 会自动识别 codes/rust 下的 Cargo 工程;终端中运行示例:
# 在 codes/rust 目录下,指定包的对应可执行示例
cargo run
语言安装汇总速查表
| 语言 | 运行时/工具链 | 必备 VS Code 扩展 | 仓库代码位置 | 验证命令(示例) |
|---|---|---|---|---|
| Python | Miniconda3(Python ≥ 3.10) | Python Extension Pack | codes/python/ | python test_all.py |
| C / C++ | MinGW-w64(Windows)/ Clang(macOS);C 需 CMake | C/C++ Extension Pack | codes/c/ · codes/cpp/ | cmake -S . -B build && cmake --build build |
| Java | OpenJDK(≥ JDK 10,建议 17) | Extension Pack for Java | codes/java/ | 点击类上 Run |
| C# | .NET 8.0 SDK | C# Dev Kit | codes/csharp/ | dotnet run |
| Go | Go 工具链 + gopls/dl 等 | Go | codes/go/ | go run . |
| Swift | Swift 工具链 | Swift for Visual Studio Code | codes/swift/ | swift run |
| JavaScript | Node.js | (可选)Prettier | codes/javascript/ | node test_all.js |
| TypeScript | Node.js + tsx | Pretty TypeScript Errors | codes/typescript/ | tsx xxx.ts |
| Dart | Dart SDK | Dart | codes/dart/ | dart run xxx.dart |
| Rust | rustup(rustc + cargo) | rust-analyzer | codes/rust/ | cargo run |
此外,仓库还有 C#、Java 之外多语言的更多实现:C、Kotlin(codes/kotlin/)、Ruby(codes/ruby/)、Zig(codes/zig/,入口 main.zig)。其中 Kotlin 依赖 JVM、Ruby 依赖 Ruby 解释器、Zig 依赖 Zig 工具链,原理与上述流程一致:装好官方运行时 + 对应 VS Code 扩展即可运行。
环境一致性验证与常见问题
用仓库配置核对版本
如果你不想逐语言手动核对版本,可以直接对照仓库的两个权威文件:
- 代码运行容器 codes/Dockerfile:定义了
python3.10、g++ gdb、openjdk-17-jdk、dotnet-sdk-8.0等版本基线,可用docker compose up(配置见 docker-compose.yml,支持通过LANGS环境变量按需选择语言)快速获得一个与仓库一致的沙箱环境。 - 各语言工程文件:go.mod(Go 模块与版本)、Package.swift、Cargo.toml、package.json、hello-algo.csproj 分别锚定了对应语言的构建方式,是验证“我的工具链能不能跑这个仓库”的最短路径。
常见问题排查
- VS Code 选择了错误解释器/编译器:Python 通过状态栏切换 conda 解释器;C/C++ 通过命令面板
C/C++: Select IntelliSense Configuration指定gcc/clang路径;Java 需在java.home设置里指向已装的 JDK。 - Go 扩展提示工具缺失:按第 3 步执行
Go: Install/Update Tools全选安装,等待右下角安装完成通知再使用。 - C 编译失败:先确认已进入含
CMakeLists.txt的目录(根 codes/c/CMakeLists.txt 或任意章节子目录),并保证 CMake ≥ 3.10、编译器支持 C11。 - 运行 Python 示例报 Unicode/路径错误:仓库脚本显式设置
PYTHONIOENCODING=utf-8(见 test_all.py),在 Windows 终端可用chcp 65001切换 UTF-8 代码页后再运行。
小结
至此,你已按官方文档完成 VS Code 与全部主要语言环境的安装与验证:先装 IDE,再按“运行时 → VS Code 扩展 → 可选格式化工具 → 运行示例验证”的固定套路,逐个打通 Python、C/C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust 的执行链路。装好后即可打开 codes/ 下任意章节文件,跟随书中的动画与代码同步运行,真正实现“边看边跑边调”。若需要与本仓库保持零偏差的一致环境,直接使用 Dockerfile 构建容器是最省心的选择。
</output_article>
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0629
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python07
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00

