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😉).
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.
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.
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.
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.
Ah! Do I need to give a definition for this also? Google it yourself(tired of typing).
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).
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
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