Make video series for specific topics, like dynamic programming, greedy algorithms, heaps and so on. Not talking about playlists for questions of the same topic, I am talking about playlist where you teach the topics.
It can't exist a hiring process capable of doing better than a coinflip and Google knows this and have tons of data to back it up. When Google still is tedious in the interview process it has to do with internal strife. I don't know why some units are allowed to continue to do this nonsense. My best guess is to calm down the environment. In a large organization, it's unavoidable to get a lot of people with their own fads and fix ideas. This is why a large organization can never aim for excellence. The best they can do is mediocre - and do it well. The circus you have been part of is only that, circus. If you're a clever programmer you should never search a job in an organization with more than about 60 employees.
No one is a better programmer than me, I know all the algorithms and I invented Steve Jobs... I have been looking for a developer to join my company for the last 10 years and I cannot find anyone good enough to complete my 48 hour coding challenge and recreate the space shuttle in their own back yard complete with functioning engines to take you into outer space (at their own expense ofcoarse). Obviously there must be a shortage of programmers out there, if no one can complete my challenge.
Dude i like the fact that you’re not just showing your victories but also failures. Most youtubers love to broadcast their wins but not their losses, but not you. I find that amazing and inspiring bro. Keep doing you and keep up the good work brother.
@@prashantpratapsingh3508 if you practice them well enough, i believe it should be enough. Even if a question out of this list comes in your interview, you should be able recognise a pattern from any of these questions.
everything else aside, it was actually nice of them to send rejection letter instead of just never responding like a lot of companies do. Shows some respect for the other person
I am literally on my 45 minute break from my final Google interview and saw this in my notification feed. I want to thank you for your videos, because of you, I've managed to drastically improve my skills over these last 3 months and have a fighting chance with these interviews!
Those of us who have been around for awhile know that your first few interviews typically are throwaways. There is a learning curve to interviewing after you have not done it for a year or two and you get a feel for what they are looking for. Another thing I have found is, in general, the less rigorous the interview, the better the job.
Your last comment is priceless and exactly how I see it, the guy in the video sound stressful from an interview that was taken years ago! I would not want to work in a place like that. At Intel my interview was very pleasant, and even if they could have said no at the end, I knew I would love to work at a place like that.. Luckily they accepted me and I have the least stressful job in the world (also, our meals are much more inviting:)
So true. My current employer only had me do 2 rounds: take home project and an in-person interview. The in-person interview was also just chatting with the team; no live-coding; no whiteboarding problems. Fast forward 5 years later and still loving this job as it's completely chill.
@@pikachulovesketchup666 yup... It's rare to find a problem in real life that's super algo heavy. 99% is about following good, maintainable practices for extremely boring and procedural code, and finding ways to modify existing code to add new functionality without breaking 10 years worth of features.
I've interviewed many many candidates on coding questions. So this is a bit of the perspective from the other side. I think you probably failed most on the first 2 coding interviews. Also, AFAIK, it would not have taken 3 weeks to get the rejection if you were not close to getting an offer. Two general comments: The worst thing is when an overly prepared candidate (a "competitive coder" type) is given a relatively easy or familiar question, and then just jumps into it without communicating much. Whether they take a wrong turn, or not, doesn't really matter. The most valuable thing is to get an opportunity to see how a candidate works through a problem they don't know already or isn't immediately obvious to them, it's really not about arriving at the solution. The best thing to remember: The destination is already known to the interviewer, the journey is the interesting bit. Bonus tip: If you get a question in an interview that you already know (from practice, or whatever), I would highly recommend that you just tell the interviewer right away. If you just bust out the solution quickly, he will be annoyed at the waste of time, because he will have to ask another question and with less time. If you try to pretend you don't know the question, he will see through that, believe me, programmers make terrible actors, and he will be even more annoyed. Most interviewers have many alternative questions ready to go. And about the nodding and letting you go astray. That's typical, even expected of any decent interviewer, I would say. Doing an interview is a bit like walking a dog, you gotta let the candidate wander around a bit on their own, and reel them in at times, but you can't just hold them on a tight leash the whole time, because then you don't learn anything about them. Very often, candidates will explain what they intend to do to solve the problem, and you know it's wrong, but you nod along and let them do it (unless they've misunderstood the problem), that's just cutting them some slack to see what happens. For interviewers, this is really hard to do, because you constantly have to repress your natural instinct to be helpful and cooperative, which is what you do all the time when you're actually working. Things like nods, smiles, and timid remarks like "mmh, interesting" or "okay", are not positive signals that you're on the right path (or wrong path, for that matter), they're just polite, repressed gestures to stay friendly and passive. So, don't get too confident, but instead understand that at that moment you're entirely on your own (either shining, or screwing up). The same goes for general back-and-forth, the interviewer might probe a little bit with questions and stuff, but you will notice that they generally don't actively add anything new, just helping you think on your own or have someone to bounce ideas, like playing tennis with a brick wall. But again, it's mostly about letting you make it or break it on your own. So here's another thing to remember: The interviewer is not trying to help you, but trying his best NOT to help you. Obvious corollary: If the interviewer actually gives you a really helpful tip, it's probably because you're falling behind on time. A good interviewer will drop the tip during the general back-and-forth so you don't notice that the idea came from him. But if he has to interrupt you entirely to give you an obvious tip, you're probably really far off (and also, that you're not doing well on communication either, because it's probably not his first attempt at giving you that tip).
This is depressing to read, getting the answer correct is not enough and can count against you, you have to walk through your solution in just the right way as if it’s some kind of performance or class and not something anyone would ever do in their actual job. Total gate keeping mode
@@youtubeaccount7770 When you're a company paying top dollar with millions of candidates, you can afford to be this picky. Average companies don't make you jump through so many hoops
@@youtubeaccount7770 I think it's because they're not testing your correctness, but your approach to problem-solving and thought process (Which you may not verbalize on the job, but definitely relates to your job)
Hi NeetCode, I just received my offer from Amazon! I really want to thank you for all the amazing video and great explanation. Your videos literally help me to ace the coding section! Thanks!!!
Congratulations for your feat. Can you plz explain in short how you settled a job at Amazon. Im actually a University student and trying to explore many things, so can you please help me.
Honestly, these "mistakes" don't even seem that bad. I recently had an initial screen and I misinterpreted the question. I paraphrased the question and asked whether my understanding was correct. Both the interviewer and the shadow said it was ok. Then in the middle of coding, I realized that there was a mistake, re-read the problem and then asked again whether my new interpretation was correct. This time again the interviewer and the shadow said it was ok. So I fixed the code and was able to get it working for all the use cases. Later on the recruiter called me that they are inviting me to the onsite but had some "yellow flags". I asked what they were and was told that I misinterpreted the problem and jumped straight into coding. I told the recruiter I was surprised and explained the situation and he just apologized to me and said we have to ensure better training to maintain good interview standards.
Yes, interviewers are real people with real flaws; and whether someone is a "good" candidate is a question that is both highly subjective and extremely difficult to get a feel for in a 1 hour interview, coding or otherwise (having seen the interviewer side of things). So my honest opinion is that every interview is a bit of a crap shoot, and it's luck of the draw whether you get an interviewer that you just really vibe with which will boost or tank your chances independently of your coding skills.
I also failed a job application for Google... 4 times. But was hired last October (not as a developer thought, I'm a TAM - Technical Account Manager). One thing about Google is that sometimes you *are* Google material, so to speak, but due to some specific detail regarding that position, they chose someone else. In my case, in the last 2 times I passed everything but just so happened they needed someone with a specific experience that I didn't have. Out of the blue, about an year ago, Google's HR contacted me and I didn't have to do any interviews ( I had one call with the managing director of the area thought becasue the manager who asked for me specifically was on vacation and he wanted to know me). There was an opening that aligned with my profile and they just called me and made an offer so, my advice in case if you are interested is to keep trying.
Oof, I’m so sorry that’s very disappointing to hear. Engineers and TAM are very different... Hopefully they have an internal hiring process to let you switch…
When I did my online onsite, all my interviews were all coding problems (unfortunately) just like your situation and I didn't get the behavioral. Sometimes I wonder what would've been if I asked right away since I performed the worst on that last problem, but I'm going in for a second onsite one long year later in a couple months! This channel and the website are honestly gamechangers for me, so this time I'm hoping things will be different. Thanks for all the work you do!
As a transitioning scientist to computer science, failing the Google onsites was the biggest gift I've been given. I have learned all of the common containers, how they work, how they get sorted efficiently, how to build them, and use them in basic algorithms. All of this crammed learning improved my skills tremendously! And the interview was really fun. I hope to try it again and get it one day
Amateur! I've failed it four times over the years. The first time or two I really wasn't prepared, but the last one especially, I was extremely well prepared and felt I performed very strongly. I even did a perfect stack-based implementation of Robot Room Cleaner (LC hard, interviewer never saw it done using stack!). I've been in the industry for a long time and interviewed many times (and many offers). I've declined to interview again, as I think one of two things must be true. They are either basing their decision on an immutable characteristic, or the hiring committee is taking my past failures into account.
I had the same experience with the "Googly-ness" interview starting off very technical and having to interrupt to clarify which interview panel it was. Perhaps that's part of the interview: "Is this candidate bold enough to stop an interview if they have different expectations?" Seems like a good Googly trait to me :)
Same here. It makes perfect sense. They don't want someone who will just go with the flow and keep their mouth shut. They want people who remember what the plan was supposed to be, and at the very least confirm that the plan should be changing before they shift gears and just run with the new unexpected plan.
You had a lot more fun with the editing than usual and it was fun to watch. Crazy how similar our experiences were. My first Google interview kept me up at night too but it made me such a better person. But you know... *after* the trauma.
Glad you scored the job! I watch a lot of your videos because of your ability to explain the intuition behind your solutions. I’ve been mostly fortunate in my career thus far, I had extensive internship experience at companies that are much larger today than they were when I worked there. This allowed me to walk my way into most companies at the top of their pay bands outside of big tech. This has been ideal for my goals because big tech has such intrusive intellectual property agreements. I have a startup I worked on with most of my spare time, and I relied on the funding from my 9-5 early on. Google, Meta, and the like would figure this out quickly, as they did with my peers, and apply legal pressure for you to shut down, quit, or be consumed by them. You’ll find this is why most big tech influencers left those companies. My advice is to stockpile runway money for a couple years and then quit. You are capable of working for yourself given you have decent creativity and vision. FAANG will just take advantage of that…
I've been on the OTHER side of the table for years. And, from my perspective it doesn't seem like getting a "hire" recommendation from us is terrifically difficult; like, I'm looking for reasons to hire not reasons to reject. But in my interviews I'm definitely NOT looking for the answer to the problem, the problem is just the context to see how you work through things. I want to see that you are methodical and organized in how you solve problems. I want to see that code is just another language to you, as easy to read and write as English. I'm looking for reasons to believe that programming is something you do a lot, and that finding ways to do things with code is a skill you already find valuable, regardless of my silly interview. If you're hired, you'll be reviewing MY code for mistakes just as often as I'll be reviewing yours. Remember that we're interviewing our future peers.
The bigger issue is leetcode style interviews in general. In 15 years, I've not had to directly use a DS&A 101 style problem like this. I stopped using these kinds of questions when I interview completely. Additionally, they introduce an inherent bias into the hiring process, removing many qualified candidates because they don't perform rote memorization under stress well.
Spot on. I recently had an interview at a smaller tech company, and instead of making me do LeetCode style problems, they gave me some badly written code and asked me to do a code review. Much more relevant to the job in my opinion.
@@fazalcheema9706 I don't believe that is a fair comparison, the key fact here is that Google has tons of great engineers trying to enter the company. They know it, and they need a systematic way to filter out. The top candidates will almost sure know how to do the engineering stuff done (e.g code reviews), but also are proficient at ds and optimization (some of them usually are competitive programmers) which is a plus.
I used to think like you do but now I like the DS&A questions because it's something people can prepare for. I used to want to work on side projects instead of prepping for DS&A questions. But I actually find DS&A easier to prep. I have worked on many variety of projects with many different technologies. I already forgot the tech I used in my previous projects. I cannot review all the things I have done for interviews. But with DS&A questions, all I need to do was to prep for 3 months.
@@schan263 that’s exactly why this is the worst because it can be prepared. A good interview should be less predictable and test what you real are not how well you prepared.
Failures are so important and after a couple of them, I welcome them. It’s truly the only way to improve yourself. For everyone out there reading this, keep up great work and continue to persevere. Your time will come :)
What I think is funny about all of this is that the best engineers I have ever hired didn't need to go through this kind of interview process. This kind of complex process leads me to believe that it was designed by people who weren't sure how to interview engineers. Across the board, every good engineer needs three things: 1. Passion. If you're not passionate for software development and eager to learn, you will never be as good as someone who is. 2. Able to communicate. If you can't communicate clearly and effectively, you will have a difficult time communicating with people, especially outside of the engineering department. Being able to communicate clearly with project managers, product owners, testers, and stakeholders is critical. 3. Able to code. :) I only ask simple problems like FizzBuzz. I would say about 50% to maybe 75% of people I interview can't code FizzBuzz correctly. It takes me about an hour of just talking to someone to know that they are good or not. When people can talk about a personal project in detail, you can hear their technical skill. If they get really in to describing a technical challenge they encountered, you can hear their passion. And if they can write FizzBuzz in a couple of minutes then you know they know how to code. Everything else I've needed, I've been able to mentor to help them learn and grow on the job. My interviews are pretty relaxed and being willing to take people in even if they don't know a specific technology has earned a lot of loyalty with members on my team. Google obviously works on much more complex stuff than most other companies do, but I do think their interview process is also more complicated than it needs to be.
This works incredibly well, when you have a trusted expert that can verify and spend an hour with each candidate But what if you have 1000's of interviewers, evaluating 10k's of applicants over multiple years, where availability and involvement of the interviewers is not guaranteed? You'd come up with a system like they have at Google, everyone has to do more work, but you'd eliminate a lot of false positives
Absolutely correct that you learn from failing at code interviews. Everyone learns this way. After 3-4 interviews you quickly realize everyone is asking about the same things and it's pretty easy. When you cracked the code (pun intended) you are in. But most people stop after 1 fail and think they are not cut for it and that others just ace thru the interviews every time.
I am 25+ year software engineer and I would never accept a job from any company that is mostly interested in puzzles in their coding interviews. Leave the puzzles for the kids. Real interviews test for real knowledge. Being fast at solving a puzzle doesn't give any indication on years of software design/implementation knowledge. Just my opinion.
The tech interview process is so insanely broken at this point. So if you go to interview at these companies, your resume and work history are completely ignored. Instead, you’re expected to pass these “tests” which have zero relevance to the job. Instead of a bidirectional conversation about the team and role, you waste a day just solving puzzles. It doesn’t tell the company a lot about the candidate. It needs to stop.
@@Ryan0751 Sadly over time it has morphed into "I'm smarter than you because I can solve these puzzles". In my 25+ year career NEVER ONCE have I had to create anything near their puzzles.
What would you say this "real knowledge" that they should test for is if you truly believe testing someone's problem solving skills for a software engineering job isn't the way to go
Your first mistake was not a mistake. Your thought process showed you knew how to think through the problem and come back to the right solution in the end.
Have been prepping for my Google interview for the past month and a half (not sure if this is going to be enough, have it tomorrow). Ran into your channel a few weeks ago and they have been super helpful in getting a stronger understanding of the different problems I might come across! Thank you for providing all of these resources to people who are going through the interviews! Love how you shared your journey on this, feel like everyone has similar experiences when it comes to going through these interviews and its nice to see people openly talk about the highs and lows of it all and relate to them
I think you have a fantastic way to communicate your ideas clearly. I just watched a few clips of your coding tutorials and I am utterly in awe of your delivery. 🥰🥰🥰🥰🥰
Thank you for sharing your story! I find it super helpful since I have a technical interview coming up... I'm not super strong at coding but I can certainly try to avoid the mistakes you made. Thanks a lot NeetCode
I have my interviews tomorrow so I’m trying to keep my mind busy and trying to reassure myself that I put in the prep so nothing I can do now :). No matter what happens glad I found this channel and happy I started practicing.
I failed a google coding interview once. It was also a case of completely misunderstanding the problem. Specifically, I assumed a binary arithmetic problem was about fixed-width modular operations, when it wasn't. I ended up at a different large tech company and haven't really been super interested in reengaging Google. If I were to do another interview with them in the future, though, I would definitely ask clarifying questions.
I had the SAME problem where I could've used a global variable to simplify the problem but didn't think I was allowed to until the end when he started dropping hints. The interviewer was a great sport about it and understood.
I love seeing people grow! Everyone thinks you're only valuable if you seem to be immediately successful, but that's not the average human experience. If people were more transparent with their struggles & what they learned from them at the time, I think they & we would value them more as people and not just as "public figures".
Following your videos and working on LeetCode for a fact got me my current job. I was able to quickly answer a question regarding tree data structure traversal. Something I wouldn't have known two months prior. Thank you!
@@moc1759 I am. Mechanical engineer for 15 years and took a year off when our twins were born. Spent most of my time learning anything I could and applying.
The thing with google and fang is that they want a tailored made candidate, so he can be like the current workers at google. Then the candidate doesn't need much time for training and they blend in with the rest of the team. Kind of like adding a another compatible brain cell to google company. it is open for extension and closed for modification as in hiring the correct mindset not the wrong mindset of people.
This is a great video. This is a really good example of what we like to call egoless people. People are your assets, not algorithms. I think coding interviews are important but at the end of the day it's the essence of problem solving we are after. I think we put too much emphasis on coding. As you get older it's not about how many algorithms you know or how fast you can type, it's about understanding how to model the real world or problem domain. And understanding more about how and why algorithms can be proven correct or not vs whether or not you can recall a pattern for an interviewer. The real world requires you to think about your solution and how it might fit into a larger road map, not how fast you can crank out an in-order tree traversal.
Hey Neetcode, can you please make a video about how to build up logic? I feel like I have learned coding and understood the concepts, but when finally coding it myself, I always get tripped off. For example, after watching solution or finding a solution to a question myself, I can't code it well. Im sure many people will benefit from the tips you can give as well🙏 Thank you so much for doing what you do, you have helped tons of people, myself included.
The way you described the interviews, I’m actually surprised they rejected you. After all you made some great recoveries and did not give up as it looks like, and I think that should count for something, too 🤷🏻♂️
i absolutely think what made you stand out this time was the communication and neetcode was a big part of that. can you make a video on tips to communicate during a coding interview in a virtual setting? and what is a "good sign" from an interviewer? In my last coding round the interviewer was completely silent apart from "yes/no" when I asked a question.
I am following your videos from past 2 months and I got selected from service based to Product based company. I want to Thank you for providing such amazing content and yes next target is Google...
These leet code style interviews are highly stressful and are not reflective at all of what you'll be doing day to day on the job. A few years ago I shifted away from these kinds of questions in the interviews I conduct and instead give the candidate a piece of code and ask them to refactor, clean, and make it more object oriented. The candidates we hired with this new process turned out to be of higher quality. They were able to more quickly jump in and start contributing in their new role and they expressed how the whole interview experience was much less stressful than traditional leet code questions. Most interviewers are quite removed from the results of hiring candidates so it's hard for them to measure if their current interview styles are effective. I think we need more research done in this area to measure the results achieved by various interview methods.
The way you described your interview, it sounds like you probably should have got in since you got the optimal solution for all problems written down! It's a bit scary that you didn't get in with that performance!
This is the first time that I feel I'm not nerd enough. WTF ... I mean I did some C++ and C# stuff in highschool... but you people are on a whole new level of thinking.
Once I joined an interview of Google for a position of "system administrator/engineer" or something before(several years ago). I felt confident if he could ask me some questions about it. But the officer was keeping asking me the very details about many algorithms since I never been a programmer. I can't make him satisfied apparently. Still a mystery that did I click to apply for a wrong position at all??? Or he asked on purpose? Lesson1 to accepting interviews from google: Better know something else outside your position responsibility.
The experience you shared is the experience of many candidates. The video is very good, However I just hate this process that these companies are following. Asking you trick questions, which let's face it, you don't do tricky things under the supervision of a timed clock at your job. If you mistook a problem very slightly, it should not be a big deal, the interviewer themselves would make many mistakes in their own projects in the company. So even though all these companies pay well, they really have a very embarrassing interview process where you have to literally prepare for interviews 2-3 months in advance, I have not seen any other field where you need so much time to prepare. I will be getting out of the tech field simply because of this
I think you're not understanding why the process is the way it is, which is why you come across a bit salty in your comment. Big Tech wants the inquisitive, the thinkers, the communicators, not just basic code monkeys. And jumping into a solution for even a simple problem, even if you happen to get it exactly right, highlights behaviors they have learned don't work well in their organization, when the solution is never so simple. As for the preparation, they want people that know their data structures and algorithms to the core. People that have no interest in being able to code up binary search from scratch "because I can just import a library" will not be interested in understanding why the core Cassandra algorithms perform so well, and would never be able to use that knowledge to troubleshoot production performance bottlenecks, or use that knowledge in a new solution the industry hasn't built created yet. Remember, things like Cassandra, GraphQL, Node.js, React, Elasticsearch, Hadoop, Kubernetes, all came from companies that needed new solutions for new problems. And they need people that are in absolute command of the basics of their field. Besides, they can afford to hire only the best. Why shouldn't they?
I think you got unlucky, I interview candidates in FAANG, but I wouldn't reject as long as communication is good, a good understanding of the problem, and you manage to have a working solution. I can understand fine your solution, and you are coming with a clean code. Seems like you did fine on all these.
Hey man, if you didn't fail your first interview this channel probably wouldn't have existed, so it's actually a blessing in disguise (for the rest of us of course :P)
This makes me feel better and less angry about failing my Google interview by literally an inch.. I got a 3/5, 3 passed interviews out of 5, I almost had 4/5, but couldn't get to the optimal solution in time and literally figured out the solution 5 minutes AFTER the interview ENDED. I was so angry but whatever, I'll get into another FAANG and try for Google L4 early 2023.
good luck.. you can easily work at google or similar cmpany but there is too much competition and within given specific time intervals they want to solve the problem...
Your biggest error was to reject the fourth coding round, the interviewer was giving you one more opportunity and same time evaluating your predisposition.
From my recent interviews with FAANG, I noticed that the coding sections are starting to also check basic OOP, class, etc. rather than the typical LC problems. I think this to weed out those who is only familiar with scripting (vs. production-level coding).
@@wangyex Mine was for an experienced level in DS/MLE. Y'all CS majors should've found it easy though. I was only used to Python scripting (vs. production-level coding), so found it new/challenging.
Thank you Neetcode, I have failed Microsoft interview today, but after I watched this video, I think I got better. Everything is not straightforward, even with a legendary like you. Thank you
The thing about online job assessments (more so the coding ones) is not the fact that the answers are readily available. Yes they know the answers are there, they probably have then saved as a reference or for plagiarism tests. What they are more so looking for is that you know how to do the research and implementations yourself. They don't want you to just copy and paste, anyone can do that. They want to see you find the answers to the problem and see that you can implement your own solution based off your research. These companies aren't stupid so don't try playing them like they are. Have confidence in your abilities and just focus on the problem at hand and you will do fine, as long as you have the knowledge to back your claimed skills. The on-site interview where they do the white board questions is where they will test your real problem solving skills. Here is where you'll need a solid understanding of data structures and algorithms, not just be able to research a problem.
What company did you work with for your internship? Also, what field of software engineering did you apply to? And yes - we'd like to see your resume if possible! Thanks Neet! (edit: he made a vid about the internship - it was Capital One)
As a Senior Software Engineer currently in the interview process with Meta, Amazon, and Capital One, your videos are tremendously informative. Keep it up man.
Dude, a failed interview is definitely not wasted. Go home and document EVERYTHING about the interview and critically review it. Each experience helps increasing your chances for the next. Try freelance early in your career. You get a LOT of interviews and experience. It really helps you to be more successful. Most people don’t go freelance and are uncomfortable in a interview. With freelance you are used to it. It’s tough at first but you’ll learn exponentially.
What sort of things are you allowed to ask your interviewer during the coding interview? I always hear people say engage with your interviewer when trying to solve the problems, but I always wondered what things you were allowed to ask in relation to the questions and which you weren't. Like are you allowed to ask them what edge cases you're missing or not considering? What are some things you tend to ask your interviewer when solving a problem? Do you have to engage them a majority of the time you're working on the question? Because there is bound to be some silence during the problem solving, so you can concentrate on coming up with a solution. I always found this period of time to be a bit awkward because I know I'm supposed to be engage with the interviewer, but what am I to say when writing my code? Because hardly do you ever try to explain why you are writing certain lines of code even to yourself when you're working on things especially when no one is watching. When writing code -- in a non-interview setting --, you think of a solution you think might work and start putting the various pieces together and then attempt new stuff when you run things and it doesn't work. Like this is all happening rather quickly in your mind as you're coding away, so it feels very much out of place to have to talk through your coding in an interview setting So, what advice would you give to get better at communicating with the interviewer and what are some things you should be asking during the period of time you have to come up with a solution?
Remember that an interview is a tryout for being their new teammate that they need to rely on daily. 1) do you want an annoying and needy teammate who asks you to do their work for them? 2) does your teammate waste everyone's time by not taking the time to make sure they understand the problem to be solved and then writing a bunch of code that does the wrong thing? 3) when having a design discussion with your teammate or asking them how their code works so you can debug it, can they articulate their thoughts in an understandable way or do they just wave their hands and stutter "and then, uhh, you get this number, and plus that one, and oh put an if statement, mumble mumble uhh that should probably work" *blank stare*
As a "freshman" is is totally ok to misunderstand the problem and run in the wrong direction. You will be caught by your colleagues, and they will bring you back on track. And from this, you learn a lot. That is different, if you are not part of a team where everybody is there for solving problems by thinking, but you are part of a team of code monkeys, that have just to write code. Fast and efficient. I am a developer for nearly 30 years, and being rejected by Google somehow sounds like a relief.
Is it really worth it? I mean your channel is by itself a huge contribution to community - it is golden! I understand that by joining Google you may get on the bleeding edge of tech. But you also may work on a product no one knows and which would be thrown away. And I don't see how 5 coding stages leetcode-like questions relate to the actual work.
most of the problems are irrelevant what you do in real job. They want you to build a planet in the competition and after, at work they want you to make small house... For instance, I have overriden Keycloak providers by extending them to new classes to adapt multiple authentications for a specific job but you cannot see those kind of experienced job related issues in these competitions..
@@christiansnaturestudio6599 how beeing stuck at a desk for life is relevant to Google in particular? Any software engineering job is a desk job more or less.
4:10 - thanks for explaining the process, often we just hear to do leetcode but now how to approach the problem. you have made this clear, so thank you. I usually have a leetcode problem on my screen and I am like "wtf is this? " lol.
Lol, I had the coolest interview at Google. The interviewer was into sparse arrays, which I wasn’t. But he allowed me to ask plenty of questions about the properties, so I was able to write a decent algorithm to solve the problem. Then he asked me to prove correctness, which took me aback at first. Then I realized that I could prove it using finite induction. It was so cool, that I thanked the guy for asking. The next guy walked in and asked my to do some binary tree nonsense. Having been on both sides of the table many times, I hate lazy questions like that. So I told the guy to piss off; I didn’t want the job that bad! :D
I've always wondered (and maybe a Google person in the comments has the answer) how the interview goes for a more senior engineer, e.g. someone who already has 10 to 15 years of experience, has been a technical lead or a manager in other companies, or has a track record of widely-used open-source projects accessible on github to demonstrate not just coding skills but also the ability to design a whole architecture, manage CI/CD pipelines, documentations, etc. Surely Google doesn't just ask coding problems to such a candidate (that would be overlooking 99% of their potential)?
there are two types of engineer positions and two types of interviews for them. The coding monkeys/entry level and all they want you to do is technical and coding, and those with sr lvl exp, more for collaboration between teams, and some of the things you mentioned. two different types of positions is how that goes. To further drive the point home, In my field, I am a Sr IS Analyst, and then we have the Data Analysts, that would be the distinction I am trying to make.
You should do an update video on whether or not the grinding of DSA and leetcode actually translates into industry. I don't think its useless, but I hear from a lot of engineers that are already working that the leetcode and DSA grind hasn't really been of much use after they got the job.
They say that they are useless after they got a job because they are not actually trying to build something new. Imagine in 1990s trying to build something like google earth app. I recently saw this on a Netflix documentary. The RAM in the chips they have at that time is not sufficient to process the enormous amounts data they have but intelligent engineers came up with an algorithm to solve the RAM problem there by going one step closer to building the app. You see for things like these DS Algo matter a lot and not if you want to just trying to maintain an existing application. FAANG Companies want engineers who can invent something new so their approach is different in interviews.
I finished a BS in Info Technology in 2010. Thought I was a hot commodity until I started interviewing. On one interview, I was in front of about 20 people, and had to get up to the chalk board and code a lottery system in Java. Pick 3, pick 6, and powerball with the extra number. The nerves got to me, and I blanked out. You need to be on your A game and then some.
Mojang employee here, I would say not knowing the answer is not the biggest problem in the world, the rushing a problem is probably a bigger issue. Glad you feel that you could learn about it :)
The interview in google seem so bizare, company that hired me cared not about whether i can solve some hard coding problem, they valued I am fluent at english, I have github portfolio, and have some basic knowledge about programming languages. Solving hard problems in short period of time is next to impossible to me. Other thing is that reading code and understanding it is most of the programmers job. Do they ask you to say what some code does? Not at all.
"Solving ..... is impossible to me" It is for everyone. Three years ago I used to take two hours to reverse a linked list. Now I take 2 minutes. Software engineering is not easy. It's constant effort at solving problems. You feel burned out very easily. But it is what it is... If you can't persistently solve problems and feel burnt out easily then this is not the field for you. Otherwise sky is the limit
@@kipa_chu sure, they just want cyborgs... most clever people have capacity to solve many problems. However, it has become too much a race, since there is too much applicants. May be two years ago you could not be selected, however today you could be. What does it mean ? You have capacity to solve the problem and they can really understand that you have a capacity or not. However, today's competitions are far beyond that, it has become a race. At actual work, it is not that hard, however need some experience to solve some issues which are not in that kind of competitions. However, population is growing and growing, so the race is growing..
I'm quite sure the final interview started correctly. Identifying if you're the kind of person that notices when things go wrong and acts on it, instead of just sitting through 30 minutes of something wrong. Thanks for your video and site!
I find it hard to explain my thought process until I've mentally solved the problem. If I verbally express what I'm considering it puts me on a linear vocal path to -- most usually -- a wrong answer. So, going forward I think i'll take longer pauses of thought to myself.
I failed my test because they asked me to do binary search tree. I have been working in industry for 8 years and they ask me something I never used and learned at school ages ago. Since I didn’t remember, i just freestyle it.
That's kind of a rudimentary problem. I get that you might not use it much in industry - no one is going to implement a tree from scratch in practice, but I've been in industry for just as long and I'm pretty sure I could write a fairly complete binary tree class easily. I'd have to think about adding advanced things like dynamic rebalancing, or threading the tree, but a basic first order binary tree is not that hard.
@@gorak9000 no, I wrote it and it worked, but it took me some time to remember what it was. However he couldn’t ask me other questions because I spent too much time on binary search tree. Keep in mind this was for an embedded engineering position, so i have been doing low level drivers and RTOS Related work. The interview was like 30min long. I asked questions about the position and this guy had no idea i was applying for an embedded position. He had no clue for the position. So they short listed without doing an actual interview as an embedded developer. I have done many interviews, and this was probably one of the worst interview i have done because it made no sense.
🚀 neetcode.io/ - I created a FREE site to make interview prep a lot easier, hope it helps! ❤
Make video series for specific topics, like dynamic programming, greedy algorithms, heaps and so on. Not talking about playlists for questions of the same topic, I am talking about playlist where you teach the topics.
Can you make a video about the projects that you did, if you did
rip my life as well :(
The link u gave no longer works!
It can't exist a hiring process capable of doing better than a coinflip and Google knows this and have tons of data to back it up. When Google still is tedious in the interview process it has to do with internal strife. I don't know why some units are allowed to continue to do this nonsense. My best guess is to calm down the environment. In a large organization, it's unavoidable to get a lot of people with their own fads and fix ideas. This is why a large organization can never aim for excellence. The best they can do is mediocre - and do it well. The circus you have been part of is only that, circus. If you're a clever programmer you should never search a job in an organization with more than about 60 employees.
You may have failed at Google
but you succeed by providing free tutorials for everyone
I like ur way of teaching ❤
Ur great man 👑
He got in tho
he is in google!
Yeah he says at the beginning that this story of his failure was years ago.
he gets paid for this, he dont care about your ass lol
No one is a better programmer than me, I know all the algorithms and I invented Steve Jobs... I have been looking for a developer to join my company for the last 10 years and I cannot find anyone good enough to complete my 48 hour coding challenge and recreate the space shuttle in their own back yard complete with functioning engines to take you into outer space (at their own expense ofcoarse).
Obviously there must be a shortage of programmers out there, if no one can complete my challenge.
Dude i like the fact that you’re not just showing your victories but also failures. Most youtubers love to broadcast their wins but not their losses, but not you. I find that amazing and inspiring bro. Keep doing you and keep up the good work brother.
Thanks, I appreciate that! :)
@@NeetCode Is Neetcode 150 list sufficient to crack any top product based company interview..
Plz reply sir
@@prashantpratapsingh3508 if you practice them well enough, i believe it should be enough.
Even if a question out of this list comes in your interview, you should be able recognise a pattern from any of these questions.
@@prashantpratapsingh3508 lol
everything else aside, it was actually nice of them to send rejection letter instead of just never responding like a lot of companies do. Shows some respect for the other person
Yeah that's true
I am literally on my 45 minute break from my final Google interview and saw this in my notification feed. I want to thank you for your videos, because of you, I've managed to drastically improve my skills over these last 3 months and have a fighting chance with these interviews!
You got this!
Update us on how it goes🙏
you got this
How’d it go?
Hope it went Awesome!
Those of us who have been around for awhile know that your first few interviews typically are throwaways. There is a learning curve to interviewing after you have not done it for a year or two and you get a feel for what they are looking for. Another thing I have found is, in general, the less rigorous the interview, the better the job.
Your last comment is priceless and exactly how I see it, the guy in the video sound stressful from an interview that was taken years ago! I would not want to work in a place like that. At Intel my interview was very pleasant, and even if they could have said no at the end, I knew I would love to work at a place like that.. Luckily they accepted me and I have the least stressful job in the world (also, our meals are much more inviting:)
@
So true. My current employer only had me do 2 rounds: take home project and an in-person interview. The in-person interview was also just chatting with the team; no live-coding; no whiteboarding problems. Fast forward 5 years later and still loving this job as it's completely chill.
Okay, that brings up the next question: Are very good interviewers going to make good employees? Or are they only good at doing interviews?
@@pikachulovesketchup666 yup... It's rare to find a problem in real life that's super algo heavy. 99% is about following good, maintainable practices for extremely boring and procedural code, and finding ways to modify existing code to add new functionality without breaking 10 years worth of features.
Just signed my Google offer!!; your videos were the last push I needed to pass my interviews. Thank you 🙏
Congratulations!
Great work, which google office?
@@avenged7ex Thank you !!
@@JohnSnow-gi7ivThank you, It's in Mountain View !
Congrats bro, you do well!
I've interviewed many many candidates on coding questions. So this is a bit of the perspective from the other side. I think you probably failed most on the first 2 coding interviews. Also, AFAIK, it would not have taken 3 weeks to get the rejection if you were not close to getting an offer. Two general comments:
The worst thing is when an overly prepared candidate (a "competitive coder" type) is given a relatively easy or familiar question, and then just jumps into it without communicating much. Whether they take a wrong turn, or not, doesn't really matter. The most valuable thing is to get an opportunity to see how a candidate works through a problem they don't know already or isn't immediately obvious to them, it's really not about arriving at the solution.
The best thing to remember: The destination is already known to the interviewer, the journey is the interesting bit.
Bonus tip: If you get a question in an interview that you already know (from practice, or whatever), I would highly recommend that you just tell the interviewer right away. If you just bust out the solution quickly, he will be annoyed at the waste of time, because he will have to ask another question and with less time. If you try to pretend you don't know the question, he will see through that, believe me, programmers make terrible actors, and he will be even more annoyed. Most interviewers have many alternative questions ready to go.
And about the nodding and letting you go astray. That's typical, even expected of any decent interviewer, I would say. Doing an interview is a bit like walking a dog, you gotta let the candidate wander around a bit on their own, and reel them in at times, but you can't just hold them on a tight leash the whole time, because then you don't learn anything about them. Very often, candidates will explain what they intend to do to solve the problem, and you know it's wrong, but you nod along and let them do it (unless they've misunderstood the problem), that's just cutting them some slack to see what happens. For interviewers, this is really hard to do, because you constantly have to repress your natural instinct to be helpful and cooperative, which is what you do all the time when you're actually working. Things like nods, smiles, and timid remarks like "mmh, interesting" or "okay", are not positive signals that you're on the right path (or wrong path, for that matter), they're just polite, repressed gestures to stay friendly and passive. So, don't get too confident, but instead understand that at that moment you're entirely on your own (either shining, or screwing up). The same goes for general back-and-forth, the interviewer might probe a little bit with questions and stuff, but you will notice that they generally don't actively add anything new, just helping you think on your own or have someone to bounce ideas, like playing tennis with a brick wall. But again, it's mostly about letting you make it or break it on your own.
So here's another thing to remember: The interviewer is not trying to help you, but trying his best NOT to help you.
Obvious corollary: If the interviewer actually gives you a really helpful tip, it's probably because you're falling behind on time. A good interviewer will drop the tip during the general back-and-forth so you don't notice that the idea came from him. But if he has to interrupt you entirely to give you an obvious tip, you're probably really far off (and also, that you're not doing well on communication either, because it's probably not his first attempt at giving you that tip).
This is depressing to read, getting the answer correct is not enough and can count against you, you have to walk through your solution in just the right way as if it’s some kind of performance or class and not something anyone would ever do in their actual job. Total gate keeping mode
I would just interview with another company. Either they want my help or they dont, Im not interested in jumping through hoops.
@@youtubeaccount7770 it's because they don't want people who just memorized it they want people who can get it from first principles.
@@youtubeaccount7770 When you're a company paying top dollar with millions of candidates, you can afford to be this picky. Average companies don't make you jump through so many hoops
@@youtubeaccount7770 I think it's because they're not testing your correctness, but your approach to problem-solving and thought process (Which you may not verbalize on the job, but definitely relates to your job)
Hi NeetCode,
I just received my offer from Amazon!
I really want to thank you for all the amazing video and great explanation.
Your videos literally help me to ace the coding section!
Thanks!!!
Congrats!! So glad it was helpful!
Congratulations for your feat. Can you plz explain in short how you settled a job at Amazon. Im actually a University student and trying to explore many things, so can you please help me.
Honestly, these "mistakes" don't even seem that bad. I recently had an initial screen and I misinterpreted the question. I paraphrased the question and asked whether my understanding was correct. Both the interviewer and the shadow said it was ok. Then in the middle of coding, I realized that there was a mistake, re-read the problem and then asked again whether my new interpretation was correct. This time again the interviewer and the shadow said it was ok. So I fixed the code and was able to get it working for all the use cases.
Later on the recruiter called me that they are inviting me to the onsite but had some "yellow flags". I asked what they were and was told that I misinterpreted the problem and jumped straight into coding. I told the recruiter I was surprised and explained the situation and he just apologized to me and said we have to ensure better training to maintain good interview standards.
Yes, interviewers are real people with real flaws; and whether someone is a "good" candidate is a question that is both highly subjective and extremely difficult to get a feel for in a 1 hour interview, coding or otherwise (having seen the interviewer side of things). So my honest opinion is that every interview is a bit of a crap shoot, and it's luck of the draw whether you get an interviewer that you just really vibe with which will boost or tank your chances independently of your coding skills.
It is pretty crazy to think that if not for you failing your 2019 interview, a lot of us may not have succeeded in our interviews for big tech
Lol
I also failed a job application for Google... 4 times. But was hired last October (not as a developer thought, I'm a TAM - Technical Account Manager). One thing about Google is that sometimes you *are* Google material, so to speak, but due to some specific detail regarding that position, they chose someone else. In my case, in the last 2 times I passed everything but just so happened they needed someone with a specific experience that I didn't have. Out of the blue, about an year ago, Google's HR contacted me and I didn't have to do any interviews ( I had one call with the managing director of the area thought becasue the manager who asked for me specifically was on vacation and he wanted to know me). There was an opening that aligned with my profile and they just called me and made an offer so, my advice in case if you are interested is to keep trying.
But isn't that just settling for a much lower paying role?
Hi from 2023. Are you happy with your role? :)
@@kanstantsinmalikau7598 he is dead
Oof, I’m so sorry that’s very disappointing to hear. Engineers and TAM are very different... Hopefully they have an internal hiring process to let you switch…
When I did my online onsite, all my interviews were all coding problems (unfortunately) just like your situation and I didn't get the behavioral. Sometimes I wonder what would've been if I asked right away since I performed the worst on that last problem, but I'm going in for a second onsite one long year later in a couple months! This channel and the website are honestly gamechangers for me, so this time I'm hoping things will be different. Thanks for all the work you do!
Did you do it?
As a transitioning scientist to computer science, failing the Google onsites was the biggest gift I've been given. I have learned all of the common containers, how they work, how they get sorted efficiently, how to build them, and use them in basic algorithms. All of this crammed learning improved my skills tremendously! And the interview was really fun. I hope to try it again and get it one day
Amateur! I've failed it four times over the years. The first time or two I really wasn't prepared, but the last one especially, I was extremely well prepared and felt I performed very strongly. I even did a perfect stack-based implementation of Robot Room Cleaner (LC hard, interviewer never saw it done using stack!). I've been in the industry for a long time and interviewed many times (and many offers). I've declined to interview again, as I think one of two things must be true. They are either basing their decision on an immutable characteristic, or the hiring committee is taking my past failures into account.
I had the same experience with the "Googly-ness" interview starting off very technical and having to interrupt to clarify which interview panel it was. Perhaps that's part of the interview: "Is this candidate bold enough to stop an interview if they have different expectations?" Seems like a good Googly trait to me :)
My first thought when he described the scenario
Same here. It makes perfect sense. They don't want someone who will just go with the flow and keep their mouth shut. They want people who remember what the plan was supposed to be, and at the very least confirm that the plan should be changing before they shift gears and just run with the new unexpected plan.
You had a lot more fun with the editing than usual and it was fun to watch.
Crazy how similar our experiences were. My first Google interview kept me up at night too but it made me such a better person. But you know... *after* the trauma.
Glad you scored the job! I watch a lot of your videos because of your ability to explain the intuition behind your solutions. I’ve been mostly fortunate in my career thus far, I had extensive internship experience at companies that are much larger today than they were when I worked there. This allowed me to walk my way into most companies at the top of their pay bands outside of big tech. This has been ideal for my goals because big tech has such intrusive intellectual property agreements. I have a startup I worked on with most of my spare time, and I relied on the funding from my 9-5 early on. Google, Meta, and the like would figure this out quickly, as they did with my peers, and apply legal pressure for you to shut down, quit, or be consumed by them. You’ll find this is why most big tech influencers left those companies. My advice is to stockpile runway money for a couple years and then quit. You are capable of working for yourself given you have decent creativity and vision. FAANG will just take advantage of that…
I've been on the OTHER side of the table for years. And, from my perspective it doesn't seem like getting a "hire" recommendation from us is terrifically difficult; like, I'm looking for reasons to hire not reasons to reject. But in my interviews I'm definitely NOT looking for the answer to the problem, the problem is just the context to see how you work through things. I want to see that you are methodical and organized in how you solve problems. I want to see that code is just another language to you, as easy to read and write as English. I'm looking for reasons to believe that programming is something you do a lot, and that finding ways to do things with code is a skill you already find valuable, regardless of my silly interview.
If you're hired, you'll be reviewing MY code for mistakes just as often as I'll be reviewing yours. Remember that we're interviewing our future peers.
What would you suggest to someone such as myself that’s brand new to coding, to practice or what skill set do I need.
@@monstergamer8351 ^
The bigger issue is leetcode style interviews in general. In 15 years, I've not had to directly use a DS&A 101 style problem like this. I stopped using these kinds of questions when I interview completely. Additionally, they introduce an inherent bias into the hiring process, removing many qualified candidates because they don't perform rote memorization under stress well.
Spot on. I recently had an interview at a smaller tech company, and instead of making me do LeetCode style problems, they gave me some badly written code and asked me to do a code review. Much more relevant to the job in my opinion.
@@fazalcheema9706 I don't believe that is a fair comparison, the key fact here is that Google has tons of great engineers trying to enter the company. They know it, and they need a systematic way to filter out. The top candidates will almost sure know how to do the engineering stuff done (e.g code reviews), but also are proficient at ds and optimization (some of them usually are competitive programmers) which is a plus.
I used to think like you do but now I like the DS&A questions because it's something people can prepare for. I used to want to work on side projects instead of prepping for DS&A questions. But I actually find DS&A easier to prep. I have worked on many variety of projects with many different technologies. I already forgot the tech I used in my previous projects. I cannot review all the things I have done for interviews. But with DS&A questions, all I need to do was to prep for 3 months.
@@kell7689 if you don't bother with the faang companies, lots of other well paying jobs respect your time enough not to ask you to prep for months.
@@schan263 that’s exactly why this is the worst because it can be prepared. A good interview should be less predictable and test what you real are not how well you prepared.
Failures are so important and after a couple of them, I welcome them. It’s truly the only way to improve yourself. For everyone out there reading this, keep up great work and continue to persevere. Your time will come :)
What I think is funny about all of this is that the best engineers I have ever hired didn't need to go through this kind of interview process. This kind of complex process leads me to believe that it was designed by people who weren't sure how to interview engineers.
Across the board, every good engineer needs three things:
1. Passion. If you're not passionate for software development and eager to learn, you will never be as good as someone who is.
2. Able to communicate. If you can't communicate clearly and effectively, you will have a difficult time communicating with people, especially outside of the engineering department. Being able to communicate clearly with project managers, product owners, testers, and stakeholders is critical.
3. Able to code. :) I only ask simple problems like FizzBuzz. I would say about 50% to maybe 75% of people I interview can't code FizzBuzz correctly.
It takes me about an hour of just talking to someone to know that they are good or not. When people can talk about a personal project in detail, you can hear their technical skill. If they get really in to describing a technical challenge they encountered, you can hear their passion. And if they can write FizzBuzz in a couple of minutes then you know they know how to code.
Everything else I've needed, I've been able to mentor to help them learn and grow on the job. My interviews are pretty relaxed and being willing to take people in even if they don't know a specific technology has earned a lot of loyalty with members on my team.
Google obviously works on much more complex stuff than most other companies do, but I do think their interview process is also more complicated than it needs to be.
This works incredibly well, when you have a trusted expert that can verify and spend an hour with each candidate
But what if you have 1000's of interviewers, evaluating 10k's of applicants over multiple years, where availability and involvement of the interviewers is not guaranteed?
You'd come up with a system like they have at Google, everyone has to do more work, but you'd eliminate a lot of false positives
Willing to interview me?
your videos are better than any online resources I've seen (free or paid)! thank you!
Going into interviews with unbounding confidence thanks to your videos :)
Takes a lot to accept failure and to let others you failed. Thank you very much for this video
Absolutely correct that you learn from failing at code interviews. Everyone learns this way. After 3-4 interviews you quickly realize everyone is asking about the same things and it's pretty easy. When you cracked the code (pun intended) you are in.
But most people stop after 1 fail and think they are not cut for it and that others just ace thru the interviews every time.
I am 25+ year software engineer and I would never accept a job from any company that is mostly interested in puzzles in their coding interviews. Leave the puzzles for the kids. Real interviews test for real knowledge. Being fast at solving a puzzle doesn't give any indication on years of software design/implementation knowledge. Just my opinion.
The tech interview process is so insanely broken at this point. So if you go to interview at these companies, your resume and work history are completely ignored. Instead, you’re expected to pass these “tests” which have zero relevance to the job. Instead of a bidirectional conversation about the team and role, you waste a day just solving puzzles. It doesn’t tell the company a lot about the candidate. It needs to stop.
Exactly
Well if google does it instead of the classic way, they certainly have a rvery good reason why
@@Ryan0751 Sadly over time it has morphed into "I'm smarter than you because I can solve these puzzles". In my 25+ year career NEVER ONCE have I had to create anything near their puzzles.
What would you say this "real knowledge" that they should test for is if you truly believe testing someone's problem solving skills for a software engineering job isn't the way to go
Brother, your channel has given so many people around the world at least a chnace to make their way out of being broke.. Keep going strong 💪
Your first mistake was not a mistake. Your thought process showed you knew how to think through the problem and come back to the right solution in the end.
Have been prepping for my Google interview for the past month and a half (not sure if this is going to be enough, have it tomorrow). Ran into your channel a few weeks ago and they have been super helpful in getting a stronger understanding of the different problems I might come across!
Thank you for providing all of these resources to people who are going through the interviews! Love how you shared your journey on this, feel like everyone has similar experiences when it comes to going through these interviews and its nice to see people openly talk about the highs and lows of it all and relate to them
you won't be hired if your white, Google runs on hiring minoritys now ffs.
I think you have a fantastic way to communicate your ideas clearly. I just watched a few clips of your coding tutorials and I am utterly in awe of your delivery. 🥰🥰🥰🥰🥰
Thank you for sharing your story! I find it super helpful since I have a technical interview coming up... I'm not super strong at coding but I can certainly try to avoid the mistakes you made. Thanks a lot NeetCode
Am trying to learn coding but, this video is way over my head. It’s good to listen to you guys on how this all works. Thanks for sharing you video.
I have my interviews tomorrow so I’m trying to keep my mind busy and trying to reassure myself that I put in the prep so nothing I can do now :). No matter what happens glad I found this channel and happy I started practicing.
Google?
@@AdityaVishwakarma-gp3bz yeah
Hope it went well
We need more videos of people's failures because it helps to learn from others mistakes.
I failed a google coding interview once. It was also a case of completely misunderstanding the problem. Specifically, I assumed a binary arithmetic problem was about fixed-width modular operations, when it wasn't.
I ended up at a different large tech company and haven't really been super interested in reengaging Google. If I were to do another interview with them in the future, though, I would definitely ask clarifying questions.
In Google works thousands of software engineers, but your educational channel is number one.
I had the SAME problem where I could've used a global variable to simplify the problem but didn't think I was allowed to until the end when he started dropping hints. The interviewer was a great sport about it and understood.
I love seeing people grow! Everyone thinks you're only valuable if you seem to be immediately successful, but that's not the average human experience. If people were more transparent with their struggles & what they learned from them at the time, I think they & we would value them more as people and not just as "public figures".
Following your videos and working on LeetCode for a fact got me my current job. I was able to quickly answer a question regarding tree data structure traversal. Something I wouldn't have known two months prior. Thank you!
Are you a self taught?
@@moc1759 I am. Mechanical engineer for 15 years and took a year off when our twins were born. Spent most of my time learning anything I could and applying.
The thing with google and fang is that they want a tailored made candidate, so he can be like the current workers at google.
Then the candidate doesn't need much time for training and they blend in with the rest of the team.
Kind of like adding a another compatible brain cell to google company.
it is open for extension and closed for modification as in hiring the correct mindset not the wrong mindset of people.
Another drone for the collective.
It's so nice to see you using this as a way to teach us. Failures are definitely all learning opportunities, thank you!
This is a great video. This is a really good example of what we like to call egoless people. People are your assets, not algorithms. I think coding interviews are important but at the end of the day it's the essence of problem solving we are after. I think we put too much emphasis on coding. As you get older it's not about how many algorithms you know or how fast you can type, it's about understanding how to model the real world or problem domain. And understanding more about how and why algorithms can be proven correct or not vs whether or not you can recall a pattern for an interviewer. The real world requires you to think about your solution and how it might fit into a larger road map, not how fast you can crank out an in-order tree traversal.
Hey Neetcode, can you please make a video about how to build up logic? I feel like I have learned coding and understood the concepts, but when finally coding it myself, I always get tripped off. For example, after watching solution or finding a solution to a question myself, I can't code it well. Im sure many people will benefit from the tips you can give as well🙏
Thank you so much for doing what you do, you have helped tons of people, myself included.
The way you described the interviews, I’m actually surprised they rejected you. After all you made some great recoveries and did not give up as it looks like, and I think that should count for something, too 🤷🏻♂️
i absolutely think what made you stand out this time was the communication and neetcode was a big part of that.
can you make a video on tips to communicate during a coding interview in a virtual setting? and what is a "good sign" from an interviewer? In my last coding round the interviewer was completely silent apart from "yes/no" when I asked a question.
Free Palestine by getting rid of Hamas
These so-called interviews simply serve as gate-keeping. If the hiring manager does not like your personality, they have an easy (legal) out.
I am following your videos from past 2 months and I got selected from service based to Product based company. I want to Thank you for providing such amazing content and yes next target is Google...
You didn't give up. You continued. That's what's important!
These leet code style interviews are highly stressful and are not reflective at all of what you'll be doing day to day on the job. A few years ago I shifted away from these kinds of questions in the interviews I conduct and instead give the candidate a piece of code and ask them to refactor, clean, and make it more object oriented.
The candidates we hired with this new process turned out to be of higher quality. They were able to more quickly jump in and start contributing in their new role and they expressed how the whole interview experience was much less stressful than traditional leet code questions.
Most interviewers are quite removed from the results of hiring candidates so it's hard for them to measure if their current interview styles are effective. I think we need more research done in this area to measure the results achieved by various interview methods.
The best videos are the ones that show their failures, thank you
The way you described your interview, it sounds like you probably should have got in since you got the optimal solution for all problems written down! It's a bit scary that you didn't get in with that performance!
Honestly one of the most valuable channels on RUclips ... Thank you very much for the concise explanation for all the problems :)
Love listening to all your stories! Really gives me hope after bombing some of my interviews :,)
This is the first time that I feel I'm not nerd enough. WTF ... I mean I did some C++ and C# stuff in highschool... but you people are on a whole new level of thinking.
Once I joined an interview of Google for a position of "system administrator/engineer" or something before(several years ago).
I felt confident if he could ask me some questions about it.
But the officer was keeping asking me the very details about many algorithms since I never been a programmer.
I can't make him satisfied apparently.
Still a mystery that did I click to apply for a wrong position at all??? Or he asked on purpose?
Lesson1 to accepting interviews from google: Better know something else outside your position responsibility.
Crazy seeing these types of videos get 400k views in the span of a month. The competition at entry level is unreal right now.
The experience you shared is the experience of many candidates. The video is very good, However I just hate this process that these companies are following. Asking you trick questions, which let's face it, you don't do tricky things under the supervision of a timed clock at your job. If you mistook a problem very slightly, it should not be a big deal, the interviewer themselves would make many mistakes in their own projects in the company. So even though all these companies pay well, they really have a very embarrassing interview process where you have to literally prepare for interviews 2-3 months in advance, I have not seen any other field where you need so much time to prepare. I will be getting out of the tech field simply because of this
I think you're not understanding why the process is the way it is, which is why you come across a bit salty in your comment. Big Tech wants the inquisitive, the thinkers, the communicators, not just basic code monkeys. And jumping into a solution for even a simple problem, even if you happen to get it exactly right, highlights behaviors they have learned don't work well in their organization, when the solution is never so simple.
As for the preparation, they want people that know their data structures and algorithms to the core. People that have no interest in being able to code up binary search from scratch "because I can just import a library" will not be interested in understanding why the core Cassandra algorithms perform so well, and would never be able to use that knowledge to troubleshoot production performance bottlenecks, or use that knowledge in a new solution the industry hasn't built created yet. Remember, things like Cassandra, GraphQL, Node.js, React, Elasticsearch, Hadoop, Kubernetes, all came from companies that needed new solutions for new problems. And they need people that are in absolute command of the basics of their field.
Besides, they can afford to hire only the best. Why shouldn't they?
Love that you’re also sharing your failures
I think you got unlucky, I interview candidates in FAANG, but I wouldn't reject as long as communication is good, a good understanding of the problem, and you manage to have a working solution. I can understand fine your solution, and you are coming with a clean code. Seems like you did fine on all these.
rooting for you, Neetcode! like a lot of people here said - luck plays a huge part in interviews. good luck in the future
Awesome stuff..hope everyone following this channel will reach their goals..following the blind 75 questions
Hey man, if you didn't fail your first interview this channel probably wouldn't have existed, so it's actually a blessing in disguise (for the rest of us of course :P)
I didn't try to apply for a large company, but your first problem is the exact kind of problem I could be running into
So glad I watched the video!
Dude I like how smart you are and how smart you were even while failing you still managed to keep your ego up and strong!
Dude, your experience is so much similar to mine. Thanks for sharing!
Your editing skills are really going up 🚀🚀
This makes me feel better and less angry about failing my Google interview by literally an inch.. I got a 3/5, 3 passed interviews out of 5, I almost had 4/5, but couldn't get to the optimal solution in time and literally figured out the solution 5 minutes AFTER the interview ENDED.
I was so angry but whatever, I'll get into another FAANG and try for Google L4 early 2023.
good luck.. you can easily work at google or similar cmpany but there is too much competition and within given specific time intervals they want to solve the problem...
Your biggest error was to reject the fourth coding round, the interviewer was giving you one more opportunity and same time evaluating your predisposition.
From my recent interviews with FAANG, I noticed that the coding sections are starting to also check basic OOP, class, etc. rather than the typical LC problems. I think this to weed out those who is only familiar with scripting (vs. production-level coding).
May I ask if you are applying entry levels or higher levels?
@@wangyex Mine was for an experienced level in DS/MLE. Y'all CS majors should've found it easy though. I was only used to Python scripting (vs. production-level coding), so found it new/challenging.
Thank you Neetcode, I have failed Microsoft interview today, but after I watched this video, I think I got better. Everything is not straightforward, even with a legendary like you. Thank you
Also never correct some random mid-level manager during interview at Google, correct a SVP during your interview, you're straight in
The thing about online job assessments (more so the coding ones) is not the fact that the answers are readily available. Yes they know the answers are there, they probably have then saved as a reference or for plagiarism tests.
What they are more so looking for is that you know how to do the research and implementations yourself. They don't want you to just copy and paste, anyone can do that. They want to see you find the answers to the problem and see that you can implement your own solution based off your research.
These companies aren't stupid so don't try playing them like they are. Have confidence in your abilities and just focus on the problem at hand and you will do fine, as long as you have the knowledge to back your claimed skills.
The on-site interview where they do the white board questions is where they will test your real problem solving skills. Here is where you'll need a solid understanding of data structures and algorithms, not just be able to research a problem.
Got an offer from Amazon today. Have an interview with Google coming up. Thanks a lot for your videos. It really helped me during the preparation. ❤️
Awesome!! Congrats and good luck!
Just started my journey a few months ago. Your videos have been a huge help!
Imagine googling Google's interview questions, and Google giving you wrong answers to their own questions just to mess around with your brain. Crazy.
xD
But finally you did crack it, Inspiring journey
What company did you work with for your internship? Also, what field of software engineering did you apply to?
And yes - we'd like to see your resume if possible! Thanks Neet!
(edit: he made a vid about the internship - it was Capital One)
He did Capital One for the internship. Dunno about the other stuff tho.
As a Senior Software Engineer currently in the interview process with Meta, Amazon, and Capital One, your videos are tremendously informative. Keep it up man.
Dude, a failed interview is definitely not wasted. Go home and document EVERYTHING about the interview and critically review it. Each experience helps increasing your chances for the next.
Try freelance early in your career. You get a LOT of interviews and experience. It really helps you to be more successful. Most people don’t go freelance and are uncomfortable in a interview. With freelance you are used to it. It’s tough at first but you’ll learn exponentially.
I really appreciate that you are willing to share your own experience with us.
What a kind guy you are🙇🙇
What sort of things are you allowed to ask your interviewer during the coding interview? I always hear people say engage with your interviewer when trying to solve the problems, but I always wondered what things you were allowed to ask in relation to the questions and which you weren't. Like are you allowed to ask them what edge cases you're missing or not considering? What are some things you tend to ask your interviewer when solving a problem?
Do you have to engage them a majority of the time you're working on the question? Because there is bound to be some silence during the problem solving, so you can concentrate on coming up with a solution. I always found this period of time to be a bit awkward because I know I'm supposed to be engage with the interviewer, but what am I to say when writing my code? Because hardly do you ever try to explain why you are writing certain lines of code even to yourself when you're working on things especially when no one is watching.
When writing code -- in a non-interview setting --, you think of a solution you think might work and start putting the various pieces together and then attempt new stuff when you run things and it doesn't work. Like this is all happening rather quickly in your mind as you're coding away, so it feels very much out of place to have to talk through your coding in an interview setting
So, what advice would you give to get better at communicating with the interviewer and what are some things you should be asking during the period of time you have to come up with a solution?
Remember that an interview is a tryout for being their new teammate that they need to rely on daily.
1) do you want an annoying and needy teammate who asks you to do their work for them?
2) does your teammate waste everyone's time by not taking the time to make sure they understand the problem to be solved and then writing a bunch of code that does the wrong thing?
3) when having a design discussion with your teammate or asking them how their code works so you can debug it, can they articulate their thoughts in an understandable way or do they just wave their hands and stutter "and then, uhh, you get this number, and plus that one, and oh put an if statement, mumble mumble uhh that should probably work" *blank stare*
As a "freshman" is is totally ok to misunderstand the problem and run in the wrong direction. You will be caught by your colleagues, and they will bring you back on track. And from this, you learn a lot. That is different, if you are not part of a team where everybody is there for solving problems by thinking, but you are part of a team of code monkeys, that have just to write code. Fast and efficient. I am a developer for nearly 30 years, and being rejected by Google somehow sounds like a relief.
Is it really worth it?
I mean your channel is by itself a huge contribution to community - it is golden!
I understand that by joining Google you may get on the bleeding edge of tech. But you also may work on a product no one knows and which would be thrown away. And I don't see how 5 coding stages leetcode-like questions relate to the actual work.
most of the problems are irrelevant what you do in real job. They want you to build a planet in the competition and after, at work they want you to make small house... For instance, I have overriden Keycloak providers by extending them to new classes to adapt multiple authentications for a specific job but you cannot see those kind of experienced job related issues in these competitions..
Google sucks lol being stuck in a desk for life is scary
@@christiansnaturestudio6599 how beeing stuck at a desk for life is relevant to Google in particular?
Any software engineering job is a desk job more or less.
@@obiwan_smirnobi I hate my life oh well
@@obiwan_smirnobi guess I'm dropping out of college then
As a hardware/data engineer, I loath to work as a swe but really want to do one of these coding interviews just to see how ridiculous it is.
4:10 - thanks for explaining the process, often we just hear to do leetcode but now how to approach the problem. you have made this clear, so thank you.
I usually have a leetcode problem on my screen and I am like "wtf is this? " lol.
Lol, I had the coolest interview at Google. The interviewer was into sparse arrays, which I wasn’t. But he allowed me to ask plenty of questions about the properties, so I was able to write a decent algorithm to solve the problem. Then he asked me to prove correctness, which took me aback at first. Then I realized that I could prove it using finite induction. It was so cool, that I thanked the guy for asking.
The next guy walked in and asked my to do some binary tree nonsense. Having been on both sides of the table many times, I hate lazy questions like that. So I told the guy to piss off; I didn’t want the job that bad! :D
I've always wondered (and maybe a Google person in the comments has the answer) how the interview goes for a more senior engineer, e.g. someone who already has 10 to 15 years of experience, has been a technical lead or a manager in other companies, or has a track record of widely-used open-source projects accessible on github to demonstrate not just coding skills but also the ability to design a whole architecture, manage CI/CD pipelines, documentations, etc. Surely Google doesn't just ask coding problems to such a candidate (that would be overlooking 99% of their potential)?
there are two types of engineer positions and two types of interviews for them. The coding monkeys/entry level and all they want you to do is technical and coding, and those with sr lvl exp, more for collaboration between teams, and some of the things you mentioned. two different types of positions is how that goes.
To further drive the point home, In my field, I am a Sr IS Analyst, and then we have the Data Analysts, that would be the distinction I am trying to make.
My friend who just got an offer from Google share me with your channel saying your video help him a lot.
You should do an update video on whether or not the grinding of DSA and leetcode actually translates into industry. I don't think its useless, but I hear from a lot of engineers that are already working that the leetcode and DSA grind hasn't really been of much use after they got the job.
They say that they are useless after they got a job because they are not actually trying to build something new. Imagine in 1990s trying to build something like google earth app. I recently saw this on a Netflix documentary. The RAM in the chips they have at that time is not sufficient to process the enormous amounts data they have but intelligent engineers came up with an algorithm to solve the RAM problem there by going one step closer to building the app. You see for things like these DS Algo matter a lot and not if you want to just trying to maintain an existing application. FAANG Companies want engineers who can invent something new so their approach is different in interviews.
I finished a BS in Info Technology in 2010. Thought I was a hot commodity until I started interviewing. On one interview, I was in front of about 20 people, and had to get up to the chalk board and code a lottery system in Java. Pick 3, pick 6, and powerball with the extra number. The nerves got to me, and I blanked out. You need to be on your A game and then some.
Mojang employee here, I would say not knowing the answer is not the biggest problem in the world, the rushing a problem is probably a bigger issue. Glad you feel that you could learn about it :)
Can you give us any spoiler for minecraft?
Thanks for this, just got reached out by a recruiter. Definitely helps a lot!
The interview in google seem so bizare, company that hired me cared not about whether i can solve some hard coding problem, they valued I am fluent at english, I have github portfolio, and have some basic knowledge about programming languages. Solving hard problems in short period of time is next to impossible to me. Other thing is that reading code and understanding it is most of the programmers job. Do they ask you to say what some code does? Not at all.
"Solving ..... is impossible to me"
It is for everyone. Three years ago I used to take two hours to reverse a linked list. Now I take 2 minutes.
Software engineering is not easy. It's constant effort at solving problems. You feel burned out very easily. But it is what it is... If you can't persistently solve problems and feel burnt out easily then this is not the field for you. Otherwise sky is the limit
@@kipa_chu sure, they just want cyborgs... most clever people have capacity to solve many problems. However, it has become too much a race, since there is too much applicants. May be two years ago you could not be selected, however today you could be. What does it mean ? You have capacity to solve the problem and they can really understand that you have a capacity or not. However, today's competitions are far beyond that, it has become a race. At actual work, it is not that hard, however need some experience to solve some issues which are not in that kind of competitions. However, population is growing and growing, so the race is growing..
I'm quite sure the final interview started correctly. Identifying if you're the kind of person that notices when things go wrong and acts on it, instead of just sitting through 30 minutes of something wrong.
Thanks for your video and site!
I keep reading that questions are getting harder.
Were the questions noticeably harder in 2021 vs 2019?
1) Please show your CV over the years
2) What questions did they ask you at interview?
3) How should a person prepare for Google from the start?
Man I hate coding interviews. They're so flawed for hiring people.
I find it hard to explain my thought process until I've mentally solved the problem. If I verbally express what I'm considering it puts me on a linear vocal path to -- most usually -- a wrong answer. So, going forward I think i'll take longer pauses of thought to myself.
I failed my test because they asked me to do binary search tree. I have been working in industry for 8 years and they ask me something I never used and learned at school ages ago. Since I didn’t remember, i just freestyle it.
That's kind of a rudimentary problem. I get that you might not use it much in industry - no one is going to implement a tree from scratch in practice, but I've been in industry for just as long and I'm pretty sure I could write a fairly complete binary tree class easily. I'd have to think about adding advanced things like dynamic rebalancing, or threading the tree, but a basic first order binary tree is not that hard.
@@gorak9000 no, I wrote it and it worked, but it took me some time to remember what it was. However he couldn’t ask me other questions because I spent too much time on binary search tree. Keep in mind this was for an embedded engineering position, so i have been doing low level drivers and RTOS Related work.
The interview was like 30min long.
I asked questions about the position and this guy had no idea i was applying for an embedded position. He had no clue for the position. So they short listed without doing an actual interview as an embedded developer.
I have done many interviews, and this was probably one of the worst interview i have done because it made no sense.