Amazon offers a mock test, it helps immensely. I failed my mock test and passed the real one, that is how much it helped. Now a mock interview would be great.
No worries if you are rejected. About a 1/3 of Googlers will pass this interview. After working for a few years, you'll forget how to quickly solve some of these silly questions, because in real work is a completely different skill.
@@diegoleao it just means you're someone who memorized the questions and answers. you've seem some flavour of the question, so this doesn't mean you're the top. it means they optimized for someone that can cram and remember useless stuff.
@@diegoleao yes, you are a top applicant, but it doesn't mean you know what you are doing. It just means you are good at leetcode problems, nothing more.
Same here, but I think the purpose of such a question is to see how comfortable you are with recursion, pointers, and abstract thinking. That said, I enjoy solving real problems, having happy users, and seeing how well my work stands up to time. leetcode is nonsense to me as it does none of those things.
If you get to onsites and they assume you can code by that point because of the previous leetcode interviews, and the onsites are about communication and collaboration, why are there more leetcode questions? Why not discussing past work, sharing a personal project and talking about it, walking through some code together with the interviewer and seeing how well the candidate can digest and explain what is going on, discussing open source development, etc. This is precisely a school test, the whole way through. Pretending that it isn't is unfair and just lying. I don't mean to attack you. But everybody, including these companies, know that these many leetcode interviews don't determine someone's competency and certainly aren't an indicator for if they will fit in at the company. It's just an easy shortcut. Communication is a weak point because in order to prepare *just* for the interviews, you have to go through 3-6+ months of studying leetcode. You can't communicate with the interviewer during the test, they aren't allowed to talk much other than vague hints here and there. It's weird to have to juggle thinking about solving the problem and trying to speak every 5 seconds because that's not how thinking works. It's just a weird industry practice and we all know it's a broken system. Everybody knows this, but as an industry we keep pretending. Sorry for the rant, I'm sure you and all of us can understand how insanely frustrating it is. Again, I am not attacking you specifically, just frustrated at the system in general. Needed to vent.
Hey it's absolutely frustrating. I mean as long as someone can code that's all the should really matter. Here's some more thoughts just trying to help From the 5 onsite rounds, there's usually 3 that are coding, 1 behavioral, and 1 system design depending on the level. The behavioral is where people get to talk about past projects and how people handle work/people problems. This is where companies figure out what level someone should be at. (Did they lead a team or did they get led?) The onsite coding rounds do include tons of Leetcode. It's pretty unfair and I don't like it either but I have to admit that's just how it is. I wanted to make this video to mention that even when people solved the question it was just the communication holding them back. Something a friend of mine helped reframe Leetcode to be healthy for me was that once you feel comfortable doing most questions, it's a passport to any other tech company because the format is almost always the same. Wishing you best of luck it's been hard for everyone lately
Because they don’t care about all that stuff. They only care if you can get through the filter or not, no matter how ridiculous the filter is and no matter how good you are actually.
Oh the horror! I've needed to use all the above technologies in my job at one point or another in some way or another. You know what I've never needed to do so far nor been asked to do? Reverse a linked list. However, if I'm ever asked to do so, I know where to find authoritative information and practical guides on the matter thanks to a little skill called research.
It's hilarious to hear from a Google employee about "communication". Of all my interviews, Googlers were always by far the most disrespectful and arrogant.
I never NEEDED to manually reverse a linked list since I was in college 25 years ago. That's because I focus on software that works well in the real world. I would never want to work for Google, Apple, Facebook, or any of those lame companies.
@@tusharagarwal5306 if you are coding buttons whole day long, then yes, this is a skill. If you work on compute and math intensive projects, sorting and data manipulations algorithms are the least of your concerns, just take the library function.
There is a practical use for it. Reversing sort order on a sorted list. Lots smarter than using a quicksort. And sadly, lots of people have no idea why.
mock interviews are great. the feedback is the best part. my friend is high up in a tech company and said they can't give feedback in a regular interview because of a possible lawsuit. But that doesn't happen in a mock interview.
It's called "use a library" or a function of the language itself. This isn't a Commodore 64. There's no reason to manually do these things unless you're writing a linked list library.
Reminds me of the time I bombed out on an SDET interview, and the manager concluded did not have good coding nor good testing skills. Five years later, we crossed paths again. I was tasked with estimating the effort needed to snapshot a running Unreal game's log, a feature QA really, really wanted. This manager and his colleagues had deemed the log exclusively locked and unreadable. But, with a little interviewing, followed by some tinkering on a Friday afternoon, I quickly found out what they were doing wrong: they weren't opening the game log file with the correct flags. Open the file with the correct flags and it was instantly readable. Rather than an estimate, I delivered the feature itself, and saved the group the cost of hiring an Unreal engine developer.
Memorizing leetcode doesn't mean you can code. It is a really dumb way to interview. They aren't real world problems, and you aren't going to solve them in the time given without memorizing.
Yeah, it's pretty much why we have statements like "AI is going to replace coders", since AI is great at memorizing leetcode, but fails in any kind of complex real-world application.
@@taragnor AI can't really do anything but repeat answers from leetcode, stackover flow, and other web sites. Unless you are a copy/paste coder then AI isn't taking your job.
@@Arch_FMmakes sense also good that they showed the FANG companies mostly use leetcode as a way to filter out people reduce number of applicants and not really to determine how good one is.
@@weiSane Nope, he/she was literally speaking from imagination and big tech obsession, FAANG got tons of candidates, so they can afford to use leetcode as an aggressive filter to get rid of tons of people regardless they are good and bad. As long as the bias rate is less than 20%, then it's good. Their strong infra and budgets can tolerate those bias. Source: lots of ppl I know got into faang, their skill is wide ranged, even ppl who only know code less than half a year (but with good degree or possibly STEM related experience). and the success rate has nothing to do with personal skill, it's all about leetcode + luck. During the hiring boom, even if you semi-fail the leetcode, you still got into the company by luck. Many also speak broken English, at least in US, it's a instant reject for small startups, startups can't afford those communication cost regardless personal skill due to budget limit. Big techs internally have a lot of strong systems that aren't open-sourced or shared. Built by many strong engineers in the past. Many new engineers even the veterans didn't have a complete picture what they are doing as a whole. Thing is so complex or due to company policy, they can't share or are incompetent to share. Many were just only 2 years in a big system and too early to know anything about the tech. Guess what they can share? leetcode that the resource is everywhere. As a result, you will see tons of ex-faang or current faang people only sell leetcode course + interview course. Are they better than you, it's unknown, they are just using their company brand to exploit you.
It's because too many people apply. At that point FAANG uses anything and everything to filter candidates out. At this rate, soon they'll add a new test of doing the maximum number of somersaults per minute, to qualify to the next round. A highly effective filtration strategy and there'll be websites and TH-cam channels dedicated on teaching how to somersault and pass through the FAANG round.
@@Dipj01😂somersaults to pass to next interview round is wild. And you are right if that were the case there would be TH-cam channels teaching how to do exactly that milking every opportunity to sell a FANG interview course on how to somersault 😂
"How do you reverse a Linked List??" ...hmm... I probably use a library that already does it for me... I question why I need it reversed in the first place and simply request the data provider to provide it to me in the order I desire.... Questions like these do not show how good a programmer you are... they show how you can answer stupid interview questions that you will ONLY see in the interview process... you will never see these things come up in the day-to-day process of your job!!
24 year Web developer, how many linked lists have you had to work with... zero. How many linked lists have you there fore EVER needed to reverse... zero. Can we start testing people on ACTUAL code that you might ACTUALLY use in the REAL WORLD. I haven't dealt with linked lists since I took a college class on C++ 22ish years ago. I mean if you're targeting newly graduated college kids, great, that's what they need, it's what they've done recently. If you're wanting experienced developers, then test them on what they've been coding for the past x number of years since graduating.
A lot of interviews I attended are actually to screen out experienced engineers and targeting new graduated. They care if I know some newer coding concepts instead of my capability to deal with the whole system. An anology is that they don't care if I can build an old tank, they care if i can build a new bike. So if I dont know a particular screw in a new bike I am out. Unfortunately this is how the IT world works today...
@mikelau3007 new developers are cheaper so makes sense to weed out the older experienced developers that can both build a new bike and maintain an old tank as well.
Because you did a marginal work all the time. But someone with higher responsibility used algorithms for performance. For example, how a HTTP message finds the destination in the network? Yep, a performant finding path algorithm is needed. Similarly, big companies like Google and Facebook that deal with millions of users, need performant algorithms at their CORE.
@@bestopinion9257 Pompous much? Marginal work?!? 99% of ALL companies are NOT Google and Facebook who require a custom "CORE" to function properly. Facebook even uses its own custom language, so that's even more rare. The majority of companies are doing projects that don't require linked list, least not in the day-to-day that the majority of developers will ever see. I've worked at a few companies whose sites have received tens of millions of hits per day and yet I've never seen a linked list and I worked on the entire code base, I've never had to use a "performant algorithm" or seen other developers uses them and the sites functioned perfectly. Maybe you only work at companies that get billions of hits per day and that it's required of you, but for the 99% of everyone else, that isn't the case.
Honest question: if Ive been a developer with multiple years of experience and Im signing up for a normal software dev role, would you still ask me to solve silly leetcode problems? It just seems extremely weird when full-stack devs have literally single-handedly built and deployed dozens of apps for customers, only to not get to the next interview stage because they couldnt memorize a sorting algorithm. Edit: last time Ive had to reimplement any sort of list/sorting/binary tree algorithm was in academia (Ive got an M.Sc now)
There's a code question and it's largely up to the interviewer. The questions that I use tend to be simplified forms of something I've needed to do solving a real business problem. (And I try to explain how they're connected.) The video is right, though. The code is largely a vehicle for talking through problem solving and organizing a solution rather than trying to test you on something memorized.
Honestly a lot of people would know the flow but get stuck at the base case implementations (end of list, etc). Who could forget? Anyone. And trust me, Im not one of those "DSAs are completely useless to know" guys.
Classic example of asking the wrong question. ChatGPT can give the correct code for reversing a list in many programming languages. A much deeper question is what are the best data structures and algorithms for the problem at hand?
There is this one girl in my batch ...she doesn't even know the basics ..not even to reverse the string..I dont' know on what basis google shortlisted she doesn't have good profile nor projects ...how did they even select her for the internship ..its frustrating to see non deserving people getting selected
I love how quickly this turned sexist and salty even though nobody has any real information besides speculation. And inb4 the neckbeards, I'm not into women. Lol
@@user-bt6mh9ez3u Woman. Basically. I'm not even hating about it and Im sure theyre talened enough, but I was surprised at the number of female in my company when in CS courses they aren't that much in ratio. I suspect at big companies, be a POC + woman and you might land the jobs they're selecting at that round.
Nothing like a small programming task that can filter out applicants, I remember once we had some applicants for a programming job, two of the presumed best candidates couldn't even solve the very simple tasks even though they could solve them at home and use google as much as they liked. It was about 10 years ago and I did the five simple tasks in about 5 minutes with pen and paper
uhhh......that's simple enough, starting at first, stored as "i" (our temp holding variable), swap prev/next values of 'i' object, then set 'i' to 'prev' (which was 'next' before you swapped it) and loop until 'i' is null and break out. then swap first/last variables, done. O(n) speed. failsafe questions for interview would be to ask if certain error checks are to be performed within the function base or if it will be done separately by a different process....error possibilities are bad pointers (simple 'try' capture with memory test on pointer, speed reduced per n unit by c1), circular listing (a 2-to-1 tracer would reduce speed further by an additional O(n) per direction), disconnected/broken/botched filing in the pointers (another speed reduction by O(n) per direction). Other possibilities are whether you have a begin/end train to flip rather than the entire list, which can be far more fun to play with. Yeah, problem is, as much as I could solve any problem extremely quickly, I don't usually work well with others or speak my problems aloud. I'll stick to indie game development for now, but it is still fun to do programming puzzles like these.
They hire those who can pass basic tests. All our top shelf soft is just that. Basic stuff for years, any update not changing anything meaningful and bugs kept for years marked as wont fix.
On that last point about people just assuming it works, it's also not uncommon for people walking through the code line by line to assert that a line does what they think it does and not what it actually does. I see that most often in cases where they're off by one on something or using "
I dont want to work for a big tech software company. I am finding it better to work for companies in an different industry altogether that just need in house software. The teams are smaller, and the benefits are better and you dont have to jump through these hoops. We dont generally even code all these algorithms in the real world. Most of the code involves reading data from databases.
Why would you ever want to reverse a linked list? That's a sign of bad software design. So I fail the interviewer and Google if they really design software like this! P.S : Interviewer Alex Nguyen goes to the captain of his ship and tells him : 75% of the new recruits don't know how to reverse the elements of the chain between the ship and the anchor! (although it is a bit more complicated with a real linked list) And the captain thinks "??!" and then tells Alex : "You are fired!" P.P.S, Now there is also this story why Cinderella can not go to the ball against the royal command because she has been given useless chores to do such as "reversing linked lists", th-cam.com/video/IkFNEUrSD3w/w-d-xo.html And so the moral of this story is that "useless chores" are invented by incompetent or not very talented people in order to sabotage the talented and brilliant ones that are threatening to their careers.... But in the end maybe the prince will still come and "marry" the talented and brilliant ones and leave the others to themselves!
I'm not the biggest fan of these "leet code" type questions but it's a great way to weed out 95% of people who won't bother to study for it. It's like a degree really.
Maybe because they are used in things that help you build things on top of other things and these things themselves need to be super efficient to. An example is searching for files with filename using the search bar in windows files or even the cursor in code editors which relies on the fast interpretor to tag a line of code you write in real time @@bedtimestories1065
Who gives shit about linkedlist? The last time I wrote program with it was during college time, it if I need it again I’ll look it up, I don’t need to be able to reverse it off top of my head. Interviews at those companies are idiotic
@@DocHudson420 You are required to memorize basic fundamentals of data structures and algorithms to be able to solve problems efficiently and effectively. Edit: insult me all you want. Leetcode is here to stay. I didn't make it this way. You people are going to learn the hard way if you do zero leetcode.
Mostly agree. Especially the very firat issue. I was interviewing at Google for few years and rearly have seen even experienced engineer ask clarifying questions. Like dataset size, performance requirments, how often things need to be run (i.e. one of vs online repeatedly). We ask quesion without these details on purpose, so you ask for clarifications. If you don't ask, you are guaranteed to not solve the problem (no matter how smart you think you are). Also know actual numbers, memory, disk, network, cpu, etc. Not just your oh notation but constant factors. And dont go into all the details so you cannot answer first question of the interview on time. You are talking to somebody who is very experienced, and few well choosen words will suffice to deliver the message. Also don't trust everything textbooks says. There is a lot of ifs and buts, and assumptions , constant developments in basically every area of computer engineering. Even basica that most people think are "solved" decades ago. No they are not.
Can you request mock interviews with Google if you are interviewing somewhere else? Also, I have been an SDET for 5 years. I’m edging more on the sr side. At this level, data structures and algorithms escape me. How important is knowing this in interviews?
i suck at leet code, and im much worse in the interviews. im more stressed so my brain works slower. do you have any advice on what to say when i have no idea what to do
I have a question , I’m a CS major and I graduate in may , but my interest in cloud engineering , I’m good at coding but I’m wondering do any of my projects and efforts for cloud matter ? Does google do cloud internships ? I’m doing a cloud project now , but am working as network engineer now , and like coding yeah I can do leetcode easy and I’m making a blog in blazor , have done mobile apps in android studio , I do like coding . But my greater interest is in infrastructure and protocols and routing and memory bandwidth etc .
Maybe its a stupid question but if I apply to iOS position and I solve the "leetcode" problems with Javascript, is it okay and (maybe) shows that Im open to more programming languages(I know both swift, java script and actually also objective c).
Software development became something that is not inherent to just problem solving skills but using the tools that we have right know, and it's totally fine if you're bad asnwering leetcode or hackeerank like questions, because unless you're preparing for competitive coding for a tournament or things like that, it's likely that you're not gonna encounter a leetcode like problem to solve in your daily job, for years. If you're a java developer and are asked to sort a list with bucles instead of just doing Collections.sort(list) I think you're not applying to the right job, even if this is google, I mean, it's good to know the "foundations" but people have to understand that it's becoming more important to use the tools instead of how thing works behind the scenes on a Collection.sort function, if you have to optimize your code just then worry about it. Remember that our main occupation is to build software, not to write code, and someday, we like it or not, building will require little coding and more on how use the tools.
I have been a software engineer for 10+ years. I have never coded, let alone reversed, a linked list. Any uses of linked lists like stacks and queues were always hidden behind abstractions.
What i do is for each node, i push the current value into a stack until i reach the end of the list. Then, i start over again and let the current node equal stack.pop()
Guys, there is so much content from people telling you how this, what that, why something blablabla. Learn to code, start at some company and gain experience. Dont make it such a big science in how to get into being a software developer.
because, apparently, the work in Google involves mostly reversing linked lists or doing other stupid exercises which everybody forgets once they leave the college and which can be looked googled up in seconds
I can't get the idea of this leetcode obsession or mock questions. What does this even tell about actual programming skills? It just tells about how someone is able to remember standard answers. Let someone play half an hour in Shenzhen IO or Factorio and watch him. This tells you a lot more about his skills than any question in an interview! btw: Why would anybody work for a company like that?
@@bestopinion9257 Leetcode problems have nothing to do with reality. They are overall more like laboratory academic problems. In actual sw developer work, much of the code you handle is legacy.There are many, many side effects depending on architecture and infrastructure. The problems you have to handle there are a lot deeper and far more complex than any leetcode problem. Instead of using a general approach, you have to have a specific approach to the problem. And a general approach being taught in leetcode doesn't let you do shit on that but only own projects, strategy games, programming puzzles, no leetcode, no 100+ hours of udemy lessons, or worse, an university degree. I've had my own share of interviews with applicants. And it always boils down to the same very simple formula. Are you doing your own projects? Having fun at solving puzzles? Interested in gaming? Those are the people you actually look for because they show they are a) being able to work for a long time in front of a computer, b) actually have fun at that, and c) are, even when not asked, doing something to improve themselves. Meanwhile, someone being able to answer 100+ leetcode questions perfectly does not tell you anything other than that this person is able to remember algorithms (and is probably not being able to use it in a real-life situation).This is also very often true. Give someone a leetcode question. No problem. Tell him it is, for example, a problem which is being heavily modfiied from any leetcode question and 90% of people fail at that.
@@bestopinion9257 Well, the problem here is that leetcode problems are problems that can be googled. Your average everyday problem as a software developer just tends to be one where you might google a step or two, but the overall solving process has nothing to do with that or if you are able to solve it. And why even think about a problem, wasting time rather than understanding the problem, looking up a solution and then trying to fit it to your actual scenario, because that is what actual developers do every day. So someone being able to "solve" a leetcode problem or not is not telling you anything about his skills but a rather academic point of view which proofs nothing.
@@89TStefan In your work you may not need fast algorithms. But that's not the case with all programming field. If you can learn algorithms, you can grow.
it's CRAZY to me that you can't run the code. stepping through line by line is an enormous waste of time and means that the person spends their time doing that instead of showing you their debugging skills when the code doesn't work. i work at a series A startup and this is table stakes for our interview process.
I think most people just (cons (head list) (rest list)) but if you implement it, using a custom iterator implementation would be simple… it don’t map good though. When you have a good reason to use a linked list or b-tree (ie write-heavy applications, potentially parallel), then you probably don’t have their length or other metadata.
Interesting video! Within the past 2-3 years, my perspective on interviews changed. I don't go on many interviews and I DO NOT interview well AT ALL. Given those statements, I now view an interview like a "first date". On a first date, I'm presenting myself in my best light to make the best impression possible. I'm well groomed, I look and smell nice, and I engage in thoughtful and "clever" conversation, mostly to impress her. If we get together, I'll "relax" and show my "true colors". If we're not compatible, we split and I repeat the process and go on another date. lol I don't prepare for interviews anymore. The knowledge that I have is the knowledge that I have. If I'm confronted with something I don't know or can't remember how to do, immediately, I work through the problem or I do research to help identify a solution. I won't go to Stack Overflow and look for examples. I spend my time to understand the problem more so I can work through the solution. The point is, I won't have every algorithm in my head at any given time. The work I've done, throughout my career, has been interesting (to me at least) but hasn't involved much of the kind of knowledge I would need to "cram" for. If you asked me to reverse a linked-list on a blank whiteboard, it would probably take me some time. Why? I haven't touched linked-lists in DECADES. I'm more of a "hands on" kind of person. Give me a chance to actually do some work and I'll perform better than in an interview situation. So, I think a 3-month "trial" would be a better approach to vet a candidate. Pay them little (or nothing), put them on a "real" team and given them assignments. See how they actually perform. If they write garbage code, end the relationship and move on. If they don't work well with the team, end the relationship and move on. I used to "fantasize" about working at a company, like a Google, but I never really tried to do that kind of work. Sure, the money would be awesome but I'm not sure I would be a good fit for that kind of company/environment. I get contacted my recruiters on LinkedIn and sometimes I wonder why, because my work history doesn't match (at least not to me) what they are contacting me for, but I'm happy where I am now and I'm doing a-ok. :) Anyway, thanks for posting this video. I did enjoy watching it and listening to your tips and suggestions. Now, I'm off to see if I can reverse a linked list! lol
I might not be able to reverse a linked list and I've no desire to as well. Not once in 20 years as a dev did I need to do this. Imagine putting yourself through pointless leet code tasks and jumping through hoops just to get Google on your cv only to get laid off in a year or less. Google does not hold the same allure that or did even two years ago.
ll.Reverse() Now, quit playing games and go do some actual engineering. We've got oodles of neckbeards that can reverse a linked list by hand in sub-constant time no less, but can't actually design useable software. Its bananas. The industry is optimizing _way_ too far into the wrong attributes.
I laugh inside when people look at me while I talk out loud, for example on what I'm having for dinner and should I buy those pumps to play in the football game.
Yeah, Google literally cancelled their tests for us to even apply and get a chance and randomly picked students that got internship at google before or who had really high gpa. I have high gpa but it's not like 3.8 or something, and yeah they picked those only :) Talk about fair shortlisting.
Kindly tell me when: a. Used a linked list in a real business application b. Reversed a linked list in a real application c. Why reverse if before hand you know you need to traverse backwards, just keep the first and last node
I can reverse a linked list and do much more. I dont see anyone giving me a job😢. I wish its that easy. They want real world project experiences too which i lack
I question the value of the process. First, most developers are introverts and this kind of “code on demand” filters out genuinely good devs who vapor lock. Second, the leet code approach is not even remotely real. Actual daily development tasks are far more mundane and only occasionally do you even get to the detail level required by high-pressure leet-code puzzles. The reality is the interview process is gate keeping elitism. I could easily construct interviews that FAANG devs couldn’t pass if wanted to be an ass. And when everyone wants to work for you, you can pretend that your process is great. When I interview candidates, I’m looking for technical understanding and “comfort”. An experienced dev won’t have difficulty conversing about architecture, data structures, language quirks, tools, libraries, etc. None of that requires writing code that you would only ever write once and you’d take an hour or two to compose.
Yep. It is to become part of a club. Tbf, my "tech interview" was exactly knowledge questions about ML and got most of them right and tadá. Now that I'm part of the club, the mundayne shit is much more appealing that the dreaded code problems of such interviews.
the interviews seem like a waste of time as most of these questions are not real world. and they have already been solved. worthless interviews. filter process
It is thinking like this that got Google into the predicament that its now in. I can find solutions to all of these problems using AI. Pure coding skills, per se, are nowhere near as important as they were 3 years ago.
Frankly, if you need to reverse a linked list then you have a bigger problem, since you shouldnt have used a linkedlist to start with if you need to reverse it. Probably should start to learn about data structures first.
See my problem is that I need to get up to speed on a language or interview before I do it, since I use a lot of esoteric tools… so I know I’m going to fail. The interview timeline is too quick to get up to speed. Most companies (only in the past 5+ years) allow you to use any language… but it’s still better if you learn their language & framework. That’s too much work. I try anyways. It disrupts whatever fucking projects I’m working on and ultimately wastes my fucking time (sorry, it does and I fucking hate JavaScript) Even though I should have the skill for many companies, since I haven’t had a job recently, my only exposures to technologies are TH-cam, source code (using Google’s Repo tool) and self-exploration. I’ve been looking for something non-Microsoft and non-Java script for like 10 years now. I would just rather program for fun since office politics basically gave me PTSD.
You are on the top our field. So you are in the best position to answer my question... What is best roadmap to get a good foreign internship by 2 nd years I mean skillwise
Woah, I didn't know Google gives you a mock interview! Game changer
I didn't know I could request a mock interview. I will keep this in mind for future places I might apply at!
Sounds like fun 😂😂😂
Damn man this is a gamechanger! How do you request for one?
Amazon offers a mock test, it helps immensely. I failed my mock test and passed the real one, that is how much it helped. Now a mock interview would be great.
No worries if you are rejected. About a 1/3 of Googlers will pass this interview.
After working for a few years, you'll forget how to quickly solve some of these silly questions, because in real work is a completely different skill.
Which is exactly why the big tech interviews are so dumb
@@DavidDLee I've heard the interviewers would fail their own anonymous profiles
@@bedtimestories1065Even interviewers agree on that, but you can't deny that if you are able to pass such a test, you are a top applicant.
@@diegoleao it just means you're someone who memorized the questions and answers. you've seem some flavour of the question, so this doesn't mean you're the top. it means they optimized for someone that can cram and remember useless stuff.
@@diegoleao yes, you are a top applicant, but it doesn't mean you know what you are doing. It just means you are good at leetcode problems, nothing more.
Over the years and years of my carrier, I’ve never needed to reverse a linked list.
💯 and if you did it not like you have to memorize how to do it when online.
Same here, but I think the purpose of such a question is to see how comfortable you are with recursion, pointers, and abstract thinking. That said, I enjoy solving real problems, having happy users, and seeing how well my work stands up to time. leetcode is nonsense to me as it does none of those things.
We need a feature to reverse a linked list lolol
I'm not surprised--people rarely need to get that close to the metal anymore. However, it's not a complex algorithm--it's just a weed-out exercise.
It's a good thing they don't make spelling a requirement!
If you get to onsites and they assume you can code by that point because of the previous leetcode interviews, and the onsites are about communication and collaboration, why are there more leetcode questions? Why not discussing past work, sharing a personal project and talking about it, walking through some code together with the interviewer and seeing how well the candidate can digest and explain what is going on, discussing open source development, etc. This is precisely a school test, the whole way through. Pretending that it isn't is unfair and just lying. I don't mean to attack you. But everybody, including these companies, know that these many leetcode interviews don't determine someone's competency and certainly aren't an indicator for if they will fit in at the company. It's just an easy shortcut. Communication is a weak point because in order to prepare *just* for the interviews, you have to go through 3-6+ months of studying leetcode. You can't communicate with the interviewer during the test, they aren't allowed to talk much other than vague hints here and there. It's weird to have to juggle thinking about solving the problem and trying to speak every 5 seconds because that's not how thinking works. It's just a weird industry practice and we all know it's a broken system. Everybody knows this, but as an industry we keep pretending. Sorry for the rant, I'm sure you and all of us can understand how insanely frustrating it is. Again, I am not attacking you specifically, just frustrated at the system in general. Needed to vent.
Hey it's absolutely frustrating. I mean as long as someone can code that's all the should really matter.
Here's some more thoughts just trying to help
From the 5 onsite rounds, there's usually 3 that are coding, 1 behavioral, and 1 system design depending on the level.
The behavioral is where people get to talk about past projects and how people handle work/people problems. This is where companies figure out what level someone should be at. (Did they lead a team or did they get led?)
The onsite coding rounds do include tons of Leetcode. It's pretty unfair and I don't like it either but I have to admit that's just how it is. I wanted to make this video to mention that even when people solved the question it was just the communication holding them back.
Something a friend of mine helped reframe Leetcode to be healthy for me was that once you feel comfortable doing most questions, it's a passport to any other tech company because the format is almost always the same.
Wishing you best of luck it's been hard for everyone lately
@@realalexnguyen Thank you. I agree, it's one of those things that's just how it is unfortunately.
Because they don’t care about all that stuff. They only care if you can get through the filter or not, no matter how ridiculous the filter is and no matter how good you are actually.
Womp womp
@@gauravaws20 that sounds a lot like hazing
Yeah they just know databases, replication, ci/cd, Kubernetes, docker, webpack, vite, bloom, tailwind, html, htmx, css, scss, postcss, GCP, AWS, Azure but they can't revet damn linked list!
Oh the horror! I've needed to use all the above technologies in my job at one point or another in some way or another. You know what I've never needed to do so far nor been asked to do? Reverse a linked list. However, if I'm ever asked to do so, I know where to find authoritative information and practical guides on the matter thanks to a little skill called research.
I think I never got a leetcode like problem in last 7years of development.
Guess why? Cause I Will Never have to reverse one😂😂😂
@@itismydump yeah I drive my car every day but I don't know how to change tiers. This is called delegation
@@32zim32just don't apply for mechanics job
It's hilarious to hear from a Google employee about "communication". Of all my interviews, Googlers were always by far the most disrespectful and arrogant.
FACTS
thats why they have this bs interview process to keep the egos flowing
I never NEEDED to manually reverse a linked list since I was in college 25 years ago. That's because I focus on software that works well in the real world. I would never want to work for Google, Apple, Facebook, or any of those lame companies.
Gottem!
@@bobanmilisavljevic7857Hit 'em with the m'lady
New to coding?
@@tusharagarwal5306 if you are coding buttons whole day long, then yes, this is a skill. If you work on compute and math intensive projects, sorting and data manipulations algorithms are the least of your concerns, just take the library function.
As a truck driver I'd push the linked list onto a stack the pull the stack back onto the list. Nuff said.
stack is ineffiecnt, you can do it in linear time walking the list.
Now I want a mock Google interview just to say I tried it. Google isn't a dream job anymore either.
Faang is dying
whats the alternative then?
@@infimode other big tech companies or companies with a really large market share (like Pinterest, Zillow)
They became a bunch of morons (HCU) and criminals (Adsense). No wonder DoJ is suing them.
@@infimode Start your own business.
Ah yes with all those linked lists I'll be reversing at my job
There is a practical use for it. Reversing sort order on a sorted list. Lots smarter than using a quicksort. And sadly, lots of people have no idea why.
@@neilbradleyit depends ...dev tool chains and requirements change over time
@@neilbradley With a doubly linked list there is no need to waste the CPU cycles reversing the sort order.
@JimAllen-Persona Anyone who only creates a singly linked list is missing half a brain.
@JimAllen-Persona EVERYTHING CHANGES. It's just a matter of time before the requirements change.
mock interviews are great. the feedback is the best part. my friend is high up in a tech company and said they can't give feedback in a regular interview because of a possible lawsuit. But that doesn't happen in a mock interview.
lawsuit from interviewer being a jerk and biased
@@jay-j6l do you have more detail?
Understanding the intricacies of reversing a linked list is a fundamental skill that I consistently employ in my daily work. 😂
It's called "use a library" or a function of the language itself. This isn't a Commodore 64. There's no reason to manually do these things unless you're writing a linked list library.
Reminds me of the time I bombed out on an SDET interview, and the manager concluded did not have good coding nor good testing skills.
Five years later, we crossed paths again. I was tasked with estimating the effort needed to snapshot a running Unreal game's log, a feature QA really, really wanted. This manager and his colleagues had deemed the log exclusively locked and unreadable.
But, with a little interviewing, followed by some tinkering on a Friday afternoon, I quickly found out what they were doing wrong: they weren't opening the game log file with the correct flags. Open the file with the correct flags and it was instantly readable.
Rather than an estimate, I delivered the feature itself, and saved the group the cost of hiring an Unreal engine developer.
Surprising how most people in the management are not practical and output developers that could deliver.
Memorizing leetcode doesn't mean you can code. It is a really dumb way to interview. They aren't real world problems, and you aren't going to solve them in the time given without memorizing.
Yeah, it's pretty much why we have statements like "AI is going to replace coders", since AI is great at memorizing leetcode, but fails in any kind of complex real-world application.
@@taragnor AI can't really do anything but repeat answers from leetcode, stackover flow, and other web sites. Unless you are a copy/paste coder then AI isn't taking your job.
@@scmsean Yeah that's what I said lol. People are overly obsessed with AI's ability to do leetcode.
Why do most start up’s not give a f about leetcode and more interested in what you can do or past projects. Big contrast from FANG companies.
Startups need creative ppl who r better at actually getting things done . Startup needs things done, FAANG needs perfection
@@Arch_FMmakes sense also good that they showed the FANG companies mostly use leetcode as a way to filter out people reduce number of applicants and not really to determine how good one is.
@@weiSane Nope, he/she was literally speaking from imagination and big tech obsession, FAANG got tons of candidates, so they can afford to use leetcode as an aggressive filter to get rid of tons of people regardless they are good and bad. As long as the bias rate is less than 20%, then it's good. Their strong infra and budgets can tolerate those bias.
Source: lots of ppl I know got into faang, their skill is wide ranged, even ppl who only know code less than half a year (but with good degree or possibly STEM related experience). and the success rate has nothing to do with personal skill, it's all about leetcode + luck. During the hiring boom, even if you semi-fail the leetcode, you still got into the company by luck.
Many also speak broken English, at least in US, it's a instant reject for small startups, startups can't afford those communication cost regardless personal skill due to budget limit.
Big techs internally have a lot of strong systems that aren't open-sourced or shared. Built by many strong engineers in the past. Many new engineers even the veterans didn't have a complete picture what they are doing as a whole. Thing is so complex or due to company policy, they can't share or are incompetent to share. Many were just only 2 years in a big system and too early to know anything about the tech. Guess what they can share? leetcode that the resource is everywhere.
As a result, you will see tons of ex-faang or current faang people only sell leetcode course + interview course. Are they better than you, it's unknown, they are just using their company brand to exploit you.
It's because too many people apply. At that point FAANG uses anything and everything to filter candidates out. At this rate, soon they'll add a new test of doing the maximum number of somersaults per minute, to qualify to the next round. A highly effective filtration strategy and there'll be websites and TH-cam channels dedicated on teaching how to somersault and pass through the FAANG round.
@@Dipj01😂somersaults to pass to next interview round is wild. And you are right if that were the case there would be TH-cam channels teaching how to do exactly that milking every opportunity to sell a FANG interview course on how to somersault 😂
"How do you reverse a Linked List??" ...hmm... I probably use a library that already does it for me... I question why I need it reversed in the first place and simply request the data provider to provide it to me in the order I desire....
Questions like these do not show how good a programmer you are... they show how you can answer stupid interview questions that you will ONLY see in the interview process... you will never see these things come up in the day-to-day process of your job!!
Meanwhile I’m passing all the coding interviews, but always failing „behavioural“ one because I genuinely do not understand what they want from me.
Well, I guess thats why yiu fail, because you do not understand
Are you neuro-divergent? Because being kind, humble, considerate and assertive are pretty much basic stuff for most people.
@@flexicus1105 What does the that have to do with those qualities?
24 year Web developer, how many linked lists have you had to work with... zero. How many linked lists have you there fore EVER needed to reverse... zero. Can we start testing people on ACTUAL code that you might ACTUALLY use in the REAL WORLD.
I haven't dealt with linked lists since I took a college class on C++ 22ish years ago. I mean if you're targeting newly graduated college kids, great, that's what they need, it's what they've done recently. If you're wanting experienced developers, then test them on what they've been coding for the past x number of years since graduating.
A lot of interviews I attended are actually to screen out experienced engineers and targeting new graduated. They care if I know some newer coding concepts instead of my capability to deal with the whole system. An anology is that they don't care if I can build an old tank, they care if i can build a new bike. So if I dont know a particular screw in a new bike I am out. Unfortunately this is how the IT world works today...
@mikelau3007 new developers are cheaper so makes sense to weed out the older experienced developers that can both build a new bike and maintain an old tank as well.
Because you did a marginal work all the time. But someone with higher responsibility used algorithms for performance. For example, how a HTTP message finds the destination in the network? Yep, a performant finding path algorithm is needed. Similarly, big companies like Google and Facebook that deal with millions of users, need performant algorithms at their CORE.
@@bestopinion9257 Pompous much? Marginal work?!? 99% of ALL companies are NOT Google and Facebook who require a custom "CORE" to function properly. Facebook even uses its own custom language, so that's even more rare.
The majority of companies are doing projects that don't require linked list, least not in the day-to-day that the majority of developers will ever see.
I've worked at a few companies whose sites have received tens of millions of hits per day and yet I've never seen a linked list and I worked on the entire code base, I've never had to use a "performant algorithm" or seen other developers uses them and the sites functioned perfectly.
Maybe you only work at companies that get billions of hits per day and that it's required of you, but for the 99% of everyone else, that isn't the case.
Went to high school with Alex. He was 2015 valedictorian. Happy to see you are doing well Alex!
Honest question: if Ive been a developer with multiple years of experience and Im signing up for a normal software dev role, would you still ask me to solve silly leetcode problems? It just seems extremely weird when full-stack devs have literally single-handedly built and deployed dozens of apps for customers, only to not get to the next interview stage because they couldnt memorize a sorting algorithm.
Edit: last time Ive had to reimplement any sort of list/sorting/binary tree algorithm was in academia (Ive got an M.Sc now)
There's a code question and it's largely up to the interviewer. The questions that I use tend to be simplified forms of something I've needed to do solving a real business problem. (And I try to explain how they're connected.)
The video is right, though. The code is largely a vehicle for talking through problem solving and organizing a solution rather than trying to test you on something memorized.
When will I ever have to reverse a linked list?
When you interview for Google. 🥴
Honestly a lot of people would know the flow but get stuck at the base case implementations (end of list, etc). Who could forget? Anyone. And trust me, Im not one of those "DSAs are completely useless to know" guys.
Very Insightful, shall keep these points in mind!
thanks a lot for sharing
Google: "Please please use Gemini's awesome coding functions!!"
Google: "Also, reverse linked list manually"
so only 1-2 real life questions + a bunch of google-able stuff. man I love tech companies
Im googlingACK
Classic example of asking the wrong question. ChatGPT can give the correct code for reversing a list in many programming languages. A much deeper question is what are the best data structures and algorithms for the problem at hand?
There is this one girl in my batch ...she doesn't even know the basics ..not even to reverse the string..I dont' know on what basis google shortlisted she doesn't have good profile nor projects ...how did they even select her for the internship ..its frustrating to see non deserving people getting selected
Female ✅
You have your answer within your first 5 words
I love how quickly this turned sexist and salty even though nobody has any real information besides speculation. And inb4 the neckbeards, I'm not into women. Lol
DEI hire mate. It is part of every company nowadays. they have their checklists
@@user-bt6mh9ez3u Woman. Basically.
I'm not even hating about it and Im sure theyre talened enough, but I was surprised at the number of female in my company when in CS courses they aren't that much in ratio. I suspect at big companies, be a POC + woman and you might land the jobs they're selecting at that round.
Nothing like a small programming task that can filter out applicants, I remember once we had some applicants for a programming job, two of the presumed best candidates couldn't even solve the very simple tasks even though they could solve them at home and use google as much as they liked.
It was about 10 years ago and I did the five simple tasks in about 5 minutes with pen and paper
uhhh......that's simple enough, starting at first, stored as "i" (our temp holding variable), swap prev/next values of 'i' object, then set 'i' to 'prev' (which was 'next' before you swapped it) and loop until 'i' is null and break out. then swap first/last variables, done. O(n) speed. failsafe questions for interview would be to ask if certain error checks are to be performed within the function base or if it will be done separately by a different process....error possibilities are bad pointers (simple 'try' capture with memory test on pointer, speed reduced per n unit by c1), circular listing (a 2-to-1 tracer would reduce speed further by an additional O(n) per direction), disconnected/broken/botched filing in the pointers (another speed reduction by O(n) per direction). Other possibilities are whether you have a begin/end train to flip rather than the entire list, which can be far more fun to play with.
Yeah, problem is, as much as I could solve any problem extremely quickly, I don't usually work well with others or speak my problems aloud. I'll stick to indie game development for now, but it is still fun to do programming puzzles like these.
I'm wondering if Chrome developer candidates could ever explain their code, or maybe they only review it for running time but never for memory use.
They hire those who can pass basic tests. All our top shelf soft is just that. Basic stuff for years, any update not changing anything meaningful and bugs kept for years marked as wont fix.
On that last point about people just assuming it works, it's also not uncommon for people walking through the code line by line to assert that a line does what they think it does and not what it actually does. I see that most often in cases where they're off by one on something or using "
I dont want to work for a big tech software company. I am finding it better to work for companies in an different industry altogether that just need in house software. The teams are smaller, and the benefits are better and you dont have to jump through these hoops. We dont generally even code all these algorithms in the real world. Most of the code involves reading data from databases.
Omg, love to see you on TH-cam now!
Why would you ever want to reverse a linked list? That's a sign of bad software design. So I fail the interviewer and Google if they really design software like this!
P.S : Interviewer Alex Nguyen goes to the captain of his ship and tells him : 75% of the new recruits don't know how to reverse the elements of the chain between the ship and the anchor! (although it is a bit more complicated with a real linked list) And the captain thinks "??!" and then tells Alex : "You are fired!"
P.P.S,
Now there is also this story why Cinderella can not go to the ball against the royal command because she has been given useless chores to do such as "reversing linked lists",
th-cam.com/video/IkFNEUrSD3w/w-d-xo.html
And so the moral of this story is that "useless chores" are invented by incompetent or not very talented people in order to sabotage the talented and brilliant ones that are threatening to their careers.... But in the end maybe the prince will still come and "marry" the talented and brilliant ones and leave the others to themselves!
I have been programming for 20 years... I have never needed to reverse a linked list.
I'm not the biggest fan of these "leet code" type questions but it's a great way to weed out 95% of people who won't bother to study for it. It's like a degree really.
Push the nodes of a linked list onto a stack and then pop them off, rebuilding the linked list in reverse. I'm guessing you could also use recursion.
Both of those use O(n) space. It can be done with O(1).
@@BlunderMunchkinI never see the big O mentioned outside of interview world.
Yeah, just move the head, and you get O(1)
Maybe because they are used in things that help you build things on top of other things and these things themselves need to be super efficient to. An example is searching for files with filename using the search bar in windows files or even the cursor in code editors which relies on the fast interpretor to tag a line of code you write in real time @@bedtimestories1065
I am curious what would be the use case of reverse linked list? like in real software, not just "because it can be"
Who gives shit about linkedlist? The last time I wrote program with it was during college time, it if I need it again I’ll look it up, I don’t need to be able to reverse it off top of my head. Interviews at those companies are idiotic
If you can't solve trivial problems, then you can't solve anything harder
@@humanvegetablememorising esoteric programs isn't solving problems.
@@Dipj01 I never said anything about esoteric.
Strawmanning
@@humanvegetableit’s memorization not problem solving
@@DocHudson420 You are required to memorize basic fundamentals of data structures and algorithms to be able to solve problems efficiently and effectively.
Edit: insult me all you want. Leetcode is here to stay. I didn't make it this way. You people are going to learn the hard way if you do zero leetcode.
... and who cares... Name one time (in an actual job) where you reversed a linked list. It is irrelevent.
Irrelevant
@@hoaxygen You're irrelevant.
Translation: I gatekeep
Leetcode should be extrem short to just check if the people know the basics. Leetcode stuff is simply not usually a problem in a real job
Basics consist of such a stack that it cannot be tested in any short amount of time.
I much rather see your past code than test you now.
Mostly agree. Especially the very firat issue. I was interviewing at Google for few years and rearly have seen even experienced engineer ask clarifying questions. Like dataset size, performance requirments, how often things need to be run (i.e. one of vs online repeatedly). We ask quesion without these details on purpose, so you ask for clarifications. If you don't ask, you are guaranteed to not solve the problem (no matter how smart you think you are). Also know actual numbers, memory, disk, network, cpu, etc. Not just your oh notation but constant factors.
And dont go into all the details so you cannot answer first question of the interview on time. You are talking to somebody who is very experienced, and few well choosen words will suffice to deliver the message.
Also don't trust everything textbooks says. There is a lot of ifs and buts, and assumptions , constant developments in basically every area of computer engineering. Even basica that most people think are "solved" decades ago. No they are not.
Can you request mock interviews with Google if you are interviewing somewhere else? Also, I have been an SDET for 5 years. I’m edging more on the sr side. At this level, data structures and algorithms escape me. How important is knowing this in interviews?
Thanks Alex, appreciate the video!
PS love the droid
Running Time only? How the about the trade-off between Time and Space?
i suck at leet code, and im much worse in the interviews. im more stressed so my brain works slower. do you have any advice on what to say when i have no idea what to do
Does what you said about run time, also apply to space complexity?
What’s the point of getting a degree if they think u can’t reverse a linked list
I’ve never forgotten but never got a job at google
I have a question , I’m a CS major and I graduate in may , but my interest in cloud engineering , I’m good at coding but I’m wondering do any of my projects and efforts for cloud matter ? Does google do cloud internships ? I’m doing a cloud project now , but am working as network engineer now , and like coding yeah I can do leetcode easy and I’m making a blog in blazor , have done mobile apps in android studio , I do like coding . But my greater interest is in infrastructure and protocols and routing and memory bandwidth etc .
Internship ATM .
Maybe its a stupid question but if I apply to iOS position and I solve the "leetcode" problems with Javascript, is it okay and (maybe) shows that Im open to more programming languages(I know both swift, java script and actually also objective c).
Today, I received the Google Hiring Assessment, but it doesn't look to be a coding challenge, but rather a behavioral assessment.
Software development became something that is not inherent to just problem solving skills but using the tools that we have right know, and it's totally fine if you're bad asnwering leetcode or hackeerank like questions, because unless you're preparing for competitive coding for a tournament or things like that, it's likely that you're not gonna encounter a leetcode like problem to solve in your daily job, for years.
If you're a java developer and are asked to sort a list with bucles instead of just doing Collections.sort(list) I think you're not applying to the right job, even if this is google, I mean, it's good to know the "foundations" but people have to understand that it's becoming more important to use the tools instead of how thing works behind the scenes on a Collection.sort function, if you have to optimize your code just then worry about it. Remember that our main occupation is to build software, not to write code, and someday, we like it or not, building will require little coding and more on how use the tools.
Did they fire u ??? Because I heard most leetcode people can't code !!!
But i can reverse linked List
Plz teach me
@@realalexnguyen 😂Sure
I have been a software engineer for 10+ years. I have never coded, let alone reversed, a linked list. Any uses of linked lists like stacks and queues were always hidden behind abstractions.
What i do is for each node, i push the current value into a stack until i reach the end of the list. Then, i start over again and let the current node equal stack.pop()
However, I'm using extra memory. I don't know how to do it while only using the list
I never solved linked list in an interview, and I still have a really good SWE job.
can you please help me to get the job in Google what i mean to ask is atleast for tthe mock interviews
Guys, there is so much content from people telling you how this, what that, why something blablabla. Learn to code, start at some company and gain experience. Dont make it such a big science in how to get into being a software developer.
wow so i have 2 math degrees and research experience in ml but i forgot how to reverse a linked list so guess im worthless
because, apparently, the work in Google involves mostly reversing linked lists or doing other stupid exercises which everybody forgets once they leave the college and which can be looked googled up in seconds
I can't get the idea of this leetcode obsession or mock questions.
What does this even tell about actual programming skills? It just tells about how someone is able to remember standard answers.
Let someone play half an hour in Shenzhen IO or Factorio and watch him.
This tells you a lot more about his skills than any question in an interview!
btw: Why would anybody work for a company like that?
Geez! If you can't solve letcode you can't solve problems. You can't jump from your lazy routine when needed.
@@bestopinion9257
Leetcode problems have nothing to do with reality.
They are overall more like laboratory academic problems.
In actual sw developer work, much of the code you handle is legacy.There are many, many side effects depending on architecture and infrastructure. The problems you have to handle there are a lot deeper and far more complex than any leetcode problem. Instead of using a general approach, you have to have a specific approach to the problem.
And a general approach being taught in leetcode doesn't let you do shit on that but only own projects, strategy games, programming puzzles, no leetcode, no 100+ hours of udemy lessons, or worse, an university degree.
I've had my own share of interviews with applicants. And it always boils down to the same very simple formula. Are you doing your own projects? Having fun at solving puzzles? Interested in gaming? Those are the people you actually look for because they show they are a) being able to work for a long time in front of a computer, b) actually have fun at that, and c) are, even when not asked, doing something to improve themselves.
Meanwhile, someone being able to answer 100+ leetcode questions perfectly does not tell you anything other than that this person is able to remember algorithms (and is probably not being able to use it in a real-life situation).This is also very often true. Give someone a leetcode question. No problem. Tell him it is, for example, a problem which is being heavily modfiied from any leetcode question and 90% of people fail at that.
@@bestopinion9257 Well, the problem here is that leetcode problems are problems that can be googled.
Your average everyday problem as a software developer just tends to be one where you might google a step or two, but the overall solving process has nothing to do with that or if you are able to solve it.
And why even think about a problem, wasting time rather than understanding the problem, looking up a solution and then trying to fit it to your actual scenario, because that is what actual developers do every day.
So someone being able to "solve" a leetcode problem or not is not telling you anything about his skills but a rather academic point of view which proofs nothing.
@@89TStefan In your work you may not need fast algorithms. But that's not the case with all programming field. If you can learn algorithms, you can grow.
Great video, thanks!
it's CRAZY to me that you can't run the code. stepping through line by line is an enormous waste of time and means that the person spends their time doing that instead of showing you their debugging skills when the code doesn't work. i work at a series A startup and this is table stakes for our interview process.
Very helpful video!
define reverse list (return (if (empty? list) [ [ ] ] else [merge (reverse (tail list)) (head list)]))
I think most people just (cons (head list) (rest list)) but if you implement it, using a custom iterator implementation would be simple… it don’t map good though. When you have a good reason to use a linked list or b-tree (ie write-heavy applications, potentially parallel), then you probably don’t have their length or other metadata.
Interesting video! Within the past 2-3 years, my perspective on interviews changed. I don't go on many interviews and I DO NOT interview well AT ALL. Given those statements, I now view an interview like a "first date". On a first date, I'm presenting myself in my best light to make the best impression possible. I'm well groomed, I look and smell nice, and I engage in thoughtful and "clever" conversation, mostly to impress her. If we get together, I'll "relax" and show my "true colors". If we're not compatible, we split and I repeat the process and go on another date. lol I don't prepare for interviews anymore. The knowledge that I have is the knowledge that I have. If I'm confronted with something I don't know or can't remember how to do, immediately, I work through the problem or I do research to help identify a solution. I won't go to Stack Overflow and look for examples. I spend my time to understand the problem more so I can work through the solution. The point is, I won't have every algorithm in my head at any given time. The work I've done, throughout my career, has been interesting (to me at least) but hasn't involved much of the kind of knowledge I would need to "cram" for. If you asked me to reverse a linked-list on a blank whiteboard, it would probably take me some time. Why? I haven't touched linked-lists in DECADES. I'm more of a "hands on" kind of person. Give me a chance to actually do some work and I'll perform better than in an interview situation.
So, I think a 3-month "trial" would be a better approach to vet a candidate. Pay them little (or nothing), put them on a "real" team and given them assignments. See how they actually perform. If they write garbage code, end the relationship and move on. If they don't work well with the team, end the relationship and move on. I used to "fantasize" about working at a company, like a Google, but I never really tried to do that kind of work. Sure, the money would be awesome but I'm not sure I would be a good fit for that kind of company/environment. I get contacted my recruiters on LinkedIn and sometimes I wonder why, because my work history doesn't match (at least not to me) what they are contacting me for, but I'm happy where I am now and I'm doing a-ok. :) Anyway, thanks for posting this video. I did enjoy watching it and listening to your tips and suggestions. Now, I'm off to see if I can reverse a linked list! lol
Ima stick to buffing floors
Oh yo I seen you on linkedin lol. I saw on your moma that you left this year. Was a it layoff by any chance? Why didn't you just find another team?
I'll make a video on it sometime
Just because you can spit out code like a machine from memory in an interview does not make you a good programmer.
thanks for the great advice 💌
I might not be able to reverse a linked list and I've no desire to as well. Not once in 20 years as a dev did I need to do this.
Imagine putting yourself through pointless leet code tasks and jumping through hoops just to get Google on your cv only to get laid off in a year or less. Google does not hold the same allure that or did even two years ago.
ll.Reverse()
Now, quit playing games and go do some actual engineering. We've got oodles of neckbeards that can reverse a linked list by hand in sub-constant time no less, but can't actually design useable software.
Its bananas. The industry is optimizing _way_ too far into the wrong attributes.
Thanks for the information.
Claude Sonnet 3.5, given my link list, write a function to reverse a linked list.
And DONE!
Why do you want them to communicate while doing something they will never communicate with anyone in real life while doing it?
I laugh inside when people look at me while I talk out loud, for example on what I'm having for dinner and should I buy those pumps to play in the football game.
Yeah, Google literally cancelled their tests for us to even apply and get a chance and randomly picked students that got internship at google before or who had really high gpa. I have high gpa but it's not like 3.8 or something, and yeah they picked those only :)
Talk about fair shortlisting.
The 'mom: are you employed yet?' LOL
I came to answer the thumbnail, but I see others beat me to it. I'm thinking it might have been clickbait :p
Sees thumbnail:
Wtf is a linked list
Being a DevBro myself, I can tell you 80% of Google DevBros never find a need to reverse a linked list in their career at Google.
Linked lists are the bane of existence. I understand them in theory, but when the rubber meets the road, im fucked.
Hahah love the text message from mom 😂
phone case with no phone in it
exposed.
01:50
you're welcome
Kindly tell me when:
a. Used a linked list in a real business application
b. Reversed a linked list in a real application
c. Why reverse if before hand you know you need to traverse backwards, just keep the first and last node
I can reverse a linked list and do much more. I dont see anyone giving me a job😢. I wish its that easy. They want real world project experiences too which i lack
Nice insights Thanks buddy
I question the value of the process. First, most developers are introverts and this kind of “code on demand” filters out genuinely good devs who vapor lock. Second, the leet code approach is not even remotely real. Actual daily development tasks are far more mundane and only occasionally do you even get to the detail level required by high-pressure leet-code puzzles. The reality is the interview process is gate keeping elitism. I could easily construct interviews that FAANG devs couldn’t pass if wanted to be an ass. And when everyone wants to work for you, you can pretend that your process is great.
When I interview candidates, I’m looking for technical understanding and “comfort”. An experienced dev won’t have difficulty conversing about architecture, data structures, language quirks, tools, libraries, etc. None of that requires writing code that you would only ever write once and you’d take an hour or two to compose.
Yep. It is to become part of a club.
Tbf, my "tech interview" was exactly knowledge questions about ML and got most of them right and tadá.
Now that I'm part of the club, the mundayne shit is much more appealing that the dreaded code problems of such interviews.
the interviews seem like a waste of time as most of these questions are not real world. and they have already been solved. worthless interviews. filter process
It is thinking like this that got Google into the predicament that its now in. I can find solutions to all of these problems using AI. Pure coding skills, per se, are nowhere near as important as they were 3 years ago.
Frankly, if you need to reverse a linked list then you have a bigger problem, since you shouldnt have used a linkedlist to start with if you need to reverse it. Probably should start to learn about data structures first.
Yes a few selected questions from thousands of possibilities that were not taught at university…
See my problem is that I need to get up to speed on a language or interview before I do it, since I use a lot of esoteric tools… so I know I’m going to fail. The interview timeline is too quick to get up to speed. Most companies (only in the past 5+ years) allow you to use any language… but it’s still better if you learn their language & framework. That’s too much work. I try anyways. It disrupts whatever fucking projects I’m working on and ultimately wastes my fucking time (sorry, it does and I fucking hate JavaScript)
Even though I should have the skill for many companies, since I haven’t had a job recently, my only exposures to technologies are TH-cam, source code (using Google’s Repo tool) and self-exploration. I’ve been looking for something non-Microsoft and non-Java script for like 10 years now. I would just rather program for fun since office politics basically gave me PTSD.
I’m understanding this; don’t work at big tech
very helpful explanations👍
You are on the top our field. So you are in the best position to answer my question... What is best roadmap to get a good foreign internship by 2 nd years I mean skillwise