跟读练习: He Realized his Mistake - 通过视频学习英语口语
选择练习模式
每种模式都会打开全屏练习室。
202 句
如果句子过短或过长,请点击 Edit 进行调整。
1
Of all the legendary computer scientists, Tony Hoare stands distinct among them all.
2
Let's just put it this way.
3
70 % of all enterprise
4
Java errors that have been logged can be attributed to a single decision he made in 1965.
5
In fact, one of the largest Google outages in recent memory was caused by a null pointer exception.
6
We're talking about a basic if statement was skipped and seven hours of downtime was experienced with three hours globally affecting many, many services, including Spotify.
7
Costing many millions in damages, and all of this could be traced back to that one 1965 decision.
8
But it's not all epically bad decisions from Sir Tony Hoare.
9
He's also created some of the fastest and most memory -efficient sorting and statistical algorithms.
10
And his professional and academic work have laid the foundations for languages like Pascal and Go.
11
I know, some of you think
12
Go's a blunder, but he made the good parts.
13
And throughout his career, he has been honored slash awarded more than 21 times,
14
including the Turing Award, some consider the highest award in all of computer science, and he was knighted for his contribution to education and computer science.
15
But today, he receives the most prestigious honor of them all.
16
Programmer of the month at the startup.
17
Being knighted, programmer of the month.
18
But before we remember
19
Tony's greatest disasters and achievements, a quick thank you from the sponsors.
20
The next 100 billion commits are coming faster than planned for.
21
Is your CI up for the challenge?
22
Today's CI requires new infrastructure built for one thing, reliability and performance.
23
Blazingly fast.
24
Namespace optimizes for fast coding, test, and build environments.
25
It's their singular focus.
26
That focus runs down to the metal.
27
From server racks they design and deploy worldwide, to products built on foundations like dev boxes and GitHub Action Runners available on Windows, Mac, and Linux.
28
They actually have Mac.
29
Crazy.
30
They are used by Ramp, Vanta, Warp, Framer, Zed, Fowl, Sierra, Whisperflow, DuckDB, and even Ghosty uses them.
31
You can join them and try it out today at namespace .so.
32
Sir Charles Anthony Richard Hoare was born January 11, 1934 in what is now known as Sri Lanka.
33
He was educated in England at the finest of schools.
34
We are talking, of course, about the Dragon School in Oxford and the King School in Canterbury.
35
they serve tea
36
and fine fine table cookies i don't
37
i don't even know what they do with those type of places
38
it sounds very fancy okay i went to montana state university okay
39
i'm not allowed to have these type of experiences later on he entered merton college in oxford in 1952
40
and after graduating he spent 18 months studying russian of course
41
he had to do this as part of his compulsory duty to the royal navy
42
now this is where it actually gets pretty interesting because during his time in Russia at Moscow State University.
43
Also looks like he went to MSU like I did.
44
Go Bobcats for here!
45
Before I show you Quicksort, I did want to just say that
46
Tony Hoare raw dogs this on a pen and piece of paper in the middle of Russia.
47
Okay, there was no computer.
48
There wasn't even a programming language with recursion at the time of him inventing this.
49
It's like he has chat GPT in his head.
50
He can just close his eyes and imagine problems and get answers out of it.
51
Quicksort's actually rather easy to understand.
52
You pick an element, any random element.
53
I just picked the middle element.
54
And then you put everything that is smaller on one side and everything that is larger on the other side.
55
After that, 14 is now sorted.
56
Everything on the left -hand side is smaller.
57
Everything on the right -hand side is larger.
58
So if we do it again, we just consider the smaller side.
59
Again, we just pick the middle element.
60
We sort, and there you go.
61
7 and 3 are now sorted.
62
We do it again, pick the middle element, put everything smaller on the right, everything larger on the left, 11 is now sorted.
63
And since there's only one on the left, 13 is now sorted.
64
Do the same thing again.
65
They're both sorted.
66
Jump over to the other side.
67
Go in the middle.
68
Everything smaller goes on one side.
69
Everything larger on the other side.
70
Bada bing, bada boom.
71
That is quick sort.
72
Okay, so you're probably thinking, what's the big deal?
73
It's just sorting.
74
It's not even that awesome.
75
Well, actually, first off, it was very, very awesome.
76
I want to put a little couple things in perspective.
77
First off, runtime.
78
It has n log n for runtime, meaning that its growth, as the array gets bigger, will become proportional to N log N.
79
So that's actually pretty dang good.
80
Second, it does not require a lot of memory.
81
Now, this is very, very important because back in the day, back in the old days in 1960, one kilobyte of RAM, magnetic core RAM,
82
was $5 ,000 in the old US dollars, which means in today's dollars, that's like $50 ,000 per kilobyte.
83
Who would kill a byte for $50 ,000?
84
So as you can see, this is extremely important.
85
Now, he never actually got the chance to implement this.
86
This was just a pure thought exercise for a long, long time.
87
Until one day when he joined the Elliott Brothers in 1960 and his very first task was to implement Shellsort.
88
Now, of course, him being the confident fella he is, he went to his boss, which he has named Pat.
89
And he went, hey, yo, boss, uh, shell sword sucks.
90
I could make it much, much better.
91
And his boss was like, there ain't no way you're gonna make it any better.
92
And they actually ended up betting six pence.
93
I don't know what six pence is.
94
That sounds like something out of a nursery rhyme.
95
I don't know what's going on over in the UK or whatever they're doing over there.
96
But nonetheless, they bet a few dollars on the line or many dollars, or I don't know how many dollars that is.
97
What is it in freedom units?
98
I don't know.
99
Anyway, so they bet.
100
And then whore ends up getting on the whiteboard and starts drawing out some boxes and arrows and explains his algorithm.
101
His boss, Pat, implements the algorithm, admits he is wrong, and later
102
Tony Hoare does say that he was given six pence for winning the argument.
103
During his time at Elliott Brothers, he also convinced them to implement Algo 60 as opposed to their own bespoke proprietary language.
104
This proved to be a large commercial success, and Tony was showered with accolades.
105
Obviously, implementing Algo 60, he got really excited about it, and a few years later,
106
he started working on a language with Nicholas Wirth called Algo W, a successor to Algo 60.
107
Now, it's his work on Algo W that became so quintessential to all of our lives.
108
The emotional damage you have experienced can be traced back to these decisions right here.
109
Let me read you the abstract from his QCon talk in 2009.
110
I call it my billion -dollar mistake.
111
It was the invention of the null reference in 1965.
112
At the time, I was designing the first comprehensive type system for references in an object -oriented language, ALGOL W.
113
My goal was to ensure that all use of references should be absolutely safe.
114
Hilarious, okay?
115
I mean, we're talking about null references here, people.
116
I just, my heart is warm to be like, we're going to make it absolutely safe.
117
No references.
118
With checking performed automagically by the compiler, but I couldn't resist the temptation to put in a Null reference.
119
I mean, this guy is having like a Lord of the Rings level style temptation.
120
He just couldn't.
121
The ring was too powerful.
122
Null references is, in fact, the power of Sauron.
123
Simply because it was so easy to implement.
124
This had led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last 40 years.
125
The real question is, how costly was the Null Pointer decision?
126
Well, first off, as a student at MSU Go Bobcats, I will tell you that I spent many a day trying to debug damn null references.
127
Okay, so emotionally, it was like a billion dollars just for me.
128
But I think
129
that you can recall a time just a couple years ago
130
where the world's largest outage could be traced back to a null reference.
131
One of the most famous ones was from June 12, 2025 from Google Cloud.
132
Effectively, all it was was they just didn't check for a null pointer.
133
And of course, null pointer happened.
134
API and auth went down and then globally everything just did not work.
135
And of course this went on for about seven and a half hours until the fix was fully rolled out.
136
There's just something that tickles me that I find so funny about this entire situation in which
137
Tony Hoare over here, he just wanted to be able to create a type safe language
138
that was absolutely safe with all references and ends up creating the greatest debacle that we're still recovering from to this day.
139
The reality probably is that
140
if he did not invent it somebody else would have just like the AI race really
141
it's just like the exact same thing
142
but at the end of the day it is attributed to him
143
and his algo w work
144
now one of his largest contributions to the field of computer science would be communicating sequential processes
145
now I'm just going to demonstrate a quick example of what this means in practice by showing
146
you a little bit of code
147
and go now I know a lot of you are rust boys out there
148
and you're probably a little upset
149
that I'm using go just just just walk with me because it's the simplest all right so we have two processes here.
150
We have this outer process, which creates a channel, waits on the channel, and then prints out the message it gets from a channel.
151
We have a second process that's going to do some work
152
and then ultimately hand that work out in which I'm calling Hello World.
153
So that means we create the channel in process one.
154
Process two is going to just start executing.
155
Process one now is just going to be waiting.
156
It's going to be waiting synchronously until process two communicates.
157
This is a very important part of communicating sequential processes.
158
Then finally, when the work is done in process two and we can now communicate,
159
now process one receives the message and is able to move forward.
160
So one of the core ideas of CSP is that communication is a synchronous handshake.
161
And as you can see right there, process one had to wait until process two communicated.
162
So both process two and one have to wait for each other because the communication is synchronous.
163
Now, obviously, you can get around this by creating buffers.
164
That way process two can theoretically send more messages.
165
But the simple idea is that all processes have to communicate in a synchronous handshake.
166
That processes are units of behavior and do not share variables.
167
Now, I know in that
168
Go example, I did do a little bit of sharing, but we can just ignore it for now.
169
Again, I'm just explaining this in the most simple and obvious practical terms, not really in the calculus side of things.
170
You can go look up the calculus
171
and how events are supposed to be instantaneous
172
and how.. receivers are supposed to have an alphabet in which they are the type of events that they receive.
173
If you've ever done any elixir, this probably sounds pretty dang familiar to the actor pattern because, well, I mean, it is.
174
So at the end of the day, Tony Hoare's contributions to computer science have been actually quite a bit more than I even threw out there.
175
I didn't even talk about Quick Select and some of his statistical algorithms
176
that he helped accomplish his practical work on the Algol compiler.
177
Much like his predecessor, Edgar Dykstra, who also was a recipient of the Programmer of the Month Award,
178
he has a few banger quotes that I'd like to read for you.
179
When he thought and talked about ALGOL 60, he said the following,
180
Here's a language so far ahead of its time that it was not only an improvement on its predecessor,
181
but also nearly on all of its successors.
182
The man had a way with words.
183
There are two ways of constructing software design.
184
One way is to make it so simple that there are obviously no deficiencies,
185
and the other way is to make it so complicated that there are no obvious deficiencies.
186
The first method is far more difficult.
187
Oh my gosh, the man can see around corners if he, he was, he technically did die this year in March,
188
but I'm sure he saw some of what the AI was doing, and I wonder what he thought about this right here,
189
and just the massive amounts of code we have produced.
190
Later in Tony Hoare's career, he received the second most honorable distinction, being knighted by Queen Elizabeth II, which is why we actually call him
191
Sir Tony Hoare.
192
Of course, if you didn't know, Program of the Month being the most important designation one can possibly get.
193
Now, I did not get to all of Tony Hoare's amazing accomplishments and the things that he had done.
194
I didn't even talk about Quick Select.
195
I didn't even talk about all the cool work he really did on Algo W
196
or about his unifying theory of programming or the philosopher's dining, which, by the way, the dining philosopher's problem, Pretty gross that they're sharing silverware, okay?
197
I didn't even want to talk about it because it's unsanitary.
198
But at the end of the day, Tony Hoare's influence will be felt for a very, very, very long time.
199
And it's quite obvious he deserves
200
Programmer of the Month.
201
So here's to you, Sir Tony Hoare, Programmer of the Month.
202
The name is the Primogen.
📺 同频道
✨ 推荐视频
本课的词汇与口语要点
这节口语课以视频“He Realized his Mistake”为素材。 视频中反复出现的词有:Tony, process, null, reference。 这段视频共有 202 个句子、2382 个单词可供跟读。 讲话部分时长为 12:14。 说话人语速较快,每分钟约 195 个词,会出现较多连读和弱读。 只有 81% 的单词属于英语最常用的 3,000 词,词汇难度较高。
视频中的重点词汇
视频中 15 个值得学习的单词,附发音和释义:
| 单词 | 发音 | 释义 |
|---|---|---|
| algorithm 名词 | /ˈælɡəɹɪðm̩/ | 算法, 演算法 |
| null 名词 | /nʌl/ | 空值 |
| implement 动词 | /ˈɪmpləmənt/ | 實施 /实施, 執行 /执行 |
| element 名词 | /ˈɛləmənt/ | 要素 |
| programmer 名词 | /ˈpɹoʊɡɹæmɚ/ | 程序員 /程序员, 程式員 /程式员 |
| pointer 名词 | /ˈpɔɪn.təɹ/ | 教鞭 |
| contribution 名词 | /ˌkɑntɹɪˈbjuʃən/ | 貢獻 /贡献 |
| knight 名词 | /ˈnaɪ̯t/ | 騎士 /骑士, 大俠 /大侠 |
| trace 名词 | /tɹeɪs/ | 痕跡 /痕迹 |
| penny 名词 | /ˈpɛni/ | 便士 |
| practical 形容词 | /ˈpɹæk.tɪ.kəl/ | 使用的, 實用 /实用 |
| successor 名词 | /səkˈsɛsɚ/ | 繼任者 /继任者 |
| predecessor 名词 | /ˈpɹɛd.ə.sɛs.ɚ/ | 前任, 前任者 |
| attribute 名词 | /ˈæt.ɹɪˌbjut/ | 屬性 /属性 |
| temptation 名词 | /ˌtɛmpˈteɪʃən/ | 誘惑 /诱惑 |
视频中出现的短语动词
| 单词 | 发音 | 释义 |
|---|---|---|
| end up 动词 | 到达 | |
| draw out 动词 | 拖延, 延長 /延长 | |
| go down 动词 | 下降, 下去 | |
| look up 动词 | /ˌlʊk ˈʌp/ | 仰, 上看 |
值得反复跟读的句子
视频中简短而完整的句子,可以直接用在日常对话里:
- Let's just put it this way.
- Okay, so you're probably thinking, what's the big deal?
- I don't know what six pence is.
- I mean, we're talking about null references here, people.
视频中的语法
说话人最常用的结构,并附上视频中的原话:
| 结构 | 视频中的用法 |
|---|---|
| 被动语态 be + 过去分词 — 强调发生了什么,而不是谁做的 | have been logged · was caused · was skipped |
| 现在完成时 have/has + 过去分词 — 过去发生但与现在仍有关联的事 | have been logged · have laid · has been honored |
| 定语从句 who / which + 从句 — 补充说明人或事物 | dollars, which means · crashes, which have |
需要注意的发音
说话人用了 35 次缩略和弱读形式,例如 didn't, don't, I'm。请按听到的简短形式来说。
- “th” 音: algorithm /ˈælɡəɹɪðm̩/, nonetheless /ˌnʌnðəˈlɛs/, authorization /ˌɔːθəɹaɪˈzeɪʃən/
- “sh” 和 “zh” 音: contribution /ˌkɑntɹɪˈbjuʃən/, temptation /ˌtɛmpˈteɪʃən/, deficiency /dɪˈfɪʃənsi/, efficient /ɪˈfɪʃənt/, shell /ʃɛl/
- 长单词——注意重音位置: communicate /kəˈmjuːnɪkeɪt/, contribution /ˌkɑntɹɪˈbjuʃən/, statistical /stəˈtɪs.tɪ.kəl/, predecessor /ˈpɹɛd.ə.sɛs.ɚ/, deficiency /dɪˈfɪʃənsi/
中文母语者容易读错的音:
- /v/ — 不要读成 /w/,上齿轻触下唇: invent /ɪnˈvɛnt/, server /ˈsɝvɚ/, achievement /əˈt͡ʃiːv.mənt/, comprehensive /ˌkɑm.pɹəˈhɛn.sɪv/, recover /ɹɪˈkʌvɚ/
- 词尾辅音 — 要读清楚,后面不要加元音: communicate /kəˈmjuːnɪkeɪt/, implement /ˈɪmpləmənt/, element /ˈɛləmənt/, knight /ˈnaɪ̯t/, trace /tɹeɪs/
- /r/ 和 /l/ 的区别: algorithm /ˈælɡəɹɪðm̩/, practical /ˈpɹæk.tɪ.kəl/, recall /ɹɪˈkɔl/, hilarious /hɪˈlɛə.ɹi.əs/, legendary /ˈlɛd͡ʒ.ənˌdɛɹ.i/
如何用这段视频练习
- 先完整听一遍视频,不要开口,记下不认识的单词。
- 先用 0.75 倍速逐句跟读,熟练之后再回到正常速度。
- 录下自己的声音并与原声对比,特别注意 algorithm, null, implement 这类单词。
什么是跟读法?
跟读法 (Shadowing) 是一种有科学依据的语言学习技巧,最初开发用于专业口译员的培训,并由多语言者Alexander Arguelles博士普及。这个方法简单而强大:您在听英语母语原声的同时立即大声重复——就像是一个延迟1-2秒紧跟说话者的影子。与被动听力或语法练习不同,跟读法强迫您的大脑和口腔肌肉同时处理并模仿真实的讲话模式。研究表明它能显着提高发音准确性,语调,节奏,连读,听力理解和口语流利度——使其成为雅思口语备考和真实英语交流最有效的方法之一。


















