Tech IndustryNov 8, 2019
Newmark_zuck

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

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

Add a comment
GE n64gtfo Nov 8, 2019

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

Microsoft Letsdoitt Nov 8, 2019

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.

Google UWOM24 Nov 8, 2019

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.

Microsoft L4J Nov 8, 2019

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.

New
mark_zuck OP Nov 8, 2019

Yes, what's on LC has nothing to do with real world apps IMO

New
Quakk Nov 8, 2019

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

Facebook ubDu53 Nov 8, 2019

In the time it took you to write that, you could have solved two LC easy problems

Pandora ctiv08 Nov 8, 2019

You'll be good at anything you do a lot, but you have to be mindful.

E*Trade cbEV72 Nov 8, 2019

Maybe you’re just not smart. Nothing can be done about it, so let’s home it’s not the case

New
mark_zuck OP Nov 8, 2019

how can I be sure if I'm smart enough or not ?

New
grindr Nov 8, 2019

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.

GE n64gtfo Nov 8, 2019

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.

Salesforce cattleman Nov 8, 2019

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.

Facebook ⭕w⭕ Nov 8, 2019

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?

New
mark_zuck OP Nov 8, 2019

how is ur comment helpful ?

Facebook ⭕w⭕ Nov 8, 2019

You want the solution to the question without thinking about it this time as well?

NVIDIA yuhu9 Nov 8, 2019

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.

New
mark_zuck OP Nov 8, 2019

thank you !