Nowadays I see many students are facing a dilemma called DSA vs Development.
Should I keep practicing questions? Should I do development just to get it on the CV or Should I do both or how to do both? 🙄
And the point is all these things ideally should never be there!
Waait.... If you are a video person- I've got you covered! :
So let's see from where did this thing actually come from? And if you notice, this wasn't an issue some 3-4 years ago.
And I believe in blaming oneself before anyone else. So let's see what's wrong with us first.
So first of all what I see is this generation of ours is always absorbing so much content from the internet.
For example, in one video you see some getting really good results just by doing development while in another by CP or DSA. While on the other hand you are constantly being hit by ads of some companies or people selling courses saying- "We will make you a Full Stack Engineer in 2 months !", "Take this DSA course and be placed in FAANG!"
I mean I can guarantee - your emails are filled with such ads luring you towards these paid courses.
It's just the sheer amount of information out there and its consumption that changes how you think today.
Now being a human you naturally start comparing yourself and end up in this ridiculous situation.
If I will be really honest these companies just want to make profits off the goals or in some cases the insecurity of students to get placed at a good place, which is also understandable from their perspective. I mean it's a really good business strategy.
And let's be real almost everyone is just after making some money & there is nothing bad in that.
But trust me the ones who teach you in these paid courses have learned everything for free & You should too.
And if you go a bit deeper- this concept is just born out of pure placement-mindedness instead of learning this beautiful subject that could literally change things.
I believe that there can be a lot of chaos outside but we have the control over ourselves to just mute what's outside and carve our own path.
Some actionable steps you can take to stay away from all this:
Just stop consuming and try a lot of things, fail a lot and learn yourselves.
Go through the accounts you follow and ask yourself - "Does this provide you some value or align with your goals?" If not unfollow the account. You will see the results of it in long term.
Stop comparing yourself to something whether on the internet or in real life because it's really toxic. Instead, be super happy and push others to succeed!
Before probably 8-9 months or so I was too in this, thinking what should I do. But after trying a lot of things and trust me I have tried a lot of stuff as one should in early college years.
Then I just realized that why don't just see everything as just Computer Science as it should be, and not make such unnecessary divisions.
Now once you see everything as Computer Science it's natural that you also learn these beautiful algorithms, solve problems with them and eventually build things!
That's how Computer Science works. Everything else is BS.
Now if you are biased towards DSA, you will say - "I don't care about building as this is what is needed in interviews of giants."
And if it's the other way you'll say - "Well, eventually you have to make things so who cares about DSA."
And it may make a lot of sense to you as you are biased. But I'll say from my experience you'll need a good mixture of both to be a good Engineer.
Trust me I have done both and will be doing both because speaking from experience- One needs DSA to be a really good Engineer. It's the ABC to writing good code. You learn the art of breaking things down!
And on the other hand, I genuinely love building things that people use and definitely not for just getting them on the resume.
Let me tell you a story recently I was working at a small company. Wait so a point here is that I got this job is in my 2nd year of college!
So, knowing how to build things opens up a lot of opportunities for you early.
I implemented many features which did seem really hard to implement at first but by just breaking them down into smaller problems I did it. And that right there is the essence of solving these seemingly boring algorithmic problems. You learn how to break the problem into smaller problems and work your way through solving them.
As a seemingly great feature is nothing but a seemingly large problem that can be solved by breaking into smaller problems.
So, while working there or on the so-called development side of things, I understood what solving problems using DSA does to you.
Let me clear this as many have this question. It's because most of their codebase has legacy code or old code with some specific tech stack they use. They require people who have clear basics of programming i.e DSA.
Because if you are good at these core stuff like OOPS, Data Structures, Algorithms, etc, you can pick up any language or framework really really fast!
And later they train these selected candidates according to the team or product the person would be working on.
For example - Google doesn't care if you know React, they use Angular right!
So from what I have realized is that - Building things will give you opportunities at an early stage and knowing DSA will help you do great at those opportunities.
So, DSA and Development complement each other thus a good engineer must be good at both at some point.
Because at the end one has to use these skills to solve some real-life problem, else there is no point of it all!
So, I'll suggest you first that don't be anxious about placements and stuff, just work on your skills, do things you love doing & eventually things will fall in place, and even if they don't you will never have regrets. God, I have to stop being philosophical!😄
From now on don't get into this BS trap, just know that it's all Computer Science and things will be way easier.
And do let me know your thoughts in the comments, would love to know your perspective!