6 Reasons Mastering DSA Can Double Your Paycheck, Make You A Better Dev And Boost Your Confidence
Tags: beginners, codenewbie, motivation, productivity
Published: 2023-02-04 13:53:20

I am sitting in a room with another 6 candidates.

My hands are sweating and my heart pounding fast. It's hands down the most anxious I've felt my entire life. The door opens. The guy calls my name. It's my turn. I want to run away, instead, I stand up and mechanically follow him out of the room.

This is not a software engineer interview.

This is a simulator test to be an airline pilot.

Developers are not the only ones doing scary interviews, aspiring pilots go through a sh** load to get a job. If you are wondering, I failed that interview 🤷‍♀️. But fast forward to today, I am glad I did.

What both interviews have in common is that they require huge preparation.

And the single skill that will get you in is DSA **Data Structure and Algorithms**

Why? Here's:  


## Reason #1 You Need them To Pocket The Fattest Paychecks In The Industry

![quote](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xp9bvs6277ny5vgj8f2.png)

Not sure about you but I work for the money.

I'm not a greedy dude, I couldn't care less about material stuff(I still use clothes from 10 years ago). But money buys something nothing else can. Freedom. And I want that very much.

Mastering DSA is the fastest way to make +100k/year(not the easiest)

Whether you like them or not, if you don't learn them you are missing out on the potential to be working for the coolest and highest-paying companies out there. Unfortunately(or fortunately for those who mastered them) that is how most big companies to interview.

![quote](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hlgkutafsddpxgrx37kn.png)

The fastest you accept that this is how things work, and start putting in the work. The fastest you'll land your dream job dream paycheck.


## Reason #2 They Are The Cornerstone Of Computer Science

![quote](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/atv50n6j60ztqfq5e1iq.png)

I remember watching a mock whiteboard code interview on TY(Clement's channel) just after starting to learn to code.

The problem seemed so complex, so out of my league I literally had no clue what was going on. Somehow the idea that I could have the knowledge to solve that kind of problem exited me. But I had a sea of concepts to navigate to get there.

I've barely come a few miles off the shore.

All software is built on top of DSA.

The algorithm controls the logic and flow and data structures organize the data efficiently. This stuff won't be out of date next year(like javaScript frameworks) it hasn't changed since it was created. It's what I call perpetual knowledge. It makes everything else you learn after make more sense.

You and I should spend our time using the ratio:

80% foundations
* Algorithms
* Data structures
* Design pattern
* Mastering 1 Language

20% on the rest.
* Frameworks
* Tools



## Reason #3 It Sharpens You Problem Solving Skills(The Most Important Skill In Life)

![quote](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cmkuks1viq1o1ervovx3.png)

The first few Leetcode puzzles I tried to solve were both eye-opening and discouraging.

I didn't even know how to get started. I didn't know what the question was asking for. Problem-solving is a skill just like any other, it requires you to learn and practice to improve.

My axe was dull.

You are probably not going to be implementing merge sort or Dijkstra's algorithm on your daily job. Not even in Google.

These problems are actually much harder than those you'll face daily. It's more like: if he can solve these problems he won't have a problem with his daily tasks. Companies want to know what is your thinking process for solving a problem(do you ask for clarification? for help? can you clearly explain what and why you are doing?)

Problem-solving is the most sought-after skill in the industry.

It's a sure way to fast-track your career.



## Reason #4 It Improves Your Ability To Understand Complex Topics

Have you tried reading a DSA book from cover to cover?

If you didn't fall asleep before the end of the first chapter you are my hero.

The most effective way you and I learn anything is by using active learning methods(learn it, code it, run it, and test it). Especially complex topics like DSA. You won't learn it by passively reading a book or watching YT videos(no matter how many). You don't have to reinvent the wheel, smart people have developed systems that we can borrow to learn complex stuff.

I like using [Feynman's Technique](https://www.colorado.edu/artssciences-advising/resource-library/life-skills/the-feynman-technique-in-academic-coaching)  for most things.

Mastering DSA will show that you, above all, know **how to learn**, have a system to understand complex stuff, and can break down complex topics into understandable bits. And that is a skill that not a lot of people have.

Tell me, if you have mastered DSA(you can solve and explain most problems) do you think you'll have any trouble understanding any other CS topic?

And to top it off it shows you are committed and persistent.


## Reason #5 It Gives You All The Tools You'll Need To Do Your Job Better And Faster

Think of a carpenter that only has a hammer and a handsaw.

He might be able to get away with those two but in most cases:
* screws would be a better choice for fastening
* a jigsaw for irregular cuts
* a circular saw for long-straight cuts

He would do his job 5x faster and better just by using the right tools

It's like the old saying: If you only have a hammer every problem will seem like a nail.

Then, this same tradesman finds a bag of money and buys all the tools, and signs up for workshops to learn to operate all of them given by master craftsmen. This guy would easily double his earnings after that, wouldn't he?

That is how I see learning DSA for devs.

The difference is that we don't need to find a bag of money, you can learn it all for FREE online.

This is the greatest advantage of a tech career.

You can train as much as you want. It's only up to you.


## Reason #6 All Of The Above Will Make You A Much More Confident Dev And Person.

Do you know anyone with sloppy skills but that somehow gets great jobs?

I bet this guy is confident.

At the end of the day knowledge alone will only get you so far(80% of the way). You have to convince people that you know what your CV says you know. And they have to believe it to hire you.

Scott Adams the creator of the comic strip Dilbert in his book “How to Fail At Almost Everything And Still Win Big” tells that he bullshitted his way to the top of the corporate world simply because he was good at interviews. He was a good communicator and therefore good at making people believe he was capable.

If you are confident you show that:
* you value yourself
* you can take risks
* you can meet new challenges
* you can deliver

And last but not least it helps you get a job.


## My Plan To Master DSA

I don't plan on memorizing the implementation of every Data Structures or Algorithms.

This would be like cramming for an exam. You might pass the exam but 1 week later you won't remember a thing. My intention is quite the opposite. I want to chuck DSA into my long-term memory.

I want to persist this knowledge in my hard drive, not my RAM.

Here is my plan:

* The [roadmap](https://roadmap.sh/computer-science)
* The most common [patterns](https://www.educative.io/courses/grokking-coding-interview-patterns-javascript)
* Practice the [blind 75 questions](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions)
* I'll use the [Feynman Techique](https://www.colorado.edu/artssciences-advising/resource-library/life-skills/the-feynman-technique-in-academic-coaching) and [storytelling](https://www.tandfonline.com/doi/full/10.1080/20004508.2022.2092977) to make algorithms more memorable

I plan on writing posts as I go.


## Conclusion

It's 11:53pm on a Saturday night.

I am the only one awake at home. I am working on my consistency by writing one article per week for at least 6 months. So here is the wrapper.

![quote](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y92tydx84zdtmi6yb32i.png)

If you don't plan on interviewing for a FANG(like me, at least not soon) I think you should still do it.
* It will make you a significantly better programmer
It will give you a Free confidence boost

Grind now, and rip the benefits later.

Time to hit the sack.

Thanks for reading!

If you like this article:

Leave a comment (You can just say hi!)
Let's connect on Twitter [@theguspear](https://twitter.com/theguspear)

Catch you next week,

Gus.