El campo del desarrollo web se ha convertido en un punto de acceso en los últimos años. Con los sitios web ganando cada vez más tracción, las organizaciones se han dado cuenta de que para capturar más clientes potenciales necesitan tener una fuerte presencia en línea. Como resultado, buscan personas con talento que puedan hacer uso de las últimas tecnologías para diseñar y desarrollar las aplicaciones web más atractivas y de mejor rendimiento para ellos.
Se trata de uno de los campos más de moda en la actualidad, por eso es natural que la generación joven se sienta atraída por el desarrollo web como carrera. Sin embargo, querer seguir una trayectoria profesional y seguirla son dos cosas diferentes. Requiere preparación, una serie de pasos, educación relevante y constante en el área y, sobre todo, mucha práctica.
Si eres un aspirante a desarrollador web, lo primero que debes saber es que existen tres categorías de desarrolladores web: frontend, backend y full-stack. Dependiendo de la categoría de desarrollador web en el que desees convertirte, los pasos a seguir variarán. En esta artículo, nos centraremos en guiar los pasos de los futuros desarrolladores de backend. Piensa en esto como una guía básica de todos los pasos a seguir para ser el dueño y señor de la lógica y los servidores.
¡Empecemos!
¿Qué hace un backend developer?
En una arquitectura cliente-servidor típica, los datos de la aplicación se almacenan en el lado del servidor y se sirven como salida en el lado del cliente. El funcionamiento del lado del servidor de una aplicación web se conoce como backend. Ahí es donde tiene lugar todo el funcionamiento interno de las aplicaciones web y ahí es donde reside el trabajo de los desarrolladores backend.
Ahora lo contamos de manera más sencilla, es el que conoce la arquitectura, la lógica y los lenguajes de programación “server-side”. Es decir, es el encargado tras bambalinas de hacer que todas las aplicaciones que más te gustan funcionen como la seda. Aunque según algunos libros, actualmente solo nos encargamos de hacer API’s que respondan a peticiones ya sean SOAP, REST o de GraphQL (de estos podemos hablar en otro momento). Pero la realidad es que podemos hacer mucho más, como configurar servidores; comprimir y usar otras técnicas para mejorar la velocidad de un sitio web; configurar diferentes ambientes para las aplicaciones con Docker; integraciones continuas y despliegues a los servidores, entre otras muchas funciones.
Ahora te preguntarás si se pueden realizar tantas funciones, ¿qué es lo primero que debo aprender?
Esto que exponemos a continuación está pensado para personas que comienzan su carrera totalmente desde cero, pero si ya estás experimentando en el área te recomiendo que saltes algunos de estos pasos.
- Aprender Pensamiento lógico. El pensamiento lógico es muy importante para ampliar tu capacidad de resolución de problemas, algo que vas a necesitar en tu carrera en el mundo de la programación.
- El inglés es el idioma de la tecnología. Aprender a hablar inglés es super importante para el mundo del desarrollo web. En cuanto empieces a hacer tus primeros proyectos descubrirás que toda la documentación está en este idioma. Y también que existe una regla no escrita, tu código siempre debe ir en inglés.
- Aprender algoritmos. En el mundo de la programación hay miles de soluciones posibles para el mismo problema, sin embargo no es bueno reinventar la rueda. Existen pasos ya predefinidos y con un alto grado de aceptación y optimización que harán que tu código vaya más rápido y limpio, muchos desarrolladores web omiten este paso. Sin embargo, siempre es mejor conocer la estructura de datos y los conceptos básicos de algoritmos como la Estructura de datos, Stack, Queue, Linked List, Árboles, Grafos, Hashing, algoritmos de ordenación y búsqueda, y otros conceptos “core” de la programación.
- Aprender un lenguaje de programación y elegir un framework. Convertirte en desarrollador lleva tiempo, paciencia y esfuerzo. Estar bien versado en diferentes lenguajes de programación no es trabajo de la noche a la mañana. Por lo tanto, establece una meta, fíjate un tiempo y los lenguajes que quieres aprender. Te proponemos algunos muy populares tales como:
- Java
- Python
- PHP
- Javascript
- Go
- Rust
- entre otros muchos más.
En la actualidad lenguajes como Python, Javascript, Ruby están aumentando en popularidad en los últimos tiempos. Recuerda que siempre puedes optar por aprender varios lenguajes a la vez.
- Aprender todo lo que puedas sobre paradigmas de programación y aplicar el que más te guste. A título personal, me gusta usar POO (programación orientada a objetos) o la programación orientada a eventos.
- Aprender sobre patrones de diseño. Te ayudarán a mejorar tu código y facilitarán mucho la lectura del mismo. Como recomendación te propongo que investigues sobre el patrón de diseño SOLID creado por Robert C. Martin, conocido como Uncle Bob. Es un crack en la industria.
- Aprender conceptos básicos de las bases de datos. Agregar un sistema de base de datos es completamente necesario para casi cualquier aplicación a desarrollar, por lo que añadir este conocimiento a tu repertorio hará que seas una persona aún más valiosa. Existen muchos sistemas de administración de bases de datos, pero las más fáciles de usar, y que se usan de manera habitual, son las bases de datos relacionales.
- Según el Framework que vayas a escoger ya sea Django, Ruby-on-rails, Nestjs, Laravel, etc., es fundamental aprender su núcleo, ventajas y desventajas. Esto te ayudará a escribir código más eficiente y sencillo.
- Comienza tu formación práctica. No te quedes solo estudiando, empieza a aplicar tus conocimientos en proyectos personales. Esto te permitirá comprender cómo funcionan realmente las cosas. Comienza haciendo aplicaciones simples como listas de tareas pendientes, blogs, una galería de fotos, una aplicación básica de gestión de proyectos o un sistema de inventarios.
- Innova y crea algo nuevo. Las ideas originales se valoran en todos los campos. En el sector tecnológico innovar es algo del día a día, y si estas interesado en aprender estos conceptos porque tienes una idea en mente, lo estás haciendo genial. Si no tienes una idea revolucionaria todavía, no te preocupes, todavía tienes tiempo para pensar, fijarte en aplicaciones que te gusten y realizar un clon con funciones que te gustaría ver en ellas. ¡Esta es una manera magnífica de comenzar a aplicar todo lo aprendido!
- Aprender de servidores y alojamiento. Los más populares son AWS, Google Cloud, Heroku, Digital Ocean o Azure, entre otros. Con esto ya podrás implementar tu producto en un proveedor de servicios en la nube para que se pueda acceder a él desde internet.
Soft skills necesarias para ser un gran backend developer
Nos gustaría compartir contigo algunas habilidades blandas, también conocidas como soft skills, que te ayudarán a conseguir el preciado título de backend developer.
- Resiliencia. En términos generales es la capacidad que posee un material de volver a su forma inicial una vez cesa la fuerza de deformación que se le aplica. Pero para nosotros es la capacidad de seguir con nuestro día a día, sin importar las adversidades a las que nos enfrentamos. Se trata de una cualidad sumamente importante para los programadores, ya que normalmente nos veremos afrontando problemas a diario y nuestra misión será brindarle una solución al cliente.
- Constancia. Tener la voluntad inquebrantable de terminar lo que empezaste o de seguir haciendo las cosas del modo en que la realizas es sumamente importante. Ya sea para no dejar este duro camino o para seguir las normas de trabajo que te hayas planteado.
- Pasión por la lectura. Te ayudará a pensar mejor, conocer más cosas, pero sobre todo, te preparará para lo que se te viene encima. Tendrás que leer mucha documentación en este camino que estás tomando.
- Di adiós al ego. No hay tiempo para desarrollar un ego ni para ser una estrella de rock. ¿Quién decide que eres realmente bueno en la programación?¿Tú? No. ¿Los otros programadores o clientes? Esto es lo más probable. ¿Pero existe una manera exacta de comparar dos cosas totalmente diferentes como 2 individuos? Hasta ahora no, solo se pueden comparar unas pocas facetas. ¿Eres bueno con python? Bien. Alguien más no es tan bueno como tú, pero será bueno en alguna otra habilidad, ¿quién dice que una habilidad importa más que otra? ¿Puedes realmente estar orgulloso de ser un geek? Los programadores con ego no aprenden. Aprende de todos, de los experimentados y de los novatos al mismo tiempo. Nunca se sabe dónde puedes encontrar ese conocimiento que te hacía falta.
- Concentración. No te dividas en diferentes tareas, céntrate en hacer las cosas de una en una y hazlas bien. Ser “multitasking” no te hará mas rápido, solo hará que cometas más errores o tengas la mente mas distraída.
- Desconéctate. No traigas otros problemas cuando vayas a programar. Si tienes tu mente pensando en otras cosas te será imposible trabajar claramente con la programación. Necesitarás vaciar tu mente para ser productivo, la mayoría de las veces esos problemas desaparecen. Si el problema es demasiado, tanto que no puedes dejarlo ir, no trabajes y céntrate en resolverlo antes. Pero cuando comiences a trabajar, deja que el mundo exterior se esfume.
- Hambre de conocimiento (mente de zen, mente principiante). Si estas comenzando hoy recuérdate siempre cómo estás entrando y trata de mantenerte en esta misma mentalidad. Aun si ya puedes considerarte experto, nunca habrás aprendido suficiente.
Por último…
¿Has tomado nota de todo? Ahora que sabes cómo ser un desarrollador de backend, es hora de subir de nivel. Decide realizar aplicaciones por ti mismo, o conseguir un empleo como backend developer. Teniendo todas estas cosas en mente esfuérzate por desarrollar un buen CV. Como conclusión final, me gustaría decirte que, además de tratar de poner todo esto en práctica, no te rindas. El camino es largo pero mientras lo vas recorriendo se hace cada vez más satisfactorio. Siempre pienso que aún me falta mucho por aprender y quizás algún día aprenda algo de ti, que me estás leyendo. Así que nudes en formar parte de la comunidad, comparte tu conocimiento, sé curioso y pregunta. Así construiremos el mundo del desarrollo en el que todos queremos trabajar y disfrutar.