Edit: I need to practice leetcode because the interview process for almost every software engineering role (especially in the Bay Area) seems to require going through at least one round of coding challenge based on leetcode medium/hard problem. I did not call it out earlier because I thought this is a very obvious point. Perhaps, I should have clarified that I am mostly targeting software engg roles.
Motivation certainly doesn't work like that in my brain. Consistency in pursuing goals I know on paper are the right choice despite lack of motivation is the only way I've achieved anything.
If you can wed career goals with dopamine, that's wonderful! But I suspect you're extremely lucky.
Then there's "Oh jesus how terrifying and embarrassing would it be to not have a great answer" coupled with "The people I idolize the most work in theoretical CS".
It is an issue simply because leetcode grinding makes me feel like all my 10+ years of commitment to my previous employer (often foolishly at the expense of my personal well-being) and all the things I have contributed and picked up on the way mean nothing / nada / zilch to my future prospective employers. The whole prep process makes me feel like I need to start from scratch and nothing that I did in the past matters at all. I find this extremely frustrating.
You can't change the past, and you can't control how companies interview. Focus on what you can control.
You have to accept this on a visceral level.
Alternatively, remember that the reason the company is making you jump through these hoops is that there are many other candidates who are equally qualified.
like asking people to accept that 1+1=3. or that the day after Monday is Thursday. maybe that's the real function of these hoops -- selecting people who are good at doublethink
If the goal is to keep your motivation up, you have to find some joy in the activity itself.
Only those who can't or won't invest time creating a meaningful interview process fall back to leetcode.
The leetcode hoops exist to provide a provably objective measure for hiring, even though that measure is unrelated to job performance. It's purely a lawsuit avoidance mechanism.
If Leetcode is just a means to an end for you you're probably not going to have a good time.
You don't have to do the leetcode there. Can sit there for the whole time staring at the wall if you like.
But if you're doing anything there, it's leetcode. Your brain is a pattern matcher. It doesn't like boredom. Thus you can train it, a bit like a dog.
> We all know skills in programming are important
>But it is not just writing code, but also solving problems quickly and with the right tools.
>Before doing leetcode, I didn't really know how to tackle the challenges I was presented at work. I would still perform, but not like I do now, being on the top 100 leaderboard
>also please please hire me please I am starving
Leetcode is pretentious bullshit for american HR departments.
On the more abstract motivation side, despite the somewhat contrived nature of the challenges compared to day-to-day work I have treated it as a learning opportunity as there is genuinely some interesting stuff in there and there you never know when it might come in handy.
Any company that wants me to regurgitate toy problems that don’t have any relevance to the role is not one Im willing to bother working for.
I fee like if you’re “grinding” the goal is to memorize the solutions, which is kinda defeating the purpose anyway.
I can afford to leave that money on the table at 51, grown kids, downsized to a condo in central Florida with just me and my wife. But in my case, it’s not even a trade off between not grinding leetcode and not getting (back) into BigTech. It’s just that I refuse to ever work in an office again.
The “goal” is to make a lot of money in cash + RSUs (public BigTech), if I were younger I would definitely do it and I encourage all new grads to do whatever it takes to get into a high paying tech company and then give them advice on how to play the game once they are there.
In a world with both Google and AI, why does anyone expect you to memorize the solutions to problems, especially to problems that won't actually be the ones you need to solve on the job?
But I wonder if, in order to get a job with the "just say no" approach, you need to leave the Bay Area. I wonder if most places there are so into the "that's the way it's done" that they can't see the absurdity of it. Other places in the country don't seem to be as infatuated with leetcode. But if you're determined to stay there, then it may be a search to find someone who doesn't use that standard for interviewing.
So you have a choice. Would you rather grind leetcode, or would you rather grind the job search for a place that doesn't interview that way?
(I had decent success with Robert Half. They're a recruiter that actually has a clue about tech people. They can work with more senior people, which 10 years qualifies you as. I forget whether they were the ones that led to my most recent role, but I remember being impressed with them as headhunters. They may be worth a shot in your situation.)
Yes I realize those are the types of jobs most developers had - and the same types of jobs I had from 1096-2020.
When I hire grads or juniors onto my team I will focus a lot more on leetcode style problems because a) they don't have much work experience so delving into real-world problems they have solved is typically not useful (exceptions there) and b) leetcode is usually closer to their recent experience which tends to be more academic in nature.
More senior roles typically have very different requirements. I don't need a staff or principal engineer to pass a leetcode test as it typically isn't relevant to that role. I respect their lived experience so I dive into real world problems they have solved, not just software but also people, culture, etc.
Rather than dealing with people on real problems.
I'm currently getting interviews. For work that I know from having done it for twenty years that coding is only a small subset of. But the emphasis is far more on coding than application of experience gained to overcoming similar problems quicker the second, third or fourth times I'd be working them.
It's sad. I'll certainly just say no to leetcode for the kind of engineering I'm looking for. Rather go do some (paid) gardening.
Or accept that you're filtering for pain tolerance of nonsense and the people you get will put up with grindy nonsense in your company. Which could be a blessing or lethal, depending on what you're doing.
I mean, if you're Google, and a small improvement in algorithmic efficiency means needing a thousand less servers, yes, you want people who know that kind of stuff like the back of their hand. Most places aren't Google, though. Places that interview like Google that don't have Google-like problems have a mis-fit between their interview process and the roles they are interviewing for. So, places that aren't really on top of what they're doing as an organization.
Let's not assume that. There are places that have trouble finding people that can code at all.
If it's a claim, I don't think it's as true as you do. You made the claim, so you have the burden of proof.
And if it's just an assumption, well, I don't assume that either...
Because the job market is very different today.
Two companies still hired me after telling them this. I don't think it would work for juniors, though.
I accepted that mastering algorithms was something I needed to do if I wanted to break into my desired income bracket.
So I leaned into the premise that I was a Leetcode grinder. And I spent 6 months during COVID doing only that.
I went from never having solved a medium on my own to being able to solve almost any medium in < 5 minutes (sometimes < 2 minutes).
I landed a job in HFT fairly quickly once I started interviewing.
You need your life to be so boring, and so full of non-intellectual chores that you long for an hour to look at code again.
This borders on facetious: but try becoming a manager, having kids, or becoming a hermit, I did all three and my side gigs / study was never better than during that time. I learned to just remove fun until the chores were fun. Like how carrots are actually really sweet tasting if you stop eating sugar.
Actually, unwittingly, problem solving being a common organizational behavior, and most algorithms being a blueprint for optimal problem solving; maybe get curious and shed the incline that they are merely academic?
Anyways, I did this, myself recently. I picked up CLRS and read it, omitting or skimming the proofy sections, opting to focus on design and intuition, which is troublesome when they begin to overlap. I hope to revisit it. It's a nice space to be in, a blissful stroll through pedagogy, little history lessons, easy stuff.
As I progressed through the readings I worked a healthy number of problems. Lots of struggle and pain working exercises, opting to avoid hints or shortcuts and spend hours and hours to internalize. This part stings. No one likes to bathe in the lather of their own ignorance, but it can be done.
If you feel you have no choice, though, I wonder if you could try to gather together a group of people who are in a similar situation, in order to do practice sessions. Each person could take turns explaining a leetcode problem on a whiteboard. It would give you interview practice, help you make networking connections, and hopefully make the task less boring and introduce an aspect of accountability. I think you'd have to be careful to make sure that the people involved were friendly and helpful, not make it about one-upmanship. Anyway, that is what I'd do today, if I had the problem that I needed to pass leetcode tests.
Isn't the prospect of upcoming technical interviews motivation enough?
Its easier to say "I just didn't study and that's why I didn't get the job" than it is to say "even though I spent a bunch of time optimizing for this interview scenario and know I absolutely aced the technical interview, they still didn't like me."
Heck, I've been in interviews where I found the technical aspect a relatively easy bar to pass, and I blurted out something strange just to sabotage myself. If they can look past that and still see that I know what I'm doing and bring a lot to the table, I know they are people that I can do my best work with without needing to be constantly second guessing myself in conversation.
Some companies seem to forget that interviews go both ways, and that job candidates are screening for something different than what companies are screening for.
I would have never applied to Zoox had I known up-front that I'd have to wait for so long to interview with them again.
- give yourself a concrete algorithm practice goal, such as "get through Blind 75" (it's a list of 75 questions you can find online).
- practice using data structures and also implementing whatever your language doesn't provide
For context, I just spent most of the last two months doing a job search in the Bay Area. Did final round interviews at several companies ranging in size from a few people to a few thousand.
I encountered exactly 1 (one!) direct leetcode problem during my interviews.
Personally, it's because I'm not going to use that in my job that I find leetcode entertaining. I don't feel like I'm working when playing leetcode.
1. Measurable, manageable goals. Don't toil for hours on end. I set the goal of 1 hard, 2 medium or 3 easy problems a day. And if I get stuck I consult chatgpt study to help direct how I should think about a certain problem.
2. Make it competitive. At least for the actual leetcode site you see how your run time and memory consumption stacks up against other users. I try to be the best in one or both. This can also get at run time and space complexities. You can also see the solutions for the fastest run times which can teach you some lower level ideas for the language you are using. I learned about holey arrays in Javascript due to this and how certain conditionals are better optimized for v8.
So first step is to really understand the theory, if you're not completely confident, or feel that there are obvious blind spots / gaps.
Next up I find it easier to classy the problems by type. Truth is that most leetcode problems are variations of more general subclasses. You'll have the knapsack problems, and other types. Learn to identify these, and study the more generalized versions of these problems, before you start solving the more specific versions.
I'm not saying that grinding is useless, because it can help you on speed and increasing your chances in stumbling on a problem you've solved before. The truth is that there's also an element of speed / efficiency to the LC-style interviews. But I think any sort of grinding should come after all the other things I've mentioned.
I mean we all know those things are stupid and an employer who puts stock in them is defo not someone you'd wanna work for, cus they are building teams on stupid principles and clearly dont have a clue about making software.
I'd say spend your time building something you always wanted to. That will really show off your skills.
The way I approach this goal is by shifting my time between reading a book about algorithms and solving problems.
Is this a uniquely US thing ?
It's probably a big corpo thing.
Having basic algorithm skills is pretty useful in general, but going down the "leetcode grind" doesn't strike me as being worth the effort for the vast majority of software engineering jobs.
If serious, it was and still is a common screening tool for big tech and many other shops around the world.
I've never been asked to "grind" leetcode, I've never been asked a leetcode style question at any interview I've had (and I'm in my mid 40s). I've never had any feeling of needing to do leetcode, and as far as I know neither have my friends.
The reason I asked if it was mainly a US thing was because I assume (maybe wrongly) that the majority of HN users are in the US, and this leetcode thing pops up a lot.
> I've never been asked a leetcode style question at any interview I've had (and I'm in my mid 40s).
For this anecdote to be relevant, you'd need to have datapoints from "big tech" qualifying jobs.
Glossing over this qualifier pattern matches with snarky comments.
Only you can decide this. I'd be looking at options outside that fiendish bubble already.
Get back to interviewing. Consider a job away from the Bay Area.
That feeling right there? Channel that into Leetcode. Your fist is your keyboard, their face is a working solution.
Vindictive spite is a very powerful motivator, even when it originates from fictional situations. The trick is to channel it into productivity instead of negativity.
13 years as a dev, many jobs, countless interviews, and I have never once solved, been asked to solve, or even attempted to solve a leetcode problem.
Reading people talking about what they do here it sounds like voluntary torture. I would quit being a dev if that’s what it took.
OP: I’m saying maybe you don’t have to join them. Get out of the mindset. Find jobs that value your time.
I was perfectly happy making $150K living in a 3200 square foot house I had built in the “good school system” in 2016 for $335K.
> I’m saying maybe you don’t have to join them. Get out of the mindset. Find jobs that value your time
Companies “value your time” by paying you to exchange labor for money. All other things being equal, I would rather trade my time for more money than less.
I have made the trade off in the last couple of years now that I’m out of BigTech to value working remotely and stress free over BigTech compensation. But let’s not blindly pretend that you aren’t making the trade off by refusing to post the game.
[1] A remote interview opportunity/job fell into my lap working at AWS Professional Services. My speciality was cloud + app dev. But the interview process was all behavioral. I’m not suggesting trying this route.
B) if they can, how’s that working out for you?
C) you’re saying if I make myself suffer for several months I can have the privilege to work at one of the single worst companies on the face of this earth? _sign me the fuck up_
None of us are out here feeding starving children. Why not trade your labor for as much as possible? If I were 25 instead of 51, I damn sure would think the trade off was worth it.
Yes I did spend almost 4 years in BigTech and would rather get a daily anal probe with a cactus than do it again. But don’t underestimate the life changing difference in comp that a software developer can make in BigTech.
Make it a daily habit. Keep tapping your network, and good luck!
I’m currently employed but if I lost this job I don’t know if I could do it again. I have enough savings to make it to retirement if I cut back expenses. I’d hate to blow it all not working for several years though.
I’m really really not happy with the field now. The whole agile and seniors “leading” projects where we do literally everything is complete bullshit imo. Hey manager wtf are you doing? Hey product owner make one effing decision this week! It’s infuriating.
Mix it up with some easy, medium, and hards.
I genuinely don't find it fun to solve puzzles unless they have an application/ end goal in mind. Tell me to find cycles in a graph as a puzzle and I'll roll my eyes. It's worse if you ask me to do a topological sort for detecting cycles using some named algorithm.
Ask me maybe to verify that a CI verification sequence is valid, I'll probably be interested.
I understand that leetcode problems can be abstractions of everyday problems you might deal with at work. But I find them too academic, robbing people of rich context of actual problems. They don't teach you about how to draw equivalences between actual problems and their models.
But most people aren't, not even developers, so they probably take people straight back to school days and anxiety inducing exams.
Your motivation lies in the answer if you have any.
Money alone is not a motivating answer unfortunately, because our subconscious (soul if you will) truly does not care about money and wealth itself.
But unfortunately again it is the only real sustainable source of our motivation.
There are companies that do not do this shit or at least do very basic just to make sure you’re not a fake programmer. Why do you need motivation to learn leetcode simple? It’s mostly a very basic CS and something you should know already as a developer.
Talk about people grinding punch cards when calculators are about to wipe them out
Meta by the way is changing the interview process and it's not leetcode anymore but AI assisted problem solution.
Personally, I'm training up on: infrastructure, systems administration, security and software-architecture - because these are harder to train on given a longer "write->test->repeat" cycle, although I'm not in denial that they too will be disrupted.
Writing code for any problem - especially Leet-code style problems - is going to be solved by AI eventually. Don't be left behind.
I guess it comes down to the kinda work you want to be doing. I myself love building products and product features and I've never really needed any leetcode knowledge for that (I don't work on products with a massive user base). I suppose if I had a problem that required a specialised algo, I'd just consult a few AI tools.
Good luck finding that motivation though.
Now that I have a wife and kid, its very easy to find motivation to do things I don't want to do to provide for my family :P
You resent being a wage slave being forced to do this.
What can you as an individual do about this? As you already know the answer is nothing. Which further demotivates you.
The answer is to separate the concerns.
With regards to demotivation, resentment etc. - read some Noam Chomsky or Karl Marx or Bernie Sanders. Go to a few local Denocratic Socialists of America meetings and talk to the one or two people there who are not just the usual weirdos who show up at political events. If you want to hit back at companies forcing you to do this, and be able to stand proud and not be a wage slave slug doing unpaid grinding of Leetcode without a paycheck, this is the only way to hit back, if only in a small way. These things change collectively, not individually. You might feel better.
Then - suck it up and start grinding Leetcode. Think about how it's cool you just learned to implement Dijkstra's flag algorithm and the like.
If he isn't motivated already then there is something deeper.