跟讀練習: The BEST Coding Interview Roadmap in 2023 (free) - 通過影片學習英語口語
選擇練習模式
每種模式都會開啟全屏練習室。
118 句
如果句子過短或過長,請點選 Edit 進行調整。
1
So I created a leak code roadmap and made it free for everyone.
2
But before I show you, make sure to like and subscribe.
3
Nevermind, let me just show you.
4
It's sort of like a non -linear video game where you kind of have options of
5
which order you want to complete each topic in.
6
Except, of course, this is leak code, so it's definitely not going to be as fun.
7
But the reason I made this is that I've kind of had a visual map of this in my head.
8
I kind of know the relationship between these topics.
9
Like, for example, linked lists are kind of your introduction to graphs, where you have nodes and edges, and then right after that you learn about trees.
10
Most people will learn this in a computer science course.
11
But there's definitely a lot of topics here you probably won't learn in class, things like tries, which naturally come after trees.
12
But remember that trees also cover binary trees, and before you learn about binary trees, I think it makes sense to learn about binary search
13
because it's kind of the same algorithm that you use binary trees for.
14
I've been wanting to make this for a very long time, but I just finally had time during the holidays.
15
It feels good to have a visualization for my thoughts, but I think also this will help a lot of people.
16
Whether you're a beginner being introduced to these topics, the first topic is arrays and hashing.
17
You don't really need to know a lot of data structures and algorithms to solve this topic.
18
You just need to have programming knowledge about loops and conditionals
19
and of course basic data structures like arrays and hash maps
20
but you don't really need to know how they're implemented
21
and after that you learn more complicated things but you do
22
so in a very structured way and
23
if you're completely brand new to data structures
24
and algorithms you can always check out my courses
25
and get lifetime access to them we recently started adding articles
26
to complement all of the video solutions that's my short little plug but moving on, I consider most of this map pretty objective.
27
I think most people would agree that two -pointers should come before binary search, because binary search is sort of a specialization of two -pointers.
28
The same thing could be said about sliding window, and similarly linked list, a lot of these linked list problems require two -pointers,
29
so I think it makes sense to learn two -pointers before that.
30
And of course, trees should come before linked lists.
31
It's a more complicated version of a linked list.
32
And then right after trees, things get pretty open ended.
33
Like I said, we have tries, but we also have heaps, which are a specialization of binary trees.
34
They are also a bit more complicated, I think.
35
And we also have backtracking, which I think makes a lot of sense to learn after trees, because backtracking is essentially just a big decision tree.
36
Like looking at one of these thumbnails, you can kind of see it here backtracking problems are naturally suited to trees, at least in terms of visualization.
37
And then after backtracking things get even more open -ended, we move on to graphs, which we already kind of learned about with trees and linked lists.
38
And many graph problems require recursive backtracking, usually depth -first search, so I think it makes sense to do it in this order.
39
Also, we have one -dimensional dynamic programming.
40
Dynamic programming is kind of a specialization of backtracking where you add caching and then, you know, there's the true dynamic programming solution,
41
which looks a bit more concise, something like this.
42
And that usually doesn't involve recursion, but I still think learning backtracking and getting good at it before tackling dynamic programming will make it a lot easier.
43
And the reason I have two -dimensional dynamic programming after graphs,
44
of course, we have it after one -dimensional dynamic programming because two -dimensional dynamic programming problems typically involve graphs.
45
I think unique paths is one that does involve like a two -dimensional graph, longest increasing path in a matrix.
46
You can imagine that's also going to be related to graphs.
47
But we also have advanced graphs, which are kind of more academic related algorithms.
48
Things like Dijkstra's algorithm with network delay time, you'll need a Dijkstra's algorithm.
49
And that algorithm also involves a heap.
50
It's the shortest path algorithm.
51
So it makes sense to have advanced graphs come after the
52
heaps category at this point i'm sure you're starting to get
53
an idea of what i'm talking about all these topics are related to each other
54
and learning it in that way can kind of help you solve individual problems
55
if you couldn't solve a problem in one of these complicated
56
categories there might be a reason for it might be
57
because you're lacking in one of the more simple categories
58
and it can be very difficult to figure that out
59
because as you're just going through a single big list of leak code problems in a random order, you don't really know that.
60
It's hard to figure out what you're good at and what you're not good at, and what you might need to practice more on.
61
And some of these, I will admit, are a bit opinionated.
62
Things like intervals.
63
Why would you need to learn intervals after you learn about heaps?
64
Well, there's not necessarily a good reason, though interval problems typically require sorting, which is different from heap sorting.
65
But the main reason I put this here after heaps is because, first of all, intervals are probably a bit less important than heap problems,
66
but also because one of these problems does require a heap but most of them don't.
67
So you could, you know, make an argument that some of this list could be a little bit different.
68
You could say the same thing about these greedy problems.
69
Definitely not all of these greedy problems will require a heap.
70
I think most of them will not.
71
But still, I think greedy problems are less important than heap problems.
72
Then last couple ones, we have bit manipulation.
73
Again, I put this after two -dimensional or one -dimensional dynamic programming because one of these I think does involve dynamic programming.
74
But other than that, there's no reason that you should learn bit manipulation after dynamic programming.
75
But I do think it's generally less important than dynamic programming, so it makes sense.
76
And math and geometry, though, I think this one makes a bit more sense because you should learn this after you learn graphs, because a lot of these are related to matrices.
77
And some of these also do involve bit manipulation.
78
I think these three do.
79
But I guess if I wanted to make this map as accurate as possible, instead of having a topic like arrays and hashing, and then right after that,
80
we have new topics like two -pointers.
81
Does it really make sense for somebody to have to solve all of these problems, even some of the more difficult ones, before moving on to some easy two -pointer problems?
82
Like some of these are pretty easy.
83
I would argue definitely not.
84
So I'm also thinking about creating a new version of this graph that's much more detailed.
85
Like essentially we'll have multiple nodes for two -pointers.
86
We'll have multiple blocks and maybe one of them will be the easy two -pointer block
87
and then after that you can solve easy binary search problems.
88
And then maybe after that, you can solve medium two -pointer problems.
89
But if I did that, you can tell that this graph would have been ginormous.
90
It's already pretty big.
91
So I wanted to first start out with like a simple version.
92
But if people are interested in me creating a more complex one, that's a bit more granular, I'm happy to do that.
93
But can you believe that this is free?
94
Every single one of these, when you open it up, it has a list of problems.
95
Every single one of these problems has a video solution that I created on YouTube.
96
It also has code in multiple languages not just python
97
but java javascript and c plus plus we're working on adding even more than
98
that feel free to contribute on github i also added a
99
few more quality of life features things like being able to
100
sort by the problem name also by the difficulty things
101
that people have been asking for a long time you can also star problems some people were asking for
102
that so feel free to you know star all the problems you want also you have to admit
103
that it's kind of neat that this is a graph when we're learning about data structures and algorithms which, you know, graphs, you know, you know what I'm talking about.
104
And, you know, you can play around with this.
105
You can enable dragging, which will let you kind of move these around.
106
But, you know, if you do that and you let go of it, it's going to end up opening the panel.
107
Sorry if that's annoying.
108
And yeah, I mean, did I mention that this is completely free?
109
So definitely try it out.
110
If you want to do me a favor, tell everyone, you know, your friends, your parents, your girlfriend, oh wait, your dog.
111
Tell everyone.
112
And especially, please, please tell me any feedback you have, any suggestions i literally read everything i don't always have time to respond
113
and i don't always have time to actually implement the suggestions
114
but i read every single one i literally obsess over making the site better
115
and providing more value to people i'm really looking forward to
116
what you guys have to say oh god somebody turned
117
that light theme off i don't even know why i implemented
118
that but thank you so much for watching hopefully i'll see you pretty soon.
同頻道
FOR YOU
推薦影片
本課的詞彙與口語要點
這節 C1 級別的口語課以影片“The BEST Coding Interview Roadmap in 2023”為素材。 影片中反覆出現的詞有:graph, tree, learn, programming, dynamic。 這段影片共有 118 個句子、1686 個單詞可供跟讀。 講話部分時長為 8:20。 說話人語速較快,每分鐘約 202 個詞,會出現較多連讀和弱讀。 只有 81% 的單詞屬於英語最常用的 3,000 詞,詞彙難度較高。
影片中的重點詞彙
影片中最難的 15 個單詞,附發音和釋義:
| 單詞 | 發音 | 釋義 |
|---|---|---|
| graph 名詞 | /ɡɹæf/ | 圖表 /圖表 |
| pointer 名詞 | /ˈpɔɪn.təɹ/ | 教鞭 |
| algorithm 名詞 | /ˈælɡəɹɪðm̩/ | 演算法, 演算法 |
| binary 形容詞 | /ˈbaɪ.nə.ɹi/ | 二進 /二進 |
| dimensional 形容詞 | /daɪˈmɛn.ʃə.nəl/ | 維的 /維的 |
| interval 名詞 | /ˈɪntɚvəl/ | 間隔 /間隔, 間隙 /間隙 |
| hash 名詞 | /ˈhæʃ/ | 井號 /井號, 井字 |
| greedy 形容詞 | /ˈɡɹiːdi/ | 貪婪的 /貪婪的, 貪心的 /貪心的 |
| manipulation 名詞 | /məˌnɪp.juˈleɪ.ʃən/ | 操縱 /操縱, 運用 /運用 |
| leak 名詞 | /liːk/ | 漏洞 |
| visualization 名詞 | /ˌvɪʒ.ʊ.ə.laɪˈzeɪ.ʃən/ | 視覺化 /視覺化, 視覺化 /視覺化 |
| node 名詞 | /noʊd/ | 結節 /結節 |
| concise 形容詞 | /kənˈsaɪs/ | 簡明 /簡明 |
| obsess 動詞 | /əbˈsɛs/ | 迷住, 著魔 |
| opinionated 形容詞 | /əˈpɪn.jə.neɪ.tɪd/ | 有主見的 /有主見的 |
影片中出現的短語動詞
| 單詞 | 釋義 |
|---|---|
| check out 動詞 | 退房 |
| end up 動詞 | 到達 |
| figure out 動詞 | 弄清楚 |
| go through 動詞 | 通過 /通過 |
| look forward to 動詞 | 期待, 嚮往 |
影片中的語法
說話人最常用的結構,並附上影片中的原話:
| 結構 | 影片中的用法 |
|---|---|
| 現在完成進行時 have/has been + -ing — 以前開始、現在仍在繼續的動作 | I've been wanting · have been asking |
| 定語從句 who / which + 從句 — 補充說明人或事物 | heaps, which are · graphs, which are · sorting, which is |
| 被動語態 be + 過去分詞 — 強調發生了什麼,而不是誰做的 | being introduced · could be said |
需要注意的發音
說話人用了 32 次縮略和弱讀形式,例如 don't, you're, I'm。請按聽到的簡短形式來說。
- “th” 音: algorithm /ˈælɡəɹɪðm̩/, thumbnail /ˈθʌm.neɪl/
- “sh” 和 “zh” 音: dimensional /daɪˈmɛn.ʃə.nəl/, specialization [ˌspɛʃəlaɪ̯ˈzeɪ̯ʃn̩], hash /ˈhæʃ/, manipulation /məˌnɪp.juˈleɪ.ʃən/, visualization /ˌvɪʒ.ʊ.ə.laɪˈzeɪ.ʃən/
- 長單詞——注意重音位置: dimensional /daɪˈmɛn.ʃə.nəl/, specialization [ˌspɛʃəlaɪ̯ˈzeɪ̯ʃn̩], manipulation /məˌnɪp.juˈleɪ.ʃən/, visualization /ˌvɪʒ.ʊ.ə.laɪˈzeɪ.ʃən/, opinionated /əˈpɪn.jə.neɪ.tɪd/
如何用這段影片練習
- 先完整聽一遍影片,不要開口,記下不認識的單詞。
- 先用 0.75 倍速逐句跟讀,熟練之後再回到正常速度。
- 錄下自己的聲音並與原聲對比,特別注意 graph, pointer, algorithm 這類單詞。
什麼是跟讀法?
跟讀法 (Shadowing) 是一種有科學依據的語言學習技巧,最初開發用於專業口譯員的培訓,並由多語言者Alexander Arguelles博士普及。這個方法簡單而強大:您在聽英語母語原聲的同時立即大聲重複——就像是一個延遲1-2秒緊跟說話者的影子。與被動聽力或語法練習不同,跟讀法強迫您的大腦和口腔肌肉同時處理並模模擬實的講話模式。研究表明它能顯著提高發音準確性,語調,節奏,連讀,聽力理解和口語流利度——使其成為雅思口語備考和真實英語交流最有效的方法之一。















