核心内容
本文意在根据不同情况,用最少的课建立计算机框架、掌握转码面试基本技能。全部跟下来大概需要 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