You’ll need to start by practicing questions where you already know which technique you’ll be using, and then on ones where you don’t. Wikipedia has some good lists of them. Okay, maybe we’re not that mean. If you don't remember the details of a particular library function perfectly, quickly look it up, don't guess. 19. You'll then need to look at the problem limits and make a judgement call as to whether or not your algorithm is likely to be fast enough. I’m not an expert in job interviewing—in fact, my experience in it is quite limited. Very few people like reading code where all the variable names appear to have been taken from the lyrics of the famous alphabet song. Find some good resources for learning more advanced algorithms Most people forget these things, and there's a chance they won't remember either. On the other hand, I think it’s pretty great that all I have to do to make serious bank is study CS fundamentals for 1-12 months. This will make it format nicely. If it’s over that, but under 1,000,000, then it’s probably linear or quasilinear. Then I realized that was a big waste of time, as it was the medium and hard level questions that I was struggling on in the weekly competitions, not the easy ones. Great post. You telling me I’m gonna have to memorize all those sorting algorithms again? I did this last year, and wrote a blog post on it. There are plenty of good companies out there where you won’t need to be able to solve medium-level and hard-level Leetcode questions to get into them. There is no Leetcode module on it yet, but there are lots of relevant questions. Often these are breadth-first search questions. This is one of the most useful topics you’ll learn, so be sure to get lots of practice in, as most challenging questions use these data structures as part of the solution. every time i get to a point where i feel good about myself, it seems like the bar for the likes of google/fb/top unicorns just gets higher. I know the basic idea of all of them but I forget how to implement them exactly. 14. These will give you a lot of clues about the kind of algorithm you might be writing. Keep in mind too that there’s often more than one approach for a question, and the tags aren’t always exhaustive. 2. Use the mock interview feature https://en.m.wikipedia.org/wiki/Pareto_principle, It still astounds me that people are literally grinding puzzles to get jobs that often just shuffle small amounts of data around. But I have definitely heard of people in interviews trying to come up with an efficient solution for a problem which is NP-Complete, and if they DID find a good solution, they wouldn’t be needing the job they’re interviewing for (as they’d be rich for it!). Over time, you'll build a sense for how long things take. ABOVE ALL OTHER ADVICE, put 3 backticks before and 3 backticks after your code. Win programming contests? 40% Upvoted. Energy drinks and McChickens will drop you on your face after 27. I just don't have the mindset to think like that at this point in time. Do this as you're writing the algorithm, not at the end. When learning algorithms, data structures, and techniques, I recommend you use the tags to find relevant problems. It will also help you develop other software engineering skills, such as writing and explaining. If it’s under about 1000, then you might be looking at quadratic or around that. Writing up high-quality solutions and explanations on the discussion forums is a great way of doing this. These aren’t certain rules, but they definitely give a good indication. Remember what I said about practicing your general problem solving? Some of them will be in the easy category and some in medium. Learn techniques, not solutions What’s that saying? This industry is garbage. Simply memorizing the costs won’t help you much. It covers all of primary (elementary) and high school math in great depth, and it’s actually really fun. The hard ones tend to combine multiple concepts. Bit manipulation: This isn’t that difficult once you get your head around it, and it’s also pretty fun. It was working on these techniques that has really driven my improved performance in the competitions. They are all variations of a small amount of fundamental problems (well obviously not all) so make sure to be truly intimate with the fundamentals of CS data structures and algorithms. Fast forward to a few months later, and I’ve now solved almost 600 Leetcode questions, with the ultimate goal of solving them all. I've been on 3 different projects and just found out I'm going to have my 4th manager in just over a year here.