¿Debo aprender programación competitiva o simplemente centrarme en el desarrollo web?

En primer lugar, debes entender lo que quieres, sí, lo que quieres y no lo que tus padres, compañeros de grupo o amigos quieren o están haciendo en la vida.

Una vez que superas, realmente comenzarás a ver y observar cosas sorprendentes sobre ti.

Me gradué en 2013 y desde entonces participé en mucha programación competitiva. La programación competitiva es divertida, es desafiante y realmente tira de los cables de tu cerebro de una manera loca y te hace pensar más. En general, solía hacerlo los fines de semana, ya sea SPOJ, CodeChef, TopCoder, realmente lo disfrutaba. Ahora, si estás haciendo algo que disfrutas y en qué desafíos confías en mí, realmente puedes hacerlo bien.

Entonces, el año pasado alrededor de 2015 decidí que quería avanzar hacia nuevas empresas, ya que quería pasar a algo más técnico. Entonces, en las startups que se gradúan en ciencias de la computación, puedes ingresar como desarrollador web o desarrollador de aplicaciones o ambos. Decidí que primero probaría el desarrollo web y, si me gusta, continuaría, de lo contrario pasaría al desarrollo de aplicaciones. Pensé que incluso si no disfrutaba el desarrollo de la aplicación, probaría diferentes roles, tal vez el desarrollo comercial, etc.

Ahora, comencé con el desarrollo web y comencé con la pila MEAN angular, de nodo y prácticamente completa. Realmente lo disfruté, fue muy divertido, creé algunas aplicaciones de muestra para aprender y, finalmente, en algún lugar durante noviembre estaba bastante seguro de que podría descifrar entrevistas para el papel de Full stack, sí, no tenía ninguna experiencia previa práctica, pero fue agradable.

En noviembre del año pasado dejé mi trabajo porque quería pasar de la posición de Pruebas de Software a Desarrollo de Software y también quería pasar de MNC a una startup. Ahora, cuando combina estas 2 condiciones, es realmente difícil hacer un cambio porque sus habilidades y cultura de trabajo son totalmente diferentes, por lo que alguien que lo contrate tendría que tomar un poco de riesgo, por lo que debe ser realmente inteligente o debería demuestre que lo quiere realmente mal y en la mayoría de los casos necesita tener un poco de ambos.

Ahora, mis amigos, colegas, a todos les gusta lo que van a hacer. Sí, no pensaban como yo y eso me estaba incomodando (realmente incómodo). Estaba pensando qué pasa si estoy haciendo algo mal. Pero debes confiar en ti mismo, querido, y dejar que otros hagan lo que sienten.

Dejé ese trabajo y me tomé un buen descanso durante un mes (sí, el viaje internacional solo estaba en mi lista de deseos, así que tuve que hacerlo una vez). Una vez que regresé intenté dar algunas entrevistas y descifré las primeras.

Actualmente, estoy trabajando para una startup llamada Wealthy como ingeniero de producto Full stack para uno de los productos llamado Insights. Después de trabajar en tecnologías increíbles como react, django-rest, angular, node, aws, python y sass durante los últimos 6 meses, debo decir que el desarrollo web es increíble.

Entonces, en resumen, ambos son igualmente sorprendentes, desafiantes y puedes aprender mucho. De la programación competitiva , aprende a escribir código eficiente y rápido que cubre casos de esquina (confía en mí, este es el aprendizaje más importante). En Desarrollo web, aprende cosas como trabajar en proyectos de código abierto , contribuir al código de otra persona, seguir las pautas adecuadas, escribir código limpio / lean y, finalmente, aprender a escribir un código escalable .

Así que aprendes mucho de ambos, ambos son igualmente agradables, pero debes elegir lo que te gusta y lo que quieres hacer.

Bueno, pensé que agregar una experiencia personal realmente respondería muy bien a sus inquietudes. Disculpe si fui un poco largo.

Saludos y feliz codificación !!!

En primer lugar, tenga en cuenta que la programación competitiva y el desarrollo de software no son dos caminos diferentes. Según su habilidad y nivel de experiencia actuales, debe elegir lo que necesita más actualmente.

La programación competitiva es la aplicación en bruto de lógica, estructuras de datos y algoritmos para resolver problemas complejos. Estos problemas generalmente no se relacionan directamente con ningún problema del mundo real, pero ese no es el punto. El punto de la programación competitiva es que mejora sus habilidades de implementación, le enseña sobre la resolución de problemas, diseña soluciones elegantes pero simples que son fáciles de codificar y cómo aprovechar las limitaciones dadas para diseñar la mejor solución. Y lo mejor es que al enviar su código puede verificar si lo codificó perfectamente o no. Todas estas habilidades son indispensables en el desarrollo de software, y cualquier compañía de desarrollo de software busca estas habilidades al contratar. Cuando mira el código de un sistema del mundo real con miles de líneas de código, DEBE sentirse cómodo al leerlo y comprenderlo. Eso es precisamente lo que la programación competitiva te ayudará a lograr.

Después de haber desarrollado suficiente confianza en la programación, debe pasar a un trabajo de desarrollo real, como contribuir a algún proyecto de código abierto o crear su propia aplicación o sitio web. No sirve de nada hacer una programación competitiva. Es mejor tener algo de experiencia real en desarrollo de software.

Entonces, verás, te perderás si te enfocas en uno sin el otro. Personalmente, hice mucha programación competitiva durante mis días de licenciatura y eso me ha ayudado en todos los proyectos de desarrollo que he emprendido. No tengo miedo de mirar bases de código grandes, y conozco bien las estructuras de datos que me ayudan a diseñar mejor. Todavía hago un poco de programación competitiva, aunque con menos frecuencia. Un buen conocimiento de la programación competitiva también lo ayudará a obtener buenas ofertas de trabajo. En mi opinión, para los estudiantes universitarios, las empresas generalmente no hacen preguntas específicas de tecnología en entrevistas para puestos de desarrollador de software. No esperan que conozcas su tecnología de antemano. Lo que sí esperan es que tenga buenas habilidades de programación y un buen conocimiento de las estructuras de datos generales; Tener estas pruebas de que puede recoger otras cosas rápidamente.

Entonces, continúe y pruebe suerte en la programación competitiva, lea GeeksforGeeks para conocer algunos buenos problemas y luego resuelva algunas preguntas en Codechef o Codeforces. Al principio, enfóquese más en la programación competitiva. Más tarde, aprenda sobre desarrollo web, desarrollo de aplicaciones o lo que sea que le interese. El desarrollo de software es donde aplica sus habilidades de programación, y la programación competitiva es cómo mantiene sus habilidades de programación afiladas.