¿Necesito programación competitiva para ser bueno en programación e ingeniería informática?

Esta es mi opinión, solo mía.

Siento que hacerte un programador más fuerte y mejor a largo plazo es tener una mente abierta sobre lenguajes, marcos, tecnologías y, además, enfrentar desafíos de programación, en proyectos pequeños, medianos y grandes.

El fracaso no es un problema a largo plazo, creo que muchos de los mejores programadores, si no todos, habían fallado en algún momento. Yo también fallé. Es un resultado posible si estás en proyectos realmente desafiantes, es parte del trato.

La programación competitiva podría ser parte de eso, no lo descartaré.

Pero después de 35 años vendiendo mi trabajo, como freelance, empleado, etc. Sé que cada proyecto desafiante me hace mejor o al menos me permite mantener un buen nivel y aún tener un alma de luchador.

Ya sea en su trabajo diario o en su tiempo libre, haga cosas que lo están llevando al límite. También es interesante conocer estos límites, presión, estrés, etc.

Todo eso hace que los programadores de alto nivel puedan seguir el ritmo de los proyectos más difíciles, conocen sus límites, no temen fallar y luchan por sus objetivos.

Veamos, me presentaron a la programación cuando tenía 11 años, comencé a aprenderlo en serio a los 12, he estado trabajando desde que tenía 16. Ahora tengo 55. Nunca he hecho programación competitiva en todo ese tiempo.

Supongo que la respuesta tendría que ser “no, no es necesario hacerlo para tener éxito en esto”.

En cuanto a cuál es la habilidad más importante para un ingeniero informático, realmente depende del tipo de ingeniero que desee ser. Un ingeniero de hardware probablemente no lo necesita en absoluto. Un ingeniero de software debería ser bueno en eso, pero también necesitará comunicarse, encontrar ideas para soluciones, diseñar soluciones, y yo podría continuar. Sí, la programación es importante, quizás la habilidad más importante, pero sin las otras, no llegarás lejos.

La programación competitiva lo ayudará a encontrar soluciones rápidas y sucias, e implementarlas, probarlas y depurarlas rápidamente, todas habilidades útiles. Sin embargo, también debe poder realizar un análisis, diseño e implementación más exhaustivos cuando tenga el tiempo y los recursos para hacerlo correctamente. Un código fácil de mantener suele ser preferible a rápido y sucio, excepto cuando tiene recursos limitados (tiempo, dinero, etc.)

La programación competitiva se parece muy poco a cómo se crea el software en el mundo real. Es mejor aprender a escribir software de manera profesional, aprender disciplina y metodología adecuada. La programación competitiva es más bien como un programa de juegos o concurso. La buena ingeniería de software no lo es.

No, no necesita programación competitiva, he estado en la industria durante casi 20 años, nunca he hecho ninguna programación competitiva, ni he conocido a un programador que sí lo haya hecho.

Si quieres ser bueno en la programación competitiva, entonces debes hacerlo, pero para el trabajo profesional real, no es obligatorio, probablemente estaría de acuerdo con Alan Mellor y diría que en realidad es una mala idea.

por qué es una mala idea?

En la programación competitiva, solo necesita completar una tarea dentro de un período de tiempo establecido.

No se piensa en la mantenibilidad, fiabilidad, legibilidad, casos de margen y muchos otros aspectos importantes. Es como construir un auto solo para un 0–60, y no preocuparse por nada más, eso podría estar bien para las carreras de resistencia, pero Toyota no está interesado.

La programación es muy importante, pero es para construir cosas y resolver problemas, no para carreras de arrastre.

Nah No necesita programación competitiva para ser bueno en programación o convertirse en un buen ingeniero informático en el mundo real. En primer lugar, recuerde que ambos están a millas de distancia.

Lea las respuestas a esta pregunta: ¿por qué los programadores experimentados dicen que la programación del mundo real es completamente diferente a la programación competitiva? Creo que responde la primera parte de tu pregunta.

¿Deberías saber programar para ser un buen ingeniero informático? Si. Creo que es muy importante. La programación informática se trata de resolver problemas a través del código. Recuerda eso.

Solo hay algunas comunidades donde la programación competitiva es conocida, y mucho menos alentada. De los aproximadamente 2 millones de ingenieros de software en los EE. UU., Supongo que quizás 20,000 (~ 1%) han hecho más que un par de problemas de piratería informática.

Gané una vida bastante buena durante 43 años escribiendo programas, y nunca competí (la programación competitiva es realmente algo nuevo, si has estado programando tanto tiempo como yo).

Asi que por su puesto.

No absolutamente no. Es bastante dañino

Nunca he hecho ninguna programación competitiva y (como todos estoy seguro) me considero un ingeniero decente. Hasta que llegué a Quora, nunca había oído hablar de programación competitiva. Mi reacción inicial fue WTF es eso?

A2A

No. Se requiere una programación competitiva para un trabajo de ingeniería de software, ya que conducir tantas carreras en NASCAR es aprender a ser un buen piloto.