تدريب Shadowing: 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.

السياق والخلفية

الحديث في هذا الفيديو يأتي من أنتوني دي. ميس، الذي عمل كمقابل في جوجل ويشارك خبرته ونصائحه حول كيفية التحضير لمقابلات البرمجة بأسلوب LeetCode. يركز في حديثه على الأخطاء الشائعة التي يرتكبها المتدربون عند الاستعداد لهذه الأنواع من المقابلات وكيف يمكنهم تحسين أدائهم من خلال فهم أعمق لطريقة التفكير اللازمة لحل المشكلات البرمجية.

أفضل 5 عبارات للتواصل اليومي

  • لا تثق بنفسك فقط من خلال حفظ المشاكل: يجب عليك فهم الأنماط بدلاً من حفظ الحلول.
  • اطلب المعلومات: لا تتردد في طرح الأسئلة للحصول على توضيحات خلال المقابلة.
  • اطلب المساعدة: لا تخف من أن تُظهر لك كيف تفكر أو كيف تتعامل مع مشكلة.
  • تفاعل مع المحاور: العمل مع المحاور يمكن أن يساعدك على تحسين إجاباتك.
  • عليك أن تعرف كيف تطلب توضيحات: إذا كنت غير متأكد، اسأل بدلاً من التخمين.

دليل خطوة بخطوة لممارسة الظل

إذا كنت ترغب في تحسين مهارات المحادثة الإنجليزية الخاصة بك، يُنصح باتباع هذه الخطوات:

  1. شاهد الفيديو: ابدأ بمشاهدة فيديو أنتوني بتركيز. حاول أن تستمع إلى نطقه ونبرته.
  2. استخدم تقنية shadow speak: قم بتكرار ما يقوله مباشرة بعده. هذا سيساعدك على تحسين النطق باللغة الإنجليزية.
  3. تدوين الملاحظات: سجل العبارات والتعبيرات الجديدة التي تتعلمها. سيعزز ذلك من ذاكرتك ويُسهل عليك مراجعتها لاحقاً.
  4. مارس المحادثة: استخدم العبارات التي تعلمتها في محادثات حقيقية مع أقرانك أو مع معلم.
  5. تحليل الأخطاء: بعد الانتهاء من الممارسة، تحقق من حواسك واطلب ملاحظات حول كيفية تحسين أدائك.

من خلال اتباع هذه الخطوات، يمكنك تعزيز قدراتك في ممارسة المحادثة الإنجليزية وتطوير مهاراتك بشكل كبير. تذكر، المفتاح هو أن تكون نشطاً ومتفاعلاً أثناء التعلم، مستخدماً أسلوب shadow speech للحصول على أقصى استفادة من تجربتك. كلما كنت أكثر انغماساً في اللغة، ستلاحظ تقدماً أكبر.

ما هي تقنية التظليل الصوتي؟

التظليل الصوتي (Shadowing) تقنية تعلم لغة مدعومة علمياً، طُورت أصلاً لتدريب المترجمين الفوريين المحترفين. الطريقة بسيطة لكنها قوية: تستمع لصوت إنجليزي أصلي وتكرره فوراً بصوت عالٍ — كظل يتبع المتحدث بتأخير 1-2 ثانية. تُظهر الأبحاث تحسناً كبيراً في دقة النطق والتنغيم والإيقاع وربط الأصوات والاستماع والطلاقة.