Software Development vs Competitive Programming – What to choose?
Development vs competitive programming, this is a question that must have come into your head when you were in college, or while preparing for interviews.
This is a tricky one to get right and the main aim is to balance the two. But itâs easier said than done. If you want to be good at something, youâve to go all in with it.
I was presented with the same question while in my college. And I think I made the right choice for myself and the place that Iâm at right now, definitely reinforces that belief.
So in this tutorial, Iâll try to give my take on the development vs competitive programming debate. What I chose in college, and what you can do to make this decision a bit easier. Letâs dive in!
You can also watch my video interview on the same topic here:
First things first, whatâs your current situation?
This debate depends on two different points:
- Whether youâre a student.
- Youâre a working professional
A lot rides on the fact whether youâre a student or a working professional. If youâre a student, you have a lot of time to figure this out. But if youâre working, then you might not have the time for it.
Letâs look at both of these situations and figure out whatâs the best one can do.
Development vs Competitive Programming for Students
I often tell people, the only way to learn something is by doing it! Trying it out yourself. Because thereâs no one size fits all.
If youâre in college you have loads of time to figure this out. In fact, youâre the best placed to end this debate for yourself.
Go ahead and try out development and competitive coding, both. Give each of them 3 â 4 months and see what you feel.
Competitive Programming
Competitive coding is a very interesting field and one whichâd benefit you a lot if you aim to work at Google, Facebook, Amazon etc.. (FAANG). These companies rely heavily on questions related to Data Structures and Algorithms and majority of their interview rounds focus on that.
Moreover, some startups such as Uber, AirBnb, Flipkart, Directi also rely heavily on DSA. Directiâs interviews are one of the toughest to crack and are termed even more difficult than Googleâs.
There are many resources out there that can help you prepare for competitive coding. Some of my favourites, and which I use all the time are:
- LeetCode
- InterviewBit
The thing that I like about interviewbit is that they have a clear roadmap outlined, that one can follow in their journey to learn Data Structures and Algorithms:

They have all the questions layed out topic wise in each card.
Check out our two article series on how to prepare for android developer interviews.
But I do not recommend diving into their questions first hand. If youâre well versed with the topic, then sure go ahead. But if you want to learn, letâs say, arrays, strings, trees, then go with LeetCode.
They have much better structure to these topics. Each topic is divided into a card and that card contains study resources and 2-3 questions. Aim will be to complete each card entirely.
They have some questions which can be unlocked if you pay, but I believe the free material is sufficient for learning. You can do questions on interviewbit.
Development
For me, I find software development much more enticing than competitive programming. This is because I like to see a visual result of what my code is doing.
I like to build products which people can use. This factor is missing in competitive programming. This alone was enough for me to focus more on development than competitive.
If youâre good at software development, and by good, I mean that you really stand out! Then itâs ok to lag a bit in competitive coding. During your interviews, you should try to highlight your software development expertise as much as possible to steer the conversation in that direction.
Many times people believe that you cannot get into a good startup with competitive programming. But Iâm a proof that itâs not true. Iâm not very good at competitive programming, but when it comes to Android Development, I believe I can answer most of the conceptual android dev questions.
I love android dev so much that Iâve dived into how the OS boots up, what happens when your application starts. Howâs DVM different from ART and how itâs initialized!
So you can see that I like software development a lot and have also gotten jobs at the best startups in the country.
You can learn software development for free on YouTube, Iâll recommend some channels here:
Although TheNewBoston hasnât posted in about 3 years, most of his tutorials are still relevant. And his way of teaching is the best Iâve encountered on the internet.
You can check out our channel DesiCoder for tutorials in hindi. It has an ongoing series on Flutter Development for Beginners in Hindi.
That being said, development should not be an excuse for being bad at DSA basics. Data Structures and Algorithms have stood the test of time for interviewing software engineers.
Theyâll be asked for the foreseeable future in the interviews. So you should have basic knowledge of how an array works, linked list, strings and sorting.
You donât need to be a 6 starer on codechef. You can very well prepare these basics, be extremely good at Software Development and get a good job ð
Opportunities in Competitive Programming and Development
There are varying opportunities in competitive programming and development.
If you decide to finally dive deep into competitive, then if you get good rankings on CodeChef, topcoder, hackerrank or any one of these, companies approach you directly (on of my friend who got 1st place in a long challenge on CodeChef was called by Google).
This is a great way to secure internships which can eventually convert to PPO. Nothing gets better than this!
As for Development, the opportunities are again limitless. You can:
- Create your own products which the world can use. If it does well, youâve no idea what it can turn into. It could be life changing.
- Do freelance projects: Freelance clients donât ask for DSA. They just want their website/app to be built in the best way possible. Once you start getting good reviews you start getting more work.
You can even build a company out of freelancing. Many such companies exist already!
- You can opt for nascent stage startups or remote jobs: Very early stage startups also donât focus much on DSA. Theyâre looking for Product Market fit and want to iterate on their ideas as fast as possible. Hence, development skills are preferred.
But such startups can also be risky to join as thereâs no surety theyâd succeed.
Development vs Competitive Programming for working professionals
If youâre a working professional, itâs somewhat complicated. Your work experience is also a factor that counts.
If youâve been working since > 3 years, youâre more likely to be grilled on System Design Questions.
And by system design I donât just mean design a TinyUrl, Twitter etc. You can be asked to create an SDK in Android (or any other tech stack that youâve worked on) to handle push notifications.
Design questions in Development are a real thing and have very real use cases. You can be asked to create a library that handles Persistent Storage for your app. This would include many design choices as to what APIs to expose, what libraries to depend on internally etc.
For working professionals, the question of development vs coding comes up mostly at the time of an interview.
You generally have an interview coming up for some startup and youâre wondering what to focus more upon. Should you do competitive coding or development? Which aspect is focused upon in this organisation.
You can very well figure this out from two sources:
- Glassdoor
- Talking to their employees on linkedin.
Go to the interviews section of glassdoor and youâll find people whoâve listed their interview experience and questions.
Have a look at some of the interview experiences and after youâve read about 10 â 15 youâll have an idea which way the company swings.
Next, search for the employees of that organisation and connect with them. If they do connect with you, you can go to them and ask about the interview process and what they focus on. Donât forget to mention your experience level and post youâre interviewing for.
These are some of the ways you can find out what to focus more upon. And thatâs it for this tutorial.
Summary
So if youâre a college student, you should start by trying out development and coding for 3 months each and figure out which one is the best for you.
But if youâre a working professional and have already made that choice, youâll have to answer the development vs competitive programming question during the interview preparation.
Iâve posted a 2 article series on how to prepare for android developer interviews. You might wanna check that out here:
Let me know if you want to know something more on this topic in the comments section below and Iâll be happy to share my thoughts!
Published on Java Code Geeks with permission by Ayusch Jain, partner at our JCG program. See the original article here: Software Development vs Competitive Programming – What to choose ? Opinions expressed by Java Code Geeks contributors are their own. |



I choose software development. If you find good specialists for outsourcing, then there will be only advantages for the company. I personally asked for help from specialists https://www.impulsis.com/services/typo3-cms-development/. If your business is related to eCommerce, then I recommend that you look at the portfolio of this company. This may be useful for you.