¿Y tú, también quieres ser desarrollador web?

Así que… ¿Tú también quieres ser desarrollador web? El sector IT en España y en el resto del mundo crece cada año y la oferta laboral cada día es mas abundante. Se requieren mas profesionales que puestos de trabajo se crean en nuestra área y se prevé un crecimiento del 40% sobre todo en ramas como la Ciberseguridad, IOT o el Big Data. Vivimos un momento en el que el paro en nuestro sector apenas existe, y los profesionales tenemos la oportunidad de elegir. Es un buen momento para comenzar tu carrera como desarrollador de software, y más viendo las últimas problemáticas de seguridad que hemos vivido en todo el mundo con WannaCry.

Personalmente, recibo interés de reclutadores para ofertas de trabajo cada semana y considero que en su día hice una buena elección eligiendo esta profesión por el abanico de posibilidades que existen. Sin embargo, como toda profesión tiene sus puntos buenos y sus puntos malos. Creo que todos los que nos dedicamos a la informática podemos decir que es un mundo muy rápido en el que hay que estar constantemente actualizado, y no se permite acomodarse. Por ello, si te vas a dedicar a esto ya sabes a lo que te enfrentas.

Mi especialización tras acabar la carrera fue en desarrollo web, pero nunca me he querido posicionar en ninguna de las tres vertientes (backend, front-end o devops), prefiero posicionarme como full-stack y avanzar por las tres vías.

En las últimas semanas he podido ver como se han viralizado unas “Hojas de Ruta” que indican que deberías empezar a aprender si quieres ser desarrollador web y me parece muy interesante compartirlo aquí. Siempre me hubiera gustado que desde un principio que alguien me hubiera orientado en ese sentido.

Elige en que te quieres especializar

Hoy en día para cualquier puesto como desarrollador es básico que utilices un “Sistema de Control de Versiones” como Git. Deja a un lado esas copias absurdas y esos despliegues por FTP y conviértete en todo un profesional. Sube tú código público a Github y demuestra lo que vales al resto de la comunidad.

Es básico para cualquier desarrollador web un manejo mínimo de la terminal. Si te asustan las pantallas negras, con letras verdes deberías de empezar a replanteártelo y darle una oportunidad. Comienza por saber conectarte por SSH a una máquina remota, instalar un entorno de desarrollo básico y aprende los conceptos básicos del protocolo web HTTP.

No dejes que la terminal te controle, si no que tú controles la terminal y sea tu herramienta habitual en tu día a día.

Es ideal que sepas trabajar con estructuras de datos y con algoritmos, que no te suene raro cuando te hablen de una pila, un árbol o los distintos tipos de algoritmos de ordenación. Creo que también es importante que te sientas cómodo hablando de patrones de diseño y sepas cómo y cuándo deberías de utilizarlos. ¡Evita los anti-patrones!

Elijas la rama que elijas, trabaja para tener una buena base de la que van a partir el resto de conocimientos. Ha llegado la hora de elegir, aunque puedes trabajar las ramas de forma complementaria, entre especialización en Front-end, Back-end o DevOps.

Conviértete en desarrollador web back-end

Si quieres ser desarrollador orientado a al back-end puedes trabajar en distintas vertientes. Al final los frameworks de desarrollo emplean los mismos conceptos, da igual que uses Symfony en PHP, express con Nodejs, Django con Python o Ruby on Rails, cada uno de ellos tiene sus propias herramientas de testing, sus gestores de dependencias y las peculiaridades del lenguaje.

Profundiza en la tecnología con la que trabajes pero no te cierres a un lenguaje, intenta aprender siempre nuevos lenguajes de programación.

Lo que es realmente útil es conocer conceptos como los distintos tipos de cachés y tecnologías que puedes usar para mejorar tu performance. La diferencia entre usar una base de datos relacional o una NoSQL conociendo los distintos tipos. Es importante que sepas distintas técnicas de testing y que tecnologías existen para indexar tu información para hacer consultas como ElasticSearch o Solr. Profundiza en sistemas de autenticación por tokens con estándares como JSON Web Tokens o OAuth, desarrollo de APIs o trabajar con expresiones regulares.

Para mi lo más importante es aplicar en tu día a día buenas prácticas de desarrollo como los Principios SOLID, aplicar técnicas de refactoring, emplear TDD… Este tipo de conceptos son básicos si quieres dar un gran salto de nivel, y ya deberías saber quien es Martin Fowler o Bob Martin (Uncle Bob). Si te suena a chino lo que te cuento, ya puedes empezar a leer Clean Code.

Conviértete en desarrollador web Front-end

Todo desarrollador web front-end comienza aprendiendo el stack básico HTML, CSS y Javascript. Cuando descubre jQuery, todo te parece increíble en el cliente, pero te darás cuenta que tu código es digno de aparecer en un “spaguetti western”.

Profundizarás en tus hojas de estilos, descubrirás que hoy en día es prioritario y necesario adaptar tu web a cualquier dispositivo aplicando Responsive Web Design. Observarás como hasta la gente de diseño utiliza sistemas de grids basados en frameworks como Bootstrap y como los front-end más expertos usaran pre-procesadores para generar un CSS robusto.

Notarás que Vanila JS y jQuery no son suficientes y si quieres construir una interfaz de usuario profesional tendrás que construir Single Page Applications con frameworks como Angular o React. A día de hoy lo que está de moda es Vue.js, pero al fin y al cabo todas estas herramientas están encaminando el desarrollo front-end a un mundo orientado a componentes, los cuales se pueden reutilizar. (véase tambíen Polymer). Los nuevos estándares de Javascript, han promovido iniciativas como TypeScript o ES6.

Hoy en día es necesario que conozcas las capacidades que tiene tu navegador y el estándar de HTML5 te permite a través de la geolocalización, manejo de ficheros, APIs de sonido, canvas. El navegador abre millones de posibilidades y los desarrolladores podemos explotarlas al máximo.

Descubre que con tus conocimientos javascript puedes ser capaz de construir aplicaciones móviles con Ionic o React Native, utilizando herramientas para front-ends.

Conviértete en Devops

Es posible que tengas un equipo de infraestructura en tu empresa y no tengas que trabajar las habilidades de Devops. Pero este perfil mucho más cercano a sistemas es muy útil que sea conocido por cualquier desarrollador web. Es básico que conozcas como funciona tu sistema operativo y que en tu día a día tengas automatizadas tareas que agilicen tu trabajo.

Gran parte de las empresas externalizan sus servicios desplegándolos en proveedores en la nube como Amazon Web Services, Azure o Google Cloud. Es importante que conozcas las ventajas que te ofrecen los PaaS y que seas capaz de poder desplegar por ti mismo la aplicación en la que trabajar. Tener en cuenta el saber escalar y conocer las necesidades que va a tener tu desarrollo cuando salga a producción.

En todo el proceso es necesario incluir la integración continua, automatizando los builds de tu aplicación y automatizando los despliegues, evitando acciones manuales para poder pasar la nueva release a producción. Conoce las posibilidades que ofrecen los servicios de monitorización para obtener un análisis del estado de tu aplicación, también lo que está ocurriendo en tu aplicación y como se comportan tus usuarios.

Haz que tu entorno de desarrollo se parezca al máximo al entorno productivo, utiliza herramientas como Vagrant o Docker, profundiza en ellas e incorpóralas en tu día a día. Es muy importante que conozcas conceptos como Proxies, Cachés de Proxy Inverso, protocolos seguros SSL, CDNs, firewalls, balanceadores de carga…. y sobre todo ama la terminal por encima de todo.

Fuentes:

https://medium.freecodecamp.com/a-roadmap-to-becoming-a-web-developer-in-2017-b6ac3dddd0cf

https://insights.stackoverflow.com/survey/2017#work

http://www.vocento.com/sala-prensa/2017/02/17/los-empleos-en-el-sector-it-creceran-un-40-en-espana.html

http://www.infoempleo.com/empleo-it/sector-it/

Artículo publicado en: https://adrianalonso.es/desarrollo-web/y-tu-tambien-quieres-ser-desarrollador-web/