Shadowing Practice: Learning to code: How Pavel Durov learned to program | Lex Fridman Podcast Clips - Learn English Speaking with Video

Creating lesson...
1
you're a programmer from an early age you started coding at 10 first things you built
2
or a video game at 11
3
and then eventually 10 years later 21 you programmed the initial
4
versions of vk single -handedly can you talk to me about your programming journey
5
that led to the creation of vk what was the vk
6
stack as a php mostly how did you figure out how to program websites all
7
that i wasn't interested in programming websites at first i didn't even have access to the internet
8
when i was 10 years old
9
but i liked video games i didn't have enough of them
10
and the scarcity forced me to start building them more computer
11
games just to play myself yeah it's actually an interesting thing
12
that we sometimes don't realize it but scarcity leads to creativity
13
and one of the reasons you have
14
so many people who love to code coming from the soviet union
15
or other places which didn't have much access to modern technology
16
and more importantly modern entertainment is that perhaps we were not
17
so much distracted by all this abundance of different entertainment options
18
which is not to say it's bad to have those options it's just a fact that we sometimes don't appreciate
19
so i started to build computer games my brother would sometimes guide me for example i would create a turn -based strategy
20
of course two -dimensional backhand three -dimensional is too much for me but it wasn't as
21
sleek in terms of the scrolling fps frames per second um parameter
22
and i asked my brother how to optimize it he would guide me and this kind of
23
learning and
24
training really shaped my coding skills
25
when i was younger then i started to create video games for my classmates
26
when we played for example tic -tac -toe on an infinite field in my class during the breaks you know
27
and not tic -tac -toe the three in a row this is five in a row
28
and an infinite field this is a much more interesting game
29
and it gets quite complicated if you keep playing it my classmates used to love it
30
and some of my classmates were really smart you know champions of math olympiads sons
31
and daughters of professors at the university
32
and i decided no i want to win every single time i don't want to lose even a single time
33
so how do i win i need to practice more
34
but how do i practice more i need an opponent stronger than myself
35
so i coded this game so that i would play against the computer
36
and the computer would calculate I think four moves in advance to choose the optimal strategy
37
that wasn't enough four moves in advance I would still win over it
38
if I tried to calculate five or six it was too slow
39
so I asked my brother to help me out here so he made this algorithm eventually I
40
trained myself to win every single time even with the computer back then we didn't have
41
modern CPUs and I could still retain some self -confidence we'd go back to school during breaks play with my classmates
42
and soon people started to lose interest none of my classmates wanted to play this game anymore I killed the game
43
so after that when I got into the St. Petersburg State University
44
it was quite boring just to study because it was too easy
45
so I thought what can I do there I created a website for the students of my faculty first
46
I organized the creation of digital answers to all exams and digitalized version of all lectures,
47
which was something very unique back then.
48
Remember, it was 25 years ago.
49
I would put together a website where I would publish all these materials.
50
Pretty soon it became super popular.
51
I opened a discussion forum there.
52
In a few years, I expanded to the university with all of its other departments and then to other universities.
53
We ended up having tens of thousands of users just as a student's portal.
54
We had all kinds of social features there, friends lists, photo albums, profiles,
55
blogs, all of it, was quite successful.
56
And after I graduated the university,
57
one of my ex -classmates from the school reached out to me after reading about my successes in a newspaper,
58
the main business newspaper of St. Petersburg.
59
And he asked me, are you trying to build a Russian Facebook?
60
i said i'm not sure what's facebook
61
so we met he since he graduated an american university two years before
62
that he showed me facebook i thought well i can already have all of this technology
63
but it's valuable to know which elements i should get rid of in order to scale this thing
64
and have millions of users.
65
This is also something people don't appreciate, that sometimes in order to move forward and have more success,
66
you have to get rid of things, including technology.
67
Getting rid of features is super important.
68
Simplify, both for scaling and for making it amenable to just growing the user base where people get it immediately.
69
Yes.
70
Otherwise, it's just too complicated for the new user.
71
The existing users will be happy.
72
They'll be praising you.
73
They will be asking you to add more stuff to make it even more complicated.
74
So it's easy to lose track and get disoriented if you're only relying on the feedback of existing users.
75
so as a result i started the website called vkontakte
76
or vk it means in touch in russian initially to solve
77
my own personal problem i graduated the university the same year
78
and i wanted to be in touch remain in touch with my ex -classmen from from the university
79
and the other fellow students
80
and of course as a 20 year old i wanted to meet other people including good looking girls
81
so i started to build it from scratch for
82
that one i thought i'm not going to use any third party libraries modules
83
because i want to make it as efficient as possible i was obsessing over every line of code
84
but then how do you start something
85
that large like i didn't have any prior experience of creating a project of that scale which would involve everything
86
before i would reuse some existing solutions here i wanted to build from scratch
87
so i i called my brother he was a postdoc student in germany at
88
that time in the max planck university and i asked him what should i start from and he told me just build
89
a module to authorize users just don't not not just to
90
log in you know yeah not even to sign up just to log in
91
because you can pre -populate the database with with credentials
92
and emails and passwords doesn't really matter but once you see
93
that you can type in your password and email and you're in
94
and it tells you hello using your name then you will
95
have a clear understanding where to go from there yeah i
96
mean that's true that's one of the best advice i've ever
97
got in my life is it worked perfectly by the way i started to build it
98
and before i knew it i would have
99
there on the website photo albums private messages this guest book we used to call the wall back on aka
100
and i guess in the early days of facebook we'd end
101
up building something even more sophisticated than facebook at the time
102
with more features i had a girlfriend at the time i
103
here we need to somehow come up with a database of all russian schools and universities and departments and subdivisions.
104
She did a great job trying to source all this information online or sometimes writing emails to universities saying,
105
which departments do you have exactly at this point?
106
We need to know.
107
Or reaching out to the Department of Education, both in Russia and then in Ukraine, and then eventually in Belarus and in Kazakhstan
108
and other countries where vk ended up to be the largest and most popular social network
109
so we did a few things that were quite unique at the time and for the first
110
almost a year i was the single employee of the company i was the back -end engineer the front -end engineer,
111
the designer, I was the customer support officer, I was the marketing guy as well,
112
coming up with all the awardings and announcements,
113
coming up with competitions to promote VK, which worked quite well.
114
That was an incredible experience that gave me knowledge of every aspect of a social networking platform.
115
Also understanding of how much a single person can do.
116
Exactly.
117
It's one of the reasons why I'd like to think I'm an efficient project manager
118
and product manager inside Telegram because I will not...
119
take anything but ambitious deadlines from my team members
120
if somebody gives me oh i need three weeks to do
121
that i would reply well i built the first version of
122
vk in just two weeks why would you need three weeks
123
it seems like something you could make real in these three
124
days three weeks what are you going to do the rest of the three weeks apart from these three days
125
and you know the team knows me
126
and uh that's why we are able today telegram to move at a very good
127
pace of innovation every month we're pushing several meaningful features
128
i think out competing everybody else in this industry in terms
129
of what you can do within a short time frame so yes that experience was invaluable
130
as for the stack i started from php and mysql debian linux but very soon i realized
131
i need to optimize this i started using memcached apache servers
132
were not enough anymore we had to set up engine x
133
and my brother was still living in germany
134
so he couldn't help me much for the first year of
135
building bk sometimes i would manage to get through to him
136
through a call i would use an old school phone to call him with wires I said, what do I do?
137
How do I install this thing called Nginx?
138
I'm not a Linux guy If he felt particularly kind that day and not too busy,
139
he would show me the way to do it or set it up himself
140
but for the most part I had to rely on just myself
141
Having him there though helped when we started to grow fast and started to scale it.
142
Because at first, you realize one server is not enough.
143
I need to buy another one.
144
Then another one, and another one.
145
The database should be in a different server.
146
Then you have to split the database into tables.
147
Then you have to come up with a way to shard the tables using some criteria
148
that would make sense that wouldn't break your user experience.
149
When we got to over a million users and beyond a dozen observers,
150
surviving without the input from my brother in terms of taking care of the scaling aspect of it became impossible.
151
I remember asking him to come back.
152
He said, you need to help me with this thing.
153
It's starting to be really big.
154
And what was worse is that since we became popular, somebody started to do D2S attacks on us.
155
As it always happens.
156
Right.
157
And then we had people that wanted to buy a share of VK.
158
And interestingly, every time we had a negotiation day, they did those attacks intensified.
159
So we had to come up with a way to fight it.
160
I remember having many sleepless nights trying to figure it out.
161
So that was your introduction to all kinds of bad actors.
162
DDoS, business.
163
Then later you'd find out there's such a thing called politics, and then later geopolitics.
164
But this is the initial stages.
165
It's not just about creating cool stuff.
166
It's having to deal with, as you now have to deal with the telegram, is seas of bad actors trying to test the limits of the system,
167
trying to break the system.
168
unfortunately if we didn't have bad actors and pressure it would be the best job ever you just get to create yeah
169
and so the help from your brother like you mentioned NGINX and sharding the tables some of the scaling
170
issue is algorithmic in nature it's almost like theoretical computer science it's not just about buying more computers it's figuring out
171
how to algorithmically make everything work extremely fast.
172
So some of it is mathematics.
173
Some of it is pure engineering, but some of it is mathematics.
174
Yeah, so at that stage I could do the basic stuff.
175
I could understand how I implement scalability into the code base,
176
how I shared my tables in the database where I included memcached instead of direct requests to the database.
177
That was quite easy because it was still PHP back in the day.
178
When my brother got back from Germany somewhere around 2008,
179
I asked him can we make it even more efficient can we make it super fast
180
and at the same time so that we would require even
181
fewer servers to maintain the load and he said yes but PHP is not enough I'll have to rewrite
182
a big part of your data engines in C and C++ I said okay let's do that he invited
183
the friend of his helped him,
184
another absolute champion in the world's programming contest twice in a row.
185
And they put together the first customized data engine,
186
which was far more efficient than just relying on MySQL and Memcached because it was,
187
first of all, more specialized, more low -level.
188
So they rewrote in CC++?
189
A large chunk of it.
190
Like, for example, the search, the ad engine, because VK had targeted ads, they built that.
191
It was very efficient what they did.
192
Eventually, the private messaging part, the public messages part.
193
At some point, we realized there are very few websites online
194
that load faster than VK nice i remember in 2009 i went to silicon valley
195
and i met mark zuckerberg first time
196
and some of the other core team members of early facebook remember facebook was just four
197
or five years old and
198
and everybody kept asking me how come even here in silicon
199
valley decay loads faster than facebook everything seems to appear instantly on your website what's the secret sauce
200
that was one of the things that made them very curious
201
and that was always important to you to have very low latency to make sure the thing loads
202
and because that's one of the things telegram is really known for even on crappy connections and all
203
that kind of stuff it just works extremely fast everything is
204
fast as one of the core technological ideas we prioritize speed we think
205
that people can notice the difference even if it's just like 50 million millisecond difference the difference is subconscious
206
it also allows us not just to be faster and more responsive
207
also more efficient when it comes to the infrastructure the expenses
208
because if your code executes faster it means you need fewer computational resources to run it
209
so there is no way you can lose in making things faster
210
and that's why we have always been very careful when hiring people
211
I would only hire a person if I'm ultimately certain it's the best option
212
if you hire somebody who is maybe a little bit distracted unexperienced you may end up with
213
inefficiencies in your codebase that results in tens of millions of dollars of losses
214
and think about the responsibility like if we jump to today from the VK days,
215
Telegram was used by over a billion people.
216
They open it dozens of times every day.
217
Imagine the app opens with a slight delay, say, half a second delay, multiplied by dozens of times by a billion.
218
It's centuries, millennia lost for humanity without any reason other than just being sloppy.
219
That is so important to understand and so wise that it's actually, if you're just a little bit careless as a developer,
220
you can introduce inefficiencies that are going to be very difficult to track down
221
because you don't know that it can be faster.
222
Like the code doesn't scream at you saying this could be much faster.
223
So you have to actually, as a craftsman, be very careful when you're writing a code and always thinking, can this be done much more efficiently?
224
And it can be tiny things because they all propagate throughout the code.
225
And so there's a real cost in having a careless developer anywhere in the company.
226
Because they can introduce that inefficiency and all the other developers won't know.
227
They'll just assume it kind of has to be that way. And
228
so there's a real responsibility for every single individual developer that's
229
building any component of an app like telegram to just always
230
ask okay can this be done more efficiently can this be done more simply
231
and that's like one of the most beautiful aspects the art forms of programming right oh yes
232
because when you manage to discover a way to simplify things make them more efficient you feel incredibly happy
233
and proud and accomplished
234
and to your point I can recall a few instances in
235
my career where firing an engineer actually resulted to an increase
236
in productivity say you have two Android engineers building the app
237
and then just they just make it they're not keeping up with the pace of the really repeat your release schedule and
238
you think i probably have to hire a third one but then you notice that one of them
239
is really weird falling behind the schedule complaining some of the time doesn't assume responsibility
240
and you ask so what if i just fire this person and you fire this person
241
and a few weeks you realize you actually don't need and you never needed a third engineer
242
the problem was this guy who created more issues and more problems than he solved that is so counterintuitive because
243
you know in developing
244
tech projects we tend to think that you just throw more people into something and then
245
things get solved miraculously by themselves just because more people means more retention from them
246
that's again extremely powerful you know Steve Jobs talked about A players
247
and B players and there's something that happens when you have B players
248
which is kind of like the folks you're talking about introduced
249
into a team they can somehow slow everybody down they demotivate everybody
250
and it's very counterintuitive that you basically is part of the work of creating a great team is removing the B players.
251
It's not just hiring more, generally speaking.
252
It's finding the A players, quote unquote, and removing the people that are slowing things down.
253
Oh, yes.
254
Because the other thing that people don't realize is how demotivating working with the B player is.
255
everybody can tell if the other person the other engineer they're working with
256
is really competent and if it's very visible
257
if the person is not comfortable they're asking the wrong questions they keep lagging behind
258
and at a certain point if you're an a player
259
you get this dissatisfaction this feeling that you are not able to realize your full potential
260
accomplish what you're really meant to accomplish
261
because of this person working next to you
262
or pretending to work next to you
263
and by the way in some cases it's not
264
because the person is lazy some cases it's just you know
265
the mental the intellectual ability is not there it's not about experience most often it's about natural ability
266
and persistence in 90 % of percent of cases is just
267
the inability to focus on one task for an extended period of time not everybody has this ability
268
so And for people who do have this ability,
269
it's an insult to work alongside someone who is distracted and cannot go deep in the projects that they're responsible for.
270
Thank you.

Learn English While Exploring Pavel Durov's Coding Journey

If you’re looking to boost your english speaking practice, the conversation between Lex Fridman and Pavel Durov is a goldmine. Not only does it share insights into building VK and Telegram, but its conversational flow makes it perfect for shadowspeak—mimicking speech patterns to improve fluency. Let’s break down how to use this video to level up your English.

Top 5 Phrases for Daily Communication

  • “Scarcity leads to creativity” – A great way to explain how limitations spark innovation.
  • “Get rid of features” – Useful for discussing simplification in work or projects.
  • “Obsessing over every line of code” – Shows dedication to detail (works beyond tech!).
  • “Sleepless nights trying to figure it out” – Relatable for describing tough problem-solving.
  • “Subconscious difference” – Perfect for talking about subtle but noticeable changes.

Step-by-Step Shadowing Guide for This Video

This dialogue has a mix of casual and technical language, so start slow. First, listen to 10-second clips and repeat immediately—this is shadow speech. Focus on Durov’s calm tone and Fridman’s curious intonation. Use a shadowing app to record yourself and compare. Next, practice tricky phrases like “algorithmic in nature” or “sharding the tables” to improve pronunciation. Finally, role-play: pretend you’re interviewing Durov and respond to his answers. This not only builds speaking skills but also helps you think in English.

By combining engaging content with focused practice, you’ll turn this coding story into a tool for confident English communication. Happy shadowing!

Grammar in this video

The structures the speaker uses most, with the exact words from the video:

StructureIn the video
“Used to” used to + verb — a past habit or state that is no longer trueused to love · used to call
Relative clauses who / which + clause — extra information about a person or thingpeople who love · somebody who is · guy who created
Passive voice be + past participle — the focus is on what happens, not who does itis really known · be done · is distracted

What is the Shadowing Technique?

Shadowing is a science-backed language learning technique originally developed for professional interpreter training and popularized by polyglot Dr. Alexander Arguelles. The method is simple but powerful: you listen to native English audio and immediately repeat it out loud — like a shadow following the speaker with just a 1–2 second delay. Unlike passive listening or grammar drills, shadowing forces your brain and mouth muscles to simultaneously process and reproduce real speech patterns. Research shows it significantly improves pronunciation accuracy, intonation, rhythm, connected speech, listening comprehension, and speaking fluency — making it one of the most effective methods for IELTS Speaking preparation and real-world English communication.

Shadowing technique: read the full step-by-step guide →