If you are an engineering student, at some or other point, you must have been told that Data Structures are important. But also that we need to focus on development because that is what will make our portfolio and that is how we’ll make projects to show in our CV.
So how do we learn data structures and development together? Or the better question here will be – do we even need to learn them both together? I assure you that by the end of this article, you will be able to make a clear plan for how you need to go about it.
Why do we need to learn Data Structures and Algorithms?
Any amount of emphasis on the fact that Data Structures and Algorithms are the foundation of your software development career is not enough.
In the previous section, we talked about how programming is not about figuring out a solution to a given problem but is about figuring out the most optimal solution to it. And for that, affluence in DSA is what you need. Here’s an excerpt from another article I wrote to explain exactly how data structures and algorithms are applied in real life:
If you have ever ordered food online using the mobile applications of various Food Delivery companies like Zomato, you would know how you can track your order in real-time. Once you place your order, Zomato selects one employee who is allocated your order. This process that seems so simple from the outside actually uses a lot of mathematical techniques which essentially are built on the foundations of Data Structures and Algorithms.
If you try to make a basic food ordering system, you might use three kinds of data structures. You can use Linked Lists to store the items on a menu, Stacks to store the items that a user orders and Queues to store the orders from various users. The more interesting part is understanding how these structures will implement the operations we need to do and why we use these. These questions, you will be able to answer yourself once you delve into this subject.
Another application of data structures is seen in web scraping. It is a technique used to extract data from a website, which means scraping it from HTML files. HTML in itself is a binary tree. So in order to perform web scraping successfully, one must have knowledge about binary trees which are a type of data structures.
Thus one thing is clear, we must learn DSA before we go to development because only if we know that there exists an algorithm that will make our code better, will we be able to use it.
Why should you consider going into Software Development?
1. Problem-solving skills: Imagine being able to solve the real-life problems that a number of people face with a program you built using your own brain and skills. Not just this, but there are a number of routine tasks that you do every day that can easily be done by a computer to give you more accurate results and obviously save your time. Once you delve into the field of software development, you would be able to look at problems from a different perspective and also be able to build solutions for them.
2. New learning opportunities every day: During your journey of software development, you will work on all kinds of projects – large, small, complex, simple, but every project will be new to you. Every project will bring to you a new set of challenges that will motivate you to explore new tools and techniques to tackle. Thus, you never stop growing. Moreover, you will work in teams
3. Creative side: Who says software development is all about writing random codes? A painter looks at something, perceives it in his own way and then finds out the best way to put it on canvas. A programmer comes across a problem, perceives it, breaks it down into smaller problems and then finds out the best way to solve it. A programmer must be creative with his code. Because the goal is not to find a solution but to find the most optimal solution.
4. Career opportunities: In today’s world, any kind of advancement is not possible without technology. Any kind of solutions is not possible to be reached without the usage of technology. Growth for any firm is not possible without using technological tools.
According to a Gartner Press Release, “IT spending in India is projected to total $81.9 billion in 2021, an increase of 6% from 2020, according to the latest forecast by Gartner, Inc. IT spending in 2020 is expected to total $79.3 billion, down 8.4% from 2019.” Thus one thing is clear, the IT sector is here to keep blooming. And so is the demand for software developers.
Do we need to learn DSA & Development together?
We need to understand that even though our goal might be to become a software developer, our foundation will be made strong only if we know data structures. Thus our first priority would be to master data structures. And then, we move to development. If we start both together, we’ll constantly have stress from both sides. Both are tricky, both require practice so doing them together is just difficult and won’t give the right results.
So the correct way to go about it is to give time to data structures first, then move to web development and while doing web development, give 5-10 hours a week to practising data structures. This way you will be able to excel in software development with a strong foundation in data structures. And that my friends, is the secret of how to manage DSA and Development together [not together!].
Frequently Asked Questions
We understood why we need to learn data structures but the question left unanswered is HOW do we master it? For a detailed and step-wise roadmap on preparing data structures, check out my article on “How to prepare data structures on interviews”. You can also find previously asked company-wise interview questions on data structures in this article.
The chart below depicts just the average salary of a software developer in India. But the number is much higher for the people on the right side of the line. As you gain experience and hone your skills, the salaries increase significantly.
We now know that the importance of DSA and Development is significant for improving our programming skills. Therefore, practicing both of them is immensely beneficial. But students often try to learn them both together, thus inviting extra burden and an increased probability of not learning it the right way. Thus the need is to go stepwise.
Learning DSA thoroughly first, then moving to Development is the right way to manage the two topics without compromising on either one of them.
By Khushi Sharma