Competitive Programming vs Development vs DSA

Amit Patil
Amit Patil
Jun 18, 2022
4 min read
Career
Tech Education
Programming
Competitive Programming vs Development vs DSA

Competitive Programming vs Development vs DSA

Let's discuss one of the most controversial topics in the tech world: should you focus on Competitive Programming, Development, or both?

What is DSA?

DSA stands for Data Structures and Algorithms. It's about how we store data and access it in the most optimal way. Basic data structure concepts are typically part of university curricula.

What is Competitive Programming?

It's essentially a superset of DSA, where you need foundational knowledge of data structures and algorithms while participating in contests on platforms like Codeforces, CodeChef, and HackerRank.

What is Development?

It's the process of building real-world applications - mobile apps, websites, backend systems, cloud solutions, etc.

Now that we understand the differences between these three domains, you'll typically encounter two schools of thought:

1. "Competitive programming is the only option"

Advocates of this viewpoint believe competitive programming is the only way to get into big tech companies, claiming they won't hire you if you can't clear coding rounds.

2. "At the end, you're going to be building stuff"

This perspective questions the practical value of DSA questions, arguing that ultimately you'll be building products. Why waste time on theoretical exercises when you could be learning current technologies?

Our end goal is typically to secure a tech job with a good salary, so we need to figure out the optimal path to get there. Let's look at a typical coding interview experience for an SDE-I or similar position (note that this is for general job profiles, not specialized roles like Android developer, where the interview process might differ).

A typical campus interview process consists of:

  1. MCQ/Written Round

    These primarily include Aptitude, Logical Reasoning, and Technical MCQs on DSA, Operating Systems, and OOP concepts.

  2. Online Coding Round

    This involves 3-4 coding questions of intermediate difficulty. To clear this round, you should have a strong understanding of data structures.

  3. Multiple Technical Rounds (2 to 3)

    These are face-to-face algorithmic rounds where candidates solve 2-4 questions, all focusing on data structures, either on a whiteboard, paper, or Google Docs.

  4. Project Discussion Round

    Here, you discuss your past experience and project work. Questions typically revolve around projects mentioned in your resume.

  5. HR Round

    This round aims to find the perfect candidate for the team. You're heavily judged on your critical thinking, responsiveness, communication skills, and presentation abilities.

I've given you a snapshot of what a coding interview typically looks like, but I recommend creating a list of the top 50 companies you'd like to work for and researching their specific interview processes. This is the best way to know what you should be preparing for, rather than relying solely on my advice or YouTube videos.

Personal Opinion

Having been interviewed by 30+ companies, and using common sense, I can tell you that to clear coding rounds, you should have a good grasp of DSA. For project discussion rounds, you should have actual projects in your portfolio that you've worked on and understand fundamentally.

Since coding rounds typically have moderate difficulty levels, you won't encounter questions demanding advanced data structures and algorithms. Practicing problems with recognizable patterns will help you better understand DSA concepts.

For project work, you must have some development experience with frameworks or libraries.

"Jack of all trades, master of none, but oftentimes better than master of one." - Hitesh Choudhary

In conclusion, we need both Development and DSA skills. So how should you manage your time? Personally, I tried working on DSA in the morning and development at night, but failed miserably. I also tried doing DSA on weekdays and development on weekends, which didn't work well either. What finally worked for me was focusing on development in my second year of college and DSA (problem-solving) in my third year.

Remember, everyone has different learning strategies. If something works for you, double down on it.

A great developer knows how to balance time and space complexity with readability and scalability.

And that makes perfect sense.

© 2025 AmitPortfolio. All rights reserved.