Competitive Programming Vs Personal Side Projects

19 September 2020

Image Source: geeksforgeeks.com

Competitive programming vs side projects has always been a topic of debate among college graduates and professional software developers.

For college graduates its a matter of growing their skills and make their Resume strong by including high ratings in competitive programming challenges and some nice personal projects. This helps them to make an impression in their job interviews in search of their first jobs.

For Software Developer professionals it becomes a part of a never-ending hunger for achieving more success. Good competitive programming skills make next coding interview a piece of cake and some decent personal side projects help them to grow their technical skills and explore new technologies that they are not using in their day to day office work.

So what should be the right approach toward competitive programming and side projects? Let's find out

Benefits of Competitive Programming

Image Source: geeksforgeeks.com

1. Improved problem-solving skills

When we regularly participate in competitive coding competitions then we regularly keep improving our problem-solving skills and learn new approaches and techniques which in long term improves our efficiency and problem-solving skills.

2. Competing with the best

We get the same adrenaline rush when we participate in CP as we would get in some competitive sports. CP keeps our nerves up and running and provides a thrill and joy when we get to compete with the best in the world. In other sports, we only compete with players around us having similar skill levels to us but in CP we get a chance to compete with the best in the world and keep improving.

3. Getting recognition

Instant recognition is possible in CP when we score some good points in any coding competition and we become a known personality among our peers. This profile rating helps us score well in our future interviews.

Benefits of side projects

Image Source: freecodecamp.org

1. Learning new technologies

The best way of learning anything is by doing it. The same goes true with learning new technologies, when we build something with the technology that we are leaning we understand its practical aspects better, and getting hands-on it provides us a way to achieve mastery in that technology.

It also allows us to explore and develop some ideas of our own without owning up for the failure since it's our side project only.

2. Owning up your ideas

When we starting on our idea, we start from scratch with a bigger picture in our mind and then we start getting involved in every aspect of that project, be it deciding which technology to use or what coding guidelines to follow and many more.

With our own project, we can design and develop it from scratch without any constraints as compared to when we are working in some corporate projects. We get the liberty to experiment and keep changing requirements as per our need without anyone's approval.

3. Experimenting with crazy ideas

With our own projects, we can experiment as much as we want without worrying about the consequences, this freedom allows us to create some products that we wouldn't have created otherwise. Many big successful companies were a side project at that time, that some crazy person decided to work on and created a successful project as a result.

The following products were built as side projects.

So which way should we go??

It's not an easy decision to make because both CP and side projects have their pros and cons but there should be a mix of both in our portfolio in order to succeed in this competitive industry.

So, in the end, it's your personal choice but in my opinion, more focus should be on personal projects and CP should be done in order to keep your programming skills polished.

Check out my other articles regarding competitive programming

Competitive Programming for beginners

Mistakes every software developer makes as a beginner

Thanks for reading

Happy Coding !!