8

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

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.

Comments
  • 5
    Most programming tasks are rather about analysing the problem domain and gathering the requirements, pretty much the hardest task.

    Then coding them, but not in super clever puzzle style because that's not maintainable for the next dev.

    Then verifying that with regards to the requirements. Coming up with test cases that could break the code and that actually mean something.

    Even if it's not a formal process, the different steps are still there. Software development has little to do with solving puzzles.
  • 6
    I can’t help but think you consider leetcode and algorithms to be the be-all-and-end-all of programming.
    It’s not. Being able to smash out algorithms is all well and good, but you can have a fantastic career without touching all but the simplest ones.
    I’m assuming by concentrating on algorithms exclusively you have spent very little time considering other areas like good software architecture and design patterns.

    I’ve worked with a couple of algorithm genius people who were great devs. But algorithms on their own do not make great software.

    You mentioned you’ve been coached by a google software engineer. I’m willing to put money on that making you actually better than many other candidates if you apply to the right places.
    There’s more out there than FAANG - personally I don’t think I would ever apply to one..
  • 2
    ”The majority of people would never be able to accomplish that” - totally true. And that includes the majority of programmers. It sure would include me.
    Plus, you’re assuming this is true. I suspect it’s utter bullshit.

    What you said about this culture that we are always trying harder and thinking success stories apply to everyone being toxic, I completely agree with that. Think I believed that shit for a time too.

    I think in the last couple of years I burnt myself out by trying to prove I could do much more and got nowhere. Because places need more developers than they do architects/team leaders etc.
    You need luck as much as hard work.
    So yeah, I’m in agreement
  • 2
    .. I’m trying to ignore the fact that I’ve not managed to get a leg up the career ladder (in the direction I want) and I’m trying to relax and just accept I’m on a good salary and the work is interesting even tho I never struggle with it (cos I kinda did enjoy the struggle associated with pushing my boundaries).

    So don’t be too hard on yourself.
    I bet you could have a great career if you give yourself some slack.
  • 3
    I pity you, man. You have compared CP with software development in general. It is totally wrong

    CP is more like a rapid-fire programming hobby than anything else. Software Development in general is a different beast altogether. Since you are a CS grad and had already completed ~ 2 years in the Industry, I am going to assume you already are a good one

    Don't compare CP with anything else except with real Nerds who are experts in that area. It is meaningless. Please drop this thought and move on
  • 2
    Nobody really cares about Leetcode in practice, there's so much more to software development than smashing out yet another algorithm.
  • 3
    Them: I have reached the highest levels in leetCode, my algorithm mastery is unparalleled.

    Me: That is nice dear, for your interview task, I want you to generate a simple API that lets a user submit blog posts only after they were authenticated against the system, here is the base code and here is a list of the libs or utilities you may use :D Good luck!

    Them: but.....but......my reverse binary tree search...

    See? no one cares about leet code, shit is impressive, and it is meant to be something to elevate your knowledge. Coming up with interesting solutions and proper algorithms is all good and swell, but being able to crack open a system with thousands of lines of code and knowing your way around to maintain, troubleshoot, add etc is way more important to a lot of us.

    If this makes you feel better, I am actually the ONE that decides at my institution if someone gets hired or not. You are good man, don't be too hard on yourself.
  • 6
    I used to be good at DS & Algo. Now I am not, you know why cause i did not have to implement them ever. Its useful to know when to use what and why but for an enterprise production code your implementation will be thrown out. Why did no one in these five years has not told you this is beyond me!

    You are a software developer and not an algorithm developer. Much smarter people do that.

    To put it in context, you are now worried about not coming up with your own hashing algorithm when all you need to do is use it.

    Also 95% percent of developing is knowing the domain. You are not developing software in the void, you have to develop it for the imperfect world around it. That is why it always breaks and becomes messier over time if not careful.

    Hurts to say this but you were looking at it from incorrect angle from the beginning just like i was before becoming a developer.
  • 2
    I fucking hate leetcode and its toxic community so much. Also fuck all companies that ask people to solve stupid ass leetcode questions.
  • 1
    If you wanted to go for problem solving competitions then you should learn CP that much otherwise Software development is the most thing people focus and how many projects you have worked on.
  • 0
    Had to look it up: Competitive programming (CP)

    DevRant acronym hell (DRAH) is real.
  • 0
    I agree with the sentiment here about algorithms and that you probably have some sort of dream goal job. That might be unattainable, so perhaps you can adjust your dream and still work in the field. Or shift even further and do something else with your life.

    You are correct that not everyone is cut out for this, unlike all the "you can do it, with grid" and participation award crap floating around. I can want to be a chess champion, work super hard at it all my life but don't have the faculties to be one. Fortunately they don't teach everyone can be a pro chess player at primary school.
Add Comment