DEV Community

Braincuber Technologies
Braincuber Technologies

Posted on

How to study Data Structures and Algorithms while working a full-time job?

Data Structures and Algorithms are things that can set you up for highly lucrative jobs in Programming. Top-tier product-based companies like Google and Microsoft are actively hunting for software engineers who are well versed in DSA.

However, it can get a bit tricky if you are already a working professional and want to climb up the corporate ladder. However, many people have managed to develop the skill and get into their dream companies while working a full-time job. So we are here to share with you a few ways you can develop your knowledge of Data Structures and Algorithms while working a full-time job.

To decide the best pathway and resources to prepare DSA for interviews, you have to think about your current level of expertise in Data Structures and Algorithms.

There are roughly four levels of learning DSA for a programmer. We have compiled the best resources and learning strategies for each one. Keep reading to know about them!

  • Not sure about the basics of a programming language.
  • Have the basic knowledge of DSA and can do the easier questions.
  • You can do medium-level questions, but not complex ones.
  • You are able to do some hard questions, but want to practice more to be invincible in interviews.

For those in the first category:

First, get your basics of language right

It surely gets easier if you already work in a technical field and use a programming language. However, if you aren’t sure about the basics of Javascript, C++, or any other language of your choice, you should not step into learning DSA. Because language is the most crucial building block to programming. So, choose a language and learn to use the correct syntax in your code.

If you are not in the first category:

Know your current level of knowledge of DSA

Don’t corner yourself into doing only one kind of DS and Algo problems. Try out different kinds of questions to figure out your current level of understanding.

Once you know the level of difficulty you can tackle the problems, choose the best techniques and resources for your interview preparation.

Resources to prepare data structures and algorithms:

There is a jarring amount of resources that you can find online. So, the initial step to begin your learning process is to choose the resources that work the best for you. Let me share some important study resources that are used by programmers around the world.

For beginners:

Since you have a lot to cover in probably a short amount of time, you can begin with a platform like Hacker rank or Leetcode which provides a good variety of basic level DSA problems. Try to learn the basic operations while paying close attention to time and space complexities.

You can start with revisiting algorithms of sorting and searching, and simpler data structures like:

  • Arrays
  • Linked lists
  • Stacks
  • Strings
  • Queues

For the advanced learners: Develop foolproof skills at solving DSA problems:

Once you have moved past practising the easier problems (you can do them quickly while keeping your code brief), the natural step seems to move out and do every single complex problem in the world. Many take up the route of competitive programming.

However, this is not an efficient strategy for interviews.
Secondly, competitive programming is a great way to develop your algorithmic intuition. But working professionals are usually unable to commit time for it. Instead, you should focus on doing a smaller set of sure-shot interview questions.

When it comes to cracking interviews in top-tier companies like Google, Adobe and Microsoft, it is better to focus on DSA problems. They are enough for you to develop your coding logic. The questions typically asked are not the toughest ones, but those that test whether you are an efficient coder with strong problem-solving ability.

Techniques to prepare DSA for interviews:

1. Focus on the core set of problems!

Once you have revised the important Data Structures and Algorithms, it is important to revisit the issues involving important Algorithms and Data Structures to strengthen your core set of difficulties. And then if you come across a similar concern, you don’t have to code and debug it because you already know the drill.

2. Repetitive problem-solving:

If you have prepared DSA for interviews before, you would know that it’s easy to lose your problem-solving muscle, and you feel like you will have to start over. A way to counter this is by practising the question again after a week, then a month later, until the techniques become second nature to you. This practice of spaced repetition is the best you can do to solve the problems of DSA.

3. Solve real world problems using code blocks:

Once you have revised almost all the influential data structures and mastered all the techniques, you should move over to solving real interview problems. Don’t get caught up in doing those really hard concerns.

You cannot solve every single complex problem in the world, and shouldn’t try to. It’s not worth it. Instead, focus on finding the few that are recurrent in interviews. We will talk about where to find those concerns later on.

Some tips for the interview:

1. Understand the difficulty

Usually, (mis)understanding the issue is the deal-maker or deal-breaker in interviews. So you have to make sure you keep your composure and think about the concern at hand.

2. Write Pseudocode

Write Pseudo Code first, and eventually find out the best solution for the issue. It not only helps you arrange your thoughts, but also allows the interviewer to see your structured approach.

3. Use GitHub to document your codes

Document all your codes in a GitHub repository. It helps you go back and see what worked and what didn’t. It also helps you to really understand the concepts. Which not only helps you crack interviews, but makes you a better programmer.

follow my blog blog.braincuber.com

Top comments (1)

Collapse
 
lohxx profile image
Lohanna Sarah • Edited

Loved the content, it's going to help me with my study plans.