Shadowing Practice: How to Become a Great Software Developer — Best Advice from Top-Notch Engineers - Learn English Speaking with Video

Les maken...
1
The job must advise learn Kotlin. That was predictable.
2
Well, being a good developer, that's a very loaded question.
3
It starts with the definition of good.
4
Being a good programmer or developer takes several qualities.
5
First of all, that's attention to details.
6
Programming is all about small details.
7
Like things that...
8
you in casual communication or in text when you omit a comma or flip a word stuff like that
9
it doesn't really matter in your non-development life
10
but in programming like like uh what just one character in your code
11
or off by one somewhere can uh be a difference between code
12
that working correctly and code that doesn't work so attention to the small details is is really what makes
13
professional developers different
14
and that's the quality that's needed to become good software developer i enjoy working with extremely good
15
and at the same time very junior developers who arguably know very little, right?
16
But the way they approach the tasks at hand,
17
the way they learn, so the way they are curious and hungry to do things.
18
And it's an amazing experience, and I love them as contributors, and they're great developers.
19
They're just great junior developers.
20
So first thing I'll say is that the greatness in this question to me doesn't equate with experience necessarily, especially years of experience.
21
If I think about this, first thing that I'll say, and again, this is my personal opinion, this is not like a recipe,
22
but first thing I'll say is a fundamentals.
23
Like if you're using a data structure, like a library list or a map or something, do you know how that's working?
24
Like what kind of algorithms are implemented there?
25
Like why is it fast?
26
Do you know how memory is managed in the runtime you're using?
27
Do you know what kind of things are done under the hood to manage concurrency, for example, like synchronized threads and so on and so forth.
28
Do you know how things work under the hood in general?
29
And looking into that makes you a better engineer because you learn from other engineering decisions made by other people.
30
It makes you, it exercises your mind in an analytical way that you really need working on your own code.
31
And it also makes you just knowledgeable.
32
It's much easier for you to figure things out and make connections where they're unobvious?
33
I remember a question I was interviewed by a startup CTO some 12 years ago.
34
He asked me a question that I then kept asking in my own interviews that I liked very much.
35
Question is simple.
36
So for web developers, imagine you have on the web page, there's a button, you click on it, next page comes.
37
What happened between the button click and the next page?
38
Think about it for a second, right?
39
That onion can have five layers or a thousand.
40
You can spend five minutes answering the question
41
or you can spend an hour and not be done halfway through
42
because of how many things happen or can happen
43
and depending on what level you decide to stop and speak about
44
and the more layers of that onion you can stop and talk about knowingly
45
the better you understand that system and the better web developer you will be right.
46
Things like network protocols, things like database architecture with so much of software available today being open source,
47
you can be kind of the hood of pretty much any technology that you use, and you should do that.
48
And you should read books and watch presentations about how this type of software works.
49
And I think that the main benefit that brings is
50
that it can help you resolve problems much more confidently
51
and much more quickly than just if you just poke at things and see, like, if I do this, does this work?
52
No. Okay, let me try something else.
53
Don't tie your identity to a specific technology or set of practices.
54
So I see a lot of people saying that I'm a Kotlin developer, or I'm a Python developer, or I'm an Android developer.
55
And people who say that kind of think
56
that people who are not Android developers
57
or not Kotlin developers are not like me
58
and probably sometimes I see them as kind of competitors or enemies or something like that.
59
Or maybe I say that they are stupid
60
and don't know what they are doing and instead they should be using the best language on the planet which is Kotlin.
61
I don't think this is healthy.
62
I don't think this is good.
63
I think that it's much better to just identify yourself as a developer and learn the tools, learn what tools exist, learn tools,
64
what tools can benefit you in which cases, and use the best tool for the job and base your identity on something else.
65
Believe me, during your career you will have to learn many different languages and it is wonderful.
66
Each language is different, each one can teach you something new and change how you approach programming overall.
67
For example, I wrote very different code when I coded in Java.
68
Then when I learned Objective-C, it changed.
69
When I first touched Swift, it's once again changed.
70
And each language placed its mark on me.
71
So learn different programming languages, embrace them, and stay open.
72
Don't be afraid to learn something unnecessary.
73
So for example, Speaking of Kotlin, a very common question of people who start to learn Kotlin is, do I have to learn Java?
74
And this, do I have to learn, I think it's not the best way to put things.
75
Like, will learning Java make you a better Kotlin developer?
76
Yes, definitely, because you will be easier able to understand the APIs of different libraries that you probably will want to use.
77
You'll better understand how this whole environment works, things like that.
78
You'll better understand why some things in Kotlin are the way they are and not something else.
79
So don't be afraid to learn something that isn't necessary.
80
As we advance our careers as engineers, and it doesn't matter whether you're a consultant engineer or a product engineer,
81
you will be working with people like more and more, inevitably.
82
You'll be reading their requirements, their stories, their comments, You'll be writing the same thing,
83
you'll be speaking, you'll be communicating, you'll be explaining, presenting.
84
You'll work with people a lot, sometimes more than you work with code, especially if you measure your time minutes in the day.
85
And sort of best engineers are also just great at working with people in everything that that entails.
86
Don't stick to one career.
87
You're not doomed to be a software developer for your whole life.
88
Take me as an example.
89
I learned to be an information security specialist.
90
Then I became an Android developer, had to switch to iOS development.
91
Then I became a team lead, did some backend development.
92
Then I became a manager and then a product manager.
93
And now I'm leading a development of a programming language.
94
And that's actually great because in each
95
role you learn different skills that may help you in the main one if you decide to return it.
96
For example, if you are if you will become a product manager, you will be much better in understanding what and why and for whom you are building.
97
It will drastically help you to become a staff plus engineer because you will not just write code, you will think about business needs.
98
Or for example, if you are becoming a team lead and then decide to stop doing it,
99
it will teach you other essential skills like how to plan your time and time of other people,
100
or how to make decisions in uncertainty or other things.
101
So don't stick to one's career.
102
Your life is long.
103
You can try different things and find one that suits you the best.
104
When you're young, it feels like you can work 20 hours a day or 18 hours a day or something like that.
105
And it's a lot of fun to write software.
106
You may end up with your day job and your hobby project
107
and working for eight hours on one thing and then another eight hours on that.
108
Second thing, and this is kind of fun.
109
I did a little bit of that when I was younger, but I think it's very important to not focus on that,
110
not close your eyes to other things, other fun ways to spend the time, other ways to take care of your body,
111
your emotional state, your mind.
112
Read things, go for a walk, do some physical activities.
113
I think finding a healthy balance between all of these will allow you to sustain your productivity
114
and sustain the joy that substance development brings you for a much longer amount of time.
115
Keep learning new things, go deeper, go wider.
116
Look at how things are done nowadays if there is a new big trend, look into it.
117
Like nowadays, it's generative AI.
118
Look into that.
119
It will help you stay up to date.
120
It will help you be a better engineer.
121
And also just aim higher in general.
122
A lot of people underestimate themselves and just don't try things they could have succeeded at.
123
And you should do that.
124
You should try.
125
You should experiment with the things that you feel are out really.
126
You should apply to jobs you think that you're not good enough for.
127
And you should prepare for those interviews and get the job, you can.
128
So that's like top piece of advice that I can give.
129
And learn Kotlin.

Why Practice Speaking with This Video?

This video is a goldmine for English learners aiming to master shadow speech—a technique where you mimic a speaker’s rhythm, tone, and pronunciation. The dialogue features natural, conversational English from a seasoned professional, making it ideal for practicing real-world communication. By shadowing this content, you’ll not only improve your fluency but also learn to articulate complex ideas clearly, a skill critical for both professional and everyday interactions. Plus, the technical context (software development) exposes you to industry-specific vocabulary, boosting your confidence in niche conversations.

Grammar & Expressions in Context

The speaker uses several key structures that are worth emulating:

  • Conditional phrases like "If I think about this, first thing I'll say..." help frame opinions—perfect for discussions. Practice repeating these to sound more natural in debates or feedback sessions.
  • Rhetorical questions such as "Think about it for a second, right?" engage listeners. Shadowing these will teach you to pause and emphasize, making your speech more dynamic.
  • Complex sentence structures with clauses like "the more layers of that onion you can stop and talk about knowingly the better you understand that system" improve your ability to connect ideas. Break these down using a shadowing app to master their flow.

Common Pronunciation Traps

Several words in the video can trip up learners. For example, "concurrency" (kun-KURR-uhn-see) and "synchronized" (SIN-kruh-nahyzd) have tricky stress patterns—use a shadowing site to slow down and mimic the speaker’s emphasis. The phrase "off by one" is often slurred in casual speech; focus on pronouncing each word clearly while maintaining the natural rhythm. Additionally, the speaker uses filler words like "like" and "uh"—these are normal in conversation, so practicing them will make your speech sound less scripted. To improve English pronunciation, repeat these sections until you match the speaker’s tone and pace.

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 →