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.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Difference between Generic Software Development and Custom Software Development
- Software Engineering | Agile Software Development
- Software Engineering | Software Business and Development
- Software Engineering | Identifying Software Development Metrics
- Modern Principles Of Software Development
- Software Engineering | Rapid application development model (RAD)
- Software Engineering | Agile Development Models
- Software Engineering | Program Development Life Cycle (PDLC)
- Scrum (software development)
- Software Engineering | Jackson System Development (JSD)
- Adaptive Software Development (ASD)
- Client-Server Software Development | Introduction to Common Object Request Broker Architecture (CORBA)
- Software Development Organizational Structure
- Types of Defects in Software Development
- Difference between Traditional and Agile Software Development
- Software Development Life Cycle (SDLC)
- Reliability Attributes in Software Development
- An Introduction to Software Development Design Principles
- Types of Feasibility Study in Software Project Development
- Factors of Management Dependency in Software Development
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.