Soy ingeniero de software en un país en desarrollo. Siempre quise trabajar en Silicon Valley. Para llamar la atención, ¿debería centrarme más en la programación competitiva o en proyectos de código abierto?

Creo que es una buena pregunta. Mi respuesta sería concentrarme en ambos, pero luego le daría más peso al código abierto.

Si está contribuyendo al código abierto:

  • Tienes algo que completar en tu currículum. Siempre puede dirigir a las personas a su cuenta de Github.
  • Su código es visible para todos y puede reconocerse fácilmente.
  • La gente sabe lo que te apasiona.
  • Como está contribuyendo a la herramienta / marco / lenguaje, tiende a conocer mejor esa herramienta / marco / lenguaje.
  • Desarrollas habilidades de colaboración y gestión del tiempo.
  • Conocerás la comunidad.

Por otro lado, si participa en una programación competitiva, aprenderá:

  • habilidades para resolver problemas.
  • no entrar en pánico cuando hay un reloj asociado a su código.
  • Varios algoritmos para resolver el problema.
  • Trucos comunes para resolver problemas no muy comunes. Me refiero a que los problemas que aparecen en la programación competitiva no suelen ser los mismos que codifica diariamente.

La programación competitiva lo ayuda a despejar las 2 rondas iniciales de entrevista, pero las contribuciones de código abierto lo convierten en un todo terreno.

Espero que ayude.

Feliz codificación

Centrarse en código abierto. Personalmente, nunca escuché que alguien fuera contratado debido a la codificación competitiva.

El trabajo de código abierto puede mostrar cómo realiza una variedad de tareas, cómo trabajaría con otros, cómo administra su tiempo y más. Es una cosa más redondeada.

Trabajar no se trata solo de codificación. Se trata de lograr que un equipo de personas construya un diseño complejo y lo haga funcionar con los clientes que lo usan.

Código abierto definitivamente.

Claro, la programación competitiva le brinda esa sensación de satisfacción y confianza, pero el código abierto le permite colaborar con otros y desarrollar algo más.

Además, conoces a diferentes personas y aprendes nuevas habilidades. No es feroz y promueve el aprendizaje. En última instancia, debe obtener un producto terminado en lugar de demostrar quién es mejor. No puede completar el producto si está empeñado en derrotar a otros en lugar de trabajar con ellos.

Salud.

Creo que de manera realista, querrás practicar tus habilidades en ambas áreas. En general, recomendaría centrarse más en el código abierto. Pero hasta cierto punto, depende de ti. ¿Qué área se adapta mejor a tu personalidad?

La programación competitiva tiene que ver con el esfuerzo individual, que está muy bien. Pero, en última instancia, los mejores productos son construidos por * equipos * fuertes y las mejores compañías (en teoría) buscan personas que puedan funcionar bien como parte de los equipos. Si eres un prolífico colaborador de código abierto, te encontrarás como un desarrollador experto que también es un jugador de equipo. Exactamente el tipo de persona que quiero reclutar. 🙂

Sin embargo, hay una advertencia: el proceso de entrevista predominante para los ingenieros de software está muy sesgado hacia el tipo de habilidades que desarrollas en la programación competitiva: límites de tiempo estrictos, sin ayuda externa, etc. Así que eso es todo.

Personalmente, creo que el aspecto de “colaborador individual” de las entrevistas está demasiado enfatizado, por lo que mi empresa incluye un ejercicio de colaboración durante nuestro proceso de entrevista. Sin embargo, es una realidad con la que tendrá que estar preparado para lidiar en Silicon Valley.

¡Buena suerte!