Learning Data Structures and Algorithms (DSA) while having a full time Job

Learning Data Structures and Algorithms (DSA) while having a full time Job

I often get one question from most of the developers I speak to about DSA and that is “How do I learn this thing as a developer with a full-time job?”

The truth is that jobs are demanding and you would most probably not have so much time to set aside to learn and practice DSA. What makes it worse is the fact that most part of DSA doesn’t directly apply to the work that some of us do at our current jobs.

This is something I have also battled with at some point in my career.

One thing I have seen that is common to most people is that they try to grind problems on hackerrank, leetcode, algoExpert as a way of learning. That is not the best way to approach it. A lot of people are unable to even solve most of the simple problems mainly because they haven’t learned and understood the basics of DSA.

Even for those that know the basics already, it is not a sustainable practice unless you are a competitive programmer.

My first suggestion is for you to start with the fundamentals. You can read a book on this or you can even take a [Data Structures and Algorithms for beginners] course. It is also important that you take your time to learn and understand the basic concepts.

Having someone who has good knowledge of DSA would be a plus. There might be times where you find it difficult to understand some things and just having someone to run to is of huge advantage.

After learning the basics and you still shouldn’t start grinding problems. You can just add it to your daily or weekly routine. I try to solve at least 2 problems weekly. The growth is gradual; It’s not a sprint. The idea is to keep refreshing what you have learned so you don’t forget.

The only situation where I would suggest rigorous grinding of problems is when you have an interview coming up and you are pretty sure that DSA is a strong requirement. Otherwise, you can just stick to a routine.

I hope this helps someone ✌🏼.