How to get good at problem solving ? I need a sincere advice

Nov 8, 2019 24 Comments

This is a long post, but please bear with me. I really appreciate everyone's help.

First, a bit about myself.
I got my bachelor in Computer Science in summer 2018. Right after, I did all I could to get accepted into a US college for a masters. In my country, it's the absolute minority who could come to the US because 1) English is 3rd language, and 2) it's tooooo far, and 3) both US and my country's education system are worlds apart.
I started my masters in Spring 2019, and I'll graduate in May 2020 (yeah, my loan provider approved only 3 semesters).

During my undergrad, I used to skip ALL algorithms and data structures classes. Believe me, I graduated knowing ABSOLUTELY NOTHING about trees, queues, hash tables, backtracking, DP, (except that they exist). If you're wondering how I graduated failing these courses, the education system of my country works in 'packets of courses' where the overall score of a packet is what matters, so I could pass 2 out of 3 courses in a packet and still graduate.

I SUCK AT ALGORITHMIC THINKING. I can't even think in terms of data structures, and I FAIL MISERABLY everytime I try. Last June, I started brushing up on the basics and studied all the data structures from scratch over 6 weeks. I implemented all of then along with the common operations that apply to each of them. Then finally started Leetcoding.

I started Leetcode exactly 4 months ago, haven't stopped since. I dedicate MY ENTIRE DAY to LC except when I have a homework or a class (which I have only twice a week). Yes, I improved in so many areas, but I STILL SUCK. I can't think or come up with solutions, but I understand solutions well when I read them. I did 240 LC, 85/155 Easy/Medium so far, and I started reviewing them 5 days ago, only to find that I struggle with almost all the questions. I'm afraid I've been memorizing solutions not properly understanding them.

Guys, my life has been miserable and started to think I'm not meant to be a programmer or software engineer. Recursion in particular gives me A VERY HARD TIME, and I automatically suck at all tree related problems. When it's not a recursion, I feel my mind is VERY LIMITED and can't think algorithmically. I've been bombing all online assessments and get demotivated every single day. I'm very tired and need guidance, critic, advice, or anything that could save me.
PLEASE no trolling. I don't think this is the right thread.

TL;DR: I SUCK AND FAIL MISERABLY at algorithms and am completely unable to think algorithmically (except for very basic tasks that absolutely anyone can learn). My life is miserable because of that.

TC: None


Want to comment? LOG IN or SIGN UP
TOP 24 Comments
  • Google UWOM24
    Solve real world problems. Write an app and a backend that goes with it and keep doing it. You will face many problems and you will learn by doing it. If you don’t have the passion to do this, it may be impossible.
    Nov 8, 2019 2
    • Microsoft L4J
      Leetcode (and interviews) have nothing to do with real world problems. Who has ever had to find how many rabbits of the same color you have in a forest? Or what’s the percentage of folks that had to implement a DP solution? Or even simpler: invert a linked list? Leetcode is just an exam, like a SAT, given no one ever found a better way to interview which is cost efficient for both the hiring company and for the candidate.
      Nov 8, 2019
    • OP
      Yes, what's on LC has nothing to do with real world apps IMO
      Nov 8, 2019
  • New Quakk
    Follow errichto channel in YouTube he is a redcoder in code forces and many other cp platforms, he explains his approach when he see a new problem, u will get to know how to crack and many tricks which no one tells you.

    PS I followed him for quite a while and reached master (yellow) in CF comfortably
    Nov 8, 2019 0
  • Microsoft / Product Letsdoitt
    Evaluate if you want to be a a programmer, came to US 13 years back to study CS at one of the top schools, sucked in semester 1, decided I am nowt going to waste my time doing stuff I am not good at or enjoy, changed direction, moved to a different discipline, that was more about business and internet technologies, ended up doing well for myself.
    Nov 8, 2019 0
  • New grindr
    Let me guess: you are programming in some shit interpreted language.

    You probably won't understand how the machine works until you learn C programming.

    Any higher level language and generally somebody else has already done the heavy lifting for you.

    It might take time but it can be learnt.
    Nov 8, 2019 4
    • This is good advice. I’d generally say c++ is fine, but without large scale apps, long running apps, or someone/something to tell you things are wrong, this does make sense. Learn the underlying systems of how things work, even at a moderate level, and it will follow you well.
      Nov 8, 2019
    • Salesforce cattleman
      CS algorithms have nothing to do with “how the machine works”. They are precisely abstracted away so you don’t have to know how to machine works. That’s why leetcode works in all languages.
      Nov 8, 2019
    • How to actually engineer > interviewing with algorithms.
      Nov 8, 2019
    • Salesforce cattleman
      Following this argument I’d say unless you have a strong grasp of the consequences of electron balance in the context of L1 networking then it’s not actual engineering. Which is why it’s wrong. You have to balance efficiency in execution with depth in knowledge to the degree for which it’s relevant. Given our state of the world today and what sounds like where OP wants to go, getting to such low levels isn’t the solution. Abstractions exist because the underlying principles are proven enough for today’s applications.
      Nov 8, 2019
  • Facebook ubDu53
    In the time it took you to write that, you could have solved two LC easy problems
    Nov 8, 2019 0
  • Facebook ⭕w⭕
    You skip all your DS&A classes and believe you can't come up with solutions on leetcode so you just go ahead and read them, all while constantly berating yourself in all caps to be miserable and suck...and you wonder why you suck?
    Nov 8, 2019 3
    • OP
      how is ur comment helpful ?
      Nov 8, 2019
    • Facebook ⭕w⭕
      You want the solution to the question without thinking about it this time as well?
      Nov 8, 2019
    • OP
      dude, i don't think i want this kind of conversations now, move along
      Nov 8, 2019
  • We all learn differently, you might be one of the people who learns best by having a person explain a concept to you and then going through a problem or two with you. I am like that. I use Edx and Udemy classes to learn concepts that I find hard to grasp by just reading. I need someone to explain it to me, it sorts of has to enter my brain through my ears and not my eyes.
    I am sure there are other learning styles that I don’t even know about.
    Find the way that works for you, maybe you can find a study partner at your university to help each other?
    Nov 8, 2019 0
  • Stop looking at solutions and solve things yourself. For example, learn about trees and then try to do a rotation based on your own understanding. The algorithm doesn’t have to be good, it just has to work, for your understanding to increase
    Nov 8, 2019 0
  • Cruise Automation ape-polo
    5''6 Indian is that you ?
    Nov 8, 2019 1
  • NVIDIA yuhu9
    First, stop leetcode! Get a text book , any of the popular ones ( Skiena, CLRS, ADM) and review materials. Implement some data structures on your own. See the magic happening, realize it, be amused and get comfortable with discussing why in a situation would you choose one DS over another.
    Once you think you have a good grasp of it, only then start leetcode.
    Start with easy, just to boost your morale and then soon shift to medium.

    There are no shortcuts. Even the smartest on this app earning those high TC has been spending way too much time behind the screen learning stuff!

    Also, if you don’t enjoy the process, don’t feel you are not meant to be. You will better be enjoying your hobbies with a good paycheck than being without money and living your passion. Follow your passion is BS advice.
    Nov 8, 2019 1


    Real time salary information from verified employees