DEV Community

Cover image for Competitive programming or Personal projects?
Muhimen
Muhimen

Posted on

Competitive programming or Personal projects?

Whether you are a beginner who just finished his first programming tutorial or an experienced programmer who's head his blasting with programming knowledge when it is about to step up the level, you will clearly find two paths available for you. Either competitive programming or making personal projects. Those who have nothing but programming in life might get enough time to do them both. But those who are like me studying in a school or college, things might be difficult. So, here is how to choose the correct path for you(Spoiler: I prefer bothπŸ˜‰).

Competitive programming

>What on the earth is this?

Probably it is a silly question to ask but in case the next person to read the blog after you don't know what competitive programming is, it is basically like a math olympiad that you have attended in school but instead of maths, you have to solve programming problems in a given amount of time. This is what wikipedia has to say about it.

Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications.

>For whom is this?

Well, the short answer is for everybody. Anyone can join this online programming contests. But if you are just starting right now don't expect to beat Tourist at the first try. This guy won six Google Code Jam on a row!😡 Competitive programming can often be hard for beginners. You can still give it a try.

>Benefits

It will continuously force your brain to think for a solution. It is common in competitive programming that your first submission will not get accepted. Then you will again start thinking of another alternative idea. Again, it will largely help you to enrich your algorithm knowledge and most importantly, teach you how to optimize your code because "Time Limit Exceed(TLE)" is a common enemy for us programmers.

Alt Text

>Is this for me?

If you can code, you can compete

Well, you know the answer better than me. But here is a small suggestion from me. If you are a beginner then try solving a few easy problems in competitive programming sites. If you feel confident then carry on. If you think it is going out of your hands, try founding out what your lags are(in learning) and then again try.

Personal Projects

>what on the earth is this?

Ah! Do I need to give a definition for this also? Google it yourself(tired of typing).

>For whom is this?

Again, it's for everybody. No, this time for serious! Everyone can make their own programming personal projects. For beginners, it can be automating Homeworks(I need it badly, anyone done before?) or can be a small texting app. For professional it can be the next Netflix. Who knows. Most of the time, personal projects are only for polishing your programming knowledge or even for self satisfactory. Don't think of making money in the first place. Do it first, the money will come second(unless you are not thinking of making money).

>Benefits

It will certainly help you increase your understanding of your language. To make better projects you will require better knowledge of various libraries. So, it will help you explore the language even more. Unlike competitive programming, optimization of your code isn't mandatory. Because

It doesn't need to be perfect to be beautiful

Alt Text

>Is this for me?

for SURE!!! Whether you are a beginner or a professional, you must complete a few projects. It will help you capture what you learned from tutorials. Making some projects without any kind help will be more beneficial. And if you are thinking of applying for a job, adding a few personal projects in your list is a must. So, what you are waiting for?

At the end of the day, if you have the time, I suggest you to attempting both. It will give you an all-around knowledge of programming and help you master your career. If you are a student like me, I will suggest you try competitive programming for 3 days a week and making some personal projects on the other 3 days. You can take 1 daybreak(If you want).

So what do you choose, let me know

Happy programming for you

Top comments (1)

Collapse
 
thewasif profile image
Muhammad Wasif • Edited

For beginners, I recommend personal projects. Still, they can take part in contests like Google Code-In and Hacktoberfest, as these contests support personal project theories