Cómo conseguí un trabajo de ingeniería de software después de un año de arduo trabajo

Muchos de nosotros pensamos que el camino para convertirse en ingeniero de software requiere años de educación y un coeficiente intelectual extremadamente alto. Si bien la ingeniería de software es una de las profesiones más brillantes, no permita que eso lo desanime de aprender a codificar y convertirse en ingeniero de software.

Pensé que era demasiado tarde para hacer la transición a la informática, pero no importa dónde te encuentres en la vida, nunca es demasiado tarde para aprender y perseguir tu pasión.

Mi origen no tradicional

No asistí a una universidad de primer nivel ni tengo experiencia técnica. No tenía pasión por resolver acertijos cuando era niño ni competir en concursos de matemáticas. De hecho, me alejé de la resolución de problemas de computadoras cuando era niño después de los muchos intentos fallidos de hacer funcionar el wifi.

Me gradué con un título en Administración de Empresas y trabajé en dos trabajos financieros que no me desafiaron. Eran trabajos fáciles y sencillos, pero se volvieron mundanos y aburridos muy rápido. No sentía que el trabajo que estaba haciendo fuera satisfactorio y me rechazaban cada vez que pedía más tareas analíticas. Entonces decidí mejorar mi conjunto de habilidades y crear mis propias oportunidades.

Hace poco más de un año, aprendí SQL porque es una habilidad popular en el análisis financiero. Después de aprender la sintaxis, la codificación ya no parecía tan intimidante. Fue como aprender un nuevo idioma. Una vez que sea capaz de leer y escribir, podrá comprender cosas que antes parecían completamente extrañas. Realmente disfruté aprendiendo un nuevo idioma y siendo técnico en mi trabajo, así que sabía que esto era algo que tenía que perseguir.

Elegir el camino correcto

Consideré las diferentes rutas para seguir una carrera en desarrollo. No quería pasar otros dos años en la licenciatura y no quería aprender todo por mi cuenta. Escuché historias de éxito de personas que asistieron a los bootcamps de programación y pudieron pasar a un puesto de ingeniería de software. Después de investigar mucho, decidí que esta era la mejor opción para mí y postulé para la siguiente cohorte de Hack Reactor.

Necesitaba pasar una entrevista técnica para ser admitido en el programa, así que dediqué todo mi tiempo después del trabajo o los fines de semana aprendiendo todo lo que pude. Fue difícil hacer tiempo para aprender algo completamente nuevo después de haber estado agotado de un trabajo de tiempo completo, pero mi motivación para alcanzar mi meta me mantuvo en marcha.

Bombardeé por completo mi primera entrevista, pero aprendí de mis errores y reservé otra entrevista el día de la fecha límite. Esta vez me aseguré de estar preparado y ser comunicativo con todo mi proceso de pensamiento. Al día siguiente recibí mi carta de aceptación y mi viaje para convertirme en ingeniero de software había comenzado oficialmente.

Perfecciona tu oficio

El campus al que decidí asistir estaba en San Francisco, uno de los centros tecnológicos más grandes del mundo. Estar en SoCal toda mi vida, definitivamente fue un cambio importante y no fue fácil decir adiós. Empaqué todas mis cosas y me mudé a un apartamento compartido en SF.

Durante los primeros días de mi programa, conocí a mis compañeros de clase. La mayoría de ellos provenían de universidades muy respetadas y tenían títulos STEM. Muchos de ellos tenían conocimientos previos de otros lenguajes de secuencias de comandos y experiencia con la programación orientada a objetos. Sabía que tenía mucho que poner al día si no quería quedarme atrás.

Lo llaman un campo de entrenamiento de codificación por una razón. Las clases estaban programadas de 9 a. M. A 8 p. M., Seis días a la semana, pero normalmente me quedaba hasta las 10 p. M. O la medianoche. Prácticamente viví, respiré y dormí código.

Las primeras semanas realmente luché. Abarrotaría tanta información como pudiera mientras me aseguraba de conservar la información de los días anteriores, y repetía este proceso nuevamente al día siguiente. Hubo momentos en los que dudé de mí mismo y pensé que no tenía lo que se necesita para ser programador. Sacrifiqué tanto para estar allí y mis amigos y familiares contaban con que terminaría fuerte. Sabía que esta era mi única oportunidad, así que persistí y resistí la tormenta.

Los días y las semanas comenzaron a pasar volando y poco a poco comencé a incorporarme al flujo. Comencé a aprender "cómo aprender" ya confiar en mis propias habilidades para resolver los problemas que enfrentaba. Google es el mejor amigo de cualquier desarrollador y es muy probable que alguien más se haya encontrado con el mismo error con el que se ha encontrado.

Trabajé en sprints cada dos días que cubrían los fundamentos de JavaScript, marcos frontend, servidores, bases de datos, implementación y mucho más. Solo estaba siguiendo los movimientos durante las primeras semanas, pero cuando finalmente creé una aplicación de pila completa, ahí es donde todo hizo clic. Finalmente entendí el propósito de tecnologías específicas que estaba usando y todo tenía sentido.

Construyamos algo

Una vez que se establecieron las bases, el plan de estudios de mi programa cambió hacia proyectos de construcción. Trabajaría en proyectos capstone con equipos que enfatizarían el frontend o el backend. Dicen que obtienes lo que pones, así que me aseguré de mostrar mi mejor trabajo en estos proyectos. No solo tenía que funcionar, sino que el código tenía que ser limpio y legible en caso de que los posibles empleadores revisaran mis repositorios de git.

El último proyecto final se llamó MVP, también conocido como Producto Mínimo Viable. Básicamente, teníamos 72 horas para crear cualquier cosa que quisiéramos siempre que fuera una aplicación de pila completa. El tiempo limitado era un desafío y tenía que asegurarme de poder administrar mi tiempo de manera eficiente. No podía ser demasiado ambicioso con mi proyecto, pero también quería que fuera algo de lo que estuviera orgulloso.

Mi primera idea fue crear una aplicación descentralizada que utilizara la cadena de bloques Ethereum. Parecía impresionante para los empleadores, pero no estaba familiarizado con el lenguaje de Solidity y no estaba seguro de poder completar todo el dapp a tiempo. Otra idea con la que bromearía era una aplicación de calificación de boba para todas las tiendas de boba cercanas que mis compañeros de clase y yo visitaríamos.

Cuando llegó el momento de decidir, recordé que aprendí a programar porque era divertido para mí. Sentí que pondría un 110% en algo que disfrutaría, en lugar de algo por lo que me estresaría constantemente. Terminé eligiendo la aplicación de calificación boba y me encantó cada segundo.

Una vez que obtuve la funcionalidad básica, seguiría implementando funciones adicionales. Eventualmente se convirtió en un proyecto apasionante y siempre será un proyecto memorable del que estoy orgulloso. No hagas algo porque pueda parecer impresionante a los demás, hazlo porque realmente lo disfrutas.

Al final de la decimotercera semana, toda mi forma de pensar cambió desde que comencé mi programa. Me sentí más seguro como desarrollador y orgulloso de todo lo que logré. Aprendí tantas nuevas tecnologías que me habría llevado años aprender por mi cuenta. Me he vuelto más autónomo y confío en mis propias habilidades para resolver problemas. Finalmente estaba preparado para lanzarme a mi búsqueda de trabajo y no podía esperar para comenzar.

La rutina

Antes de que terminara mi programa, sabía que tenía que empezar a trabajar. Me había preparado durante meses y ahora era mi oportunidad de mostrarles a los empleadores lo que tenía. Sabía todo el MVC y cómo construir la pila completa, pero cuando tenía entrevistas simuladas, me ponía muy nervioso y me quedaba completamente en blanco. En ese punto, sería una espiral descendente y todo mi proceso de pensamiento se descarrilaría. ¿Cómo iba a pasar una entrevista técnica real cuando ni siquiera podía manejar las simuladas?

Me dediqué a estudiar estructuras de datos y algoritmos mientras respondía las preguntas de Leetcode. Tenía que asegurarme de no memorizar problemas específicos, sino de comprender el proceso de resolución de problemas para abordar cualquier pregunta. Una vez que pude encontrar una solución básica a un problema (también conocida como fuerza bruta), supe que los entrevistadores buscarían una solución óptima. Quieren saber si puede ser eficiente con sus algoritmos con respecto al tiempo y al espacio.

Una vez que construí una mejor base para la resolución de problemas, llegó el momento de enfrentar mi miedo a las entrevistas. Escuché sobre el concepto de terapia de choque, básicamente enfrentar tus miedos de frente. De manera similar a cómo Batman superó su miedo a los murciélagos al rodearse en una cueva llena de ellos, tuve que practicar más entrevistas.

Usé un sitio llamado Pramp que los emparejaría con otra persona y ustedes se turnarían para entrevistarse entre sí. Reuní el valor y programé mi primera entrevista. Hablaba sobre mi proceso de pensamiento y la solución me vino naturalmente. Poco a poco pude sentir que mi nerviosismo se desvanecía y comencé a disfrutar de las entrevistas.

Al final de la entrevista simulada, pedí comentarios y aprendí en qué podía mejorar. Después de que todo terminó, ¡me sentí genial! La entrevista no fue tan aterradora y realmente puedes beneficiarte del proceso. Luego practiqué todos los días para estar preparado para una entrevista real.

“El éxito no es definitivo, el fracaso no es fatal: es el coraje para continuar lo que cuenta”. - Winston Churchill

Todo un juego de números

Mientras me preparaba para las entrevistas, también comencé a postularme a puestos de trabajo, ya que el proceso de solicitud llevaría algún tiempo, especialmente para las empresas más grandes, que podría llevar semanas o meses.

Noté que era una tendencia común que los nuevos desarrolladores se concentraran únicamente en la preparación antes de presentar la solicitud, pero eso podría ser un error costoso. Siempre hay algo que estudiar cuando se trata de ingeniería de software, por lo que no puede prepararse para todo. Me han preguntado sobre todo tipo de temas, como estructuras de datos y algoritmos, diseño de sistemas, diseño de frontend, pruebas y conocimiento del dominio. Para cuando haya estudiado “todo”, puede llevar meses obtener su primera entrevista.

Una estrategia es entrevistar a empresas que sabes que no son tu primera opción. De esta manera, estará más preparado y sabrá qué hacer correctamente cuando tenga la oportunidad de entrevistar a las empresas de sus sueños.

Sabía que asistir a un Bootcamp no me garantizaría un trabajo. Estaba compitiendo con aquellos con títulos en Ciencias de la Computación y experiencia previa en la industria. Al ser un postulante sin un título técnico o experiencia laboral relevante, iba a la búsqueda de trabajo con una desventaja.

Solicité cualquier puesto de ingeniero o desarrollador que encontré y me comuniqué con las conexiones en las empresas potenciales en las que me gustaría trabajar. Envié más de 300 aplicaciones frías y recibí una tasa de respuesta increíblemente baja. Me estaban filtrando y recibí innumerables correos electrónicos de rechazo automático.

Lo que encontré que es el método más eficaz para ponerme en contacto con un reclutador fue a través de referencias. Las referencias tienen mucho sentido desde el punto de vista del empleador. ¿Por qué confiar en un completo extraño que no ha conocido cuando tiene un candidato avalado por un empleado actual en el que puede confiar? Una cosa que cualquiera puede hacer es expandir su red asistiendo a reuniones y eventos. LinkedIn es una gran herramienta para encontrar conexiones mutuas en empresas; utilícelo al máximo.

Habrá muchos obstáculos en su primera búsqueda de empleo. Lo maté varias veces en pantallas técnicas y recibí excelentes comentarios del entrevistador, solo para recibir un correo electrónico de rechazo del reclutador más adelante. Solo necesita ser persistente, aprender de entrevistas anteriores y seguir adelante. Si sigue haciendo todo bien, seguramente encontrará la oportunidad adecuada y obtendrá una oferta.

El trabajo duro honesto vale la pena

Al final de mi búsqueda de trabajo de tres meses, me invitaron a cinco entrevistas en el lugar y recibí tres ofertas. Después de pensarlo mucho, me complace anunciar que me uniré a Zume Inc. en el Área de la Bahía de San Francisco. Amo la misión y a todos los que he conocido. Todo mi arduo trabajo y largas noches finalmente dieron sus frutos y no podría estar más feliz con el lugar en el que me encuentro en mi vida en este momento. Estoy muy agradecido por todos los que me han apoyado en este viaje. Sé que seré desafiado todos los días y lograré un mayor impacto con mi trabajo.

Lo que me encanta de la ingeniería de software es que no importa qué experiencia tengas. Cualquiera puede aprender a codificar y perfeccionar sus habilidades. Si vienes de un camino no tradicional como yo, puede que requiera un poco más de trabajo que el resto, pero todo valdrá la pena. La vida es demasiado corta para conformarse con menos, así que haz algo que te guste.

Deseándote la mejor de las suertes en tus esfuerzos - Andrew

Siéntase libre de conectarse y seguirme en LinkedIn mientras ayudo a inspirar a aquellos que desean ingresar a la industria de la tecnología: www.linkedin.com/in/andrew-ngo/