Shadowing Practice: How to NOT Fail a Technical Interview - Learn English Speaking with YouTube

C1
Shadowing Controls
0% completed (0/160 sentences)
The single worst moment of my life was the moment I was born.
⏸ Paused
All Sentences160 sentences
1
The single worst moment of my life was the moment I was born.
2
I wish that were true, but as a software engineer, I've experienced far worse things during technical interviews.
3
If you're lucky enough to survive tutorial hell before the age of 25, and find a way to impress the algorithms that automatically read your resume, you get dropped into a high-stakes life-or-death game with a six-figure salary on one side and RVs on the other.
4
You can tell yourself the interview process is broken, and maybe it is, but like most things in life, you can't control it and just have to play the game.
5
In today's video, you will experience the psychological rollercoaster ride that is the technical interview.
6
Along the way, you'll learn the secrets to high-pressure problem-solving on the spot, and how to impress the interviewer even if you totally suck at writing code.
7
To make this hyper-realistic, I've invited a special guest who's conducted hundreds of interviews in the real world.
8
Let the story begin.
9
It's been a long, difficult year of hashtag learn to code.
10
I've turned down dates with beautiful women, stopped doing flat-earth research, and even canceled Netflix, all for the opportunity to stare at a computer screen for the rest of my life.
11
Thanks to this awesome video I watched on YouTube, I finally landed an interview with Big Scary Tech Corporation.
12
I've got dozens of leak code questions and a bunch of half-finished Udemy courses under my belt.
13
Nothing can stand in my way now.
14
I'm about to jump on this call and change my life forever.
15
Hello, Mr. Fireship.
16
My name is the Prime Gen. Welcome to hell.
17
Welcome to hell.
18
I'm just kidding.
19
I'll be conducting your interview today.
20
You know, let's just get straight into it.
21
I'm going to ask you actually a classic question.
22
It's called FizzBuzz.
23
I want you to print out numbers 1 through 100.
24
But if it's divisible by 3, I want you to print out fizz.
25
If a number is divisible by 5, please print out fuzz.
26
But if it's divisible by both 3 and 5, please print out fizz and buzz.
27
Fizzbuzz, how cliche is that?
28
I mean, I just built my own compiler in JavaScript last night.
29
This is too easy.
30
Wait a minute.
31
I have no idea what I'm doing here.
32
Hashmap, link list.
33
Mom, mom, why am I so dumb?
34
Wait, directed graph.
35
I can't do it.
36
I'm just gonna tell him I can't do it.
37
Binary treat.
38
I'm an imposter.
39
I'm blacking out.
40
A few moments later.
41
Mr. Fireship, before we write any code, let's just talk about the problem.
42
How would you kind of approach a problem like this?
43
You know what?
44
I think I've already failed this interview, which means I don't care anymore.
45
And magically, when I stop caring, the anxiety goes away.
46
Screw the code.
47
Let's just talk about the problem.
48
Okay, so it looks like we have three conditions here.
49
And when we have conditions, we use a conditional statement like if.
50
One way I could represent this is with a flowchart on a whiteboard.
51
Or if that's not an option, I might start by writing some pseudocode because I don't want to worry about syntax or boilerplate before I even know what I'm going to implement.
52
For each iteration of the loop, we have a number.
53
If it's divisible by 3 and 5, we print FizzBuzz.
54
Otherwise, if it's divisible by 3, we print Fizz.
55
Or if it's divisible by 5, we print Buzz.
56
And finally, just print the number if none of these are true.
57
Wow, so this is actually a very simple problem when we take the time to break it down.
58
I was totally overthinking it.
59
I was expecting something with a really complex solution, because this is Big Scary Tech Corporation after all.
60
You know, I can't give you the answers, but I do really want to see you succeed.
61
So feel free to ask questions as we go along.
62
That solution looks pretty good.
63
So how would you take that and turn it into code?
64
I'm most comfortable in JavaScript, so I'll go ahead and use that for the implementation.
65
First, we'll need a loop that iterates 100 times.
66
As I'm writing this code, I'm not thinking about getting things done quickly, but rather I'm taking my time and making sure I fully understand the requirements before wasting my time writing a bunch of code that I'll have to correct later.
67
What's really important is that I think out loud and explain my decisions throughout the process.
68
Normally, I like to use for each for loops, but in this case, I'm going to use a traditional for loop and not for each, because I happen to know that 4 will result in better performance.
69
Now, even if what I'm saying isn't totally correct, it's important for the interviewer to understand my problem-solving process.
70
Saying something is almost always better than saying nothing at all.
71
Unless, of course, you say some dumbass s**t, in which case it may be optimal to just shut the f**k up.
72
Before you set foot into the Thunderdome, you should practice literally saying everything out loud as you solve a problem.
73
Personally, I hate talking while I write code, and it just takes a lot of practice to get comfortable with this.
74
Follow the ABC rule I just made up, which doesn't mean always be coding, but always be chatting.
75
Another tip is that if you get confused and freeze up, don't just sit there, but try to come up with a question.
76
The longer you sit there and stare at the headlights, the more likely you are to lose your composure.
77
We can't have anyone freak out out there, okay?
78
We've gotta keep our composure!
79
We've come too far!
80
There's too much to lose!
81
much to lose!
82
Keep our composure!
83
I'm a little confused here, so I might ask a question like, should the program take an input and return an answer for a specific index, or should it always iterate over all 100 answers?
84
Good question.
85
A loop is just fine.
86
Now I feel like I'm going in the right direction, so what I'll do next is create a few conditional statements that line up to what I sketched out on the whiteboard.
87
Now the tricky thing about FizzBuzz is determining if one number is a multiple of another number.
88
I guess I could divide by the target number, and if it's an integer, it's a match, but if it's a decimal, then it's not a match.
89
That should work, so when it's 3 will log fizz, when it's 5 will log buzz, but if it's false on both of these, then we'll just console log the number.
90
Yeah, I think that looks good.
91
Let's go ahead and use bun to run it, just to show off my knowledge of blazingly fast JavaScript tooling.
92
And yes, it works perfectly.
93
I'm a goddamn genius.
94
Interesting.
95
What can you do without magical type conversion?
96
Do you know what modulo is.
97
Oh man, he's not impressed at all.
98
I'm such a loser.
99
Modulo?
100
I've never even heard that word in my life.
101
Oh wait, are you talking about the remainder operator in JavaScript?
102
Yeah, you do have the modulo operator correct.
103
Why don't you give it a try?
104
Yeah, that would make more sense here.
105
What it does is give us the remainder when doing division, so if that number is zero, then we know that it's a multiple of whatever number we're trying to divide by.
106
That gives us a solution that isn't so dependent on the loosely typed nature of JavaScript.
107
It's usually a good idea to avoid language-specific magic.
108
The interviewer might be a C developer with 50 years of experience who's going to think your clever little JavaScript tricks are mid-AF.
109
The modulo operator is available in basically every language, so it's best to stick with that.
110
This is looking pretty good, but can you make FizzBuzz print on a single line?
111
Oh yeah, that's kind of not correct, is it?
112
Okay, I think I have an idea, but I remember reading this article that's messing with my head right now that said the else keyword is an anti-pattern.
113
Maybe I should stop believing everything I read on the internet.
114
Let's give it a try and talk through it.
115
We'll We'll first check for the fizzBuzz condition, then use if-else a couple times to check for fizz and buzz.
116
And then finally we'll use else to log the number itself.
117
Not only does this put fizzBuzz on a single line, but the code is just more simple now.
118
In fact, I don't think it can get any better.
119
Oh, that looks correct.
120
Now, what happened if I wanted to add some more conditions?
121
Let's say 7 is BAS.
122
How are you going to deal with that?
123
Ah man, I knew it.
124
L statements really are garbage.
125
Always believe everything you read on the internet.
126
It's never failed me.
127
When you have a lot of conditions to check, one thing you generally want to do is try to extract the data out of that statement.
128
We can easily do that here by defining a variable for the thing we want to print.
129
Now we could set up a switch statement to check all the different conditions, but I think using IF is just as good if not better.
130
As you can see here, I have GitHub Copilot enabled, but let's Just keep that on the down low because I really need this job.
131
Now, instead of console logging here, we'll just mutate the variable.
132
This allows us to eliminate the fizz buzz check and can also scale better if we decide to add additional words to it.
133
Impressive.
134
Very nice.
135
Impressively very nice.
136
Blazingly correct.
137
Now, how would you describe the performance of your algorithm?
138
I would describe it as strong to quite strong.
139
As you can see when I run it, there's almost no lag time because my holistic approach is so blazingly fast.
140
Well, that's one way to describe it.
141
I was more talking about Big O time complexity.
142
Oh yeah, I guess I should have studied Big O a little better before doing this interview.
143
If the FizzBuzz game were to go on forever, I'd say we have linear time complexity, or O of N.
144
However, technically, the game is only played for 100 steps, which would simplify down to O1, or constant time.
145
Wow, I can't believe it's been an hour already.
146
I blacked out.
147
Where the hell am I?
148
Is this heaven?
149
Oh hey, congratulations, you've got the job.
150
Here's your offer sheet with a $400,000 salary and the job is fully remote with unlimited vacation time.
151
Your first task you'll be working on is changing all of the blue buttons to a slightly different color blue.
152
Wow, I can't believe it.
153
I've spent the last two years pouring my blood, sweat, and tears into this, and my mom is going to be so proud.
154
Hold on just one second.
155
Uh, it looks like we've just implemented a hiring freeze.
156
Um, I'm gonna have to rescind that offer.
157
Bruh!
158
Congratulations, now you know how to bomb your technical interview just like me.
159
Make sure to subscribe to the Primogen for more awesome developer content.
160
Thanks for watching, and I will see you in the next one.
4.9/5 on App Store & Google Play

Shadowing English On Mobile

Learn English anytime, anywhere with the Shadowing English app. Improve your communication skills today!

Track your learning progress
AI grading and error correction
Rich video library
Shadowing English Mobile App

About This Lesson

In this lesson, you will engage with the challenges of a technical interview, as depicted in the YouTube video "How to NOT Fail a Technical Interview." You'll practice speaking by summarizing key points and discussing strategies for managing anxiety and problem-solving under pressure. This lesson is particularly beneficial for those preparing for technical roles or anyone looking to enhance their English speaking skills through real-life scenarios. By exploring the nuances of the interview process, you'll not only improve your English pronunciation but also gain insight into effective communication techniques in high-pressure situations, crucial for IELTS speaking practice.

Key Vocabulary & Phrases

  • Technical interview - A job interview focused on assessing technical skills and knowledge.
  • FizzBuzz - A popular coding problem used in interviews to evaluate programming ability.
  • Conditional statement - A programming construct that executes certain actions based on specified conditions.
  • Algorithm - A set of rules or steps to solve a problem or perform a task, often used in programming.
  • Anxiety - A feeling of worry or nervousness, particularly common in high-stress scenarios like interviews.
  • Flowchart - A diagram that represents a process or algorithm, useful in problem-solving.
  • Imposter syndrome - A psychological pattern where one doubts their accomplishments and has a persistent fear of being exposed as a "fraud."

Practice Tips

To enhance your speaking skills effectively, consider employing shadow speech techniques while watching the video. As you listen, mimic the speaker’s intonation, speed, and articulation. Aim for accuracy in your delivery to improve English pronunciation while internalizing the vocabulary associated with technical interviews.

Break down the video into shorter segments. For example, review a section where the interviewer poses a question like FizzBuzz, then pause the video. Practice answering the question out loud as if you were in the interview. If possible, record yourself to evaluate your performance later. This allows you to refine your responses, making them more concise and confident for future scenarios. Incorporating these practices will not only help in interview preparedness but also make you a stronger candidate in any professional setting.

Finally, utilize a shadowing site to find additional audio resources related to technical topics. The more you expose yourself to real interviews or coding discussions in English, the more comfortable you will become, helping you to ace your next technical interview or IELTS speaking practice.

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.

Buy us a coffee