Competitive Programming and software development are the two broad categories that any computer science student opts for during his college days. However, these two aren’t complementary to each other.
Benefits Of Competitive Programming :
- CP helps in getting better at Data-Structures and Algorithms, which eventually opens the doors to software development roles in multinational companies.
- Many Hackathons and college fests also test algorithms, so CP helps there as well.
- A good rank in competitive programming sites like codechef and codeforces is a matter of immense respect.
- It enhances one’s problem-solving skills and brings in a competitive nature.
Benefits Of Software Development in college :
- It gives an insight into what a software developer does.
- Learning new technologies increases the chances of shortlisting of a candidate in an interview.
- The confidence of developing real software is unachievable otherwise.
- A candidate having good knowledge of development is the pride of his institution, while the opposite acts as a burden.
How To Balance both CP and Development :
Alienating from either of two for a long time is not recommended. Therefore, one should circulate between these either on a daily or weekly basis.
Ideal Proportion :
Ideally, the ratio of time devoted to CP and Development should equal 3:4. It means there are four days of software development for every three days of competitive programming or four hours of software development for every three hours of competitive programming.
Points Kept In Mind (while concluding this ratio) :
- Software development is a larger domain (much to explore) compared to competitive programming.
- CP involves a lot of practice.
- Ultimately CP is only a tool to learn data structures and algorithms, which can be done otherwise through bootcamps and other tutorials.
- If a cp contest is approaching and you need to practice, alter the ratio to 6:1 for few days.
- During an internship or an open-source competition, change the proportion to 1:6.
But remember to catch-up on the minor one once the event had passed.