
Aprende bases de datos, lenguajes como Go, Java o PHP y crea APIs de alto rendimiento. Guía completa para empezar en el backend.
En el post anterior hablamos de las tecnologías del frontend. Ahora nos enfocaremos en el backend puro y duro. Si ya manejas el front y quieres ser un "full stack", podrás lograrlo con Node.js y Express para crear APIs. Sin embargo, en el entorno empresarial hay tecnologías que considero más importantes para un backend escalable y robusto.
Debes aprender los fundamentos de ingeniería de software: protocolos, servicios, API REST, SOAP, línea de comandos y seguridad. Sin esta base, todo lo demás será frágil.
Te recomiendo que aprendas Go, debido a que actualmente es el lenguaje más potente en el backend por su velocidad de procesamiento y su concurrencia nativa. A diferencia de otros lenguajes donde debes crear multi-hilos para paralelizar las tareas, Go maneja la concurrencia de forma nativa, permitiendo empezar tareas incluso cuando la anterior no ha terminado.
Sin embargo, eres libre de elegir la tecnología que más te guste: PHP, Python, Java o C#. Con estas tendrás que aprender un framework por ejemplo:
Luego que manejes el lenguaje, debes aprender bases de datos. Empieza por las relacionales como PostgreSQL o MySQL y luego aprende las no relacionales como MongoDB. Es importante que entiendas los beneficios de cada una y en qué caso de uso implementarlas.
Luego deberás pensar en la optimización. Crear una API podría ser sencillo, pero que tenga un performance decente es otra historia. En entrevistas técnicas, el entrevistador puede estresar tu API para ver su rendimiento y comportamiento — aquí es donde se nota la diferencia de un backend developer.
Debes conocer Redis, que te permitirá guardar datos en caché a través de Keys para que la respuesta de tu API sea mucho más rápida sin tener que ir a la base de datos en cada petición.
También tecnologías como Scala y Akka te permitirán crear aplicaciones basadas en mensajes, altamente concurrentes, distribuidas y resistentes con modelo de actores.
Es importante que empieces a conocer plataformas de computación en la nube como AWS, Azure o Google Cloud y los conceptos básicos:
Si eliges AWS, te recomiendo que aprendas API Gateway y AWS Lambda.
Aprende contenedores. Puedes tomarlo como un plus, pero Docker y Kubernetes como parte de tu propuesta de valor te harán destacar en comparación a otros CVs.
Empieza con Docker y ve creando tus aplicaciones dentro de contenedores para que puedan ser ejecutadas en cualquier servidor. Luego documéntate sobre Kubernetes, que lleva Docker a otro nivel orquestando a través de pods todos los contenedores y creando una plataforma auto-escalable.
En las entrevistas técnicas verás mucha algoritmia y patrones de diseño. Los desarrolladores de backend implementan por lo general la lógica de negocio, por lo cual debes ser una persona con fuertes fundamentos de algoritmos.
Como Junior, esto será suficiente para que puedas empezar a postularte como backend. Debo decir que en tu carrera te esperan muchas cosas por aprender — y por esto considero que la figura del "Full Stack" no existe, pero esto lo discutiremos en otro post.