تدريب Shadowing: The BEST Coding Interview Roadmap in 2023 (free) - تعلم التحدث بالإنجليزية عبر الفيديو

جارٍ إنشاء الدرس...
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.

حول هذا الدرس

أنت تتدرب على اللغة الإنجليزية باستخدام "The BEST Coding Interview Roadmap in 2023 (free)" مع تقنية الـ Shadowing.

ما هي تقنية التظليل الصوتي؟

التظليل الصوتي (Shadowing) تقنية تعلم لغة مدعومة علمياً، طُورت أصلاً لتدريب المترجمين الفوريين المحترفين. الطريقة بسيطة لكنها قوية: تستمع لصوت إنجليزي أصلي وتكرره فوراً بصوت عالٍ — كظل يتبع المتحدث بتأخير 1-2 ثانية. تُظهر الأبحاث تحسناً كبيراً في دقة النطق والتنغيم والإيقاع وربط الأصوات والاستماع والطلاقة.

تقنية الشادوينغ: اقرأ الدليل الكامل خطوة بخطوة →