Cómo adentrarse en el mundo del desarrollo

Cómo adentrarse en el mundo del desarrollo

10/09/2024

¿Estás pensando en adentrarte en el mundo del desarrollo de aplicaciones? Sabemos que puede ser todo un reto, pero con la mentalidad adecuada y una disposición constante para aprender, estos desafíos se convertirán en oportunidades. Si aun no sabes por dónde empezar o cómo puedes destacar en este campo tan competitivo, ¡estamos para guiarte!

Con este objetivo, hemos preparado este reportaje especial por el Día del Desarrollador, donde te ofrecemos las claves esenciales para comenzar tu aventura en el desarrollo de apps guiados por expertos que ya han recorrido este camino. Exploraremos sus comienzos y los desafíos que enfrentaron y profundizaremos en los aspectos técnicos clave, las habilidades necesarias y la importancia de la formación continua y la ciberseguridad. ¡Prepárate para dar el primer paso en tu carrera como desarrollador!

 

Formación y primeros pasos: conociendo a nuestros expertos

Adentrarse en el mundo del desarrollo de aplicaciones es como iniciar una travesía en un terreno desconocido, donde cada paso está lleno de descubrimientos y retos. Aunque cada desarrollador sigue un camino único, hay algo que todos comparten: los primeros pasos suelen estar llenos de desafíos e incertidumbre.

En el caso de Miguel Ángel Durán, hoy un reconocido Google Developer Expert y Microsoft MVP, comenzó su aventura en 2001 mientras estudiaba Ingeniería Informática. Como muchos no tuvo un inicio sencillo, “en mi primer año suspendí Programación con un 0 y pensaba que no servía para esto. Al final, dediqué un verano entero a aprender de forma autodidacta a base de libros y pude darle la vuelta”. Su determinación y aprendizaje autodidacta le permitieron no solo superar esas barreras, sino también convertirse en una figura destacada en la comunidad tecnológica.

Otro ejemplo inspirador es Jorge Baumann, Senior Full Stack Developer, quien encontró su pasión por la informática desde temprana edad, impulsado por su interés en los videojuegos. Aunque no siguió el camino convencional de los bootcamps, su compromiso con la formación continua a través de cursos le ha permitido mantenerse al día en un campo en constante evolución.

Por su parte, Carlos Azaustre, Ingeniero de Software y Profesor Asociado en la Universidad Europea de Madrid, comenzó su carrera con una base sólida en Ingeniería Telemática. Sin embargo, su primer contacto con el mundo profesional no estuvo exento de retos: “mi mayor desafío fue que, en mis primeros trabajos relacionados con el desarrollo, no conocía las herramientas más utilizadas en el mundo profesional. Mi única experiencia era en la universidad y, en algunos casos, sobre todo hace unos años, estaba muy desligada con respecto al mundo de la empresa. Tocó leer mucho y preguntar mucho, y no siempre llegaban las respuestas”.

Otro caso llamativo es el de Alba Silvente, DevReel Engineer en Storyblock, quien llegó a la programación casi por accidente, siguiendo una inercia que descubrió durante su carrera en Ingeniería de Imagen y Sonido. A pesar de los retos iniciales, especialmente en cuanto a la valoración de su trabajo, encontró en la programación su verdadera pasión, “acabé entrando en Ingeniería de Imagen y Sonido en Telecomunicaciones, pero como los primeros años se dan asignaturas en paralelo con informática, fue entonces cuando descubrí la rama de la programación y quedé enamorada a primera vista”.

Estos desarrolladores, cada uno con su propio recorrido y aprendizajes, enfrentaron desafíos comunes al inicio de sus carreras: desde la brecha entre teoría y práctica, hasta la necesidad de mantenerse actualizados en un campo que no cesa de evolucionar. Por ello, resaltan que la formación continua y la perseverancia son pilares fundamentales para cualquier aspirante a desarrollador.

 

Decisiones clave al iniciar la carrera

Las decisiones que tomes al inicio de tu carrera en desarrollo de software pueden tener un impacto duradero en tu trayectoria profesional. Con la tecnología evolucionando a un ritmo acelerado, los desarrolladores deben ser estratégicos en la selección de las herramientas y lenguajes que aprenderán.

"No te limites a un solo lenguaje al principio. Explora, aprende lo que te interese y, con el tiempo, te irás especializando", aconseja Durán. Este enfoque le permitió adquirir una experiencia amplia que más tarde se tradujo en una especialización en JavaScript. En un mercado donde la versatilidad es cada vez más valorada, ser un "desarrollador de tecnología" en lugar de un "desarrollador de lenguaje" puede abrir muchas puertas.

Baumann y Azaustre coinciden en que dominar los fundamentos de la programación es esencial antes de sumergirse en frameworks y tecnologías más avanzadas. "Aprender bien los fundamentos es lo que te permitirá luego adaptarte a cualquier nueva tecnología con facilidad", comenta Azaustre. Esta base sólida no solo facilita el aprendizaje de nuevas herramientas, sino que también permite a los desarrolladores enfrentar desafíos complejos con mayor confianza. Además, Baumann añade que es mejor enfocarse en una tecnología a la vez para evitar la sobrecarga de información, un consejo especialmente relevante en un campo donde el aprendizaje continuo es la norma.

En términos de herramientas, la gestión de versiones con Git es una habilidad indispensable para cualquier desarrollador. En un entorno colaborativo, la capacidad de manejar código de manera eficiente y segura es fundamental para el éxito del proyecto y la integración con otros miembros del equipo.

 

Construyendo una base sólida: habilidades técnicas y herramientas esenciales

Lenguajes de programación, tecnologías y herramientas esenciales

Cuando te adentras en el mundo del desarrollo, es fundamental elegir bien las herramientas y los lenguajes de programación para empezar con buen pie. Durán señala que "esto siempre depende de la parte a la que uno se quiera dedicar ya que cada área tiene sus propias tecnologías y herramientas clave".

Si quieres enfocarte en el desarrollo web front-end, Durán recomienda dominar HTML, CSS y JavaScript. Luego, aprender frameworks como React, TypeScript y Next.js. Y, si lo tuyo es la programación móvil, sugiere comenzar con Kotlin y Jetpack Compose para Android. En cambio, si prefieres el BackEnd, podrías optar por Kotlin con Spring Boot, Node.js, .NET o Python.

Esta la visión la comparte también Baumann, quien coincide en la importancia de tener una base sólida en desarrollo web. "Además de HTML, CSS y JavaScript, un desarrollador debería saber Node.js y trabajar fluido con Git—entendiendo realmente cómo funciona—, y también dominar los atajos de teclado del editor de código que prefiera". Aunque los frameworks cambian con el tiempo, Baumann menciona que sus favoritos son Vue.js para JavaScript y Tailwind para estilos.

 

Metodologías de desarrollo

A la hora de trabajar, la metodología que elijas puede marcar la diferencia. Silvente, recomienda no obsesionarse con una metodología concreta desde el principio y aconseja familiarizarse con los conceptos fundamentales que son comunes a todas ellas, "al iniciar tu camino en el desarrollo de software, lo más probable es que te encuentres con varias metodologías de trabajo según el proyecto o la empresa en la que trabajes". Por eso, es útil empezar entendiendo términos como Epics, User Stories, Features y Hotfixes, además de saber cómo se mide el tiempo en los proyectos y cómo utilizar herramientas de gestión de tareas como JIRA o Gitflow.

 

Mejores prácticas en desarrollo de software

Adoptar buenas prácticas desde el principio es esencial para cualquier desarrollador junior. Durán aconseja no apresurarse: "no quemes etapas. A veces hay mucha prisa por aprenderlo todo, por encontrar el primer trabajo, aumentar el salario... La paciencia es clave". También destaca la importancia de no compararse con otros, especialmente con aquellos que llevan más tiempo en la industria, "es mejor compararse con uno mismo y centrarse en el propio progreso".

Por su parte, Carlos Azaustre añade que una de las mejores prácticas es seguir el principio DRY ("Don’t Repeat Yourself", o "No te repitas"), que consiste en evitar duplicar código y fomentar su reutilización. Sin embargo, advierte contra la "sobre-ingeniería": "no pienses en hacerlo perfecto de primeras. Primero escribe y después corrige. Lo ideal es pensar bien qué se va a implementar y luego programar".

Durán y Azaustre coinciden en que mantener el código limpio y bien organizado es crucial, pero también que no hay que obsesionarse con la perfección desde el inicio. "No subestimes el testing de tu código" añade Durán, recordando lo importante que es asegurarse de que todo funciona correctamente antes de ponerlo en producción.

 

Proyectos personales y contribución a código abierto

En un mercado laboral cada vez más competitivo, tener proyectos personales o contribuciones a proyectos de código abierto puede diferenciar a un desarrollador de sus pares. Estos proyectos no solo demuestran la iniciativa y el entusiasmo por la programación, sino que también proporcionan una valiosa experiencia práctica y ofrecen una oportunidad para experimentar con nuevas tecnologías y técnicas sin la presión de un entorno laboral formal.

Según Durán, participar en proyectos de código abierto es una excelente manera de aprender y ganar experiencia mientras se construye un portafolio tangible que mostrar a futuros empleadores. Este enfoque de demostrar lo que sabes hacer, incluso antes de tener experiencia laboral formal, está en línea con la opinión de Baumann: "es muy fácil tener una idea y convertirla en código: es nuestro superpoder, poder materializar nuestras ideas en herramientas o aplicaciones. Además, tener proyectos propios te da visibilidad y demuestra tu iniciativa, creatividad, y pasión por lo que haces”.

Silvente también pone de relieve la importancia de destacar en un mercado laboral competitivo, mencionando que tener proyectos personales o contribuir a proyectos de código abierto puede ser un factor diferenciador en los procesos de selección. Esta necesidad de destacarse es algo que Silvente comparte con Carlos Azaustre, quien anima a los desarrolladores a no obsesionarse con contribuir a grandes proyectos de código abierto, sino a centrarse en librerías que necesitan ayuda o en proyectos personales que vayan más allá de lo básico, ofreciendo algo con múltiples funcionalidades que realmente demuestre sus habilidades.

 

La importancia de la formación continua

Cursos, bootcamps y certificaciones

Baumann lo tiene claro, “estar actualizado no es opcional, es obligatorio”, teniendo en cuenta que este es un campo que evoluciona rápidamente, es fundamental estar siempre al día para no quedarse atrás. Algo en lo que Azaustre coincide y añade que la formación reglada no siempre es esencial: “si tienes claro que quieres aprender y trabajar, hay una gran cantidad de recursos, tanto gratuitos como de pago, que te ayudarán a dominar la tecnología que necesitas.”

En cuanto a las certificaciones, Baumann opina que “no son imprescindibles para la mayoría de los empleadores” aunque, pueden ser útiles para demostrar conocimientos específicos o para abrir puertas en entornos corporativos. Sin embargo, en el caso de los cursos y bootcamps, Baumann considera que los cursos son valiosos para aprender nuevas tecnologías, mientras que los bootcamps están más dirigidos a principiantes. Aunque Azaustre opina que los bootcamps sí pueden ser beneficiosos, pero que el éxito depende del esfuerzo personal: “no vale con solo apuntarse, hay que trabajarlo.”

 

La importancia de la formación en ciberseguridad

Para un desarrollador es primordial tener al menos unos conocimientos básicos sobre ciberseguridad para poder mantener las apps que desarrolle seguras. Según Eduardo Sánchez, CEO de AllPentesting, es crucial que los desarrolladores conozcan las vulnerabilidades comunes que se detallan en el OWASP Mobile Top 10 2024, como por ejemplo: los fallos en la autenticación, la validación inadecuada de datos, el cifrado débil o las configuraciones predeterminadas inseguras.

Para los desarrolladores que están empezando, Sánchez sugiere centrarse en algunos aspectos clave, como la implementación de sistemas de autenticación robustos, validación y saneamiento de los datos de manera adecuada, así como utilizar métodos de cifrado seguros. Por otro lado, recomienda evitar configuraciones predeterminadas y seguir estándares de seguridad bien establecidos para prevenir vulnerabilidades graves.

De este modo, la formación continua en ciberseguridad y la aplicación de buenas prácticas no solo protegen a los usuarios, sino que también refuerzan tu reputación y credibilidad en el campo del desarrollo.

 

Contenido y presentación del portfolio

Para construir un portfolio impactante, Durán sugiere incluir una "breve descripción" de tus proyectos, destacando la experiencia laboral relevante y mostrando tus mejores trabajos. Hay que centrarse en la calidad más que en la cantidad, enfatizando que los proyectos estén desplegados para su visualización y, si es posible, que el código sea accesible. También destaca la importancia de darle un toque personal que refleje lo que te hace único, evitando clichés y demostrando habilidades reales en lugar de simplemente declararlas.

Por su parte, Silvente, enfatiza la necesidad de personalizar el portfolio para cada oferta de empleo, destacando las habilidades y experiencias más alineadas con los requisitos del puesto. “Si el puesto requiere conocimientos en React, es esencial mostrar proyectos específicos que utilicen esta tecnología”. Además, recomienda cuantificar los logros, es decir, “mejoré el rendimiento de la aplicación en un 30%” en lugar de simplemente “mejoré el rendimiento”. Por último, destaca la necesidad de incluir soft skills y mostrar entusiasmo por la tecnología y el aprendizaje continuo.

 

Reflexión final de los expertos

  • Carlos Azaustre señala que, en el camino para convertirte en un desarrollador competente, es común que los desarrolladores junior cometan ciertos errores, principalmente por querer acelerar su carrera o aplicar “sobreingeniería”. La clave está en aprender y adaptarse poco a poco, en lugar de apresurarse. Un desarrollador junior debe centrarse en aprender los fundamentos y aprovechar la experiencia de los miembros más experimentados del equipo. La paciencia y el aprendizaje gradual son esenciales para evitar la frustración y el estancamiento.
  • Miguel Ángel Durán destaca que mantener una mentalidad abierta para aprender nuevas tecnologías fue crucial para su evolución profesional. Su disposición para explorar diferentes lenguajes y entornos le permitió adquirir una amplia experiencia y decidir mejor su especialización a lo largo del tiempo.
  • Jorge Baumann, por su parte, subraya la importancia de practicar regularmente, dominar primero los fundamentos antes de pasar a frameworks más avanzados, y evitar comparaciones con otros desarrolladores. Además, aconseja enfocarse en una tecnología a la vez y recordar que no es obligatorio contribuir a proyectos de código abierto para crecer como profesional.
  • Alba Silvente, nos invita a centrarnos en los hábitos útiles para mejorar como desarrollador. Reforzando la importancia de la planificación y la gestión del tiempo, recomienda dividir los proyectos en tareas manejables y practicar la programación en bloques de tiempo ininterrumpido para concentrarse en el desarrollo.

En resumen, el crecimiento profesional en el sector de desarrollo requiere paciencia, práctica constante y la capacidad de adaptarse. Mantente abierto a aprender, enfócate en los fundamentos y establece hábitos que te permitan mejorar continuamente. ¡Con estos enfoques, estarás bien encaminado para empezar a construir una carrera sólida y exitosa en el mundo del desarrollo!

 

Samsung Dev Spain es la comunidad oficial de Samsung para desarrolladores españoles. Si te das de alta, puedes conseguir entrar en nuestro programa de préstamos -y conseguir dispositivos para desarrollar apps para nuestro ecosistema-, acceder a material gratuito como la Guía de optimización de apps para foldables, participar en promociones como dispositivos por apps o acudir gratis a eventos formativos como Samsung Dev Day o disfrutar de ventajas exclusivas en Samsung PLUS.