Shifting mindsets from competitive programming to collaborative programming
There is no doubt that competitive programming(CP) induces a sense of thrill and competition, improves our problem solving ability, and more importantly, opens up a world of new opportunities.
Solving challenging computational problems trains us to work under constraints, improves our problem solving abilities.
While there are many upsides to focusing on CP, only focusing on it and neglecting Software Engineering(SE) in general can be detrimental to programmer's arsenal of skills.
Most of real world programming, in the software products that businesses build, requires a good understanding of SE principles.
The process of understanding a problem statement, brainstorming possible solutions, creating a design document, building a roadmap, conducting weekly sprints - is a whole area that requires discipline on the part of engineers to master.
Many college students get into the world of CP , some out of interest, some not, due to the notion that a good competitive programming profile aides in job hunt.
And this is not unreasonable, since many software giants emphasize on solving advanced data structure problems.
We as programmers should focus on building good quality software that solves problems, saves people's time, brings joy, and makes a real impact.
The aim is not to downplay the importance of competitive programming, but to emphasize equally on the significance of building useful software.
Let's try to shift this trend collectively!