| |

Quora: The best answer to any question.

Contact Quora


Tech 1,510 views

Is It Possible To Be An Awesome Web Developer Without Doing Competitive Programming?

Steven Grimm, started coding on a first-model Apple II

You’re in luck: the skill set of a top-notch web developer has almost nothing in common with the skill set of a top-notch competitive programmer. That’s not to say a person can’t excel at both — some of my former colleagues at Facebook Facebook, for example, fit that description — but one doesn’t lead to the other in any way.

A top-notch competitive programmer needs to have encyclopedic knowledge of algorithms and data structures and the ability to optimize their work for very fast implementation time and for a form of “correctness” that is purely technical and completely deterministic. A competitive programmer implements a functioning solution to a (hopefully) precisely-specified problem and is then done with that problem, and works either solo or with a fixed and very small number of teammates.

A top-notch web developer needs to have encyclopedic knowledge of browser behavior and server-side technologies. There are implementation time constraints for a web developer, but they are typically measured in days rather than hours, meaning different development styles are optimal. “Correctness” is measured by customer acceptance rather than by matching expected outputs for a series of predetermined test inputs, and the specifications are often vague or contradictory, meaning the web developer’s job also involves intuiting what the customer probably actually wants. Most web developers work in teams whose members can come and go over the course of a single project, and their projects are long-lived and need to be implemented with maintainability and extensibility in mind.

There’s some synergy between the two skill sets, but for the most part, web development very rarely requires the feats of algorithmic heroism that typify competitive programming, and competitive programming very rarely requires the ability to make stuff work properly in IE6.


Post Your Comment

Please or sign up to comment.
