Hacker News new | past | comments | ask | show | jobs | submit login
5 years of leetcode with no progress. I'm giving up
123 points by QuitProgramming on March 15, 2021 | hide | past | favorite | 206 comments
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...




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.


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."


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 :)


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

Not the world.

Hiring committees.


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?


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.


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.


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.


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.


> 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.


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.


Money.


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.


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

That should tell you the problem.


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?


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.


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.


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.


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.


FAANGs are overrated.


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.


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.


I've read some of your replies and it sounds like you're determined to set your goals so narrowly that you cannot win. You may accept there are still other opportunities in tech, but you only specifically want jobs that will recruit you for what you're (reportedly) bad at.

If you have something else lined up and just want everyone to wave you goodbye then so be it. But people obviously want to help you and it sounds like you're looking for some.

I'll just say it's better to be mediocre at something than to do nothing. A non-FAANG job/tech endeavor will still expose you to a lot of opportunities. You may not immediately be making what you want to make, but over 10 years there's a non-zero chance you'll luck into something bigger. A 20% chance of getting what you want is still better than a 0% chance. In the process you may find something you are actually exceptionally good at. It's much harder to find these things if you're not actively working on something.


Yeah and then he blames the community for being toxic. This is 100% self inflicted. Incredibly narrow focus at the most competitive companies to the point of spending inordinate time on leetcode and letting their actual work slip.


It does sound like he absorbed some of his toxicity from the community. It's definitely a self-inflicted wound, but it does sound as if he was handed a gun and had it pointed directly at his foot.

That won't be solved by fixing the community, which is an enormous boat that won't turn around any time soon. But it's hopefully a lesson to other people putting themselves in a similar position. The community also contains a lot of people pointing out the footgun.


>I'll just say it's better to be mediocre at something than to do nothing. A non-FAANG job/tech endeavor will still expose you to a lot of opportunities. You may not immediately be making what you want to make, but over 10 years there's a non-zero chance you'll luck into something bigger. A 20% chance of getting what you want is still better than a 0% chance. In the process you may find something you are actually exceptionally good at. It's much harder to find these things if you're not actively working on something.

This is the sort of thinking that keeps people in their place continuously participating in the rat race hoping that one day they'll make their break. For most people, it's much closer to delusional hope than a real path to success.


Sorry but could not comprehend this "but over 10 years there's a non-zero chance you'll luck into something bigger" Could you please explain little bit what do you mean? Thanks


Literally anything. Options turning out to be very valuable. Getting acquired by a company you really wanted to work for. Randomly getting promoted. Meeting someone who will get you that FAANG job via a backdoor. Meeting someone you'll go on to create a successful business with. Maybe even meeting someone who will teach you to be very good at these competitions.

Point is, if one completely drops out the chance of any of that happening is basically 0. If you stay involved in one way or another, it may happen.


Call it intelligence, smarts, IQ, talent or whatever you want. We are all born with a certain level of it.

The sooner you realize your limits the better. The issue with most of us is that we don't push hard enough to understand what those limits are. As you've seen, you've worked hard and now know your limit.

But frankly, what's the issue? You're not good enough to pass a leetcode interview? Guess out, most people writing software aren't able to either. If all you do is compare yourself to the Wayne Gretzky's and LeBron James you're always going to feel inadequate. Ask them why they are so good and they will tell you that it's hard work and dedication. Because it's more fulfilling to say that than to say "yes, it is those things but heck, I'm just naturally good also".

Read "Flowers for Algernon" for some perspective. Personally, I always remind myself that the intelligence I do have is a gift because there are those with no fault of their own that are far worse.

If you don't enjoy programming or just want to do something different, be honest with yourself.

Your conclusion is right - The is reality not everyone is lucky enough to be intellectually gifted to succeed and not all hard work pays off.

But the issue is you've boxed what success means you to so much that it's suffocating you.

Most of us writing software are failures if we use passing a Google interview as a metric.


"Read Flowers for Algernon"

For some reason that I can't really articulate, I never liked that story. I agree that it can add some perspective. Maybe it has to do with seeing a somewhat similar struggle with my grandfather going blind later in life. That many things he used to do easily became arduous or impossible, and the ways that affected him and those around him. I feel the story doesn't do that sort of situation justice (maybe too simplistic?).


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've stated:

"I'm only interested in FAANG money and retiring early"

You literally have no intrinsic motivation to solve hard problems other than getting paid more.

Focus on learning and acquiring skills and solving problems, not trying to get "FAANG money".

Leetcode has nothing to do with FAANG money, sure, knowing algorithms and how to optimize code helps, and that's the only commonality between FAANG interviews and leetcode, but those things can be learned outside of leetcode. Simply taking a few CS algorithms courses will make it apparent that 90% of leetcode problems are found in some variations inside your undergrad CS algorithms course.

Sounds like you need to reset your values and re-align your priorities.

You got fired for performance reasons as you mentioned. "Had" all these resources and time spent on trying to improve yourself, but you just want a "FAANG salary". This is not the way. Either you love CS as a field and you love solving hard problems, or it's not for you.


I think the "you need to love what you do to be successful" is just a fallacy that became a meme. If it were true a much higher percentage of people would be well respected and successful artists, for example. In our field, more coders would be in FAANG or the next John Carmack. This meme needs to die, honestly.

Furthermore, it's easy to be passionate about things that you are good at. Being good at something means constantly getting positive feedback. So then the question becomes- Are people who are passionate the ones who become good at things or are people who are good at things become passionate them? The reality is you can find cases where people hate the things they are good at and like the things they are bad at. Just proves this idea of yours is false.


I think you really hit the nail on the head. Software engineering is quite hard, it's also a very broad field now, and you have to love it to do well.

When I'm interviewing it's one of the things I strongly look for. Even if the interviewee has some other weaknesses or lack of experience, passion for what you're doing can make up for it.


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?


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.


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.


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?


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 :)


I found LeetCode difficult too. Some things that I found helpful:

1) The book How to Design Programs. Its main point: the shape of data determines the shape of functions. Northeastern University has a good course on this principle. There are several types of data, such as atomic values, constrained values, lists, and the functions for dealing with them follow the "shape" of how the data were defined.

Recursion can also follow this pattern because data can be defined recursively, such as with binary trees and linked lists. Obviously, recursion is not limited to recursively defined data, but it helps to see the relationship between functions/methods and the data they operate on.

The book and the course also discuss how to abstract general patterns from concrete instances, such as "filter", "map" and "fold".

2) Once I saw that function "structure" can follow the structure of data, I looked at the structure of functions that operate on graphs, trees, arrays, greedy problems, dynamic programming problems. There is usually a structure involved.

To get at the structure, I abstracted the details to get at the "elements" of the function and the data it operates on.

Here's one pattern: for each element of data input do something with that element

Basically all algorithms follow this pattern. Replace "do something" with a transformation, a summation, a "map", filter, fold, etc. Replace data input with tree, graph, array, etc.

3) For dynamic programming, I studied the approach used in "Optimization" courses, often taught in the context of business. In that context, DP is not taught as "finding the subproblem", but as a multistage decision process. I found this very helpful.

Lastly, even though receiving material rewards is nice, re-framing motivation towards contribution rather than receiving can mitigate disappointment in any endeavor in life.


>The book How to Design Programs...

I will check this book out.

>Lastly, even though receiving material rewards is nice, re-framing motivation towards contribution rather than receiving can mitigate disappointment in any endeavor in life.

This has always sounded to me like the consolation for those who are not good enough to get what they really want.


>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?


>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.


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.


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.


This has to be a joke mocking the obsession some parts of HN have with LeetCode and interviews.


Not a joke at all. This is my life story.


Most definitely.


> 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.


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.


Leetcode is only worthwhile if you want to break into the FANG/unicorn type companies. These jobs often pay the most but:

A) They are not the only companies that good software engineers work at.

B) One's happiness is not predicated on getting a job at FANG and getting paid a boatload of RSUs. People that work there aren't as happy as you would like to think. See here: https://en.wikipedia.org/wiki/Hedonic_treadmill

Also I call bullshit on anyone that claims they did all 1600 leetcode questions in a year while also managing a full time job AND maintaining any actual quality of life. The solutions to all of the problems are available in the comments and mastering 200-300 problems is enough to get a job at Google. There are many poorly worded questions that honestly aren't worth doing either so I wouldn't be concerning myself with someone who has done all of them because I don't even believe that they did them all without looking at some of the solutions first.

Lastly, if I were interviewing you and got even a whiff of the terrible attitude that you portrayed in the OP I would not hire you - and this is coming from somebody that has had a depression diagnosis and takes anti depressants. You need to get help if this is how you usually feel.


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.


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.


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


I would like to add something I couldn't fit into the original post. A big part of why I think I got stuck trying so hard is because of the anecdotes programmers like to throw around. They'll tell a story about one guy they knew or a time in their life when they struggled. They do not take a quantifiable approach this. IQ is not talked about. The amount of time studying is not talked about. Whether they have won competitions in any intellectual field is not talked about. How quickly they are able to understand concepts and implement them of increasing complexity is not talked about. If it was did, I think people would be much more able to realize when someone is truly not talented and should quit and when someone still under the normal curve of struggling and it may pay off to persist.


Regardless of all that, there’s a lot of luck involved. I’ve soared through technical rounds because I got lucky with interviewers who asked me questions I could solve in the time given. In many others, I received questions I was likely never going to solve because I had never seen them and it was required in order to pass from this interviewers mind.

People spend a lot of time on LC. It should be obvious from all those self-promotional LC posts. (Don’t trust everything on there btw - those stories are there to sell the platform and keep people paying.)

IQ is mostly irrelevant. You should really only be worried about IQ when someone is a true outlier. (Savant or handicapped)

Either way, you’re acting defeatist if you think that not getting into FAANG the first few times is proof that you’re garbage or something. Many people get rejected and get rejected after they’ve gotten an offer from them before. It’s not a good system.

Also, how do you not have every problem solved if you’ve truly been working at it for 5 years? 1 problem a day would have you solve every single one.


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.


The vast majority of work in the programming market is low-scale CRUD websites. Occasionally some data structure/algo knoweldge helps here. Maybe recursing over a tree once in a blue moon. You can make it in this field without being gifted. Much of it paid well, just not FAANG 400k+/yr.

Of course, there's work where being intellectually gifted and a deep knowledge of CS are very relevant. Ability to effortlessly solve a tricky math problem might be relevant for someone working on the next encryption algo. But not for you, and not for the guy working on an inventory system or point of sale system.

On the internet it's easy to see everyone in the world. The best in the world are filtered right to you. So don't feel down comparing yourself.


I think the LeetCode is not the issue.

You have a black mark on your resume from being fired. And I assume a gap from these years of only LeetCode. You basically have to take any programming job you can find and stick with it for at least 3 years. This will show future employers that you can perform - something that LeetCode will not.


This might be an unpopular opinion around here but I believe Leetcode is a terrible metric for assessing developer performance.

Think of it like this. Say you're a construction worker but you suck at LeetCement, a bunch of cement mixing exercises. You think you're an absolute failure because you can't do the most basic thing in construction: mixing cement. Guess what? No one really cares that you can't mix cement. Customers aren't going to walk through your building commenting on "well this cement wasn't mixed right". Sure if you really screw it up the building will be in danger but in the grand scheme of the entire construction site, cement mixing, like leetcode, is a super small portion of the big picture and something you can hand off to a company that specializes in mixing cement.

As a programmer, your performance is based upon what you can build. You're never going to have a manager or customer go "well this looks good, but I noticed that your link list function is 3 lines vs 1 line". Leetcode at the end of the day is semantics of programming, no one besides the most hardcore programmers give a damn about it. Sure you can reverse a linked list in a one line of code, but can you build a piece of working functioning software?

I can't tell you how many of these "Rockstar Developers" I've interviewed that while they can solve every leetcode problem in their sleep, can't figure out how to construct functional software to deliver to a customer.

I've been programming professionally for 5 years now and I never got past leetcode easies.


Your reasoning for why Leetcode is bad is a bit flawed. The reason why it works is because it's correlated with other performance. The fact that a customer don't ask for it before they give you a job doesn't disprove the correlative factor. The fact that people snub it by thinking it's too far removed from reality doesn't make it so either. The fact is that someone who is clever enough to consistently do things like reverse a linked list in one line quickly and correctly will also be able to quickly do less clever things correctly.

Your idea is that only doing the exact thing shows if you are good at it. You are almost implying there are no correlations between skills. If that's what you believe then looking at the research on IQ should clear up that empirically that is not the case. And note I said the research. Not news articles or editorials or blogs or podcasts. The actual scientific literature.


While we are at flaws:

Clever programmers are the worst as clever code is the worst idea for any kind of maintenance.

Maybe we should use Leetcode to weed out the clever ones. Thank you for that idea!


> one and a half years of professional coding experience which ended when I got fired for performance issues

So what happened there? What did you learn from the experience? How did you work to improve?

Being fired for performance reasons would be much more concerning to me than the fact that someone online is better at leetcode problems. And it should also be a sign that maybe you aren't ready for a job at some of the most competitive companies yet.


I think IQ or some variant of it - which is what leetcode sounds like to me - has an intuitive appeal because it offers a way of objectifying hiring and stack ranking people. All other things being equal, the higher ranked leetcoders are bound to be better programmers: but good luck with the "all other things being equal" part.

I'd separate the merits of abstract tests, innate ability and so on, from spending 5 years on leetcode. It's worth really digging into the meta questions here. Why?

I think trying harder and improving is par for just about any course so I wouldn't surrender to Gods of talent or you'll find yourself at a disadvantage to the less talented as well.

Did you know that Roger Penrose - Mathematical physicist with a Nobel prize in Physics - was held back a year in school because his arithmetic was so bad? I reckon he would have sucked at leetcode. Turns out his arithmetic is still so bad 60 years later but he discovered that he had a razor sharp geometric intuition and put his chips there instead. Worked out quite well for him I'd say.


1. Leetcode is not software engineering, its software interviewing. You can be exceptional in one and not the other

2. It is possible that there are people who "simply can't code". I don't personally think that's correct but it might be

3.You should never compare yourself to everyone (especially post doc unicorns who leet for fun). I don't think I'm an "exceptional" coder and I'm completely fine with it. I might get better in the future but where I am today already allows me to do my work competently and above although there are many many people above me

4. If something gives you grief and stress even after committing to it and trying to "break the barrier", you shouldn't do it. Mental health is more important then doing something specific as coding for a living

5. I couldn't understand if you did LT for 5 years and couldn't get a job or just couldn't finish LT. If you are working now and the only problem is getting stuck on some LT problems, I don't think LT should be a goal, only a tool.


I've met a few people who meet #2. They just have a different type of mind/thought process/aptitude.


Side projects > leetcode, any day of the week.

I’ve personally transitioned several people from other industries into software successfully.

Some of them got stuck in the leetcode world convinced it is what would help them get hired.

You know the ones who always get hired the fastest? The ones who have real-world prototype apps to demo to recruiters and interviewers and showcase their applied knowledge.

As someone who also has hired several engineers, I don’t care how many leetcode problems you do if you can’t do basic real world tasks like simple devops, or don’t have basic domain-specific experience (such as GraphQL, React, Stripe to name a few randomly, whatever tools are in the stack or the place you’re trying to get into).

Also idk why you think FAANG is the only place where you can find money. I can tell you from first hand experience that you can sell the most mundane development work, like basic jQuery and CSS site updates, for hundreds of thousands of dollars with the right opportunity. Plenty of prestige in running your own firm. Networking well is where the money is.


" I can tell you from first hand experience that you can sell the most mundane development work, like basic jQuery and CSS site updates, for hundreds of thousands of dollars with the right opportunity."

Where could I learn more about these kinds of opportunities? Does it come from networking, domain experience?


Definitely networking is the most important. In my example, I got referred to my first enterprise client from an old boss of mine who appreciated my work. I literally woke up to an email one day that, within a week or so, led to a contract worth about 500k over the following 6 months, and a few more clients from there. I did nothing but follow up to their intro and answer questions I was asked. I have yet to have the same experience again, because my network is not large. It was mostly right place right time. Eventually it fizzled out because I was not very into doing consulting work and preferred to focus on product-based businesses instead, spending a lot of time building new things instead of growing or improving our DX, client relationships, and lead funnels. I let things slip, managed poorly, and as a result we lost our clients.

It also comes to good sales as well. Again in my example, I was originally approached for a single contributor personal contract. It was just me at the time. Within a couple weeks of working together, I quickly realized they were bringing on these individual devs left and right. I simultaneously pitched the client on expanding our contract to multiple contributors, AKA becoming a true vendor, while also recruiting and hiring a team behind the scenes (again, networking - I pulled from past coworkers and friends who could get the job done, so the hiring process was far from exhaustive, but saved critical time). It was a risk, but it worked out and I was able to stitch together the team and win the contract. We became their de-facto “engineering team” of about 5 devs, and I set up a corp entity and began processing invoices and running payroll for my new employees.

Use accounting software from day one. Hire a corporate attorney. Worth every penny. Spend as little as you can to make your employees as happy as possible. Do not run payroll in multiple states unless you absolutely have to, or be prepared to deal with L&I and revenue departments for every state you have employees in (see: accounting software, corp attorney). Just a few of the lessons I learned along the way.


I've never done any "leetcoding" (whatever that means). Programming for me was love at the first sight when I was a teenager, and still a big lover story for me to this day. I got good at it by writing hobby code, university projects code, research code, and professional code. The one thing that is clear as the sun to me is that to get better at programming you first write shitty code, then less shitty code, until you know what good code looks like. But don't do it in a vacuum like "leetcode", do it as part of an actual project or an actual job (start with internships). Shipping code feels good and gives you motivation to keep going and learn from the feedback you get.

The only warning I'd give is that if you're doing it to get a decent job, and not because you like doing it, then it will be a really hard hill to climb.


Leetcode is an example of a company who sells to both sides: the candidate and employers. This results in an arms race which is great for them because it results in more revenue.

You don't have to participate and there are plenty of companies who don't optimise for people who spend their time cramming for the test.


Do they all pay well, have high prestige and amazing benefits?


This is probably going to come off harsh, but I think it needs to be said.

"Do they all pay well, have high prestige and amazing benefits?"

Any job, even the entry level positions at some unknown company, will give you more of these things than you have right now.

It's called the corporate ladder because you don't start at the top - you must work your way up from the bottom.


Yes


Please share some specific examples.


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.


A bit depressing to be an advertising, I think.


Honestly, it sounds like you bought into the 1337code culture too fully. It's a practice website for certain types of questions, it's not teaching you how to provide business value to companies. You can practice your technical skills and do mock interviews, but if that's all your doing, it won't make your resume look better and it won't make your soft-skills and industry-knowledge better. Future employers want to see evidence you did the job before, which means it's tough to bust into the career path, but also means if you CAN bust in and hang in there, you'll have a good career path in future.

Consider the following alternative scenario: instead of leetcode, what if you focused all of your efforts on finding ANY programming job? You've obviously been practicing coding for a long time, even if you're not a 10X hardcore engineer, you can still find orgs who need help with their code.

So, IMO, you may as well keep sending out coding job apps. You may not score a FAANG position, but you may make a decent living in your chosen profession. Sure, you may not get to use cutting edge methods or innovative libraries, but you'll help others with your coding ability, for instance, consider all the mom and pop websites out there that look terrible and perform terribly. Those sites are an opportunity for you or for me, less talented and gifted people, to provide value where the rock stars wouldn't deign to work.


>Consider the following alternative scenario: instead of leetcode, what if you focused all of your efforts on finding ANY programming job?

Because I don't just want ANY programming job. In fact, that is the approach I took with my first job and hated it.

>You may not score a FAANG position, but you may make a decent living in your chosen profession. Sure, you may not get to use cutting edge methods or innovative libraries, but you'll help others with your coding ability, for instance, consider all the mom and pop websites out there that look terrible and perform terribly. Those sites are an opportunity for you or for me, less talented and gifted people, to provide value where the rock stars wouldn't deign to work.

I'm not interested in those opportunities. That's why I've been studying Leetcode as hard as I can, to get something better than my intellect deserves.


Well, that attitude won't get you a FAANG job, no matter how much you think you deserve it. Build a resume, learn lessons of cooperation and humility, and you will eventually get those FAANG offers. If you are just a nobody with an empty resume, your application gets no second looks.


Post title resonated with me because I've been failing to Leetcode my way to a decent level for the past 5 years, but I know the reason why is because I simply haven't put in enough time and effort. I find that as long as I keep grinding, I can eventually sniff out the patterns, instead of treating each problem as some sort of one-off.

How you got let go might not be your programming skills, it could just be something political, your personality not being received well, or the business not doing well. I've been through this as well - I was obviously not very focused on my job, and was frequently distracted, and didn't fit in with the team.

The problem is you equate Leetcoding well == programming, and you used one outlier post on the internet to confirm your suspicion that you suck.

Even if you do quit, you're going to have trouble finding a job that pays as much as a non-FAANG that doesn't ask you Leetcode questions.

If there's a takeaway from my comment, its to separate your concerns... Leetcode is just about interview prep and nothing more (maybe an entry to competitive programming, where Leetcode is actually a bit too easy). Job performance has nothing to do with Leetcode or even so much programming skills, but more to do with communication, work visibility, meshing with coworkers, taking responsibility and initiative, etc. And programming, just as a hobby, has nothing to do with the above.


Mate leetcode has nothing to do with the work of a software engineer. I do fairly well on algo tasks, but yesterday i spent the whole day figuring out how to do async requests in python Fast api unittests. It's not working out of the box and is very poorly documented.

Most of the work, especially in larger organisations is like that. Most companies don't even want elit coders, they want people who will push out reasonable code at a predictable pace and work well with others.


I would wager that 95% or more of people actively developing software for a living couldn't make it through Leetcode - meanwhile they're providing value to their employers and putting food on the table for their families.

Speaking of families - what's your plan? You say you have an undergraduate CS degree. Even a middling programmer is going to make a lot more than most other professions. What else are you going to do to keep a roof over your head and put food on the table?

Most of all do you enjoy programming? I've known programmers who are very mediocre but love their job. No, they don't make as much as the "superstars" but they're able to raise families, have a life, and enjoy their work.

Don't take this the wrong way but maybe you'd benefit from therapy? A therapist can really help you with perspective. You're definitely not suffering from an overinflated ego, but an underinflated ego is also a problem. At the very least see a career coach to better understand what other options you have and what else you can do to provide for yourself and feel good about yourself.

Take care and good luck. I sincerely hope you get through this and come through to a better place. When you do will you remember us here on HN and tell us how it turned out?


"... putting food on the table for their families"

I think this is the most important comment in this thread and that most of us are so far removed from this concern that we forget it.


Leetcode and similar sites are a poor proxy for programming ability for most programming jobs. People can be good at the kinds of sites and not be very good programmers in a professional setting. I've also seen capable engineers do poorly on these kinds of tests. A couple years ago, a client asked two of my engineers to take a test on a popular coding challenge site as a precondition for adding them to our team. Both of them were accomplished engineers, working successfully with global brands, and both of them scored poorly on the test.

Personally, I avoid clients that use these tests in their hiring process. I've generally found it to be indicative of companies that don't have an engineering-centric culture. Take-home coding tasks that resemble the daily work for the position are generally a much better sign.

I hope you reconsider quitting programming. Your effort to solve these challenges shows dedication, persistence, and ability to think abstractly and solve problems. Those are all very good attributes for programmers. If you put the same time and effort into a bootcamp, online classes, or building your own projects, and made it a point to avoid companies that use these tools, I think you could be successful in this field.


Realizing this thread is very very weird I'll recommend codingames clash of code for those who don't know.

https://www.codingame.com/multiplayer/clashofcode

It's code golf/some puzzles on a 15 minute timer in versus mode. Extra fun with twitch streamers or with coworkers because you can discuss the mess after you made it.


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.


If you did that for money - that's OK. However if you love programming but aren't good at it - quitting is not the right move. I'm constant under-performer who failed to get a degree and failed many projects after that. I wouldn't even try visiting sites like Leetcode because I need no confirmation for my miserable level of proficiency. Still there's a tech boom worldwide and there are so many jobs that even under-performers have plenty of chances. You just need to be in one of (many) places that has lot's of jobs.

Right now the system is rigged in your favor. Interviewing is an art and not a science - you just need resilience to get through. Every article out there seems to be about solving some hard problems, but the bulk of the industry is glorified CRUD (web)apps - you can do it. Instead of doing something that you love and learning to live with a failure you're setting yourself up for a job you'll likely hate for the rest of your life.


I got this push message from Hacker News this morning and felt obliged to post my opinion on the "LeetCode thing" cause I'm currently trying the same thing as you are. I have a master degree on CS and 4 years of professional experience and trying to keep moving forward.

I don't believe solving LeetCode problems well is something that you have to be gifted to achieve. Ironically, I believed it once upon a time. I got very frustrated when failed tech interviews for Microsoft and Google when I was a new-grad and trying to find a decent job.

I know it's frustrating to just look at somebody finishing all the contest problems in 10min and you're scratching your head for many hours or even a whole day. Believe me I was literaly doing this for a long time. But I started my professional occupation anyway. What I did then is keep trying for several years since I know I'm stupid and stubborn. It turns out to be promising in the third year doing so.

I gradually find out there IS a way! There is a clear and straightforward path to do better in algorithm problems: just get a full list of basic data structures and algorithms, understand them all by watching youtube videos, learning online courses (MIT online courses helped be a lot), and practice tens of problems in each subject until you get sick of it. Currently I get 2481 points in LeetCode contest and I'm preparing for my next period of career and hope these hard work finally pay off!

In case someone need it, these 2 lists are very comprehensive and helped me a lot:

* https://github.com/jwasham/coding-interview-university * https://techdevguide.withgoogle.com/

Hope it helps!


If doing 100% programing isn't working out in the real world for you, then you may want to look into a "super sysadmin / devops" role in which your main job is one thing, but gets greatly enhanced if you can program. These aren't positions that are actually advertised for, but happens to be the role that I've always fell into. That is, on paper I'm a Unix/Linux systems engineer, but I put my C programming (and other languages) to use in areas that cause me to get ahead of my peers.

Typically this involves creating ad-hoc monitoring scripts, doing devops type of work, or backporting security patches to unsupported OS versions (that we are required to keep around for various reasons). Or coming up with tooling (full-stack web apps) that enhance my department's efficiency. Things like that. So people think I'm a super coder, but I probably wouldn't be successful doing it full time.


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.


I'm a successful senior software engineer with a salary around the upper bracket across the industry. I've never done Leetcode in my life. I don't even know what the site looks like.

I don't have a CS degree and I've also never taken an interview where I had to write code on a whiteboard.

Leetcode is not necessary.


How, if you don't mind me asking? What did your path look like? How did you go from job to job?


I would also like to know how.


I got a degree of electrical engineering in one of the eastern european countries while learning some scripting languages as a hobby, since I was a nerd since high school and wanted to know how to build websites. At some point I learned enough Ruby on Rails to be hired as a junior dev in a sketchy startup in my home-country. I kept learning new stuff and improving doing the work and at some point became a confident Mid level dev. I interviewed with a RoR consultancy in US and they offered me a job and an H1-B visa. I started maintaining open source libraries that I needed for work and got some recognition from it. I went to some conferences with my coworkers in US and networked. After a year and a half in the consultancy, I interviewed with a successful YC startup and got an offer and moved to SF. After another two years in SF in this company I moved to Seattle and continued working for them remotely.

I now work for a different YC company with an office in Seattle (although it's been fully remote for the last year for obvious reasons) and most of my coworkers are ex-FAANG employees. The compensation is quite generous (around FAANG-levels) and I feel like I've learned enough stuff throughout my career to compensate for my lack of formal CS education.


Same here.


There are already lots of good advices and recommendations, but I still would like to add my own experience. I have an non-CS engineering degree, so before I did any interview prep, I bought the CLRS algorithm textbook and self-studied everything up to and including graphs/dynamic programming, which are the topics a typical whiteboard interview covers. This includes not just reading, but actually implementations and test harnesses for each of the data structures. I used Python.

Next, with the basics covered, I worked through both Cracking the Coding Interview and Elements of Programming Interview in Python. I worked out each problem in a paper notebook with pencil, talked to myself explaining my approaches, and checked my handwritten code with a computer after I am done. This further cemented my sense of how to approach problems.

Last, I worked through leetcode problems. This step is identical to another fellow HNer’s comment on chess and deliberate practice. I worked on a few (3, at most 4) problems a day. For each problem, I treat it as a real interview and talked to myself out loud.

1) I repeat the problem and stated assumptions

2) I explained my approach and reasonings on selecting any particular algorithm/data structure

3) I outlined with pseudo code and identified any edge cases

4) I walked through my algorithm using simple example as a a quick check

5) Only then did I start to write code, on paper with a pencil.

6) After I’ve written the code, I walk through the code again with a simple example as well as the edge cases identified in step 3 to verify I handled them.

7) Finally, this is where I actually use the leetcode website. I type my code exactly as written and submit it to make sure it passes.

The goal I set for myself is that for Easy questions, I should be able to do this in under 15-20 minutes (exclude typing code into leetcode) and pass in a single attempt. For Medium questions, I gave myself 35-40 minutes and maybe 2 attempts. For Hard questions, it’s up to 55 minutes and not necessarily pass (basically I am ok with failing hard questions).

I was able to pass the tech interview at Google.

The CLR portion took a few months (I don’t remember exactly how long). The Cracking the Coding Interview/Elements of Programming Interview in Python is maybe 1 month. Leetcode portion is maybe 2 months, give or take a few weeks.

I hope this helps you.


Not sure what's your criteria for "good enough" or "progress"? Finishing a certain percentage of leetcode questions? <-- this says nothing but just that, how many leetcode questions you finished, i doubt any serious company would just use that to gauge their potential hires' ability. If it's about finding a real programming job? or find a job in FANGs, there are way more other factors than just leetcoding (saving the effect of leetcoding on hiring for another day). It's a fact that not everyone hired at FANGs aced those 1600 leetcode questions. It's cool that if you decide programming is not for you. But you are giving leetcode too much power if that's the sole reason you want to leave the field.


I mean Leetcode type interviews are the primary filter these companies use. Sure, I don't need to literally solve every question, but I need to be able to do it well enough to pass the interview. Not being good enough means I can't meet that threshold for FAANG like companies.


Never heard of leetcode before now and it wouldn't really factor into my hiring decision.


> undergraduate degree in computer science

> half years of professional coding experience

> worked diligently at Leetcode for those 5 years

> personally coached by a google software engineer for months

> done and given 100s of mock interviews

> paid for some to be done by professionals

> 100s if not thousands of hours on Leetcoding and algorithms trying to improve

Neither of these are relevant if you want to work as a programmer. I say this because probably millions of programmer never done any of those things before they get a job as a programmer.

Getting a job is more about how good you are at working with others, more than anything. When they are interviewing you (or even more important, working with you) they want to see that you're collaborative and can contribute. Sometimes that's surely knowing the best algorithm and knowing how to implement it without searching for a solution, but most of the time it's not.

It could be that you already are very good at programming, but it doesn't matter because you're a shit person. Meaning that maybe your soft skills are very lacking compared to your technical skills.

You don't have to be the best programmer in order to have a successful career (sadly?) and you can definitely be comfortable just being a average developer. You certainly have other skills, or can acquire, that compliment your programming skills.

You'll get more attractive as a programming if you're not just someone who can program blindly, companies want someone who can solve problems + program. Or know how to create products + program, or manage financial + programming, so on. Knowing something other programmers don't, that is useful will make you a lot stronger candidate.

And stop focusing on immediate "point"/"chapter" exercises like Leetcode. They are inconsequential when it comes to actually working as a programmer.

Question: what have you been doing for 5 years exactly if only 1.5 years of those was at a workplace?


>Neither of these are relevant if you want to work as a programmer. I say this because probably millions of programmer never done any of those things before they get a job as a programmer.

Yes, underlying talent and intelligence is what matters. Leetcode is just the way companies filter for that today.

>It could be that you already are very good at programming, but it doesn't matter because you're a shit person. Meaning that maybe your soft skills are very lacking compared to your technical skills.

I have both bad soft skills and tech skills.

>Question: what have you been doing for 5 years exactly if only 1.5 years of those was at a workplace?

I did Leetcode almost since the beginning of my 4 years of university. 4 years in school + 1.5 years on the job = 5.5 years. I rounded down.


I don't see what your point is here. You haven't met some arbitrary short-term goal as fast as some other person, therefore you should give up on all your long-term goals and other people should too? Seems like a non sequitur to me.


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.


> one and a half years of professional coding experience which ended when I got fired for performance issues

I'm not American nor I work for a FAANMG, but I think that less than two years is not enough time to have that defeatist thinking.

I'm sure you're a good Software Engineer (at least you've got the foundations as you studied CS). Why don't you apply to startups and give some years to get some extra experience and get a network of peers?

Have some patience and perseverance. Getting a job in a big company is not always easy and each person needs a different time.


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.


OP, I have 1 question for you.

How are you measuring your progress?

How do you know if you're getting better or worse?

I've found that the best measurement for this is the leetcode weekly contests.

In addition to being excellent interview prep, you see how you rank against others and that is really the only thing that matters.

If you're consistently ranking about average in these contests that's when you should start lining up interviews.

EDIT: I wrote the above before checking the link. Notice how even she measures herself by her contest rank?

Those contests should be the gold standard of how ready you are.


Who cares about leetcode? That's not engineering. It's a bunch of puzzles.

Software is a team sport, you need a few people that are really good at this crap in a company, but the majority of the work has nothing to do with it.

You need the creative types, the methodical, the workhorses, the leaders and the followers, and maybe, a couple of the puzzle solvers.

I've seen bright people fail miserably on a real project and the not so bright take it to the finish line. Don't measure your value by a bunch of puzzles.


You impressed me a lot. You show such devotion, you found enough strength in you to work through those Leetcode exercises and you was doing this consistently for 5 years! You are a star!

If I was you I would not waste my time on Leetcode. If you have this kind of titanic attitude towards reaching your goals then I beg you - find a problem you can solve with technology and make millions by selling your solution to it. I am more than certain you will build the solution.


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.


I want a FAANG level job though.


> To succeed in an interview, you do not need to finish all LeetCode questions. But solving all of them could be fun and satisfying.

That is the first line in the article that you have shared.

Try finding any aspect of programming that brings out the same satisfaction in you and you will succeed. Because then you will be the one defining what success means to you and not basing it one another individual(s) who have their own strength and weaknesses.


>That is the first line in the article that you have shared.

So what?

>Try finding any aspect of programming that brings out the same satisfaction in you and you will succeed.

This is wishful thinking. Plenty of people love things they are bad at. Look at more creative fields and how many schools prop up to make money off of people's dreams. How many of those people do anything of worth?


> So what?

I was pointing towards why the author was motivated to attempt all those problems in the first place.

> How many of those people do anything of worth?

People find what they are good at or makes them content at different stages in life. Until then they will try out paths that others have taken like those creative schools you have mentioned.

I was a below average student at school and then went for engineering because that was what most of my peers did. However once I started programming(not leetcode but just different CRUD apps with variations), I realized that I could never go do advanced degrees like MSc or MBA like most of peers did. Because I cannot perform well in a competitive environment where I would have limited time and flexibility to comprehend what's in front of me.

Now regarding job opportunities at FAANG or in general, getting a job involves luck as well. You might forget a specific dynamic solution for a leetcode problem, or the interviewer might take out his frustration at work on you or despite you doing well, the company might be looking into other factors when hiring. Do not just associate a rejection to your skill at solving leetcode. Keep doing leetcode and interviewing at FAANG, but also spend time finding something that satisfies you so that you can always lean on it on a bad day.


Because of the structure of labor market, for highly competitive jobs luck is also very important: https://www.youtube.com/watch?v=3LopI4YeC4I

It does not meant that merit do not play role, simply there is so many highly skilled, and good candidates, that only small percent of them will get the dream job.


Thank you for sharing this video. I think it really gets at the heart of something a lot of people don't want to hear or are ignorant on. As you say, it's hard enough being actually skilled and deserving so imagine being neither of those and trying to make it.


There are many scales on which society measure man: money, look, status , job etc.

It is possible man is average in all of them. Just simple plain average man.

Now what he can do is invent new scale and try to dominate that scale from start and still end being average after some time.

Basically he was born average and will die average.

Now man needs to decide what he going to do about it. Whine everyday till he die or enjoy whatever this is till it lasts.


> 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).


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.


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.


Why quit programming? Why not just quit leetcode? Leetcode has very little to do with how well you code in a real-world application.


Computer science and software development are very different fields. Leetcode asks more CS type questions, but that doesn’t meant you’ll be a good software dev. In fact, the same qualities that make for a great computer scientist are also the ones that make for a terrible engineer.

So you’re not bad, don’t let it get you down. You’re probably a decent developer actually.


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.


> I'm still not good enough.

How do you know this? I’ve never done leetcode, but if you have an degree in Computer Science chances are you’re as good as the average software engineer out there.

Btw, the Googler coach sounds like a scam. Don’t do that, coaches are usually worthless. Try applying to decent companies that do not require leetcode or similars.


It's not just leetcode it's that most people in this industry are hiding the most simple truth: they cannot judge what you know or don't. Full-stop. I find most technical interviews comical, it's pretty cute watching some nerds try to front on you with horribly worded questions.

FWIW-- Leetcode is a fucking game at best, if anyone is judging people's qualification for employment by "leetcode" they may as well be yelling from mountaintops "I do not know shit! I have no meaningful way to judge or ascertain talent, nor do I find it even worthwhile to try to... so here I stand before you to stroke my ego!"

Go read code, make things that are fun for you to do or build. That's what will you get you hired... The reason leetcode isn't helping you is because they're acts of pedantry, they aren't there to teach you anything useful. When some shit website like that drops a problem akin to:

"a deadline was dropped on your desk of yesterday, you have 18gbs of CSVs to go through (w/ half of the file encoded as TSVs), github is down, and if you don't get this data parsed by the end of the day the firms biggest client is going to leave... You can't deploy because there's no trust in your organization and the "principals" are out... Your project manager is "out sick" for the fourth time this month. What do you do?"

[x] Totally un-fun. [x] Realistic. [x] Boring (see realistic). [x] Involves zero squares or square roots (wtf, fellow nerds, why is everything a stupid[1] math problem).

[1] Mathematics is fucking sweet, taking the square of fucking[2] numbers or the norm of a vector is so boring I'd rather gouge out my god damn eyes than ever even read a fucking sentence of it...

[2] Lol, "fucking numbers" would that be numbers that fuck?


Work smart, not hard. Understanding of this principle can change your life for good. The rat race is for racers. The journey of life is for explorers.


Ok can you give anything concrete?


Every skill has benefits. Just find a place for useful implementation. Thats all.


This thread looks too much like some ads on Facebook where a brand's PR person replies to every single comment to keep the post busy.


Ability to do leetcode =! job perf. I think Google even proved this to themselves although they still hire based on it...


When did Google prove that?


i'm pretty sure if one wants a job he should go to the actual interviews instead of the mock ones... i mean what's even the point of leetcoding hard for years, it would be much better to refresh your tech stack, to apply to multiple actual positions and only then maybe solve some easy to medium leetcode


I wonder what's behind that performance issue that led you being fired.


After that first paragraph I was on the floor laughing. If programming doesn’t work out you could always do stand-up comedy!


LOL


so what will you do instead?


"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. "

I do agree and I think you are wise recognising this.


The C++ example on leetcode front page is dead wrong. It use that "using namespace std" thingie.


Build something instead of doing what is the equivalent of CrossFit but for programmers.


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


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: