本文档全面概述了《编程面试大学》仓库中可用的编程语言资源。这些资源旨在帮助您掌握在编码面试和专业发展中将使用的特定语言。有关选择面试重点语言的指导,请参阅如何选择面试语言。
该仓库包含用于技术面试的流行编程语言的各种学习材料。这些资源按语言组织,包括备忘单、教程、书籍、视频课程以及特定语言的面试准备材料。
图表:面试准备过程中的语言资源
来源:programming-language-resources.md1-113
每个编程语言部分都包含一套精心挑选的、涵盖不同类别的资源。以下图表展示了主要语言可用的材料类型:
图表:按编程语言划分的资源类型
来源:programming-language-resources.md1-113
C 和 C++ 是技术面试的热门选择,特别是对于需要系统级编程或性能关键型应用程序的职位。
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 备忘单 | ANSI C 参考卡 | extras/cheat sheets/C Reference Card (ANSI) 2.2.pdf |
| 书籍 | K&R C 语言书籍 (ANSI C) | programming-language-resources.md5 |
| 书籍 | C 语言入门 | programming-language-resources.md12 |
| 教程 | C 语言编程完整教程(适合初学者) | programming-language-resources.md13 |
| 参考 | 深入学习 C 语言 | programming-language-resources.md14 |
| 调试 | GDB 和 Valgrind | programming-language-resources.md8-11 |
| 面试 | C 语言编程热门面试题 | programming-language-resources.md7 |
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 备忘单 | C++ 参考 | extras/cheat sheets/Cpp_reference.pdf |
| 备忘单 | STL 快速参考 | extras/cheat sheets/STL Quick Reference 1.29.pdf |
| 教程 | C++ 基础、指针、类、函数、模板 | programming-language-resources.md19-24 |
| 高级 | OOP、STL、仿函数、作用域与链接 | programming-language-resources.md26-30 |
| 风格指南 | Google C++ 风格指南 | programming-language-resources.md32-33 |
| 书籍 | C++ 入门,C++ Primer | programming-language-resources.md36-37 |
| 视频 | C++ 初学者教程,Google 的 C++ 实践 | programming-language-resources.md31-38 |
| 面试 | C++ 面试问题 | programming-language-resources.md39 |
来源:programming-language-resources.md3-39 extras/cheat sheets/Cpp_reference.pdf extras/cheat sheets/STL Quick Reference 1.29.pdf
Python 因其可读性和丰富的库而在编码面试中成为最受欢迎的语言之一,尤其适用于算法和数据科学问题。
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 备忘单 | Python 备忘单 | extras/cheat sheets/python-cheat-sheet-v1.pdf |
| 视频教程 | Python 一小时速成,Python 3.4 系列教程 | programming-language-resources.md42-43 |
| 统计信息 | 黑客统计学 | programming-language-resources.md44 |
| 性能 | 更快的 Python | programming-language-resources.md45 |
| 最佳实践 | 10 个 Pythonic 代码技巧,超越 PEP 8 | programming-language-resources.md47-48 |
| 书籍 | 用 Python 自动化无聊的工作 | programming-language-resources.md49 |
| 算法 | Python 中的数据结构与算法 | programming-language-resources.md51 |
| 参考 | Python 编程教程 | programming-language-resources.md52 |
| 面试 | Python 面试问题 | programming-language-resources.md53 |
| 指南 | Python 初学者指南 | programming-language-resources.md54 |
来源:programming-language-resources.md40-54 extras/cheat sheets/python-cheat-sheet-v1.pdf
Java 在企业环境中广泛使用,是编码面试的常用语言,特别适用于后端和 Android 职位。
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 课程 | 斯坦福 CS106A - 编程方法 | programming-language-resources.md56 |
| 备忘单 | Java 备忘单 | programming-language-resources.md57 |
| 书籍 | Java 编程导论,算法第四版 | programming-language-resources.md58-59 |
| 书籍 | 高效 Java 第三版 | programming-language-resources.md60 |
| 数据结构 | 从易到难的数据结构课程 | programming-language-resources.md61 |
| 数据结构 | Java 中的数据结构 | programming-language-resources.md63 |
| 面试 | Java 面试问答精选 | programming-language-resources.md62 |
来源:programming-language-resources.md55-63
该仓库提供了包括 HTML、CSS 和 JavaScript 在内的 Web 开发语言资源,这些对于前端面试来说变得越来越重要。
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 备忘单 | HTML 备忘单 | programming-language-resources.md75 |
| 教程 | HTML 快速教程,HTML 速成班 | programming-language-resources.md76-77 |
| 参考 | 深入学习 HTML,W3 Schools | programming-language-resources.md78-80 |
| 面试 | HTML 面试问题 | programming-language-resources.md81 |
| 教程 | CSS 快速教程,CSS 速成班 | programming-language-resources.md83-84 |
| 参考 | CSS 基础,W3 Schools | programming-language-resources.md85-86 |
| 面试 | CSS 面试问题 | programming-language-resources.md87 |
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 备忘单 | JavaScript 备忘单 | programming-language-resources.md89 |
| 教程 | 12 分钟学习 Javascript,Javascript 初学者教程 | programming-language-resources.md90-91 |
| 算法 | Javascript 算法和数据结构,带解释的算法 | programming-language-resources.md92-93 |
| 参考 | Javascript 教程 - 从零开始学习 | programming-language-resources.md94 |
| 面试 | Javascript 面试问答 | programming-language-resources.md95 |
来源:programming-language-resources.md74-95
该仓库还包括在某些领域日益流行的其他编程语言资源
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 官方文档 | Go 编程语言 | programming-language-resources.md65-66 |
| 导览 | Go 语言之旅 | programming-language-resources.md67 |
| 指南 | 高效 Go 编程 | programming-language-resources.md68 |
| 哲学 | Go 谚语,Google 的 Go 实践 | programming-language-resources.md70-72 |
| 实践 | Gophercises - Go 语言编程练习免费课程 | programming-language-resources.md73 |
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 书籍 | Rust 编程语言 | programming-language-resources.md97 |
| 示例 | Rust 实例 | programming-language-resources.md98 |
| 教程 | Rust 教程,轻松学习 Rust | programming-language-resources.md99-100 |
| 概述 | Rust 概述,Rust 温和入门 | programming-language-resources.md101-102 |
| 资源类型 | 描述 | 来源 |
|---|---|---|
| 书籍 | Ruby 编程语言,优雅的 Ruby 编程 | programming-language-resources.md106-107 |
| 实践 | Ruby Fu,Ruby Koans | programming-language-resources.md108-109 |
来源: programming-language-resources.md64-109
为了充分利用这些语言资源,请考虑以下方法
图表:语言学习进阶
来源:programming-language-resources.md1-113
不同的资源服务于不同的学习目的。请使用此表,根据您当前的学习阶段确定哪些资源可能最有帮助
| 学习阶段 | 推荐资源 | 目的 |
|---|---|---|
| 初学者 | - 视频教程 - “X分钟学会Y”指南 - 基本语法参考 | 快速介绍语言语法和基本概念 |
| 中级 | - 书籍 - 综合教程 - 速查表 - 练习题 | 巩固知识并开始建立熟练度 |
| 高级 | - 风格指南 - 高级概念 - 实现挑战 - 最佳实践 | 掌握地道代码和高级语言特性 |
| 面试准备 | - 面试问题集 - 特定语言的算法实现 - 性能优化指南 | 专注于面试中常考的方面 |
来源:programming-language-resources.md1-113
《编程面试大学》仓库中提供的特定语言资源,为您学习和掌握用于技术面试的编程语言提供了一套全面的材料。请选择最符合您学习风格和当前知识水平的资源,并将其与仓库中的其他材料结合使用,为您的面试准备打下坚实的基础。
请记住,熟练掌握一门编程语言只是面试准备的一个方面。您还应该专注于理解核心计算机科学概念、练习算法问题解决能力,并培养强大的沟通技巧,这些都在本仓库的其他部分中有所阐述。