-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8b5fe75
commit 5fa398d
Showing
23 changed files
with
708 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
name: ci | ||
on: | ||
push: | ||
branches: | ||
- master | ||
- main | ||
jobs: | ||
deploy: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.x | ||
- run: pip install mkdocs-material | ||
- run: mkdocs gh-deploy --force |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
comments: true | ||
--- | ||
|
||
!!! note | ||
泛泛还在为这个网站增加内容,如果你有希望了解的话题或者问题,欢迎下方留言! | ||
|
||
# 经典问答 | ||
|
||
## 转码难吗? | ||
|
||
不轻松,但是本站提供了一个 200 小时的学习方案。换句话说,付出 200 小时,你应该可以上岸了。 | ||
不过,任何职业都是一个终身学习的过程,转码成功后还可以按照 [进阶课程](./advanced/advanced.md) | ||
继续学习。当然,参与实际的工作项目以后,会学习到更多本行业的业务相关的知识。 | ||
|
||
## 在哪里下载电子书? | ||
|
||
两个主要的线上书店: | ||
|
||
- [Zlib](https://zh.b-ok.cc/) | ||
- [LibGen](http://libgen.is/) | ||
|
||
## 我应该转前端还是后端还是其他?? | ||
|
||
这个问题比较难回答,[核心课程](./core/core.md) 中涉及的绝大部分内容都跟后端相关性更强,不过 | ||
也有设计前端的技术栈,例如 CSS、JavaScript、HTML 这些。 | ||
|
||
另外,如果建立了良好的计算机框架,我们的选择面还是比较灵活的,前后端还是有一部分重叠内容。 | ||
|
||
## 我应该学习哪门计算机语言? | ||
|
||
如果你已经有了心仪的公司或者行业,你应该去调查一下这个行业的主流编程语言。 | ||
|
||
当然,如果你做完了 [核心课程](./core/core.md) 你应该已经可以比较轻松的写出主流语言: | ||
C、Java、Python、JavaScript。 | ||
|
||
## 转码编译原理需要学吗? | ||
|
||
如果基础比较差,不需要。 | ||
|
||
## 转码需要学操作系统实现吗? | ||
|
||
不是必须的,特别是操作系统实现。 | ||
|
||
## 这个网站是怎么做的? | ||
|
||
使用了如下技术栈: | ||
|
||
- Github | ||
- mkdoc | ||
- Material 主题 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# 关于我 | ||
|
||
泛泛,土木工程本硕博,智力一般,非211本科,985硕博,对计算机有兴趣浓厚。 | ||
|
||
27岁萌生转码想法,28岁开始正式准备,29岁博士毕业,同年入坑量化对冲基金行业,31岁入职头部量化对冲基金高级工程师。 | ||
|
||
网络上大部分流传的转码故事以互联网为主,其他行业,比如量化对冲基金,资源较少。对于量化对冲基金和互联网的开发人员主要的区别在于业务知识,但是业务知识对于转码本身来说没有太多区别。因为对于转码人员,最缺乏的是基础知识和知识框架,这部分无论做什么业务都是必要的。而业务往往是根据自己感兴趣的方向决定的。 | ||
|
||
如果你对泛泛感兴趣:可以在 | ||
|
||
- [知乎](https://www.zhihu.com/people/wangzhetju) | ||
- [小红书](https://www.xiaohongshu.com/user/profile/5d093f22000000001201fe8a?xhsshare=CopyLink&appuid=5d093f22000000001201fe8a&apptime=1666045905) | ||
- [B站](https://space.bilibili.com/414096658/channel/series) | ||
- [油管](https://www.youtube.com/channel/UCewwgakV1SB1IKu8305Hgsg/videos) | ||
|
||
找到我,那里有泛泛的抖机灵、心得体会、视频分享和回答。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# 进阶资源 | ||
|
||
!!! note | ||
在完成 [核心课程](../core/core.md) 之前不需要考虑这里的内容。 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# 优秀书籍 | ||
|
||
阅读经典书籍是提升水平最快的方式,特别是在具备一定基础后,效率会大大超过看视频。不过,还是那句老话, | ||
只看看书,不做题,你并没有真的看过这本书。 | ||
|
||
- Structure and Interpretation of Computer Programs | ||
- SICP,计算机程序的构造和解释 | ||
|
||
持续更新。。。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
comments: true | ||
status: new | ||
--- | ||
|
||
# 计算机科学与技术——入门课40讲全 | ||
|
||
这是一个系列视频,包含 40 个长约 10 分钟的短视频,尤其适合作为对计算机学科缺乏整体认识的朋友。 | ||
这对我们建立框架非常有帮助。每一个视频涉及一个计算机相关的主题,从逻辑电路一直到机器学习和机器人, | ||
涉及计算机科学的方方面,作者用 10 分钟的时间解释每一个主题的由来、基本原理等等。 | ||
|
||
视频内容涉及: | ||
|
||
- 计算机发展史 | ||
- 布尔逻辑和逻辑门 | ||
- 二进制编码 | ||
- CPU、寄存器和内存 | ||
- 指令集 | ||
- 编程方式 | ||
- 数据结构和算法 | ||
- 软件工程 | ||
- 操作系统 | ||
- 计算机网络和互联网 | ||
- 计算机安全和密码学 | ||
- 机器学习 | ||
- 等等 | ||
|
||
B站 up 给做了很棒的中文字幕。 | ||
|
||
[课程链接](https://www.bilibili.com/video/BV18s411A7Rj/?vd_source=da65fd0f11a3d90e543b48cf26e65fb7) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
--- | ||
comments: true | ||
--- | ||
|
||
# 核心内容 | ||
|
||
本文意在根据不同情况,用最少的课建立计算机框架、掌握转码面试基本技能。全部跟下来大概需要 200 小时, | ||
即 3 - 4 个月时间。 | ||
|
||
!!! note | ||
不要只看视频,不写作业哦;有作业的,一定动手写了。如果有问题欢迎在相应的课程页面留言讨论。 | ||
比如:[CS61A](./cs61a.md)。 | ||
|
||
英文不太好的小伙伴看这里:[核心内容中文替代](./core_cn.md)。 | ||
|
||
## 工科、理科本科 | ||
|
||
如果接受了一般工科或者理科教育,那么数学不需要重复学习了:高等数学、线性代数、概率和统计。 | ||
计算机本科会涉及一门叫做离散数学的学科,但是对于转码阶段的人的来说,不重要。 | ||
|
||
### 有一点编程经验 | ||
|
||
比如,写过 Python、Matlab、VBA 等脚本, 知道基本的编程语言组成部分,比如执行、循环、分支等等。 | ||
|
||
以下是核心课程,估计用时合计小于 200 小时,按照一周 20 小时计算,考虑到作业困难或者其他阻碍, | ||
全部完成大概需要 3 - 4 个月时间。 | ||
|
||
解释一下为什么选择如下资源。这几门课程包含了:计算机引论、计算机组成原理、数学结构和算法、面试刷题。 | ||
同时这些课涉及了不同的编程语言:C,Python,Java,SQL 等等,覆盖了市面上最主流的工作语言。 | ||
而且,不必专门再去话时间入门这些语言,因为这些课程都会讲述足够多的关于语言本身的内容,同时配合 | ||
相应的练习,只要坚持把作业做了,不但可以掌握相关计算机基础,还可以磨炼语言本身的使用,为将来找工作 | ||
奠定良好的基础。 | ||
|
||
注意到这些课程并没有涉及更多的计算机专业课,比如操作系统、数据库实现、计算机网络、编译原理、分布式系统等课程。 | ||
主要原因是:一来,在没有坚固的基础时这些课程只会增加烦恼;二来,转码面试并大概率不会涉及如此特别深入的内容, | ||
而浅显的内容已经在计算机组成原理中所有涉及,特别是 [Coursera: Nand2Tetris](./nand2teris.md) 这门课。 | ||
|
||
- [计算机科学与技术 - 入门课40讲全](./computer_science_crash_course.md) | ||
- 类型:计算机引论 | ||
- 时间:10 小时 | ||
- 形式:视频 | ||
- 语言:英文(中字) | ||
- 编程语言:无 | ||
- 难度::star: | ||
- [CS61A Structure and Interpretation of Computer Programs](cs61a.md) | ||
- 类型:计算机引论 | ||
- 时间:50 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:英文(英字) | ||
- 编程语言:Python, Scheme, SQL | ||
- 难度::star::star::star: | ||
- [CS61B: Data Structures and Algorithms](./cs61b.md) | ||
- 类型:专业课 | ||
- 时间:70 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:英文(英字) | ||
- 编程语言:Java | ||
- 难度::star::star::star::star: | ||
- [Coursera: Nand2Tetris](./nand2teris.md) | ||
- 类型:计算机组成原理 | ||
- 时间:40 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:英文(英字) | ||
- 编程语言:不需要 | ||
- 难度::star::star: | ||
- [LABULADONG 的算法网站](./leetcode.md) | ||
- 类型:应试 | ||
- 时间:难以估计,不需要一次完成 | ||
- 形式:讲义、Leetcode | ||
- 语言:中文 | ||
- 编程语言:任意,Python、Java、C++、JS 等等 | ||
- 难度::star::star: | ||
- [MIT-Missing-Semester](./mit_missing.md) | ||
- 类型:工作会用到的各种东西 | ||
- 时间:10 小时 | ||
- 形式:视频、讲义、作业 | ||
- 语言:英文(英字) | ||
- 编程语言:Bash | ||
- 难度::star::star: | ||
|
||
### 毫无编程经验 | ||
|
||
这里其实只替换了第二门课,变成了 [CS50](./cs50.md) 因为这门课对无编程经验的人更加友好,更加简单。 | ||
|
||
以下是核心课程,估计用时合计小于 200 小时,按照一周 20 小时计算,考虑到作业困难或者其他阻碍, | ||
全部完成大概需要 3 - 4 个月时间。 | ||
|
||
- [计算机科学与技术 - 入门课40讲全](./computer_science_crash_course.md) | ||
- 时间:10 小时 | ||
- 形式:视频 | ||
- 语言:英文(中字) | ||
- 编程语言:无 | ||
- 难度::star: | ||
- [CS50](./cs50.md) | ||
- 时间:30 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:英文(英字) | ||
- 编程语言:Python, SQL, C, HTML, CSS, JavaScript | ||
- 难度::star::star: | ||
- [CS61B: Data Structures and Algorithms](./cs61b.md) | ||
- 类型:专业课 | ||
- 时间:70 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:英文(英字) | ||
- 编程语言:Java | ||
- 难度::star::star::star::star: | ||
- [Coursera: Nand2Tetris](./nand2teris.md) | ||
- 类型:计算机组成原理 | ||
- 时间:40 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:英文(英字) | ||
- 编程语言:不需要 | ||
- 难度::star::star: | ||
- [LABULADONG 的算法网站](./leetcode.md) | ||
- 类型:应试 | ||
- 时间:难以估计,不需要一次完成 | ||
- 形式:讲义、Leetcode | ||
- 语言:中文 | ||
- 编程语言:任意,Python、Java、C++、JS 等等 | ||
- 难度::star::star: | ||
- [MIT-Missing-Semester](./mit_missing.md) | ||
- 类型:工作会用到的各种东西 | ||
- 时间:10 小时 | ||
- 形式:视频、讲义、作业 | ||
- 语言:英文(英字) | ||
- 编程语言:Bash | ||
- 难度::star::star: | ||
|
||
## 非工科本科 | ||
|
||
坏消息是:非工科的同学如果没有学过线性代数和概率统计,需要学习。 | ||
|
||
好消息是:数学在转码阶段并不那么重要。 | ||
|
||
所有,直接参考上一章即可。 | ||
|
||
!!! note | ||
如果大家有任何疑问欢迎下方留言,或者在 [Q&A](../QA.md) 查找或留言。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# 核心课程 中文资源 | ||
|
||
对于英语不太好的同学,泛泛为你准备了对应中文核心课程! | ||
|
||
- [Python语言基础与应用](https://www.bilibili.com/video/BV1Q5411t77b/?vd_source=da65fd0f11a3d90e543b48cf26e65fb7) | ||
- 类型:专业课 | ||
- 时间:50 小时 | ||
- 形式:视频 | ||
- 语言:中文 | ||
- 编程语言:Python | ||
- 难度::star::star: | ||
- [数据结构和算法](https://www.icourse163.org/course/ZJU-93001?from=searchPage&outVendor=zw_mooc_pcssjg_) | ||
- 类型:专业课 | ||
- 时间:50 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:中文 | ||
- 编程语言:C | ||
- 难度::star::star::star::star: | ||
- [视频](https://www.bilibili.com/video/BV1H4411N7oD/?vd_source=da65fd0f11a3d90e543b48cf26e65fb7) | ||
- [计算机组成原理](https://www.icourse163.org/course/HIT-309001?tid=1206616250) | ||
- 类型:专业课 | ||
- 时间:50 小时 | ||
- 形式:视频、讲义、作业、大作业 | ||
- 语言:中文 | ||
- 编程语言:C | ||
- 难度::star::star::star: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
--- | ||
comments: true | ||
status: new | ||
--- | ||
|
||
# CS50 | ||
|
||
这是一门来自哈弗大学的计算机入门课,相比 [CS61A](cs61a.md) 这门课对完全没有一点编程基础的同学 | ||
更加有好一些。 | ||
|
||
该课程从图形编程语言 Scratch 开始介绍编程的基本组成,比如循环、控制等语句,然后介绍 C 语言,即 | ||
更加贴近工程实践的计算语言,随后用 C 语言讲解了数组、内存、数据结构、算法等重要的主题。然后引入 | ||
Python、SQL、HTML、CSS 等更多的语言,让学生接触计算机科学的各个方向。 | ||
|
||
这门课的整体设计对新萌更加友好,但是学完如果有时间还是建议看看 [CS61A](cs61a.md) 的相关内容, | ||
因为 CS61A 真的是不可多得的好课程。 | ||
|
||
[课程链接](https://cs50.harvard.edu/x/2022/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
--- | ||
comments: true | ||
status: new | ||
--- | ||
|
||
# CS61A: Structure and Interpretation of Computer Programs | ||
|
||
> 计算机程序的构造和解释 | ||
这是来自 UC 伯克利的计算机本科第一门课。这门课与[神书](../books.md)《Structure and Interpretation of Computer Programs》 | ||
同名,当然,这不是巧合。这门课的大部分内容就是根据这本书的内容改编的,相比于阅读原书,这门课配合 | ||
了讲义、视频、作业、练习,让学生更加轻松的吸收 SICP 这本书中的精华。SICP 是每一个计算机学生 | ||
都应该读的好书。 | ||
|
||
这门课作为我们核心课的第二门,主要是帮助我们从**软件抽象**的角度建立框架,课程主要采用友好的 Python 语言 | ||
进行教学,讲解了程序设计的核心概念,比如变量、函数、递归、解释器原理、树的递归、数据抽象、语法、 | ||
迭代器、对象、组合等等。 | ||
|
||
在熟悉 Python 以后,课程引入 Scheme,一种 Lisp 方言来讲解更加本质的编程原理,比如尾递归、 | ||
解释器等等。SICP 原书通篇都是 Scheme 进行讲解的,原书作者解释是因为 Scheme 是最简单的可以 | ||
诠释本书内容的语言。Lisp 固然是极好的语言,学习它对学习编程特别有帮助。 | ||
|
||
最后,课程海世纪了一些关于数据库和 SQL 的内容。 | ||
|
||
这么课程设计的非常好,即平易近人,有让人领略了 SICP 的精华。老师们还开发了一个可视化的 Python | ||
执行解释软件,帮助学生理解程序的[执行原理](https://pythontutor.com/cp/composingprograms.html#code=def%20hi%28%29%3A%0A%20%20%20%20print%28%22hi%22%29%0A%20%20%20%20%0Ahi%28%29&cumulative=true&curInstr=4&mode=display&origin=composingprograms.js&py=3&rawInputLstJSON=%5B%5D)。 | ||
|
||
![20221019233759](https://raw.githubusercontent.com/wangzhe3224/pic_repo/master/images/20221019233759.png) | ||
|
||
所有的语言环境都已经为学生配置了线上版本,就开箱即用,避免了配置环境折磨新萌的问题。<https://code.cs61a.org/> | ||
|
||
所有的 Lab 都是交互式的,一步一步完成的,并且配有详细的解答。<https://cs61a.org/lab/sol-lab03/> | ||
|
||
- [课程链接](https://cs61a.org/) | ||
- [B站链接](https://www.bilibili.com/video/BV1s3411G7yM?p=99&vd_source=da65fd0f11a3d90e543b48cf26e65fb7) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
--- | ||
comments: true | ||
status: new | ||
--- | ||
|
||
# CS61B: Data Structures and Algorithms | ||
|
||
这是一个门中规中矩的数据结构和算法的入门课。实现语言是 Java,但是对于没有 Java 经验的学生来说, | ||
只要进行其他语言的编程,这门课提供的 Java 入门教学足够完成该课程的所有 lab 和作业了。 | ||
|
||
关于 Java 的部分包括: | ||
|
||
- 类和对象 | ||
- 递归 | ||
- 接口和继承 | ||
- 多态 | ||
- 高阶函数 | ||
- 迭代器、异常等等 | ||
|
||
数据结构和算法方面包括: | ||
|
||
- 抽象数据类型 | ||
- 链表、列表 | ||
- 树,B-Tree,红黑树 | ||
- 散列 | ||
- 堆和队列 | ||
- 图和图算法 | ||
- 排序 | ||
- 搜索 | ||
- 压缩算法 | ||
- 软件工程 | ||
- NP 问题 | ||
|
||
[课程链接](https://sp21.datastructur.es/) |
Oops, something went wrong.