Eso realmente depende de ti. Sin embargo, déjame ser una inspiración compartiendo mi historia.
Comencé a programar de niño en AppleBASIC seguido de BASIC en un Timex / Sinclair 1000. Esa pequeña belleza 4K no tenía ni un chip de sonido ni un teclado tradicional. Entonces, fue la primera plataforma perfecta para hackers. Hicimos lo fácil, primero, de actualizar al enorme paquete de memoria de 16K. Luego lo abrimos y soldamos un cable plano entre la placa base y un teclado real que construimos a partir de un kit. Finalmente, eliminé y modifiqué todos los programas BÁSICOS que pude encontrar, ya sea originalmente escritos para Apples o el TS1000. Eso culminó con la piratería informática definitiva que estaba reproduciendo el Star Spangler Banner en un dispositivo sin soporte explícito para el sonido al desactivar el televisor de tal manera que el video se distorsionaba y, luego, tocaba la memoria del video, causando que dicha distorsión creara tonos consistentes. Y, sin embargo, NO me convertí en desarrollador de software en este momento.
No, supuse que sabía todo lo que podía sobre escribir software a la edad de 18 años y decidí que el tema más interesante era comprender el silicio que producía estas cosas maravillosas. No llegué tan lejos en mis estudios de Ingeniería Eléctrica e Informática como me hubiera gustado cuando, debido a las presiones financieras, terminé abandonando la universidad. Entonces, consiga dos para ser un gran éxito en la industria del software.
Pasé los siguientes 20 años trabajando en TI de varias maneras, desde impresoras de reparación de tecnología de campo para oficinas de abogados hasta trabajo de administración de redes. Cuando la compañía con la que estaba haciendo mi carrera se hundió, me encontré trasladándome al centro de Florida, donde descubrí la sede de una de mis piezas de software favoritas. El software era Backup Exec y la compañía era Seagate Software.
Ahora, en el fondo de mi mente, pensé que de alguna manera podría conseguir un trabajo con ellos y cambiar mi carrera al desarrollo de software. Eso sí, no había escrito mucho código en los 15 años transcurridos. Me llevó 3 años y una fusión con Veritas Software antes de poder unirme a la empresa. No hay programación durante ese tiempo, tampoco. Luego tardé otros 6 años y completé mi AA con un par de cursos de programación (C ++ y JAVA) en mi haber antes de tropezar con un proyecto interno en el que podría contribuir. No es que no pudiera haber estado contribuyendo a algún proyecto de código abierto (PRO TIP para construir su currículum) antes, pero mi confianza en mí mismo era baja. Sin embargo, ese proyecto interno fue el punto de inflexión que había estado buscando y que demostró a algunas personas que debería estar haciendo desarrollo de software. Tenía 39 años y era desarrollador de software … apenas.
Miro hacia atrás a esa época y me doy cuenta de que el hecho de que pudiera organizar mis pensamientos en torno a una tarea que necesitaba que la computadora hiciera, me permitió escribir un código realmente malo que hizo el trabajo. No tenía nada de la disciplina que tengo hoy. Como dice el meme, “Raramente pruebo [ed] mi código, pero cuando lo hice, probé [ed] en Producción”. ¡No tenía idea sobre TDD, patrones de diseño o principios SOLID, o el ciclo de vida de desarrollo de software (SDLC), o incluso C #, el lenguaje que usaban, pero era desarrollador de software para un equipo de análisis de datos en la organización de soporte técnico de Symantec! (Symantec había adquirido Veritas Software para entonces.) Sin embargo, no soy alguien que vaya a algo a mitad de camino, así que rápidamente aprendí sobre todas esas cosas. Después de 4 años trabajando en ese equipo, estaba listo para estirar las alas y tener un mayor impacto. Al no encontrar la oportunidad correcta allí, comencé a trabajar en contratos de C # y SQL y obtuve mucha exposición a varios SDLC, arquitecturas y espacios problemáticos. Lo que descubrí es que podía trabajar en cualquier cosa siempre que mantuviera una conversación abierta con mis compañeros y las partes interesadas, cosas que aprendí mucho antes de convertirme en desarrollador de software.
Entonces sucedió lo improbable. Me uní a una startup exitosa que poco después fue adquirida por Google. Y, para mi sorpresa, ¡me mantuvieron en pie! Yo era un Google. Ok, no era ingeniero de desarrollo de software pero estaba programando en Python, otro lenguaje que nunca había visto antes, en Google. El proceso de la entrevista me presentó conceptos que nunca había visto antes, algoritmos y una comprensión explícita de las estructuras de datos subyacentes a todo el trabajo que había realizado anteriormente. Para seguir siendo un Google, ya que estaban cerrando mi oficina, tenía que aprender estas cosas para ser eficaz en las entrevistas, así que pasé el año siguiente buscando todos los cursos en línea que podía tomar sobre los temas.
Obtener Google en su currículum lleva a todos los reclutadores al patio. Mirar todos los lugares donde podría trabajar para Google, Nueva York, Pittsburgh, Chicago y Mountain View estaban en la lista corta. Quería evitar el frío extremo y vivir en algún lugar rentable. Cuando Microsoft llamó por cuarta vez, decidí que necesitaba practicar entrevistas y me invitaron a Redmond para entrevistarme para un puesto de Ingeniero de Software. Redmond en mayo es hermoso y, para mi sorpresa, me dieron una oferta unos días después. Yo tenía 46 años
He tenido entrevistas exitosas con esta táctica con Amazon, Microsoft, Google, NASA, y he tenido ofertas continuas para entrevistas en Google, Amazon, LinkedIn, Facebook, Wizards of the Coast y más nuevas empresas de las que puedo contar. Ahora soy oficialmente ingeniero de software a los 48 años y sigo aprendiendo algo nuevo todos los días. También sigo tomando cursos en línea para llenar los vacíos en mi conocimiento que un título de CS habría cubierto. Estoy disfrutando de esta nueva trayectoria profesional y me veo progresando en esta industria durante los próximos 20 años.
Como dije, todas las historias son únicas y eso incluye la tuya. Sin embargo, si desea cambiar su carrera hacia el desarrollo de software, sé que no solo puede hacerlo, sino que puede pasar de eso a la ingeniería de software en una importante empresa de software. Y si puede hacerlo, incluso puede dirigir ingenieros de software. Lo más extraordinario a medida que avanzan las carreras, incluso puede hacerlo sin educación formal. No pongas excusas por ti mismo. ¡Simplemente hazlo!