5 years of leetcode with no progress. I'm giving up

123 points by QuitProgramming ↗ HN
First some background, I have an undergraduate degree in computer science and one and a half years of professional coding experience which ended when I got fired for performance issues. I have worked diligently at Leetcode for those 5 years (exceptions occurred when I got ill). I have been personally coached by a google software engineer for months. I have done and given 100s of mock interviews and paid for some to be done by professionals. I have spent 100s if not thousands of hours on Leetcoding and algorithms trying to improve in any way I can imagine. I'm still not good enough.

This all came to a head yesterday when someone on Leetcode made a post about being able to solve every single Leetcode problem in a year within a year while managing a post doc degree and having almost no programming background (link at bottom of post). It made it clear that Leetcode is a game of talent not hard work. The difference between someone like her and someone like me must be noted by the programming community. The majority of people would not ever be able to accomplish that. I dedicated myself for 5 years to Leetcoding almost exclusively and still am no where near what that person has accomplished. I have put in much more work than that person and have gotten much less from it.

I believe the programming community can learn from this contrast. The culture of always trying harder and thinking success stories apply to everyone that is pervasive in programming circles is toxic. The is reality not everyone is lucky enough to be intellectually gifted to succeed and not all hard work pays off. I am proof of that and this is the type of story that needs to be shared and heard too.

I am quitting programming out of humility and recognition of my limitations. It’s ok to give up and wise to do so when you aren't good enough for something.

https://leetcode.com/discuss/general-discussion/1108530/leet...

215 comments

[ 3.5 ms ] story [ 281 ms ] thread
Yeah talent matters a lot and only a small percentage of the population is cut out for intellectually demanding activities like leetcode or any type of programming. People on forums like these are usually living in a bubble, you shouldn't take advice from them. Try to find something else you are good at.
Thank you for a comment. It's relief to find someone who has a perspective that lines up with modern research on intelligence. There is so much denial as so many of these people seem to think everyone is more or less like the people they work with and don't understand how even the dumbest person at the office is probably 2 standard deviations above the norm of intelligence. Even higher probably if they work at a really desirable company.

I've scored as low as 112 and as high as 127 on officially given IQ tests with the average being around 118. I'd be interested to know if you have any advice for someone with that level of ability.

From your whining I'd have assumed you've scored in the 90s. So you're talking in such a deprecating manner about being in the top 15 percentile? You need therapy, not leetcode
I don’t follow your conclusion. Where did you fail? “I’m still not good enough” means after 100s of interviews you didn’t get an offer? I don’t think you should quit — perhaps there’s just a better way to go about getting a job: how are you at networking
(comment deleted)
I am not good enough to pass FAANG interviews.

I am very bad at networking.

There are other companies other than the FAANG ones. :shrug:

I hope you find something that works for you.

I'll post the cliche quote so no one else has to:

> “Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.”

It's important to be able to recognize that some skill or profession just isn't for you.

It doesn't mean you're a failure, it just means you haven't found your true calling yet.

Wishing you the best OP!

Well, some people are not "geniuses" in any field, and "true calling" is just a mystical new age thing.

Being good enough, enjoying what you do, getting better if/when you can are more important. And of course, making money and creating things while doing it.

And some of those "genius" stories are just BS leadership cult. Zuckerberg, for example, was just a mediocre programmer compared to tons of regular 100K/year or less working programmers and insignificant compared to famous devs from Brian Kerningham all the way to Jamie Zawinsky, he just had the right timing, the right connections, and the ability to build a rudimentary service all the way through, which is basically what it took.

Zuckerberg wasn't a mediocre programmer. He was an accomplished programmer who had shipped industry-level code by the time he was in high school. Adam D'Angelo was a USACO gold medalist.

https://xkcd.com/386/

That's why he shipped all code inside one controller.
did you also try writing code as solution to practical rather than just theoretical problems?
> The culture of always trying harder and thinking success stories apply to everyone that is pervasive in programming circles

Is this culture pervasive in programming circles? I thought that (for better or worse) programming circles typically had a culture that hailed being "lazy" as virtue (the idea being it leads people to automate things, which is often what they should be doing).

You need to understand something before you can automate it successfully. So you "try hard", improve yourself, and then automate the things that you do not care to think about any more. Being lazy should be in triple quotes with /s added in bold. Engineers being lazy just means they know how to delegate menial work to computers and keep the interesting aspect for themselves. It takes a lot of effort to get to that level.
Hacker/programming/startup culture can have seemingly conflicting values.

On one hand, there's a belief in autodidacticism, the ability that anyone can teach themselves anything, through cleverly-applied effort and sheer will. Learn to code without a degree, teach yourself a coding (or verbal!) language in 24 hours, continuous self-improvement. Being able to become a great programmer, or at least a great whiteboarder who can pass any FAANG interview through sheer will and personal development, is part of this ethos. It's what the Leetcode/Cracking the Coding Interview grind promises. Universal self-actualization.

On the other hand, there's the belief in innate talent or genius, the 10x engineer, unicorn rockstar ninjas. The existence of people more talented than others doesn't contradict the previous point, but it could potentially lead to contradictory behavior- companies that pay lip service to the idea of anyone can code, yet seek only to exclusively hire the very few who are naturally great coders.

Laziness as a virtue can fall into the domain of either. You can make yourself smart enough to see everyday situations as systems to be automated and reduce effort. Or you might be inherently skilled enough to do it naturally.

What is your definition of progress? What specifically are you giving up on? What are you not good enough at? I see your frustration, but it's hard to understand what you believe your failure is.
Not being good enough after 5 years to pass a FAANG interview.
This has to be a joke mocking the obsession some parts of HN have with LeetCode and interviews.
your ability to solve leetcode problems has absolutely nothing to do with your ability as a computer scientist or software engineer; most of my friends haven't ever used leetcode (or even heard of it?) and have become CS PhD students, CS professsors, technical founders, open source maintainers reaching millions of people, and software engineers at assort big tech cos. The culture surrounding leetcode and gaming tech jobs is really toxic and you shouldn't let yourself get sucked into it.
It's toxic, yes, but recruiters seem convinced this is how you get quality software hires, and so we get stuck playing the game.
Agreed!

It's no way to live drilling dumb little puzzles; there's this prevailing attitude that we should be grateful or it's not a big deal. But for me, it's been nothing be joyless, and I've found a lot of satisfaction working at companies that don't require these charades.

>The culture of always trying harder and thinking success stories apply to everyone that is pervasive in programming circles is toxic.

That's true.

>not everyone is lucky enough to be intellectually gifted to succeed and not all hard work pays off

That's also true.

The part about quiting programming though is a non sequitur. You don't need to have innate talent to do something, or even to do it well, you just need to get good at it.

And you can get good enough to do things without getting genius level great, or even good at the level (or with the ease) of the person with the innate talent.

Know the old adage "good enough to do some real damage" (damage meant complimentary, as in "to do stuff")? That's the spirit.

The industry needs tens of millions of programmers, for all kinds of levels, not only innate-talent-software-gurus.

I don't even know what leetcode is (I assume from this post it's some kind of education site, or a website with problems to solve to get better, like Project Euler or something).

Broadly speaking, leetcode is a broad set of challenging coding problems that usually have to do with data structures/algorithms and O(n) optimization, that are often presented without much real-world context that relates to the job you interview for.

Leetcode.com is a site that preps you for interviews like that and claims to have the interview question sets for FAANG and FAANG-like companies.

>And you can get good enough to do things without getting genius level great, or even good at the level (or with the ease) of the person with the innate talent

Maybe. It depends on how much innate talent you do have. Talent isn't an on off switch. It's a spectrum. It's possible to have enough talent to be a genius, to be just below a genius, to be good enough, but also to not even be good enough to reach a minimal employable threshold. It depends on the person.

>The industry needs tens of millions of programmers, for all kinds of levels, not only innate-talent-software-gurus.

But who gets the best rewards?

The best (usually) get the best rewards. The not-best rewards are still good enough to be worth getting, though.
I have done the calculations and only the FAANG level companies will get me where I want to go when I want to be there.
Have you considered working for non-FAANG companies for a little while, while you build up your skills on-the-job? I was nearly in my 40s before I got a job at one of those “top” companies, and it wasn’t for lack of trying.
I worked at a bottom tier company for 1.5 years. I got fired and hated my time there. I never want to repeat that experience.
You were fired from a "bottom tier" company. No offense, but what makes you think that you will survive the much higher expectations at a FAANG long enough to retire? I personally found that to be much harder than getting into one. For the record, I believe most people can get into FAANG with some (or lots) prep work, but if you think that regurgitating Leetcode is the only thing you need, I would highly recommend revisiting this assumption. Perhaps start with those social skills you mentioned elsewhere...
Strong +1 to this. I passed the FAANG interview after solving 100 leetcodes, mostly medium.

Being able to show up and do the work is table stakes –– and yes, I actually write efficient algorithms in my day-to-day because we process massive amounts of data. But the algos I write were invented 50, 60 years ago. My leetcode study process was to look up the solution and then memorize it through rote practice. Why reinvent the wheel? I'm not trying to win a Turing prize here.

But your intellectual mettle and day to day happiness in the company is tested by your ability to deal with people.

>only the FAANG level companies will get me where I want to go

So? You might never go "where you want to go" (some monetary compensasion?). It might be unreachable or a pipe dream for most and/or for you.

>But who gets the best rewards?

Somebody else. Which is the case for 99.999% of the population, so?

Being part of that 99.999% doesn't seem to be a good life.
Deffo a troll post lol.

Also if not, the fact that you went through all that effort and time is definitely worth something. You can probably smoke most non-tryhard company interviews.

What are you trying to do, and why do you think leetcode is a way to get there?

Do you come from a credentialist culture/upbringing? There are many programming jobs out there where people don't care about your school, your GPA, etc. Also, don't believe some random person's post about what they do or don't do. People often lie or exaggerate. E.g. "oh man, I barely studied but I still got an A".

You seem to be suffering, so I don't want to pile on, but it seems kind of crazy to me to spend 5 years on a particular approach to getting a job. Is there something else that's limiting you? Hard-to-understand accent? Language Skills? Social skills? Resume typos/grammar? Contact list? Trying for jobs that are out of reach, when other satisfactory jobs could be in reach?

EDIT> I've never done leetcode. I've looked at Project Euler, but I have my own interesting side-projects to do instead of jumping through hoops for someone else.

Why do you want to program? What do you want to program? Programming is a tool and a craft, like literacy and creative writing. But it is in service of some goal or just the pleasure of doing it.

lol, EDITFAIL

I want to make money to pursue other pursuits with financial security. I also like it decently and thought it was my best shot I had to make money.
Why not just go pursue those other pursuits then? I'm not connecting the dots here on how working at bigco helps the long term goals instead of just delaying them.
They cost money rather than generate money.
So the goal is to generate money? Why not try for the big stock trading/investing firms then, those people tend to make more than the tech people.
Yeah, this practice about people posting ridiculous things, "I did all of leetcode in a month with only a case of red bull and a palette of ramen". Give me a break. These types of sensational headlines are OUTLIERS, they are not useful to average people or beginners, in fact they engender imposter syndrome. The fact is, anyone who is on leetcode for 5 years and got a CS degree and worked for 18 months as a coder, is going to be decent with computers and could at LEAST do IT or support, if not work as an entry-level coder at a variety of firms.
He got fired for performance issues. I think the last part of your last sentence is the key here - he needs to get any entry level job he can to fill the gap and show that he can perform in a job for a few years.
I am trying to get a FAANG level job. People have always said if I keep trying it's within reach.

I have no credentialist upbringing.

There are other things that are limiting me. I have no network and bad social skills.

I'm not sure. Programming is more within reach than FAANG is. Don't look at "getting into FAANG" as equivalent to "able to program". They are not at all the same.

I don't make FAANG money, but I make really good money. It's not enough to retire at 40, but it's enough to have a pretty nice life.

I'm only interested in FAANG money and being able to retire early. Those are my goals.
Sounds like you have the wrong motivations for a career in software engineering. No offence but I wouldn’t want to work with someone who is purely in it for the money and people can easily suss out that kind of attitude. If you don’t have passion for the job it’s going to be hard to succeed in your goals
Why would someone with passion for software choose to work at repugnant FAANG companies?
Because you get paid more than other companies and ethics is low on the list of priorities.
Considerably more, in some cases.

Not a lot of employment options like that anywhere and in any field, outside of being an executive, pro athlete, or other one-off / superlative opportunity.

And even if you're not an E6 or "Principal" or something, the Big Name on a resume opens doors later.

There are many ways to retire early. Entrepreneurship, investing, hitting the jackpot at a startup. This FAANG focus may actually be detracting from your goal.

EDIT N> I see I might have misunderstood your post. You've been working on leetcode while at school and at your first job? Therefore the gap between the end of your first job and now is not five years? Okay, that's great! So ignore this part...

<<< Think of the opportunity cost of not making (I assume) decent money as a programmer at the start of your career. With five years of programming experience on the job, you might have been able to land a team lead or high-level individual contributor role, with all the compensation and marketable skills that come with. Extra disposable income invested in low-risk equities like index funds over the last five years would have had a huge return. >>>

Or, for that matter with a few years experience on real projects at real shops, you would have the skills that might actually get you into FAANG now.

This is actually making me a bit angry at Leetcode for possibly misrepresenting the utility or importance of their product.

Given all that you've said, I would suggest getting out there and getting any programming job that isn't losing you money to build up your finances, resume, and network. You had one bad experience -- don't let it define you. People get fired because their manager had a fight with their partner the night before. There's a huge amount of random noise, and FAANG, leetcode scores, even performance reviews are not a particularly strong reflection on you or good estimators of your future prospects.

This school -> leetcode -> FAANG pipeline simply isn't how the real world works. Sorry!

EDIT> Social skills are learnable to at least a competent level, and the number one way to get contacts is to work more jobs. I used to be too shy to hand out my business card -- now it's super easy. A friend of mine is neuro-atypical and has massive social anxiety, but has worked as a bartender in the past -- all just scripts and social "macros".

EDIT2> Good Luck! Don't give up on programming, but take care of yourself, and maybe take a break. Maybe work on a coding project that you find interesting but that has no goal or ulterior motive.

EDIT N+1> It was typical when I graduated to do anything and everything to get 2 years of professional experience, and then to go for your desired job. The experience outweighed any other concern w.r.t hiring. So I definitely wouldn't give up after one bad experience. Also, I suggest you recalibrate your expectations to work up to FAANG by getting jobs at other companies first. It's almost certain that real on-the-job experience will count for much more than scores on some programming site.

I'm extremely interested in the neuro-atypical friend and him learning scripts and social macros. Could you expand on that?
You took away the wrong lesson from his post. But if you are autistic (I get a feeling you are, as so am I) , you should look for institutions who help autistic adults learn social skills. These are dependant on your location, and up for you to find, I'm afraid.
I don't think it's for you or anyone else to determine what the appropriate take away from something is unless I made a purely a logical error. The person mentioned a variety of points and the most unique and helpful one was the one on social skills. Many other people have suggested all the other points the author has mentioned already and I have considered them.

I am interested in your story as well though. I am not autistic, but I think I have the similar defects that could be resolved with similar solutions. Could you give me an example of such an institution?

Trust me, you sound quite autistic. Seek help, therapy assists in seeing yourself from different angles, and realise life and yourself in ways you haven'tbefore. It helped me become a whole pperson, and move in a better direction.
Friend told me that they had serious social anxiety. Also they're on the spectrum. One on one they seemed quiet when we first met, but not pathologically so. However, when we're out and about they tend to not speak to anybody, whereas I'll say 'hi' to my neighbours. In small groups, they tend to be super-quiet and to self-medicate with alcohol.

So, I was really surprised to find out that they had worked as a bartender. I can't give specific recipes, but there are forms to a lot of small-talk. That's what I mean by "macros". Of course, misfiring can lead to the hilarious/awkward interactions like "Happy Birthday! Thanks, you too! Doh!"

Things like looking at areas of the face that aren't eyes sporadically can help with making at least intermittent eye contact, if that's uncomfortable for you.

This seems to get better with age, although not to go away. You just develop more habits and skills. As I said, I used to be too shy to hand out my business card at first, but it just becomes a habit. You can practice it.

On the one hand, viewing social skills as skills to be learned can help, but it can also lead to IMO anti-social behaviour like PUA. If other people see you as trying too hard or being formulaic, that's a turnoff. With PUA, there's a nasty undercurrent.

Sorry, I don't have anything more concrete. Maybe this -- take small steps to get out of your comfort zone, almost like desensitization training. Don't do it all at once so you don't freak out, and don't beat yourself up too hard if you get embarassed about how you think others are reacting to you. If people are actually shitty to you, then hang out with better people.

After COVID, I think I'm going to try to do some standup comedy. The thought of bombing in front of an audience is terrifying, but also kind of delicious. I love those incredibly awkward scenes in TV shows or movies where you're dying inside for the characters. Maybe you can just go meta on awkward/embarassing situations and pivot from awkward to hilarious.

EDIT> What about framing the problem as writing scripts / playbooks for a chatbot, except that chatbot is you. Do little teeny tests, bit by bit, expanding your comfort zone / social envelope.

> only interested in FAANG money and being able to retire early

That should tell you the problem.

Non-FAANG/Leetcode money is very good too. Check out http://levels.fyi or AngelList and you'll probably find a few that have different recruiting methods.

If you have the grit to stick it out, you could consider working with legacy code too.

> I'm only interested in FAANG money and being able to retire early. Those are my goals.

I think you should quit then. Just give up. It's not going to happen. Certainly not the way you're going about it.

There's your problem then.

I have the same goals. I've been reading every "how to be a CEO" book I can find and I've written to every Fortune 500 asking to be their CEO. I have no interest in what any of these companies do. I have so far not received a single reply, so I guess it's time to make a post whinging about that on HN.

Why do you think that leetcode was the core problem here? You got fired for performance reasons at a less competitive business. You spent thousands of hours learning the wrong thing.
I'm saying the skill set and talent that allows one to be good at Leetcode and on the job programming are correlated and I am lacking in both.
(comment deleted)
OT: why do we still say FAANG and not FAAMG? It seems to me that MS is much more in the same league than Netflix.
There are two paths into FAANG entry-level jobs:

1. Graduate from a top school

2. Work at non-FAANG companies for several years and develop strong software engineering skills: attention to detail, deep knowledge of one language, writing and maintaining unit tests and integration tests, giving and receiving code reviews, being oncall, sitting in on requirements meetings with customers, spending months implementing features, seeing some of them fail in production or fail with users, and deploying and owning a small service and being the go-to person on the team for it. This takes several years. Almost nobody can get a FAANG job without this experience.

Grinding leetcode is something to do for 2-3 weeks before your FAANG interview to brush up on algorithms. Leetcode cannot give you software engineering experience that FAANG interviewers look for.

It's really good that you recognize your bad social skills. You can improve them with effort.

Good luck!

This is a spot on take! Well said.
Have you ever built a product yourself? I will be honest with you, I just use the python standard library for algorithms. I don't even remember what kind of sorts there are. They don't matter much in the grand scheme of things. What matters is whether you can build and ship something. This is how Valve evaluates applying engineers too, by the way. Finished project list first.
There is tons of work out there for programming, you don’t have to do doctorate level algorithm innovations to be a productive programmer. I understand your frustration but maybe you are setting the bar too high for yourself?
yeah surely. just having good knowledge of django/rails + react can get you a $80k-$140k salary.

or if you're good with people a solutions engineer is a good options, because you are mostly the "nerd in the room" during the sales process: leveraging technical acumen to demo, build hacky prototypes, and solve the potential customer's problems.

Do you have specific examples of jobs like that that pay on the latter end of that spectrum?

Solutions engineer also sounds interesting. Thank you for mentioning it.

most tech companies with at least $500 million market cap will pay that (california, seattle, or NY) if you have at least 2-3 years experience.

here's a unicorn list (all private companies with at least $1 bil market cap) https://www.cbinsights.com/research-unicorn-companies

Pick one and look at engineering roles. For example, I would assume this role at Brex (no affiliation, chose from list) pays at least 180-200k. https://www.brex.com/careers/engineering/4946341002/

of course, public tech companies (e.g. FAANG, Twilio, etc) will also pay that.

I want a FAANG level job so, yea, I might be. Don't want to do programming otherwise though.
> Don't want to do programming otherwise though.

So get a FAANG manager position.

With that attitude towards your chosen profession you can do all the leetcoding you want and still don't get a job.

(comment deleted)
This must be some new kind of marketing from big-leetcode.
The cynic in me also wonders if this is propaganda I just don’t k is from where. Who would benefit from “Leetcode tests intelligence, only inherently intelligent people can program, therefore nobody should even try to be a software engineer unless they can leetcode” all of which is false.
Very nice to see this here, as I recently signed-up to leetcode (and bought premium). I just went and check, and in the past 2 weeks I've solved 4.2% of the problems in leetcode, which means it would take me about a year to solve all problems, just like the post you linked.

Let me tell you something: hard work DEFINITELY plays a big role. I'm not saying "talent" isn't a factor too, of course. Other than sharing this, I'm not sure what kind of advice I could have. At least on paper you've done as much as you can.

If you allow me to guess something about your person with no basis at all: is it possible you just don't enjoy it? I know that for myself if I enjoy something I spent a lot of time thinking about it, even "down time" when your mind just wanders. I've always enjoyed little problems, and I can get lost in them for hours. If you do that a lot it's impossible not to get better at solving little problems. I think this possibly one overlooked aspect of "do something you enjoy". It's not _just_ that you'll get more enjoyment, it's also that you'll be better at it.

Good luck.

>If you allow me to guess something about your person with no basis at all: is it possible you just don't enjoy it? I know that for myself if I enjoy something I spent a lot of time thinking about it, even "down time" when your mind just wanders. I've always enjoyed little problems, and I can get lost in them for hours. If you do that a lot it's impossible not to get better at solving little problems. I think this possibly one overlooked aspect of "do something you enjoy". It's not _just_ that you'll get more enjoyment, it's also that you'll be better at it.

I do enjoy it. I just am bad at it and constantly get stuck and go blank. It's not fun if you're not competent enough to engage with the material. When I do easier problems that flow, I enjoy it just fine.

> It's not fun if you're not competent enough to engage with the material.

Switch to less challenging content and master it before moving on again.

There are numerous schools of thought on programming.

For example, I've seen those who are interested in leetcode, algos, and the like. I remember this one time where management wanted to have JS/front-end devs answer questions about C and b-trees. They couldn't find anyone to make it through the whole interview process. The problem was that people who could handle the C and b-trees couldn't cut it at the JS questions that came later. The JS devs never got passed the C/b-tree questions.

There is a culture of elite knowledge and a club around that. Some are into the school people have degrees from and that kind of thing.

There is another side of it that's about the ability to use code to problem solve. I remember meeting this senior engineer that customers used to constantly request by name. He was one of the most senior levels at the company. I later learned that he had no degree. He had a ton of hands on knowledge and understood the technology from years of working. He learned it like a skilled trade and he was valuable to everyone involved.

There are places where both types of folks can thrive.

I personally go after the problem solving type situations because I don't like forms of elitism and I really like solving problems.

Don't look at the leetcode space and Google mentorship as the whole realm of software jobs. There is a lot more out there and many very successful people doing other types of stuff in software.

> I personally go after the problem solving type situations because I don't like forms of elitism and I really like solving problems.

I used to be like this as well, till I noticed the people solving the types of problems I wanted to work on we’re either guarded behind these leetcode type interviews or something much more difficult to “fake until you make it”.

> “fake until you make it”

I don't like this idea. I prefer the idea of mentoring and people constantly learning. Faking it is kind of like deceiving until you figure it out.

People should be mentoring and teaching each other. This levels up the people around us.

> I noticed the people solving the types of problems I wanted to work on we’re either guarded behind these leetcode type interviews or something much more difficult

This is a real thing.

Sometimes you need a foundation in a hard problem that is often taught in some university courses. There are some hard problems here and people look for that. Sometimes it's math skills or specific algorithms.

Sometimes the people working the hard problems artificially add levels to their processes to keep clubs exclusive.

Most software isn't these hard problems. 99.9% of software is not these hard problems.

Do those other jobs have the prestige, benefits and pay of Google though?
Not most of them. But so what? Your goal is to retire early. Why do you need to start at insanely high pay for that? Make 120k for a while (plenty of money to save well) and make this a longer term goal rather than an immediate "fuck it, I failed so the entire industry must be full of idiots".
Where are the non-FAANG, non-leetcode guarded 120k entry level jobs?
You are chasing the wrong thing. There are plenty of companies where you'll solve better problems than at Google and have more freedom to solve problems your way, and they pay well too.

Chasing money is not going to get you far. Focus on skills.

Even if you can solve any whiteboard problem a company can throw at you your attitude is so off putting, even just via text, that I am not surprised you are getting no hits. Instead of getting shit done you'll complain, blame, and stall the team.

Notice how nothing in this thread is your fault. Every single problem is on another person our outside force. No one will pity you, doubly so in a highly technical team. It's just not part of the culture. Take it or leave it.

I'm not sure how you are coming to the conclusion that I take no responsibility. The whole point of my post is that I am not good enough. That's a pretty damning criticism of the self. I only blame others in the sense that they highly contributed to me not being able to see that. If all my takeaways were personal, I would have no reason to post this. I think you just don't like how I sound and aren't paying attention to my actual words.
What pay are you looking for? Specifically. What numbers are you looking for that are out of reach at non-FAANG?
6 figures starting.
Where are you located?

In the states, pick any Series A or farther along product-based startup and chances are they pay 110k+ for mid level roles and up. Not sure why you think those numbers are FAANG specific. If you’re going for 200k+, ok then you need the big players.

agree on the whole elitism notion. it is about time we abolish that :)
Personal anecdote:

The best coder I’ve come across in my career once told me he attempted to solve some leetcode and was stuck fairly early and gave up. I was surprised to hear that he even cared to try.

What made him a fantastic engineer was his meticulous work ethic, his track record of never having missed a deadline, him spending 40% of his time designing before he even wrote a single line of code, writing extremely human readable code, his obsession with unambiguous and simple APIs and his extensive unit testing.

He was humble, loved to crack jokes and was always fun to solve hard problems with.

None of that is captured by leetcode. This is probably my personal bias - but the only people who work hard at leetcode are people who want to prove something to the world. I’d rather work with people who like the profession and don’t feel compelled to prove anything.

> but the only people who work hard at leetcode are people who want to prove something to the world.

Not the world.

Hiring committees.

The ability to do Leetcode well when a reasonable amount of time is applied to it and doing all the things you mentioned are correlated. The only issue here is the guy, in your words "was stuck fairly early and gave up." He didn't see it worth his time. Many people share that attitude about Leetcode, but it doesn't mean it's not tapping into something that's important for the job (intelligence).

What you are saying would be kind of like someone saying "I knew an athlete who could do a mile in under 4 minutes, but one time he got on a bike, fell and then never cared to try biking again. Therefore, the ability to ride a bike has nothing to do with athleticism." Which is technically true, but misleading. It misses the key idea that the main factor is the person not taking the bike seriously as if he actually decided to take the time to learn how to ride a bike, it's virtually certain he would be better at it than 90% of people because the underlying traits that make one exceptional at running would also make one good at biking.

It also sounds this person had a good temperament and personality which worked in his favor. That wouldn't matter though if he didn't have the cognitive ability to never miss deadlines and correctly design out code in his head and on paper before writing it as you say.

There is SO much more to coding than algo's. Those looking to apply clever algo's that give a O(n log n) solution to a problem where n is never greater than 20 are hurting the industry. Give me simple to understand, works, and you saved us a P1 and thousands of dollars not trying to understand the clever algo. In 10 years of coding, the number of times I needed a clever algo can be counted on two hands. Leet coding is fir a lack of better measures.

The bicycle analogy is interesting, it us more like getting someone on a time trial bike and checking if they can hit 25 mph. That counts for almost nothing when doing a downhill mountain bike course. Can you communicate to people clearly? Can you convey expectations? Can you write simple and easy to understand TESTS?? Leet code is part of a cottage industry for interview styles that faang employees for lack of anything better.

I did one faang interview and omg I bombed so badly. A week prior, I did another with the same company and they couldn't stop calling me asking me to stop interviewing and work for them. The hiring manager wrote a love letter of how much I'd enjoy it there. It's crao, half of the senior engineers at that company can't pass their own interviews, it's a broken system. You can't know if a dev us good until at least 3 months after hire, if not 6.

> Give me simple to understand, works, and you saved us a P1 and thousands of dollars not trying to understand the clever algo. In 10 years of coding, the number of times I needed a clever algo can be counted on two hands.

This reminds me of an old anecdote:

Beginner programmers pump out 100 lines of good code a week. Journeymen programmers do 1,000. Master programmers do -100.

It's the same sentiment as the famous Churchillian quip: “I am going to give a long speech today; I haven’t had time to prepare a short one.”

I didn't know that one. "If I had more time, I would have written a shorter letter" is from a Blaise Pascal quote "Je n’ai fait celle-ci plus longue que parce que je n’ai pas eu le loisir de la faire plus courte." which translates to "I have made this longer than usual because I have not had time to make it shorter."
(comment deleted)
You are setting yourself up for failure with the "I want FAANG money & benefits" right from the get go. That happens to the top 1%, all other work their asses off or get lucky.

But I think you are doing your now not_future_colleagues a solid by giving up. If you are that square to think there is only one way to reach the "prestige, benefits and pay of Google" and that is by excelling at some Leetcoding pissing context: I see you not solve issues that are exciting to solve which is exactly what I like to see in programmers.

Sure. I agree with your broader point. But a lot of companies don't have the time or inclination to conduct useful interviews (take home assignments, project deep dives etc). So they simply ask a bunch of leetcode questions and 1-2 system design, "behavioral" questions, and expect you to give perfect answers. Conversely, if you are in a situation where you want a job at these companies, then you do leetcode. As an anecdote, I like solving programming puzzles (advent of code, ICPC problems etc) but couldn't clear FANG without leetcode. I despised leetcode because the puzzles/problems there are uninspiring as compared to ICPC problems. Of course, software engineering has very little to do with any of it :)
> I'm still not good enough.

Good enough for what, exactly? A person's value as a dev has little to do with how good they are at leetcode problems. What matters is whether or not you can deliver working software and communicate effectively with your team.

Sure, there are some positions where having a truly exceptional ability with algorithms is a significant benefit. Things like graphics and simulation, HFT and squeezing every last drop of performance out of hardware. But, be aware, that's a relatively small subset of work that developers do.

I'm sorry to hear you've burned yourself out on programming as a whole by tunnel-visioning on leetcode problems. Whatever you pursue next, I encourage you to try approaching it from a more holistic direction.

> Good enough for what, exactly?

A FAANG-type eng job. IMO you're right that LC is not a predictor of success as a SWE, but it is for better or worse (I think worse) a gating factor for landing the job. We could talk for hours about how lazy it is to use LC-style problems as the gatekeeper, but the reality is that's what it is (ref: the guy who wrote Homebrew failing Google's interview loop).

OP seems to be conflating LC success with SWE success. LC is not what you need to be a successful and productive engineer, rather it's the prep you have to do if you want to play the FAANG interview game. What OP might be missing is that FAANG isn't the only show out there, and plenty of great non-FAANG companies don't interview this way.

Sadly, many careers now have such gate-keeping tasks, or "hoop jumping":

Medicine/MCAT, Law/LSAT, PhD/GREs, Undergrad/SAT, and for all of the above you need a high GPA, which is not a good measure because it's localized to the school and is not weighted for class difficulty.

My own story: I was pre-med at a deflationary school, I did very well on the MCAT, but my GPA was below average, so I got 0 interviews on 11 apps (thousands down the drain and years of effort too), and decided research was a better field for me than medicine.

This leetcode interview stuff is not healthy for the industry and not healthy for engineers personally. What I am reading here is that you have had one job that didn't work out. Leetcode honestly means nothing to me.

Here's an anecdote from myself. I have been a software engineer for 15+ years. I was a computer science major like you in college. My first job out of college was at Intel where I also only lasted less than 2 years. While I didn't get fired for performance issues, my first annual performance review was also a performance improvement plan and I was the bottom of the pack (i.e. did not get a raise). I had issues coming from years of education-focused mindsets that I thought passing exams was all it's about, and I often did not "get" what it means to be productive in a company as an employee. It took me time over the years to "get it". After Intel I worked for a friend's web dev shop for a year. Then I finally landed at a startup (which became a unicorn later), which was 2008, and the rest was history -- I was promoted several levels in said startup, and later cofounded my own funded startup (which didn't work out at the end), and I went on to work as a staff engineer at my next two companies. And finally, I probably wouldn't be able to solve any leetcode problems (maybe above the easy ones).

It's your personal decision to stay or quit programming, but if you had any willingness to stay at all, I would encourage you to simply ignore this leetcode stuff and interview at companies that don't do leetcode whiteboard interviews and try to work as a software engineer at a new company, so you have a sample size of more than 1 company in your work experience. And when you do so, try at it from a standpoint of understanding the business, understanding what makes an impact and drives the business forward, and do those things. At the core level, that's the most important thing about working as a software engineer.

Leetcode and the “grind fake problems as interview prep” mentality is the absolute worst thing that has happened to the software industry in the 30 years I’ve been in it. If it disappeared suddenly, we’d all be better off.
I agree that we need a better way to evaluate people that meets the purported goals of being fair and eliminating the chance for bias.

I joined a FAANG at 44 and had to do the Leetcode evaluation. TBH, it wasn't so much a grind as a bit of re-learning how to ride a bicycle. I have the "benefit" of being old enough that solving those kinds of low-level problems was work I actually did in my younger days before all of these fancy libraries existed. I spent about 10 hours over the course of a couple weeks just "refreshing" myself on ways to identify the brute force vs. clever solutions to some basic CS problems of array manipulation and graph traversal.

It was pretty low effort, but it was the side show to my decades of experience. For younger folks with only a couple years experience, I can see how it becomes the "everything" because it's the majority of their evaluation.

You don't need to be an expert in data structures and algorithms to have a successful programming career.

Unless you work in some cutting edge project, optimization or framework development, most of your work will consist in performing api calls, copy pasting and glueing boring pieces of code together.

So, my recommendation is, instead of becoming an expert in solving code challenges, be an expert in implementing real world solutions. Learn some useful framework and try to build something useful with it.

The talent that makes one good at coding challenges also makes one good at implementing real world solutions. That's why the biggest companies use Leetcode to test interviewees despite having huge resources to pick any other method that promises better predictability.
Several people have tried to tell you this, but I'm going to try again: Your statement here is false. 99% of programming is using skills that are rather unlike the talent you need for leetcode.

Can you follow a recipe? If you're missing an ingredient, can you employ a substitution? That's what an awful lot of programming is like, except using keyboards instead of stoves. Now, it still takes some talent - a talent for computer "recipes" rather than literal cooking recipes - but it's not as out of reach as leetcode leads you to believe.

>Your statement here is false. 99% of programming is using skills that are rather unlike the talent you need for leetcode.

Do you have evidence for this claim? Specifically, that the skills and talents that make one good at Leetcode are not correlated and predictive for being a good programmer.

> The talent that makes one good at coding challenges also makes one good at implementing real world solutions.

I actually never heard of Leetcode before this thread but I highly doubt that. This seems to be a puzzle site like Codewars or Codingame. While puzzles like that are fun, they are only one small part of being a developer. Design, architecture, UI/UX and communication are a lot more valuable than being able to write your own Sudoku Solver.

>That's why the biggest companies use Leetcode Completely false outside the US. Yes, even in FAANG companies
Ehhhhh. I'm about 4 years into my career and am trying to transition to working on a distributed team in a startup. I have a four-hour, seven question pair programming thing coming up after my second interview, so I've been reviewing cracking the coding interview and practicing leetcode to make sure I pass the screen.

I've spent my entire career solving real world problems, but it always comes back to tricky logic puzzles or deriving best case runtime complexity on paper with these interviews even still, and even for non-FAANG companies. I regret not just reading cracking the coding interview every couple of years and passively leetcoding at this point because I still might fail this technical screen. And that does suck.

I never graduated with a CS degree, have never done leetcode exercises, yet I found a career in tech. I’m not trying to be toxic as you say, in fact we probably agree about elitism in the community more than you think.

What worked for me was taking on an internship way back when as a web developer, which I turned into a part time and then full time job, which ended up getting my foot in many doors, and I credit it to bootstrapping my career in tech. The landscape is different now though, this was just before coding boot camps were a thing.

Most people here will probably disagree with internships on principle, but I think they’re saying that from a position of entitlement given that they already made it.

Your outlook sounds bleak, and you said you gave up already, but if/when you decide to pick it up again, you need to focus on getting in with actual people as well as just having raw technical concepts under your belt. Maybe. It’s all a crapshoot too, so don’t weigh any one bit of advice too heavily.

I'm inclined to agree with your sentiment here. My degrees are in earth sciences and engineering. What I do day to day is apply the principles of these things, are they are relevant to my field, to the role that I'm in at a technical level. In fact, many of my peers and colleagues are in a similar situation. Some of the top software in the couple of industries I either am / have been across is not written purely by those with CS degrees and are full of raw talent. 50-80% of the workforce are those that have other skills first, and can also do a good job with code - and the CS guys make it elegant and work. A geologist / environmental engineer / geotechnical engineer / fire scientist / ecologist will guide and help write PoC, others make sure the PoC fits, and the CS guys make sure it performs.

Not everything is a Silicon Valley darling that fits the echo chamber template we constantly see on HN (This is an incubator / startup funds news feed after all!!).

To OP: You got in to this for a reason, and are likely good at it. If you need perspective, now might be a good time to check out what other options you have, gain some perspective, spot some holes in whatever fields those options might exist, then start filling those holes in with your coding ability. Now you're working for you (at least partially), might be able to turn that into income (if it's novel enough), and still get to indulge your passion of writing code.

Never heard of leetcode before now and it wouldn't really factor into my hiring decision.
As ubiquitous as Leetcode/whiteboarding might be, especially as a filter for FAANG, anecdotally it feels like Silicon Valley startups are starting to catch on to how much applicants are disgruntled towards it and starting to invest more in interview processes that are more like pair programming, so more domain-specific.
Ability to do leetcode =! job perf. I think Google even proved this to themselves although they still hire based on it...
if this is a serious post, I'll add my two cents. I have a experience as a dev but maybe more importantly here as a chess player and coach at a reasonably high level and the discussion of talent and work comes up a lot.

My two cents are, unless we're talking about very high aptitude in a domain (say the top ~0.1-1%), most is reachable through deliberate effort for most people.

The important thing is that time spent and effort are not the same thing. To get better at anything, you need structured, high quality, deliberate practice. Just doing leetcode for five hours a day is not automatically going to improve your coding.

What stands out from the example of the postdoc is that the first thing she did was and took online Berkeley courses on data structures and fundamentals. If you learn fundamentals before you hack away you can safe yourself a lot of time, because a lot of leetcode problems is just identifying and applying CS theory.

To get better being frustrated and sinking hours per day into something is not a healthy or good thing. Focusing on weaknesses, having a plan on how to improve, studying fundamentals even if it isn't fun or rewarding and keeping schedule is how people get better.

>if this is a serious post,

Why would this be a joke?

>My two cents are, unless we're talking about very high aptitude in a domain (say the top ~0.1-1%), most is reachable through deliberate effort for most people.

Yes, that amount of aptitude is where I want to be. Who wouldn't? Furthermore, do you have evidence for the claim that anything below top 1% is achievable by anyone?

>What stands out from the example of the postdoc is that the first thing she did was and took online Berkeley courses on data structures and fundamentals. If you learn fundamentals before you hack away you can safe yourself a lot of time, because a lot of leetcode problems is just identifying and applying CS theory.

I had a degree in computer science. I had more of an education than she did. I also looked at lectures of similar kinds myself.

>To get better being frustrated and sinking hours per day into something is not a healthy or good thing. Focusing on weaknesses, having a plan on how to improve, studying fundamentals even if it isn't fun or rewarding and keeping schedule is how people get better.

Why do you assume I didn't do any of this during my 5 years?

>Furthermore, do you have evidence for the claim that anything below top 1% is achievable by anyone?

there's no hard evidence for these sort of things. But to put some context on this. In chess getting to the top 1% in the US means you have a 2000 rating. That's what people generally consider to be a 'strong amateur'. I've seen people from all walks of life get to that level. Aged over 50, janitors, businessmen, academics, there's no magic to reaching that competence. Take running. A three hour marathon already puts you into the top 5%, that's not that crazy either, and many amateur runners achieve it with rigorous training.

>Why do you assume I didn't do any of this during my 5 years?

because not knowing anything else about you I just think that's simply the most likely explanation. In another post you mentioned that your goal is to get a FAANG job and that you don't have good social skills. Software developers don't just get hired based on leetcode performance, so your performance might not even be bad at all, you may simply have to work on your other skills that aren't even coding related.