Shadowing Practice: The BEST Coding Interview Roadmap in 2023 (free) - Learn English Speaking with Video

Les maken...
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.

Woordenschat en spreektips bij deze les

Deze spreekles op niveau C1 is gebaseerd op de video “The BEST Coding Interview Roadmap in 2023”. Deze woorden komen het vaakst terug: graph, tree, learn, programming, dynamic. Deze video bevat 118 zinnen en 1686 woorden om na te spreken. Het gesproken deel duurt 8:20. De spreker praat snel, ongeveer 202 woorden per minuut, dus reken op verbonden en ingeslikte klanken. Slechts 81% van de woorden hoort bij de 3.000 meest gebruikte Engelse woorden, dus de woordenschat is pittig.

Belangrijke woorden in deze video

De 15 moeilijkste woorden uit de video, met uitspraak en betekenis:

WoordUitspraakBetekenis
graph zelfstandig naamwoord/ɡɹæf/grafiek
algorithm zelfstandig naamwoord/ˈælɡəɹɪðm̩/algoritme
binary bijvoeglijk naamwoord/ˈbaɪ.nə.ɹi/binair, binaire
dimensional bijvoeglijk naamwoord/daɪˈmɛn.ʃə.nəl/dimensionaal
interval zelfstandig naamwoord/ˈɪntɚvəl/interval
specialization zelfstandig naamwoord[ˌspɛʃəlaɪ̯ˈzeɪ̯ʃn̩]specialisatie
hash zelfstandig naamwoord/ˈhæʃ/hachee
greedy bijvoeglijk naamwoord/ˈɡɹiːdi/hebzuchtig
manipulation zelfstandig naamwoord/məˌnɪp.juˈleɪ.ʃən/manipulatie, gebruik
leak zelfstandig naamwoord/liːk/lek
visualization zelfstandig naamwoord/ˌvɪʒ.ʊ.ə.laɪˈzeɪ.ʃən/visualisatie
concise bijvoeglijk naamwoord/kənˈsaɪs/beknopt, bondig
obsess werkwoord/əbˈsɛs/obsederen
recursion zelfstandig naamwoord/ɹɪˈkɜː(ɹ)ʒən/recursie
recursive bijvoeglijk naamwoord/ɹɪˈkɜː(ɹ)sɪv/recursief

Phrasal verbs die je zult horen

WoordBetekenis
check out werkwoordonderzoeken
end up werkwoordbelanden, terechtkomen
figure out werkwoorduitvogelen, er achter komen
look forward to werkwoorduitkijken naar, zich verheugen op

Grammatica in deze video

De structuren die de spreker het meest gebruikt, met de exacte woorden uit de video:

StructuurIn de video
Present perfect continuous have/has been + -ing — iets dat eerder begon en nog bezig isI've been wanting · have been asking
Lijdende vorm be + voltooid deelwoord — het gaat om wat er gebeurt, niet om wie het doetbeing introduced · could be said · be related
Betrekkelijke bijzinnen who / which + zin — extra informatie over een persoon of dingheaps, which are · graphs, which are · sorting, which is

Uitspraak om op te letten

De spreker gebruikt 32 samentrekkingen en verkorte vormen, zoals don't, you're, I'm. Spreek ze kort uit, zoals je ze hoort.

  • De “th”-klanken: algorithm /ˈælɡəɹɪðm̩/, thumbnail /ˈθʌm.neɪl/
  • De klanken “sh” en “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/
  • Lange woorden — let op de klemtoon: 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/

Zo oefen je met deze video

  1. Luister de hele video één keer zonder te spreken en noteer de woorden die je niet kent.
  2. Begin op 0,75× snelheid, spreek zin voor zin na en ga terug naar normale snelheid zodra het makkelijk gaat.
  3. Neem jezelf op en vergelijk met het origineel; let daarbij op woorden als graph, algorithm, binary.

Wat is de Shadowing-techniek?

Shadowing is een wetenschappelijk onderbouwde taalleermethode die oorspronkelijk is ontwikkeld voor professionele tolkentraining en gepopulariseerd door polyglot Dr. Alexander Arguelles. De methode is eenvoudig maar krachtig: je luistert naar native Engelse audio en herhaalt het onmiddellijk hardop — als een schaduw die de spreker volgt met slechts 1–2 seconden vertraging. In tegenstelling tot passief luisteren of grammaticadrills, dwingt shadowing je hersenen en mondspieren om echte spraakpatronen tegelijkertijd te verwerken en te reproduceren. Onderzoek toont aan dat het de uitspraaknauwkeurigheid, intonatie, ritme, verbonden spraak, luisterbegrip en spreekvaardigheid aanzienlijk verbetert — waardoor het een van de meest effectieve methoden is voor IELTS Speaking-voorbereiding en echte Engelse communicatie.

Shadowing-techniek: lees de volledige stap-voor-stap-gids →