菜单

概述

相关源文件

《编程面试大学》(CIU)是一套全面、结构化的课程,旨在帮助软件工程师为大型科技公司的技术面试做准备。本文档介绍了该仓库的主要组成部分,解释了它们之间的关系以及用户如何有效地利用这些丰富的学习材料。

来源: README.md58-74 README.md1-15

目的与范围

《编程面试大学》最初是为从事Web开发的工程师转岗至大型科技公司软件工程职位而设计的学习计划。现已发展成为一份全面的路线图,涵盖了计算机科学基础概念、数据结构、算法和面试准备技巧。本课程特别侧重于帮助工程师准备谷歌、亚马逊、脸书和微软等公司的技术面试。

本概述主要介绍仓库的高层组织结构。有关详细学习材料,请参阅本文档中引用的各个部分。

来源: README.md58-74 README.md201-217

系统组件

图示:《编程面试大学》高层系统架构

来源: README.md75-152 README.md334-335

核心学习计划

核心学习计划是《编程面试大学》的中心组成部分。它提供了一个结构化的课程,涵盖了技术面试所需的计算机科学基础知识。

图示:核心学习计划内容结构

学习流程与进展

本课程设计为顺序学习,各主题之间逻辑递进,从基础概念到高级主题层层深入。

图示:学习流程和推荐进度

来源: README.md505-532 README.md452-471 README.md489-503

方法论与途径

《编程面试大学》的核心方法论包括:

  1. 概念学习:理解计算机科学理论概念
  2. 实现练习:从零开始编写数据结构和算法
  3. 解决问题:运用知识解决编程问题
  4. 定期复习:使用间隔重复法巩固记忆
  5. 模拟面试:练习白板编程和沟通技巧

这种方法旨在同时培养技术面试所需的知识和实践技能。

来源: README.md218-246 README.md406-425

翻译生态系统

《编程面试大学》已被翻译成多种语言,以使其能被全球受众访问。

状态语言
完整翻译中文(简体与繁体)、越南语、西班牙语、葡萄牙语(巴西)、波兰语、日语、俄语、德语、印尼语、高棉语、孟加拉语、乌兹别克语
正在翻译中阿拉伯语、法语、希腊语、韩语、希伯来语、印地语、波斯语、泰卢固语、泰语、土耳其语、乌克兰语及其他

翻译系统允许贡献者维护不同语言版本的课程,使非英语使用者也能获取这些资源。

来源: README.md17-55 translations/README-ko.md16-52

编程语言资源

尽管核心课程是语言无关的,侧重于概念而非具体实现,但该仓库提供了针对各种编程语言的资源。

一个专用文件(programming-language-resources.md)包含了针对以下语言的特定资源:

  • C++
  • Java
  • Python
  • 以及技术面试中常用的其他语言

该仓库建议用户选择一种主要编程语言进行面试准备,其中C++、Java和Python是大型公司技术面试中最广泛接受的选择。

来源: README.md281-335

辅助材料和学习工具

该仓库包含以下几个支持性组件:

书籍推荐

精选列表:

  • 数据结构与算法书籍
  • 面试准备书籍
  • 特定语言资源

学习方法

有效学习方法的指导,包括:

  • 使用闪卡进行间隔重复
  • 白板练习
  • 每日学习计划
  • 编程问题练习平台

准备时间线

图示:推荐准备时间线

来源: README.md407-445 README.md489-566

与传统计算机科学教育的主要区别

《编程面试大学》与传统计算机科学教育有几个不同之处:

  1. 侧重面试相关性:优先选择技术面试中常考的主题
  2. 实践实现:强调概念的代码实现
  3. 自定进度结构:专为独立学习设计,无需正式教学
  4. 与行业对齐:根据行业要求量身定制,而非学术全面性

这种专注的方法使用户能够高效地准备技术面试,而无需花费时间在行业面试中很少测试的学术主题上。

来源: README.md58-74 README.md201-217

快速入门

开始使用《编程面试大学》:

  1. 选择一门编程语言进行学习和面试准备
  2. 按照每日计划,按顺序学习各个主题
  3. 在学习数据结构和算法时进行实践实现
  4. 定期练习编程问题
  5. 使用间隔重复技术复习材料
  6. 在临近目标面试日期时参与模拟面试

该仓库被设计为一个可供分支的清单,完成的项目可以勾选,从而允许用户跟踪其学习进度。

来源: README.md218-246 README.md489-503