Ser desarrollador de software en el 2020 puede llegar a ser bastante abrumador por la cantidad de información que puedes encontrar acerca de esta rama del conocimiento. Sin embargo, como en toda forma de estudio, es necesario dominar conceptos antes de entrar directamente con las tecnologías mas populares para el desarrollo web. En este post ilustrarémos como orientar tu conocimiento para que alcances tu meta de desarrollador web.

1. Las bases

Como todo, es necesario devolvernos a las bases, y practicarlas siempre, sea cual sea el dominio que tengas de los conceptos. Con el auge de la orientación a objetos debido a la familiaridad del lenguaje con la relación de conceptos del mundo real, es necesario que domines bien y a fondo, lo que consiste este paradigma y las bondades que ofrece. A continuación, ilustrarémos qué elementos debes desarrollar para conocer adecuadamente la orientación a objetos.

En este punto, es recomendable utilizar el lenguaje C++ ya que es el lenguaje que exige que conozcas muy bien la administración de memoria RAM, es decir, la creación y destrucción / liberación de objetos. Así mismo, soporta conceptos de programación orientada a objetos mejor definidos que cualquier otro lenguaje, tal como clases abstractas, herencia y polimorfismo, sobrecarga tanto de funciones como de operadores, plantillas, modularidad, excepciones, composicion y agregación.

Algunos avances en estructuras de datos, expresividad y computo algoritmico han ido introduciendose en el transcurso de los años respecto a las necesidades y evolución de la industria. De las características mas conocidas podemos mencionar las expresiones lambda, los callbacks, los punteros inteligentes (exclusivos de C++), deducción de tipado, inline-if, funciones asincronas, enumerados, entre otros.

¿Y por qué las bases son tan importantes?

Por el simple hecho de que la orientación de objetos es la base de construcción de los lenguajes de programación más populares dado el poder y facilidad que tienen para ser tanto reutilizables como entendidos.

1. Los lenguajes

Salvo algunas funcionalidades extra mencionadas anteriormente, todos los lenguajes de programacion orientados a objetos soportan las estructuras de datos de la anterior sección. Sin embargo, como toda técnica, es necesario conocer / memorizar las bases de cada lenguaje con tal de que entiendas como aprovecharlas.

A continuación, te ilustraremos la página GitHut 2.0 que ilustra los lenguajes que son tendencia de uso para desarrollo principalmente para web. Sin embargo, destacaré algunos dada su importancia / relevancia:

  • JavaScript: Es el único lenguaje que entienden los navegadores web para editar los elementos de los documentos en html y xml. De ahí su importancia y ranking. Otros lenguajes como TypeScript son especificaciones para soportar una orientación a objetos mas pura en JavaScript.
  • Python: Es un lenguaje sumamente amigable, expresivo y potente, principalmente utilizado para big data, inteligencia artificial y desarrollo web.
  • Java: Es el lenguaje más robusto y completo para desarrollo web. Tiene gran cantidad de herramientas, librerías y frameworks que pueden ser utilizados para desarrollar este tipo de aplicaciones.
  • PHP: Es un lenguaje muy rápido a partir de su version 7.0, y es ampliamente utilizado en versiones gratuitas de servidores. Esto último, representa una gran ventaja si quieres aprender a realizar un despliegue completo de una aplicación back, o inclusive, una web completa.

1. Dominio de problemas de algoritmia

Para dominar bien las soluciones mas recurrentes en algoritmia, también es necesario que conozcas el lenguaje, sus estructuras de datos, funciones y llamados, para que domines una solucion lo mas simple y en el menor tiempo posibles. Te dejaremos algunas páginas que pueden serte de ayuda si quieres aprender a desarrollar de forma adecuada:

  • Hackerrank: tienes problemas de algoritmia, y es necesario desarrollar la solución mediante resultados esperados.
  • Codingame: al igual que hackerrank, te pasan problemas a desarrollar con ejemplos interactivos.
  • FreeCodeCamp: similar a las anteriores herramientas, ofrecen certificados por completar sus cursos.
  • w3schools: documentación ligada al W3C para obtener documentación sobre cómo desarrollar aplicaciones web.

1. Rutas de aprendizaje

Es que no basta con ser muy bueno resolviendo problemas de algoritmia si no tienes ni idea sobre como trabajar tu codigo ORIENTADO A PRUEBAS, con despliegue automático de versiones, escalable, distribuido en caso de ser aplicable y demás consideraciones necesarias para poner proyectos de desarrollo en marcha. De nuevo, volvemos al problema sobre qué aprender de todo este oceano de conocimiento.

Afortunadamente existe una página que orienta muy bien y está constantemente actualizada acerca de lo que es necesario para llegar a las soluciones que la industria requiere. La página roadmap.sh nos ilustra de forma muy sencilla, qué tecnologías debo dominar para lograr este objetivo. Aquí nos centraremos en 2, la ruta de aprendizaje de backend y de frontend. De hecho, todas las rutas son sumamente interesantes, pues nos proveen de herramientas para saber qué debemos dominar las tecnologías de forma integra.

1. Ruta de aprendizaje de frontend

Ruta de aprendizaje de frontend

1. Ruta de aprendizaje de backend

Ruta de aprendizaje de backend

1. Otras rutas de aprendizaje recomendadas

Para tener más integridad en tu aprendizaje aún, es necesario dominar bien los conceptor relacionados con DevOps que también la puedes encontrar en roadmap.sh. Un buen entorno de ejecución de tu sitio web es escencial para lograr despliegues rápidos tanto en producción como en desarrollo o entornos de pruebas. Principalmente, es necesario dominar adecuadamente los proveedores en la nube como AWS, Google Cloud y Azure que son los mas populares.

1. Conclusiones

No es una tarea fácil interiorizar los conocimientos necesarios para lograr ser un desarrollador fullstack integro. Sin embargo, como mencionamos anterioremente, muchos de estos conocimientos comparten cosas en común, en este caso, muchas veces radica en aprender bien los conceptos de la orientación a objetos, paradigma que está muy ligado a las soluciones más importantes y populares en la actualidad. Siempre se constante en las bases, puesto que las tecnologias especificas de desarrollo pueden llegar a cambiar, pero las soluciones arquitectónicas, las nuevas propuestas en estructuras de datos y la reutilización de codigo siempre van a ser un factor común a la hora de realizar las soluciones web, inclusive, las de software.

Si te gustó el contenido, y consideras aceptable el estar al tanto de las publicaciones, suscríbete a las redes sociales que administramos en el pie de página o registrate para recibir correos acerca de nuevos posts. Así también, si consideras que omitimos algo, o quieres que profundicemos en un tema específico, notifícanos en los comentarios.