シャドーイング練習: I'm an ex-Google interviewer. You're doing LeetCode wrong. - 動画で英語スピーキングを学ぶ

レッスンを作成中...
1
Sup nerds. This is Anthony D. Mays, everybody's favorite tech diversity hire. Present for roll call and ready for duty. Listen, I want to rap with you real quick. If you're like me, you've had to do the infamous LeetCode style riddle-kind of coding interviews, and you probably are doing them wrong. Now I've written an article about this, which I wrote in 2022 and since then, over 32,000 people have read it, 2000 likes. It apparently really resonates. What I want to do is spend some time explaining some of the motivation behind why I wrote the article the way that I did, so that you can get insight into how to be successful in these coding interviews from the perspective of the interviewer. That'd be me. So without further ado, we're gonna spend a few moments just figuring out how to think about preparing for LeetCode style coding interviews at some of the top tech companies so that you can be aware of the things that you should do and the things that you shouldn't do.
2
Now you know me, I like to tell you when you're doing it wrong.
3
So why would I say that you're doing LeetCode incorrectly? I don't even know you. Here's how I know. If you have been spending all your time trying to memorize LeetCode problems, if you have been spinning your wheels just camping out in LeetCode hard, or if you've been rushing to just get to the first solution that you can and moving on, you're doing LeetCode wrong.
4
Let's explain like why that matters, and how we can break that all down.
5
First things first. I don't trust you. Turns out that a lot of people would do a lot of things for $300,000, $400,000, $500,000 engineering job at a big tech company. So I don't trust you. You just need to know that. You need to understand that I don't trust anything that comes out of your mouth. Just giving you a LeetCode problem, you could have studied that, you could have memorized it, you could be using who knows what.
6
That's why we don't use LeetCode.
7
of problems off there and give to you in an interview. But that's really not the case. I've got to know that you understand how to problem solve, and one way to do that is to give you a problem that you haven't seen before. So if you're spending your time trying to memorize everything on LeetCode, you're doing yourself a disservice, because most times it's not gonna show up in your real interview. You might see problems that are similar and that could be useful, but you can't count on already having previous knowledge about a problem that's gonna help you to do well in the interview. So it really doesn't make sense to memorize problems.
8
What you should be doing is what I tell everybody, which is, don't memorize the problem. Memorize the patterns, because the patterns are going to help you to solve a problem that you haven't seen before or that you don't have a lot of context on.
9
So go learn the patterns, and that's going to put you in a much better situation for being successful. The patterns are useful for practicing how you use those patterns in the right context and in the right way. But don't spend all your time trying to memorize every single LeetCode problem, because you can do hundreds of problems and still be absolutely nowhere in terms of your own problem solving ability.
10
Now look, some of y'all be crazy, like y'all taking this AI stuff too far. Y'all gonna mess around and have to do interviews in person like we used to do back in the old days. We might get to a situation where people aren't even using computers anymore, right for the interview process. I'm betting we're going to be doing those whiteboard coding interviews again in the not too distant future. Y'all keep messing around and cheating. Watch what happens.
11
Second thing you need to know: I need way more than the right answer. I mean, can I pick your brain? Like, what's up? I got to know how you think. I got to know how you communicate. I've got to see what happens when you struggle. So if I give you an interview question and you already know the answer to it, that doesn't help me at all. Because I haven't seen how you problem solve, I don't know how you're thinking about the problem. It's like doing a math problem but not showing your work. If I ask you a question and you already know the answer to it, all I'm gonna do is find another question that you aren't familiar with, or I'm gonna add another level to the question so that it increases the difficulty and just try to add some variability. The reality is that I need you to get stuck. That's just part of the process. And if you're afraid of getting stuck and you're trying to avoid it at all costs, you're not really ready to do the interview with me.
12
Most people are not just brilliant with like the ability to photographically memorize a bunch of stuff. And that's not what we need you to do. I need to see how you work through the problem from A to B and what you did to get between those two points so that I can understand what it would be like to actually work with you working on problems that you haven't seen before.
13
One of the most important differences between you doing LeetCode And you doing an interview with me is that I'm not gonna give you the whole problem statement, all the examples, and all the hints up front. It's just not gonna happen. I need to know that you know how to ask for that information, which I have and I'm willing to give to you, but you have to be able to ask. I can't tell you how many times people have said, "Hey, are you gonna paste the question in the window?" And I'm like, "No, I already said it." I will be more than happy to repeat it if you ask me. But now it's time off the clock. Don't assume that I'm going to do the work that you should be doing. And the work that you should be doing is asking questions, taking notes, memorizing things that I've told you, or at least documenting them so that you can reference that information later. I'm not here to do the work that you should be doing.
14
Third thing you need to know: it is literally my job to help you.
15
It's my job. I gotta do that. I know, I know, you see me as Darth Vader to your Luke Skywalker. I get it. But, for real? I'm not here to beat you up. I actually want to see you succeed. I'm here to help you. So if you see me as the enemy, and you don't ask questions and you don't talk to me, it's on you. Like, that ain't got nothing to do with me. I already got the job.
16
You have to ask questions in order to get information that I have, that I know, that you need. I know there are people that say that there's no such thing as a dumb question. I firmly believe that there is a such thing as a dumb question in a 45 minute interview or an hour interview. A dumb question, to me, is a question that you've asked that you didn't have to ask if you were paying attention and listening to me as your interviewer. Now, many times it's possible for you to at least get some kind of answer even without asking questions, but your chance of like, hitting the nail right on the head is gonna be super, super low. I usually know when people are gonna fail an interview because the first thing they do after they hear the problem is start typing out code. If that's you, you're doing it wrong. You're probably gonna fail before you've even gotten started. You end up spending time working on something for which you don't really have all the information to produce a really good, complete answer. You gotta realize I'm here to help you.
17
Now it does take some experience to know what kinds of questions you should ask, and this is where using tools like LeetCode or HackerRank really help you out, because as you work through a bunch of different problems, you can start to figure out the kinds of questions that you should be asking in order to get to an answer. This is also really important for studying algorithms and data structures and Big O. One of the reasons why we study algorithms, data structures, and Big O is so that we can understand the kinds of questions that we should ask that will help us filter out solutions that might not work for our situation.
18
For instance, if I know that the data that I'm working with is sorted because I've asked whether it's sorted or not, then I know that I probably don't need to use a sorting algorithm at this point, so I can just take those tools off the table, because I'm not going to need that. I've asked the interviewer if I need to sort the input, and they've told me that it's already sorted, so I'm good to go. So a lot of the questions that you asked are going to be about filtering out the list of all the different tools and things that you know so that you can get to the set of things that might actually work for you.
19
If you can come up with multiple solutions, it is absolutely okay for you to ask me which one I would prefer. That is totally legit, and you should absolutely do that, because I might see that option B is better than option A, and I might push you in that direction so that you don't have to spend time implementing something that we both know isn't going to be ideal. You can totally ask that, and you definitely should, because that will save you time and help you perform better in the end. If you're not talking to me, if you're not asking me those kinds of questions, or if you're not brainstorming multiple solutions, I can't help you.
20
If you can't figure out a better solution than your naive solution, by all means, go and implement it, but stop and think about multiple ways of solving the problem first, and then ask me to provide you some direction, and I'll be more than happy to point you to a more optimal path, if that's the appropriate thing. Now sometimes I'm gonna say, just implement the naive solution. If you struggle on the naive solution, why would I have you spend time on the other one?
21
I hope that you enjoyed this video. I hope that you learned something that you didn't know before. If you did leave a comment, tell me, how is your LeetCode prep going? How are you doing? Are you getting ready for interviews? Are you getting more interviews? Let me know. I want to holla at you. Let's talk about it. Leave a like, drop a comment. Don't forget to subscribe. And hey, check the description, I've got links to articles and resources designed to help you level up in your interview prep.
22
In the meantime, I'm Anthony Mays, Mr. From Compton to Google. Peace.

このビデオで話す練習をする理由

このビデオは、技術面接における効果的な準備方法を紹介しています。話す練習をすることは、異なるFAQスタイルの質問に対する答えを自分の言葉で表現する能力を高めるのに役立ちます。特に英語シャドーイングを通じて、効果的なコミュニケーションスキルを鍛えることができます。さらに、このビデオを通じて提示された問題解決のアプローチを話すことで、面接官との対話のスキルを実践できます。

文法と表現の文脈

このビデオで使用されている重要な構文や表現を分析してみましょう。

  • "You're doing LeetCode wrong." - これは、直接的な批判の例です。自分の学習方法を疑問視させる強い表現です。このような表現を使うことで、効果的なフィードバックを伝えることができます。
  • "I need way more than the right answer." - 正しい答え以上のものを求めるというのは、単なる知識だけではなく、プロセスや思考法を重視する姿勢を示しています。この観点は、英語でのコミュニケーションでも重要です。
  • "I got to know how you think." - 自分の考え方を示すことが大切だという点を強調しています。このフレーズを通じて聴衆との対話を活発にし、より良い理解を得る手助けになります。

一般的な発音の罠

ビデオの中での発音やアクセントに注意すべきポイントをいくつか挙げます。

  • "LeetCode" - この単語は技術的な用語ですが、発音には注意が必要です。特に「リートコード」と聞こえないように、スムーズに発音する練習が必要です。
  • "I don't trust you" - このフレーズは強さを持つ表現ですが、相手に与える印象を考えると発音のトーンも重要です。感情を込めて表現する練習を行うことで、英語の発音を良くすることができます。
  • "Ask questions" - 質問をすることは、コミュニケーションの中で非常に重要です。この表現を繰り返し練習することで、自分の意見を明確に伝える力を養えます。

このように、shadowspeakを活用した練習や、IELTS スピーキング対策を行うことで、話すスキルをより向上させることができます。

シャドーイングとは?英語上達に効果的な理由

シャドーイング(Shadowing)は、もともとプロの通訳者養成プログラムで開発された言語学習法で、多言語習得者として知られるDr. Alexander Arguelles によって広く普及されました。方法はシンプルですが非常に効果的:ネイティブスピーカーの英語を聞きながら、1〜2秒の遅延で声に出してすぐに繰り返す——まるで「影(shadow)」のように話者を追いかけます。文法ドリルや受動的なリスニングと異なり、シャドーイングは脳と口の筋肉が同時にリアルタイムで英語を処理・再現することを強制します。研究により、発音精度、抑揚、リズム、連音、リスニング力、そして会話の流暢さが大幅に向上することが確認されています。IELTSスピーキング対策や自然な英語コミュニケーションを目指す方に特におすすめです。