Luyện nói tiếng Anh bằng Shadowing qua video: How to Become a Great Software Developer — Best Advice from Top-Notch Engineers

Đang tạo bài học...
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.

Tình Huống Thực Tế

Trong video này, các kỹ sư phần mềm hàng đầu chia sẻ những kinh nghiệm quý báu về việc trở thành một lập trình viên xuất sắc. Họ nhấn mạnh rằng để thành công trong lĩnh vực này, người học cần phải chú ý đến từng chi tiết nhỏ và hiểu rõ cách mà các cấu trúc dữ liệu hoạt động. Điều này không chỉ giúp họ phát triển kỹ năng lập trình mà còn nâng cao khả năng giải quyết vấn đề một cách tự tin hơn.

Những Cụm Từ Hữu Ích

  • Chú ý đến chi tiết - Attention to detail
  • Cấu trúc dữ liệu - Data structure
  • Quản lý bộ nhớ - Memory management
  • Giao thức mạng - Network protocol
  • Kiến trúc cơ sở dữ liệu - Database architecture

Thử Thách Luyện Nghe Nói Của Bạn

Bây giờ, hãy thử thách bản thân với một bài tập luyện nghe nói qua video. Nghe một đoạn ngắn trong video và cố gắng nhắc lại từng câu một cách chính xác. Tập trung vào phát âm tiếng anh chuẩn và ngữ điệu. Bạn có thể sử dụng phương pháp phần mềm shadowing để theo kịp nhịp điệu và ngữ điệu của người nói. Hãy cố gắng shadow speak bằng cách lặp lại ngay sau khi nghe, điều này sẽ giúp bạn cải thiện khả năng phát âm và tự tin hơn trong giao tiếp.

Nhớ rằng, mỗi lần bạn luyện tập, dù chỉ là một đoạn ngắn, đều giúp bạn tiến bộ. Hãy tận dụng những khoảnh khắc này để trở thành một người học hiệu quả hơn và khám phá thêm những điều thú vị trong lĩnh vực lập trình. Chúc bạn thành công trong việc luyện nghe nói và trở thành một lập trình viên xuất sắc!

Ngữ pháp trong video

Những cấu trúc người nói dùng nhiều nhất, kèm đúng cụm từ trong video:

Cấu trúcTrong video
Câu điều kiện if + mệnh đề, will/would + động từ — điều kiện và kết quảif you are if you will become
Câu bị động be + quá khứ phân từ — nhấn vào việc xảy ra, không phải người làmare implemented · is managed · are done
Mệnh đề quan hệ who / which + mệnh đề — thêm thông tin về người hoặc vậtpeople who say · people who are · planet which is

Phương Pháp Shadowing Là Gì?

Shadowing là kỹ thuật học ngôn ngữ có cơ sở khoa học, ban đầu được phát triển cho chương trình đào tạo phiên dịch viên chuyên nghiệp và được phổ biến rộng rãi bởi nhà đa ngôn ngữ học Dr. Alexander Arguelles. Nguyên lý cốt lõi đơn giản nhưng cực kỳ hiệu quả: bạn nghe tiếng Anh của người bản xứ và lặp lại to ngay lập tức — như một "cái bóng" (shadow) đuổi theo người nói với độ trễ chỉ 1–2 giây. Khác với luyện ngữ pháp hay học từ vựng bị động, Shadowing buộc não bộ và cơ miệng phải đồng thời xử lý và tái tạo ngôn ngữ thực tế. Các nghiên cứu khoa học xác nhận phương pháp này cải thiện đáng kể phát âm, ngữ điệu, nhịp điệu, nối âm, kỹ năng nghe và độ lưu loát khi nói — đặc biệt hiệu quả cho người luyện IELTS Speaking và muốn giao tiếp tiếng Anh tự nhiên như người bản ngữ.

Phương pháp shadowing: đọc hướng dẫn từng bước đầy đủ →