¿Ayuda la programación competitiva a convertirse en un mejor programador? ¿Es un factor importante para convertirse en un buen programador?

En realidad, tenía que diferir de las respuestas anteriores que he visto sobre esta pregunta diciendo que “la programación competitiva” es lo más importante. Dije que depende de qué tipo de entorno esté operando ese “buen programador” y, a veces, diría que no, como he observado en la vida profesional real. Como programador universitario y una persona que está aprendiendo a programar y llegando a una entrevista, sí, ayuda a mejorar. Para la parte que es un factor importante o uno que te convierte en un programador exitoso en la industria, diría que tienes que ir mucho más allá y sería un No

La programación competitiva le brinda muchos de los beneficios enumerados a continuación: pensamiento creativo y listo para usar, hacer las cosas rápidamente, verificar su solución con algunos casos de prueba. Pero entonces, el entorno limitado (en términos de alcance y tiempo) en el que ocurre la programación competitiva es muy diferente del mundo real cuando trabajas en un proyecto industrial de envío con varios millones de personas como clientes.

1. La programación competitiva a menudo consiste en obtener una solución rápidamente que pase las pruebas de los 5 jueces que diseñaron el problema. En el mundo real, debe centrarse en una solución que funcione para la mayoría de los clientes, que son sus jueces. Incluso si su código fuera 99.99% correcto, en una audiencia de 10 millones de usuarios, más de 1,000 usuarios aún llorarían. Y allí una solución rápida no importa, la mejor solución sí. Un buen programador competitivo necesita asimilar esto para ser un buen programador en la industria.

2. Los programas competitivos suelen ser de un solo uso. Tienes un problema, resuélvelo, escribe un código que tal vez se vea una vez y tal vez no. En ambos casos, una vez que pasa la prueba, a nadie le importa o la vuelve a visitar. En el mundo real, su código debe mantenerse durante varios años y para cualquier gran proyecto, pasa por sesiones de depuración, cientos de veces. Por lo tanto, ha pasado la prueba del tiempo y los ojos fijos, una y otra vez, por lo que el buen programador en la industria necesita operar de manera bastante diferente para eso.

3. Los problemas en los programas competitivos son aquellos que tienen mucho más que ver con los algoritmos y su aplicación. No son necesariamente problemas de diseño complejos donde los ingenieros pasan más tiempo diseñando una solución hermosa que implementando. Un “verdadero buen programador”, entiende que la parte del diseño es tan importante como la solución y pasa tanto tiempo en el libro “Gang of Four” que en la “Referencia completa XYZ”

4. En el mundo competitivo, obtener una solución que funcione es más importante que el espacio de memoria y las limitaciones de tiempo de procesamiento. En el mundo industrial, la complejidad de espacio y tiempo es crítica porque su código es solo una pieza del rompecabezas completo. Si usara más memoria o tiempo, todo el software, el sitio web y el servicio serían lentos e impactarían en la máquina del cliente. Los buenos programadores de la industria tienen en cuenta ese panorama más amplio que no necesariamente se enseña mediante programación competitiva.

5. Finalmente, los programas competitivos suelen ser piezas independientes. Los buenos programadores entienden que necesitan diseñar su código en aras de la reutilización o como interfaces que se pueden ampliar. Los programadores competitivos a menudo no tienen que preocuparse por eso

Dicho todo esto, durante un proceso de entrevista, la industria se enfoca en cosas de programación competitiva y, a menudo, es una forma de comenzar las cosas. Una vez que se contrata a una persona, la mayoría de las empresas con verdaderos “buenos programadores” entrenan, hacen cumplir y refuerzan los puntos anteriores para convertirlos en buenos programadores de calidad industrial, ¡solo de los competitivos! 🙂

¿Ayuda? Si.

¿Es necesario, o incluso el factor más importante para quienes hacen la programación competitiva? No.

Escriba regularmente programas en los que confíen varias personas, retroceda y estudie de manera crítica, continúe estudiando programación (en todos los niveles) e interactúe regularmente con otros programadores en lo que respecta al código. Esta verdadera práctica es la única forma de convertirse y seguir siendo un buen programador.

Sí, la programación competitiva ayuda a convertirse en un mejor programador, y nuevamente Sí, es un factor importante para convertirse en un buen programador.

Tiene los siguientes beneficios:

  1. Te brinda una experiencia del mundo real, donde todos compiten para sobresalir. Incluso si falla por algún tiempo, debe seguir este enfoque, ya que lo hará más robusto y lo hará pensar de manera diferente, rápida y creativa.
  2. Desarrolla tu pensamiento creativo. Una vez que no logra el objetivo, trata de pensar de manera diferente, trata de aprender del error / éxito de los demás, en pocas palabras, practica mucho. La práctica básicamente crea patrones en tu mente, por lo que cada vez que te enfrentas a una situación particular, por la cual cometiste un error o alguien lo hizo, rápidamente obtienes la solución. Es como el ajedrez, más practicas, más entiendes el tablero y puedes retomar el juego en cualquier situación.
  3. Te hace pensar fuera de la caja. La mayoría de la programación competitiva tiene limitaciones de tiempo, por lo que para aquellos, piensas en soluciones innovadoras pero no convencionales pero eficientes. De nuevo, esto no es instantáneo, necesitas practicar mucho.
  4. Desarrolla tu confianza y canaliza tu energía / concentración. Para empezar, fracasarás mucho, pero si eres capaz de tomar el fracaso de manera positiva y ser capaz de canalizarlo hacia el éxito y practicar más, después de algún tiempo serás invencible. Y cada vez que gane por primera vez, sentirá logros y si vuelve a tomar esto en un sentido positivo, se animará a trabajar más y trabajar duro y, por lo tanto, nuevamente avanzará hacia el éxito.
  5. El resultado final de la práctica, como todos sabemos, es el éxito y, por lo tanto, la programación competitiva es una de las formas de convertirse en un mejor programador.

Como dijo Salil

competitivo
1. Tener o mostrar un fuerte deseo de ser más exitoso que otros.
2. tan bueno o mejor que otros de naturaleza comparable.

Sinónimos: ambicioso, celoso, entusiasta, agresivo, combativo, agresivo, etc.
Por lo tanto, cualquier cosa que sea competitiva ayuda a elevar los estándares.

La palabra “competitiva” en sí es autodescriptiva. Aunque si desea una respuesta clara, diría un 100% que la programación competitiva es un factor importante para convertirse en un programador bueno o incluso promedio.

More Interesting

¿Cómo es ser ingeniero de software de Apple?

¿Cómo consigo una carrera en pruebas de software?

Soy un estudiante de primer año en la universidad y una especialización en informática. ¿Puedo obtener pasantías de ingeniería de software en el verano justo después de mi primer año? ¿Qué habilidades necesito? ¿Y cuándo debo comenzar a solicitar pasantías?

¿Es necesario conocer la codificación para convertirse en un probador de software?

Estoy aplicando a la universidad y no estoy seguro de si debo elegir ciencias de la computación o ingeniería de software. ¿Qué debo hacer, una M. Sci o una M. Eng?

¿No conocer Java obstaculizará mi carrera como ingeniero de software?

Soy un ingeniero de software que trabaja en la industria de redes durante 2 años. La inteligencia artificial y las redes neuronales me atraen. ¿Cómo debería ahora planear cambiar dados mis primeros dos años (y los primeros dos trabajos) en la industria de redes?

¿Qué consejo es útil para un ingeniero de software que tiene un plan de rendimiento de 5 semanas y podría ser despedido pronto?

Comencé mi carrera en una empresa de software. Entonces, ¿dónde estaría en los próximos 10 años? Además, ¿qué debo hacer para mejorar mi carrera?

¿Cómo es ser un pasante de ingeniero de software en la oficina de Amazon Toronto?

¿Qué es probable que conduzca a un salario más alto, una carrera como ingeniero de software integrado o una carrera como científico de datos?

Cómo hacer un cambio profesional de hardware a software

¿Cuáles son las mejores empresas de TI en Filipinas que promueven el crecimiento profesional de los ingenieros de software?

¿Cuáles son las razones por las que una cantidad se mueve de las finanzas a una empresa tecnológica?

¿Puede uno convertirse en un ingeniero de software exitoso sin completar un título?