15 ms·
Avoiding Leetcode Anxiety
- ipnon 5y agoAfter crashing and burning the startup rodeo, I gave up. I live off my savings, dabble in crypto for some income, and work on my own software to sell. I've never been happier. Silicon Valley didn't seem to want me anyway.
- 01100011 5y agoNothing wrong with that. SiValley is fucking toxic and I'd leave in a second if I could afford to(mid-life divorce... long story). Leave SiValley for the folks that need to be there(for ego, for money, to satisfy the lofty goals instilled by their society/family/etc). You'll lead a much more fulfilling life in a normal town with your friends and family around you.
- EvilEy3 5y agoWhatever lets you sleep at night.
- beforeolives 5y ago> You'll lead a much more fulfilling life in a normal town with your friends and family around you. This is a false dichotomy. Leaving SV has nothing to do with your friends and family situation. So you can leave SV and be completely alone, or bored, or stuck in a toxic community. And you can also have family and friends in SV.
- TheAdamAndChe 5y agoWhen I used to complain about the dearth of jobs in my region of the country(Midwest US), people would often say something along the lines of "well duh, the jobs are in SV and the coasts, you've gotta move." This means that I would have to move halfway across the country to one of the most expensive cities in the planet just to have an opportunity for a good job? There's no way. My family is here. They don't work in tech, they couldn't afford the insane cost of living.
- Taylor_OD 5y agoThere is a middle ground. I work for a company that is pretty low stress. Salary is also a lot lower than FANG but I'm pretty steady at 40 hours a week and I don't have to live off of savings.
- whymauri 5y agoIt's worth checking out the other links/blogs on this site. I read a lot of complaining about Leetcode, most of which I think is valid. That said, something that's not discussed often is its effect on interviewee's mental health. I used to admin a large Discord server for junior software job hunters. It's pretty insane how many struggle from anxiety and stress directly caused by the interview formats popularized by Leetcode. The author here makes a pretty good point, honestly: >Leetcode is a competitive programming platform at its core, not an interview platform. I think this is where a lot of the stress comes from. Like the author, I mostly avoided Leetcode and focused on fundamentals (literally reading CLRS and implementing foundational algorithms).
- elseweather 5y agoAh, man, I get being anxious in interviews but it never occurred to me that newbies would be stressed out by their (lack of) Leetcode score. It's totally unnecessary of course - the people who've racked 1500 problems are probably as unemployed as you are :p
- imwillofficial 5y agoWhat’s a good way to pickup CS skills in a well rounded manner outside of a CS degree? Moving from Sysadmin to DevOps rolls and need to learn this stuff.
- hderms 5y agoThe algorithm design manual by skienna is a popular choice. The first half is more instructional regarding different classes of algorithms and datastructures and how they should be used while the second half is like an encyclopedia of descriptions of various algorithms. It's a very approachable read and I've found it to be a great book, all around. A lot of people recommend the super heavy tome textbooks, which could be useful, but I feel like from your description you'd be better off with this
- elseweather 5y ago1. Trial by fire; learning on the job 2. CS stuff is widely available for self-study if you've got good discipline. "The Algorithm Design Manual" by Skiena is my favorite textbook on algorithm fundamentals. CLRS is a bigger book with more mathy crunch, if you're into that. There's a lot more to computer science and software engineering than just algorithms, but it's what you'll get grilled on the most in junior level interviews. By the same token, the skills you need as you get more senior in this industry aren't really taught in school.
- MeinBlutIstBlau 5y agoI've had good success with some Finnish MOOC on java when I had a teacher who didn't even know what RAM was. I had to learn quick unfortunately cause she just graded if it was right to wrong. But even with probably writing over a couple thousand lines it code, I don't think I became comfortable with OOP until like 6 months in. Personally, I think C# and Java are the easiest to learn and I don't care what anybody says. C/C++ gets hardcore fast and makes things frustrating. Web Dev gets boring because you mess with html tags and css more than you do javascript.
- deleted 5y ago[deleted]
- 5y ago
- LordHumungous 5y agoNobody does 1500 problems. 100-200 is most common.
- cebert 5y agoI wonder ten years from now how common LeetCode like interviews are. These types of interviews favor those who have the luxury of ample time to prep for difficult interviews and aren’t representative of most daily working environments. This process fails to consider candidates that would be good fits. When I help with interviews, I place much more values on communication skills, teamwork, mentorship, and a general passion for technology.
- onion2k 5y agoThese types of interviews favor those who have the luxury of ample time to prep for difficult interviews... Interviews that test for anything that isn't directly related to the job the candidate will be doing are essentially codified discrimination - the expectation that someone will have a skill or significant knowledge outside of the job itself is effectively a way to filter out candidates based on arbitrary criteria even if they are capable of doing the work. In other words, Leetcode interviews favoring people with lots of spare time is by design, because that's who companies that use Leetcode want to hire. There is little reason to believe that will change.
- EvilEy3 5y agoNobody obliged to give you work. They gave you a task and you couldn't solve it, fair and square. I can stretch your logic even further that giving BE task to FE person is a discrimination because they don't have luxury to work on BE. Why do we discriminate against QA people who don't have luxury to work on dev jobs? Why do we discriminate against people who don't work as developers at all?
- onion2k 5y agoAsking someone whether or not they can do the job isn't discrimination. Asking someone if they know something basically unrelated to the job might well be. It could be designed to filter out people who wouldn't know that thing rather than filter in people who'd be better at the job. What is that if it isn't discrimination?
- ilaksh 5y agoSomewhat related: I have been recently looking for a new part-time project. In the past I have looked on freelancing sites for specifications, built demos, and usually within a certain number of days or weeks had a new client. But those freelancing sites are horrible. So I decided to create an alternative. Just deployed it today. https://postaspec.com https://postaspec.com. Submitted as "Show HN", apparently not noticed by anyone in any way. Would be awesome to at least receive one comment about it.
- cjohnson318 5y agoThe first time I visited this, the explanation of what it was didn't show up for some reason, but the second time around it worked. This looks interesting.
- ilaksh 5y agoThanks! At least someone clicked on the link. I just added an actual landing/home page. Before it went straight to the forum. Pretty tired but maybe tomorrow a designer can help make a real landing page.
- nirui 5y ago> We don't realize something important - Leetcode is a competitive programming platform at its core, not an interview platform. Yet, we fall into the trap of thinking it's an educational website. There is a word circling China's Internet call "内卷", which can be translated directly to Involution, but on the ground it actually means "Over competition" or "Doing zero-sum competition". People trying to climb over the others while preventing others from climb over them, so they created many arbitrary obstacles to block others. Keep in mind that, in Chinese society, 35 years old is equals to 70 years old (In many places, you cannot even get a gov job if you are over 35). Failing a competition can be really, life-changingly costly. So, it is rather a "standard practice" for Chinese companies to keep throwing LeetCode questions to the interviewee during a job interview (, after all, many of those questions are marked by LeetCode as "Interview Questions"). This method creates a lot of benefits for the interviewer not only for the interview, but also for later negotiations. Funny thing is, even though the top dogs in China got the best talented engineers in the entire nation, their public-facing products are still nothing but trash (or even fruaddy). And as for those engineers, many of them has their own big dreams, but they cannot realize it because the market is a highly restricted blood sea.
- Mandatum 5y agoCan anyone recommend reading materials on this? Not sure where to start but this sounds really interesting.
- ir123 5y agoSeconded, I have always felt icky about zero sum competition and my taking part in it.
- nirui 5y agoHere's somebody's write up in Chinese, which actually is the second Google search results for keyword "内卷": https://zhuanlan.zhihu.com/p/250474212 https://zhuanlan.zhihu.com/p/250474212 If you want to read official tune, here's the article about "内卷" among university students: http://www.xinhuanet.com/2020-11/09/c_1126713666.htm http://www.xinhuanet.com/2020-11/09/c_1126713666.htm Other than those publicly searchable contact. There are many nonpublic/deepnet information, for example, recruitment ads, under table HR rules etc. Here is a recruitment ads from Minhang District government that set age limit (from 18 to 35 years old) for no good reason: http://xxgk.shmh.gov.cn/mhxxgkweb/html/mh_xxgk/ggxxgk_xxgg/2021-04-21/Detail_107398.htm http://xxgk.shmh.gov.cn/mhxxgkweb/html/mh_xxgk/ggxxgk_xxgg/2.... And another one from Zhongwei City: http://www.nxzw.gov.cn/xwzx/tzgg/202103/P020210316319227293996.pdf http://www.nxzw.gov.cn/xwzx/tzgg/202103/P0202103163192272939... Case and point, this problem is widespread and kind common knowledge in China.
- lolzcode 5y agololz
- whycombagator 5y ago> Here's all you need - master 100 problems first, then slowly progress to maybe 200 more problems. Do it well, and you can crack several top companies. Memoizing 300 questions isn’t easy
- novok 5y agoThe point isn't memorizing, it's understanding. If you don't understand, memorizing will only get you so far.
- whycombagator 5y agoSure but one can understand quicksort, then forget how to implement it a month later. Or not be able to modify it to produce quick select. So really, you do need to memorize stuff. Maybe not questions per se, but certainly patterns and techniques (on top of understanding the fundamentals)
- Toutouxc 5y agoI still don't see the memorization part. The last time I touched quicksort was at uni, three years ago, I still understand how it works (choose a pivot, partition the rest according to the elements' relation to the pivot, then quicksort the partitions), and I'm pretty sure I'd be able to implement it right now. Maybe not in C, but in Ruby, absolutely. Understanding is the hard part, the implementation should be the automatic part. I mean, we're programmers, right? We know how to shuffle arrays around and return values from functions.
- uglygoblin 5y ago"I still understand how it works" is memory. Maybe you have an amazing memory but imagine 15 years later.
- Taylor_OD 5y agoRight. At some point I could write quick sort out in my head, on paper, in a terminal. Right now? Not a chance.
- deleted 5y ago[deleted]
- jitl 5y agoDon’t want to do Leetcode? Me neither — after I left Airbnb I vowed to not work at any company that asks this kind of question. I interviewed at a bunch of interesting companies (Airtable, Brex, Eaze, Figma, Lob, Notion, ...) none of which asked this kind of algo brain teaser question. There are tons of places out there with great product, interesting problems, and good compensation - so if you hate this bullshit, don’t give up. I interview candidates every day, and my impression is that a candidate from FAANG/leetcode company is no better or worse than any other candidate. Anywho, I’m hiring for a bunch of roles - full stack, Android, infra, SRE, early career, etc - if you’re interested in Notion (https://www.notion.so/careers https://www.notion.so/careers) ping me on Twitter @jitl.
- qPM9l3XJrF 5y agoWhat do you do instead? It seems to me that having tough interview questions can allow a company to be less credentialist, because they know their questions are tough enough that anyone who solves them is qualified to work there. My resume doesn't necessarily make me look like a senior developer, but leetcode mediums are no trouble for me and with a little effort I think I could learn to solve hards quickly and reliably as well. So I've got a comparative advantage applying at a company that has that sort of interview.
- jitl 5y agoWe ask questions similar to the work you'd actually do at Notion; see our interview guide here: https://www.notion.so/Guide-to-Engineering-Interviews-63876cbf0aa9455fa0f0ffc854b40f6a https://www.notion.so/Guide-to-Engineering-Interviews-63876c.... Looking at a smattering of leetcode mediums, I don't understand how someone being able to return "the elements of a 2d matrix in spiral order" (https://leetcode.com/problems/spiral-matrix/ https://leetcode.com/problems/spiral-matrix/) or use Kadane's algortith to solve "k-concatenation max sum" (https://leetcode.com/problems/k-concatenation-maximum-sum/ https://leetcode.com/problems/k-concatenation-maximum-sum/) pertains to building multiplayer software as part of a team.
- lentil_soup 5y ago
- hivacruz 5y agoThat's funny, I got anxiety not because I mainly could not solve algorithms problems (looking at you, graphs) but also because I could not beat my colleagues or friends who started to play too. I used to play heavily on CodeSignal, a similar website. They used to post daily challenges back then. But there, it wasn't about reaching the best time complexity or whatever: the number of characters was more important, like on Code Golf. You first try to solve the problem and then you try to reduce your code to the minimum. The level of anxiety was starting to be really hard to handle and I'm happy I stopped playing this. Also, writing creative small codes won't help you when developing real softwares that much since most of the times, small codes or one liners are terrible in terms of time complexity or memory. I learned a few tricks and a lot of things about how some languages work through this practice and by looking at people solutions but I'm pretty sure it would have been better to read some algorithms courses instead.
- legerdemain 5y agoYou really need to decide in advance what you want to get out of LeetCode. It has a lot to give. For example, some LeetCode questions are textbook problems. You really should familiarize yourself with them, but you will probably never see them verbatim on an interview. Other LeetCode questions are too tedious or time-consuming to do on a whiteboard in an hour. You will also not see them on an interview. For some people they can be fun brain-teasers, but if what you want from LeetCode is time-efficient prep material, you need to be able to tell apart these three kinds of questions. If you look at comments on LeetCode questions, you will immediately discover that tons of people treat LeetCode as a pissing contest for its own sake. Should it matter that your solution runs in 18 milliseconds and theirs runs in 15? Or that they code-golfed theirs into 200 characters? Probably not. On the other hand, most canonical problems do have canonical solutions, and you should probably know what they are. Knowing what to take from LeetCode and what to leave is almost its own discipline.
- dominotw 5y ago> Other LeetCode questions are too tedious or time-consuming to do on a whiteboard in an hour. Afaik all leetcode problems are from contest where thousands of ppl solve 4 in 1 hr. Its unlikely that there are questions which cannot be solved in 1 hr whiteboard.
- bradlys 5y agoLet’s hope they don’t upgrade the difficulty to that level. It’s already 2 in 45 minutes.
- dominotw 5y agoThey will have to soon. I think most ppl seem to hit that target pretty easily these days.
- legerdemain 5y agoNo, I stand by my claim that many LeetCode problems are too time-consuming or tedious to be effective whiteboard interview questions. It should be noted that whiteboard interviews are slightly similar, but not identical to IOI and other coding competitions. An IOI problem is not necessarily an effective interview question.
- hintymad 5y agoWhen everyone is a superhero, there will be no superhero. When everyone leetcodes, it is time to get back to fundamentals. So I agree with the author: grab a book, study fundamentals. Instead of memorizing 10 different dynamic programming problems, do study dynamic programming -- it's fun and it is useful in production code anyway. Instead of bitching about finding a shortest path of whatever criteria on a tree, do study backtracking. Instead of agonizing over how to build a LRU or a token bucket, build a LRU and a rate limiter. Instead of pulling your hair on implementing a concurrent queue, study The Art of Multiprocessor Programming. The list goes on and the process is fun.
- Kaizeras 5y agoIMO getting better at Leetcode problems is similar to getting better at mathematics and physics - you become familiar on a topic by doing problems on a daily basis, trying to wrap your mind around the concepts and at times doing a bit of drilling just to stamp the things that need to be memorized. Both require you to be disciplined and dedicate time on a daily basis, otherwise you won’t get further. Having the time to address this is absolute luxury to me. Only when I became relatively rich (I‘m coming from a poor background) could I consider learning Leetcode problems. Before that point, I was learning whatever earns me survival money.
- metalforever 5y agoI am from a poor background and I did the same thing. There was more important stuff to worry about than Leets. I'm only focusing on it because I'm already successful now and just want to take things to the next level and get "better" work.
- beforeolives 5y agoI'm going through this now and it isn't leetcode anxiety, it's interview anxiety. If you haven't had that many great opportunities in your career, getting a FAANG interview feels like your one shot. And yes, in your rational mind you understand that it's just a job and you already have one so you aren't desperate, there are many other companies too, and there will probably be other chances to interview at the same company... but the anxiety is still real.
- alexf95 5y agoFully agree. If there is any material available to prepare for the interview I will try to fully use it just to calm my mind about the interview itself. Because imagining myself in the interview and not knowing the answer to the one question asked that I could have prepared makes me do it.
- Gunax 5y agoDoes anyone else just enjoy leetcode? I think it's fun.
- jeffreyrogers 5y agoI like doing the dynamic programming questions.
- mordechai9000 5y agoI enjoy it, and I like working the Euler problems, but I'm sure I'd still crash and burn if I encountered it in an interview.
- carabiner 5y agoNo.
- wnmurphy 5y agoOnly after shifting from a goal-oriented mindset to a process-oriented mindset; I now just love improving my intuitive structural thinking ability, and LC is for nothing more than that.
- decafninja 5y agoI enjoy it as a standalone. I hated it at first, but it's actually quite fun as a standalone activity. I don't enjoy the fact that being a Professional Leetcoder (not a Professional Software Engineer) seems to be the requirement to successfully and reliably (as opposed to eeking through with luck) pass the interview gate at most of the better companies to work at (I'm not just referring to FAANG). I don't enjoy the fact that I need to put on a circus show act that pretends I can serendipitously come up with the optimal solution to a problem handling all obscure edge cases within 20 minutes. I don't enjoy the fact that almost everything I do at work is close to meaningless for career progression because very little of it is relevent to passing the interview (usually only touched upon in a "system design" round).
- dominotw 5y agoyea i do leetcode to "relax" and distract myself from life problems for a little bit. Almost like meditation but more relaxing.
- dhanna 5y agoI honestly think leetcode is a pretty terrible way to learn how to do algorithm problems, especially without a formal education in algorithms. The large test case bank is the most useful feature. The discussion and solutions shared on the site tends to be lacking in breadth and depth. I was happier to learn algorithms properly via the algorithms Coursera course taught by Sedgewick. The next time I need to go through the interview loop, I’ll probably start with Programming Interviews Exposed and supplement it with some other algorithm books as needed.
- jeffreyrogers 5y agoYou need both. The theory is important for seeing what class of problem you're trying to solve and to give you an idea of what general approaches might work. The actual problems are needed to get you skilled in actually applying the theory and for learning how to adapt the basic algorithms/techniques under different conditions.
- graerg 5y agoThis is so on the money. Leetcode/hackerrank are one form of practice, but they're not comprehensive. They're like a practice putting green or a driving range. Very useful practice, but they teach you how to swing the club not how to golf.
- MattGaiser 5y agoExcept all that interviews test is the driving range part.
- graerg 5y agoThis hasn't really been true in my experience. It's one component, definitely, but in general people are also looking to get a sense of how you handle yourself and communicate when you're stuck on something. Most people will agree that the point of interviews isn't to get the right answer, but to show that you can reason about problems and communicate well.
- collyw 5y agoAlternatively just refuse to do leetcode "challenges". As a software engineer leetcode is barely related to what i actually do in my job. Anyone who thinks it is a good way of evaluating candidates is a clown.
- nomy99 5y agoI started doing leetcode when the pandemic hit. I wanted to be ready in case I got fired and I have to do an interview... surprisingly I fell in love with it. I am one of those ppl that writes codes in their head, so I just look at a problem and go on with my day until I have a solution. Then I write it and test it out. It's enjoyable to me, and I have been forced to learn a lot of CS concepts I had forgotten and techniques I wasn't aware of. I don't approach it with the drudge of performance, but just as something I do now. Like other things in my life, basketball practice, namely. I am pretty sure eventually I'll be in a position I can breeze through an interview if I really wanted to, but that's not my goal anymore out of leetcode.
- phist_mcgee 5y agoI sure as shit hope you don't breeze through. Why should practicing mental leetcode questions prepare you for a job interview in the real world? In my company, you wouldn't breeze through, because we don't participate in 'whiteboard culture', or maybe those sorts of companies you have self selected out of?
- nomy99 5y agoI'd rather breeze through a process I've no control over. Don't hate the playa, hate the game!!!
- decafninja 5y agoYour company isn't the only one in the world though, and the sad reality is that many, many (I'd say in the US - most) companies use leetcode interviews. If you become a Master of Leetcode, you benefit from massive horizontal scaling that will make you ready to interview at a huge range of companies. As the parent posted, hate the game, not the player, especially since nearly everyone here is in no position to change the game.
- say_it_as_it_is 5y agoWhat do you love about leetcode problems? Mindset makes a huge difference.
- throwaway123x2 5y agoHow do you pick representative problems on leetcode? He says to pick 100-150 and master them... how do you know which ones to master?
- dominotw 5y agopick some from each pattern. Adjust more or less based on your comfort with each pattern eg: pick more sliding window pattern, dp, greedy vs pick less for binary tree/dfs problems.
- eulers_secret 5y agoThis is where I’m stuck: how do we know which patterns are possibilities? I’ve never seen a “patterns for leet code” website, yet. Further, how does a naive person know which pattern applies to a problem? Without that knowledge, how can I vet a learning resource and know I’m not wasting my time?
- dominotw 5y ago> i’ve never seen a “patterns for leet code” website, yet. https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed https://hackernoon.com/14-patterns-to-ace-any-coding-intervi... > Further, how does a naive person know which pattern applies to a problem? Without that knowledge, how can I vet a learning resource and know I’m not wasting my time? Problems in leetcode have tags under "related topics" and you can look at discussions to find out the pattern. That said, sometimes its not simple pattern matching. Its an itution that you can develop if you keep solving leetcode problems.
- goatcode 5y agoMore and more tech companies are beginning to hire for soft skills as a main emphasis, with basic technical skills as a given. They're tending to intentionally NOT hire l337 folks, with a lot of emphasis on avoiding the "brilliant jerk." So, if you are personally interested in the work, willing to learn, and aren't a jerk, you'll probably go further than someone who has traveling salesman memorized in 8 languages.
- resolaibohp 5y agoCurious what companies these are or where you are seeing this data. This has not been what I have seen, I actually think leetcode is becoming more and more common in interviews. Just adding some of my own anecdata.
- goatcode 5y agoThe last two companies I've worked for, and feedback I've gotten from product managers and hiring people. All of the interviews I've done over the past few years have used leetcode, or some variant, but most of them used it only as one dimension when considering candidates. If someone was leet at coding, but bad at team work, they didn't have a chance. The opposite position was far more favorable (I've heard "you can train people to have skills, so hire for the things you can't teach" more often than once). In fact, I'm seeing companies swing the pendulum a little too far away from skills, but that's to be expected, when doing this kind of balancing.
- pjmlp 5y agoFortune 500 consulting shops for example. Granted, this is most likely not where most HNers would not like to spend their work day, but it does have its own perks.
- hiq 5y ago> if you are personally interested in the work, willing to learn, and aren't a jerk, you'll probably go further than someone who has traveling salesman memorized in 8 languages. I'm not sure how you test the first three qualities reliably in an interview. The point of leetcode interviews is that they are arguably harder to game: if you manage to write some code solving some problem, you at least memorized a solution and somewhat understood it. Maybe you trust engineers to be completely transparent, but then you also let in a different kind of "brilliant jerk" (as you put it) who learnt to fake interest.
- say_it_as_it_is 5y agoOP doesn't seem to realize that leetcode questions are used verbatim by companies other than FAANG. Do you need to know how to solve leetcode questions? That depends whether you're going through the front door or the back door. If you're going through the front door, regardless of your experience level, you are going through the leetcode hazing process because that's what your interviewers did and they have no intention of having spent hundreds of hours doing work without a purpose.
- ramtatatam 5y agoBack in my uni times I remember helping out a few of my friends from CS course by doing pair programming with them (I myself was taking mechanical course, I was not good enough with math and physics to get a place in CS course). They was asking me how do I do this, that I sit down and start solving their problem like I knew the solution despite the fact I have seen each problem for the first time. I used to tell them, that if they cut through enough of problems they will be the same. From the perspective of time I think there was one thing that I had and most of my CS friends did not - programming was my hobby and I loved everything related with computers, they only wanted the end result which was good money and stable job. Would I do 1500 leetcode problems? Maybe when I was younger and had no commitments, but certainly not now. From perspective of years I see that leetcode is quite far from what I do on daily basis, and I do write quite a lot of code. If I went to the job interview and was given a problem I have never faced before I would want the interviewer to see me finding the solution and not giving memorized (or practiced) answer. If result was not great and interviewer decided I'm not fit for the role that's better outcome than to give false impression and then struggle (even if interview problem is nowhere close to what they do in daily basis).
- WWGaussDo 5y agoGreat site. Spot on in terms of trying to tackle the problem of preparing in a more sane way, and countering the beliefs we have that we need to be able to do XYZ to get a job. I think the reason that leetcode is so popular is because of so many software engineers underlying anxiety, sense of being unprepared, imposter syndrome. And when that’s already present, we look for solutions that flow into our emotional story. If I already believe I’m underprepared and that the goals I have are hard to achieve, I’m more likely to believe I need to solve 500 leetcode problems. I help software engineers resolve your underlying interview anxiety and stress around things like interviewing and preparing. If this is you, come talk to us :) tinyurl.com/happyhackers
- wnmurphy 5y agoI've recently been thinking about this a lot. The single highest-leverage action I've found for myself has been to shift my goal from: A. (destination) I need to get a top-tier job at a FAANG company. to B. (process) I want to develop my ability to think structurally, so that I can enjoy spending time with code by honing an intuitive sense of the pattern language of code. The former is future-oriented, stressful, feels overwhelming, triggers Imposter Syndrome and a sense of dread like crazy, etc. The latter is fun, joyful, centered in the present moment. It's much more motivating and rewarding to get excited about developing a meta-skill than it is to try to hit your target total problem/contest numbers and then run a completely separate gauntlet of interviews after that. If you want to be an Olympic athlete, you don't start from "I have to make these times, so that I can put myself in the highest pressure contest in the world." You start from "Man, I just really love (running|swimming|etc.)"
- nefitty 5y agoI like the mental shift that focusing on process entails. For your process goal, do you have a list of activities or tasks you do for that? Here are some of mine, although I’m unsure of relative ROI’s (maybe “return on investment” is antithetical to the process goal lol): - Read well-established repos and type the code, for example, I’m currently going through all of the React source and typing everything up as I read it - Add research comments and questions as I retype code, eg ‘// What is React Fiber?’ - Use typing.io to increase my typing speed - Use anki to memorize the most important API’s (this helped me learn Sequelize and GQL really fast) I might want to incorporate more “do it myself” projects, but I think my main focus is really grasping best practices and being able to scaffold my solutions with ideas from code I’ve already seen. I think that helps me focus on the logic of my solutions, and helps minimize bad “cowboy code” habits.
- Google234 5y ago- Read well-established repos and type the code, for example, I’m currently going through all of the React source and typing everything up as I read it How is this useful at all? If you want to learn you should actually start contributing to a project and get feedback that way. You don’t learn how to do math problems by copying solutions.
- travisjungroth 5y agoIt was very similar ideas that led to me making algo-drills. https://github.com/travisjungroth/algo-drills https://github.com/travisjungroth/algo-drills
- FL33TW00D 5y agoThe author says on the site to focus on a 1-2 resources. I have gone through CTCI but it seems lacking on explanation. Any other BOOKS (not online) that are superior?
- deleted 5y ago[deleted]
- carabiner 5y ago> Instead, pick a book or a course that teaches ~100 well represented problems. And don't pick a book or course that has only problems. Pick something that teaches you to think about them. The site doesn't actually list any books or courses that do this. It just states that bouncing around is bad in https://leetcodetherapy.com/interview-prep-today https://leetcodetherapy.com/interview-prep-today, but it gives no specifics for the right way of doing it. Maybe the reason that guy is bouncing around is that there IS no resource that steps through "100 well represented problems."
- daralthus 5y agoWhen starting with Leetcode you face two questions: 1. Which ones should I do to be prepared? 2. For a given problem how do I find the knowledge that should have helped me recognise and solve it? Imho, the Competitive Programmer’s Handbook [1] does answer these, every trick and pattern is explained in the most succinct way, in the order you would want to progress on leetcode to see all the basic problem formulations. Afaik every random interview question would fit into one of these. Let me know if you know a better one. [1] https://cses.fi/book/book.pdf https://cses.fi/book/book.pdf
- _greim_ 5y ago> Leetcode and other websites have conditioned us to think that we need complication. A paradox that's plagued me my whole career is that simple abstractions are less approachable than complex ones. Simple abstractions almost by definition create bubbles of private language, making it hard to use existing knowledge to bootstrap into new knowledge. Complex abstractions don't have this problem. I don't think Leetcode has conditioned anyone to think they need complication. I think beginners just find complexity more tractable, at least at first. Grappling with it feels like learning and doing. Leetcode rode that wave to where it is today.
- stylebender007 5y agoYou have given words to my lifelong struggle. Honestly I have done great in every part of life except competitions. During my school I always score good marks because there were only few books ,( to reach the bar ) , after that due to my issue with perfection, I have always put extra effort and I was successful . I had a very fulfilling schooling with great academic as well sporting results ( National Level Table tennis player) . Then comes entrance exams . As a person who have always done well in tests , encountered a whole new world of competition. I started reading lot of books for the same subject , never satisfied , I had been a victim of maximum resources and minimum learning. Too be honest I never reached the bar to pass the entrance. Had I been focused on few resources I am sure the story would have been different. I took engineering and again make the same mistake of maximization of resources and never reached the bar. Completed engineering , now comes the interviews , again made the same mistake. I had lost confidence in all my abilities and stopped applying for roles. After few months I started freelancing and worked well with clients because there my maximum resources model worked. Now I have significant money to take 6 months off and really start from bottom at preparing interviews. Hope it helps somebody.
- dshia 5y agoI agree that you only need to master 100, maybe 200, core questions then solving 1500 leetcode questions is only a time problem. However, most of candidates are not reaching or even closing to “master” level. For example, given a question, can you immediately figure out the real problem you need to solve? What kind of algorithms and data structures look possible or useful for this question? Do you clearly understand the time complexity of each possible algorithm? Can you explain the solution quickly and clearly? What about other alternative solutions?