En esta publicación, compartiré todo mi viaje sobre cómo me convertí en un desarrollador móvil profesional.
Espero que leer sobre mi experiencia te ayude a reflexionar sobre tu presente y tu futuro, y te ayude a comenzar tu carrera como desarrollador o te motive a avanzar en el logro de tus metas.
Mi título universitario y como empezó todo
Terminé la escuela secundaria con una licenciatura en matemáticas e informática en un pequeño pueblo de Rumania.
Como la mayoría de mis amigos, tenías dos opciones en términos de ciudades para ir a la universidad. Elegí Bucarest, la capital de Rumanía.
Crecí pensando que la universidad es algo obligatorio. Eso probablemente sucede en la mayoría de los países.
Todos nuestros padres lo quieren para nosotros.
Nunca sentí el deseo de elegir un título específico. ¿Suena familiar? Nunca me vi trabajando como algo después de graduarme.
Al final, decidí ir a una universidad de economía en Bucarest. Nuevamente había dos opciones. Una era considerada una buena universidad y otra en la que pagabas mucho dinero solo para obtener un título.
Hice algunos exámenes en el primero, sin estudiar, la verdad. Y obviamente no pasé.
Tuve que ir con la segunda opción.
Avance rápido y me gradué de mi universidad de economía. Pero me gradué con dos años de retraso. Nunca tuve una pasión por la economía y nunca me vi trabajando como banquero. Siempre pensé que quería obtener el diploma y eso es todo.
Nunca consideré cuánto pagué por ese título inútil, pero necesitaba un diploma para ser aceptado por la sociedad, ¿verdad?
Fui un fracaso, con un título en economía, pero sin experiencia ni conocimientos. En los años siguientes, con la ayuda de mi familia, logré crear dos negocios que también fracasaron.
No discutiré los de la historia, pero digamos que aprendí mucho. También jugaba al póquer en línea y era bastante bueno en eso.
Siete años después de graduarme de la escuela secundaria, me encontré sin experiencia laboral, sin negocios exitosos y sin dinero.
Sabía que tenía que actuar y sabía que todos mis sueños de tener un negocio exitoso no se concretarían pronto a menos que tuviera un plan de respaldo.
Fue entonces cuando pensé:
¿Qué trabajo puedo conseguir que me haga feliz, me pague bien y me permita tener una buena vida a los 30-40 años, incluso si nunca logro crear mi propio negocio?
La única respuesta que me vino a la mente fue la programación. Tenía algo de experiencia previa en la escuela secundaria y construí algunos sitios web.
Solo había un problema: no me gustaban las matemáticas en la escuela secundaria y siempre pensé que no podría aprender programación profesional sin una excelente comprensión de la misma.
Estaba equivocado.
Probablemente hay mucha gente como yo, gente que tiene los mismos pensamientos y dudas. Pero todo lo que tienes que hacer es actuar y empezar a aprender.
Aprendiendo Android y Java
Fue en 2014 cuando comencé a investigar la idea de aprender a codificar.
Lo primero que hice fue buscar en Google algunos cursos en Bucarest, y encontré una empresa que me invitó a sus oficinas. Fui allí y recuerdo que tenían una hermosa oficina amueblada con muchos iMAC. Me dije a mí mismo: "Eso es lo que necesito".
Diez minutos después me di cuenta de que estaban haciendo todos sus cursos en línea y que era más como una oficina vender el curso que hacer el curso.
No recuerdo el precio exacto, pero rondaba los 1500 - 2000 USD. Yo no lo tomé.
Dejé ir la idea por unos meses, luego llegó el 2015. Año nuevo, planes nuevos, vida nueva, ¿sabes?
Empecé a buscar de nuevo un curso en persona y descubrí que se llamaban bootcamps.
Descubrí uno en Bucarest y estaban haciendo Java, y solo costó alrededor de 800 USD por cuatro meses. Serían unas horas al día con un profesor y otros alumnos.
Mirando hacia atrás, creo que eran baratos para lo que ofrecían, pero creo que éramos el segundo lote que tenían.
Nos decían todo tipo de cosas sobre que nos contrataran después del bootcamp, pero no me importaba.
Quería aprender a codificar y pensé que podría encontrar un trabajo rápidamente en unos pocos meses. Tenía razón, pero no fue tan fácil como pensaba.
Comenzaron las clases. Siempre nos decían que no basta con hacer solo lecciones durante nuestras horas juntos.
Traté de escuchar. Pero en casa, las cosas nunca tuvieron sentido. La programación era difícil y, a menudo, pensaba que no podría terminar el bootcamp.
Me esforcé cada vez más. Fue un mes después de los cursos cuando descubrí que íbamos a aprender Java con Android, pero nuevamente, no me importaba. Me estaba enamorando de Eclipse y sucedieron cosas en la pantalla mientras codificamos.
Eclipse es un entorno de desarrollo integrado que se utilizó originalmente para desarrollar para Android. Ahora usamos Android Studio.
Fue dificil. Lección tras lección, estaba tratando de aprender variables, clases, herencia, encapsulación, bucles for, etc.
Pero luché. No tenía una idea clara de cómo podría usar todos estos en una aplicación más grande. Muchas veces no tenía sentido.
Si acaba de comenzar a programar y siente lo mismo, quiero que sepa que es normal.
Nuestros mentores siempre nos decían: "No tienes que saber todo esto de la cabeza. Solo trata de entender qué son y cómo puedes usarlos".
Tenían razón, pero lo descubrí más tarde. En ese momento específico en el tiempo, no ayudó.
Una cosa que lamento es que no hice proyectos desde el principio. Siempre pensé que necesitaba un maestro y que no puedes aprender nada en línea por tu cuenta. Fui vago y, de nuevo, me equivoqué.
Después de cuatro meses, logré crear mi primera aplicación "que no funciona". Era una aplicación donde los estudiantes podían alquilar habitaciones a otros estudiantes o personas.
Dije "no funciona" porque no tenía backend ni usuarios. Era más como una aplicación de demostración que usaba SQLite para almacenar datos.
Estaba orgulloso de ello, porque unos meses antes, nunca imaginé que podría hacerlo.
El bootcamp terminó y no creo que volví a hablar con nadie de su gerencia.
No estoy seguro de si intentaron conseguirme un trabajo, o tal vez pensaron que no era lo suficientemente bueno para una carrera como desarrollador.
Primeras entrevistas y primer trabajo como desarrollador junior de Android
Empecé a entrevistarme y recuerdo que la primera fue para un puesto de Java en una gran empresa internacional ubicada en Bucarest. (Pista: tienen más de 300,000 empleados y sus ingresos de 2019 fueron de aproximadamente 77 mil millones).
No tomé la entrevista, pero creo que la conversación fue buena. Probablemente no me contrataron porque no tenía experiencia.
Después de eso, me tomó otro mes conseguir la siguiente entrevista.
Un amigo que hice en el bootcamp me ayudó recomendándome. Si lee esta publicación, quiero agradecerle.
En realidad, el cargo era el de desarrollador de Android para una empresa de subcontratación rumana que tenía un contrato con una empresa de telecomunicaciones.
Tuve dos entrevistas con ellos, en su mayoría cuestiones técnicas, y todavía recuerdo cuando llamaron para ofrecer el puesto.
El salario era pequeño, pero no importaba.
Creo que comencé el bootcamp a fines de mayo de 2015 y comencé mi primer rol como Desarrollador Junior de Android en enero de 2016.
Fue todo un logro.
Mi gerente me asignó un proyecto y luego comencé a aprender sobre el control de versiones y cómo trabajar con Agile, y cómo trabajar en sprints de 2 semanas.
Si ha comenzado a aprender programación o quiere comenzar, le recomiendo tres cosas.
- Empiece hoy (opcional si ya empezó)
- Haz tantos proyectos como puedas
- Aprenda el control de versiones (Git, Bitbucket o Gitlab) y envíe todos sus proyectos allí.
Tal vez escriba otro artículo sobre todas estas cosas.
Durante mi tiempo en esa empresa, conocí a mucha gente amable y servicial. Probablemente estaba molesto para muchos de ellos porque, al principio, pedía mucha ayuda.
Nuevo país y más trabajos de Android
9 meses después, decidí que quería mudarme a Londres porque recibía muchos mensajes de los reclutadores. También pensé que sería más fácil avanzar en mi carrera allí y luego regresar a Bucarest.
Tuve suerte de que mi hermana viviera allí y tuvo la amabilidad de dejarme vivir con ella.
Incluso cuando tenía reclutadores que me prometían entrevistas y cosas así, cuando llegué allí, no tenía reuniones.
Sabía que no sería fácil y solicité muchos trabajos en línea.
Después de dos semanas, obtuve una entrevista en una empresa de servicios de British Telecom. Tenían un pequeño departamento de TI y su desarrollador de Android se marchaba. Tenían aplicaciones internas de CRM de Android, utilizadas por sus empleados, y necesitaban a alguien para el mantenimiento y para desarrollar nuevas aplicaciones.
Era un contrato de un año y la paga no era buena (me enteré más tarde), pero de nuevo, estaba feliz.
Aprendí mucho en ese año (por mi cuenta).
Aprendí tecnologías específicas de Android como:
- ¿Qué es una arquitectura como Model-View-Presenter y cómo usarla en una aplicación?
- Cómo hacer una prueba unitaria adecuada
- Los principios SOLID
Y así.
Todo eso lo aprendí en el trabajo y en mi tiempo libre. Estaba trabajando, y en mi tiempo libre, estaba creando aplicaciones para mí.
Hasta el día de hoy, todas mis aplicaciones (5 en Android) tienen más de 100k descargas, en su mayoría orgánicas, pero solo una de ellas hizo más de 2,000 USD.
Trabajé para la empresa de telecomunicaciones precisamente durante un año. Quería probar algo diferente en Londres y trabajar con más desarrolladores de Android.
Me tomó algún tiempo entender que, como desarrollador de software, siempre tienes que hacer más de lo que haces en el trabajo. Lo mismo ocurre con los médicos o los abogados. Regularmente necesitan mejorar sus conocimientos para ser mejores que los demás.
Me sentí listo para trabajar en un proyecto más significativo, pero no creo que tuviera la habilidad suficiente.
No me desanimó y asumí un puesto de Android en una empresa de subcontratación global.
Iba a trabajar para un gran banco británico en Londres.
Al principio tenía miedo, pero me tomó un mes sentir que era parte de ese proyecto.
Hice tres entrevistas antes de ingresar al proyecto.
Durante mi carrera, todas las entrevistas que hice tuvieron dos o tres pasos.
El primero suele ser con RR.HH. donde te preguntan cosas sobre tu experiencia.
La segunda entrevista podría ser con preguntas técnicas, tareas para llevar a casa o preguntas técnicas con algunos algoritmos.
La tercera entrevista puede ser con un líder técnico o con un gerente o nuevamente con alguien de RR.HH.
Comencé a trabajar en el banco en un equipo Scrum adecuado. Éramos 4 desarrolladores de Android, 4 desarrolladores de iOS, un director de proyectos, un propietario de producto, 2-3 ingenieros de control de calidad, un analista de negocios, redactor publicitario y diseñadores.
Todas estas personas estaban desarrollando una parte crucial de la aplicación. El proyecto fue masivo.
Solo en el equipo de desarrollo había más de 30 desarrolladores de Android y más de 30 desarrolladores de iOS.
Permanecí en ese puesto durante un año, como en mi trabajo anterior. ¿La razón? Quería volver a Rumanía.
Tuve la suerte de tener solo buenos colegas a mi alrededor.
Nunca está mal pedir ayuda si quieres aprender. Todos hemos empezado desde el principio, sin conocimientos. Siento que es terrible no querer aprender cuando no sabes.
El año en el banco me enseñó mucho y me sentí como algunos años. He aprendido:
- Cómo hacer revisiones de código
- Cómo trabajar en un proyecto que requirió una cobertura de código del 100% para las pruebas unitarias
- Cómo entregar funciones a tiempo
- Qué es una arquitectura limpia y cómo escribir código que sea fácil de leer sin dejar un montón de comentarios
Y muchos más de los que probablemente no recuerdo.
Regresar a casa con más conocimiento
Fue en noviembre de 2018 cuando volví a Bucarest, después de dos años y un poco de vivir en Londres.
Fue una experiencia excelente, pero no me sentí como en casa.
Conseguí un nuevo trabajo para otra empresa rumana de subcontratación bastante rápido (2 semanas) después de regresar.
Me tomó solo cuatro meses irme de nuevo para un nuevo proyecto de seis meses en Londres.
No estaba feliz de dejar a mi novia sola, pero el dinero era bueno para solo seis meses de trabajo.
No puedo revelar ninguna información sobre el proyecto porque firmé un acuerdo de confidencialidad y hoy sigo trabajando para ellos. Pero estoy ubicado en Bucarest ahora mismo. Trabajo para la empresa actual desde hace más de año y medio.
¿Qué aprendí en este proyecto?
- Cómo crear un equipo
- Cómo iniciar una gran aplicación desde cero. Probablemente estaré muy orgulloso una vez que lancemos y la gente lo use.
- Cómo adaptar requisitos con muchas incógnitas.
- Cómo cumplir trabajando con personas de todo el mundo.
Ha sido un viaje loco.
Conclusión y lo que aprendí
Mi publicación tiene más de 2000 palabras y creo que no les di muchos detalles sobre lo que aprendí. Solo rasgué la superficie.
No fue fácil, pero no me arrepiento de haber elegido esta carrera.
Si eres yo de hace 5 años, empieza.
Tendrá ganas de dejar de fumar. Pensarás que no eres lo suficientemente inteligente, te sentirás como cualquier desarrollador que tarda unas horas / días en resolver algo sin suerte y luego tiene un momento de brillantez.
No está mal no saberlo, y ninguna pregunta es estúpida. Es terrible si no quieres aprender.
Hoy, más desarrolladores que nunca están dispuestos a ayudar. Puede encontrar fácilmente grupos de Discord donde las personas estén felices de responder sus preguntas de programación. Hay muchas comunidades de Reddit que serán útiles. Quizás incluso los canales de Slack puedan funcionar para ti. Encontrar un mentor también puede ser una solución.
Los sitios web y los canales de YouTube como freeCodeCamp son todo lo que necesita para comenzar.
Aquí están todas las cosas que espero que hayan aprendido en esta publicación:
- Comenzar es difícil, pero cada día de aprender algo nuevo te dará una enorme satisfacción.
- Necesitas hacer todo tipo de proyectos. Conocer los conceptos básicos es bueno, pero construir cosas y trabajar con el control de versiones lo ayudarán a prepararse para un trabajo futuro.
- Las personas están dispuestas a ayudar (tanto en línea como futuros colegas)
- Habrá días en los que nada funcionará. No encontrará una solución fácilmente. Relájese y vuelva al problema más tarde o simplemente pida ayuda.
- Todos los desarrolladores (junior, mid o senior) buscan soluciones en Google y se atascan con frecuencia.
- Sentirás el síndrome del impostor, pero créeme cuando te digo que conocí a desarrolladores con títulos de informática que son peores que yo.
- Ser desarrollador no se trata solo de codificar. Las habilidades blandas también son importantes.
Si te gustó este artículo y quieres más, sígueme en Twitter. Escribo sobre mi viaje como desarrollador móvil, mis empresas emergentes fallidas / exitosas, sobre el marketing de aplicaciones y todo tipo de cosas que aprendí en los últimos 10 años.