跳转至

核心内容

本文意在根据不同情况,用最少的课建立计算机框架、掌握转码面试基本技能。全部跟下来大概需要 200 小时, 即 3 - 4 个月时间。

Note

不要只看视频,不写作业哦;有作业的,一定动手写了。如果有问题欢迎在相应的课程页面留言讨论。 比如:CS61A

英文不太好的小伙伴看这里:核心内容中文替代

不喜欢看视频,且有一定的编程基础的同学可以:核心书籍路线

工科、理科本科

如果接受了一般工科或者理科教育,那么数学不需要重复学习了:高等数学、线性代数、概率和统计。 计算机本科会涉及一门叫做离散数学的学科,但是对于转码阶段的人的来说,不重要。

有一点编程经验

比如,写过 Python、Matlab、VBA 等脚本, 知道基本的编程语言组成部分,比如执行、循环、分支等等。

以下是核心课程,估计用时合计小于 200 小时,按照一周 20 小时计算,考虑到作业困难或者其他阻碍, 全部完成大概需要 3 - 4 个月时间。

解释一下为什么选择如下资源。这几门课程包含了:计算机引论、计算机组成原理、数学结构和算法、面试刷题。 同时这些课涉及了不同的编程语言:C,Python,Java,SQL 等等,覆盖了市面上最主流的工作语言。 而且,不必专门再去话时间入门这些语言,因为这些课程都会讲述足够多的关于语言本身的内容,同时配合 相应的练习,只要坚持把作业做了,不但可以掌握相关计算机基础,还可以磨炼语言本身的使用,为将来找工作 奠定良好的基础。

注意到这些课程并没有涉及更多的计算机专业课,比如操作系统、数据库实现、计算机网络、编译原理、分布式系统等课程。 主要原因是:一来,在没有坚固的基础时这些课程只会增加烦恼;二来,转码面试并大概率不会涉及如此特别深入的内容, 而浅显的内容已经在计算机组成原理中所有涉及,特别是 Coursera: Nand2Tetris 这门课。

  • 计算机科学与技术 - 入门课40讲全
    • 类型:计算机引论
    • 时间:10 小时
    • 形式:视频
    • 语言:英文(中字)
    • 编程语言:无
    • 难度:⭐
  • CS61A Structure and Interpretation of Computer Programs
    • 类型:计算机引论
    • 时间:50 小时
    • 形式:视频、讲义、作业、大作业
    • 语言:英文(英字)
    • 编程语言:Python, Scheme, SQL
    • 难度:⭐⭐⭐
  • CS61B: Data Structures and Algorithms
    • 类型:专业课
    • 时间:70 小时
    • 形式:视频、讲义、作业、大作业
    • 语言:英文(英字)
    • 编程语言:Java
    • 难度:⭐⭐⭐⭐
  • Coursera: Nand2Tetris
    • 类型:计算机组成原理
    • 时间:40 小时
    • 形式:视频、讲义、作业、大作业
    • 语言:英文(英字)
    • 编程语言:不需要
    • 难度:⭐⭐
  • LABULADONG 的算法网站
    • 类型:应试
    • 时间:难以估计,不需要一次完成
    • 形式:讲义、Leetcode
    • 语言:中文
    • 编程语言:任意,Python、Java、C++、JS 等等
    • 难度:⭐⭐
  • MIT-Missing-Semester
    • 类型:工作会用到的各种东西
    • 时间:10 小时
    • 形式:视频、讲义、作业
    • 语言:英文(英字)
    • 编程语言:Bash
    • 难度:⭐⭐

毫无编程经验

这里其实只替换了第二门课,变成了 CS50 因为这门课对无编程经验的人更加友好,更加简单。

以下是核心课程,估计用时合计小于 200 小时,按照一周 20 小时计算,考虑到作业困难或者其他阻碍, 全部完成大概需要 3 - 4 个月时间。

  • 计算机科学与技术 - 入门课40讲全
    • 时间:10 小时
    • 形式:视频
    • 语言:英文(中字)
    • 编程语言:无
    • 难度:⭐
  • CS50
    • 时间:30 小时
    • 形式:视频、讲义、作业、大作业
    • 语言:英文(英字)
    • 编程语言:Python, SQL, C, HTML, CSS, JavaScript
    • 难度:⭐⭐
  • CS61B: Data Structures and Algorithms
    • 类型:专业课
    • 时间:70 小时
    • 形式:视频、讲义、作业、大作业
    • 语言:英文(英字)
    • 编程语言:Java
    • 难度:⭐⭐⭐⭐
  • Coursera: Nand2Tetris
    • 类型:计算机组成原理
    • 时间:40 小时
    • 形式:视频、讲义、作业、大作业
    • 语言:英文(英字)
    • 编程语言:不需要
    • 难度:⭐⭐
  • LABULADONG 的算法网站
    • 类型:应试
    • 时间:难以估计,不需要一次完成
    • 形式:讲义、Leetcode
    • 语言:中文
    • 编程语言:任意,Python、Java、C++、JS 等等
    • 难度:⭐⭐
  • MIT-Missing-Semester
    • 类型:工作会用到的各种东西
    • 时间:10 小时
    • 形式:视频、讲义、作业
    • 语言:英文(英字)
    • 编程语言:Bash
    • 难度:⭐⭐

非工科本科

坏消息是:非工科的同学如果没有学过线性代数和概率统计,需要学习。

好消息是:数学在转码阶段并不那么重要。

所有,直接参考上一章即可。

Note

如果大家有任何疑问欢迎下方留言,或者在 Q&A 查找或留言。


最后更新: May 26, 2023
创建日期: May 26, 2023

评论