Programar No es Suficiente: Todo lo que Terminas Haciendo como Desarrollador
Cuando empiezas a crear aplicaciones web o moviles para clientes siendo un Freelance podrias pensar que todo lo que necesitas es saber es programar, pero eso es lo que muchos creems hasta que alguien nos pide que configures los correos, despliegues la app, añadas SEO (Search Engine Optimizations) a tu sitio, analisticas, mejores el rendimiento y muchas otras cosas que ya no solo es programar, y que te exige que conozcas otras areas relacionadas a codigo pero que no son codigo.
Asi que el dia de hoy voy a darte una lista de temas que deberias conocer o al menos tener una idea cuando crees aplicaciones reales y te dare ideas de como puedir conociendolos.
1. Cloud y DevOps
Cuando terminas de crear tu aplicaicon necesitas desplegarlo, subirlo a internet y para esto hay muchos servicios de la nube que te ofrecen esto de una manera facil, es decir quieres tener una base de datos ya no tienes que desplegarla, solo creas una cuenta, obtienes una URL y listo ya esta tu base de datos, como en supabase o AWS Relational database, mongodb altas, y asi
Quiero enviar SMS esta Twilio, AWS SNS, y asi Quiero alojar archivo esta AWS S3, Google Storage, Cloudinary, BunnyCDN, y asi Quieres solo ejecutar una porcion pequeña de codigo esta las funciones servelres en aws lambda, azure functions, y asi
Y esto es solo el comienzo porque en realidad, hay una lista enorme de servicios para hacer practicamente de todo en la nube, incluso si no hay ese servicio pagas por un servidor privado virtual y listo instalas lo que quieras, pero claro para usarlos necesitas conocer temas de linux, comandos, porgramas, redes, y configuraciones, ademas de herramientas de consola. sumandos a que cada nube tiene sus propios nombres para llamar a cada servicio esto se vuelve un tema a estudiar.
por lo que si no quieres que te agarren por sorpresa te recomendaria lo siguiente:
- Aprende a desplegar una aplicacion web y base de datos en un VPS, esto hara que aprenas de Linux y sus comandos, y un poco de configuraciones de red como un friewall quizas
- Luego aprende como usar algun servicio Plataforma as a aserivce estos que ya te evitan instalar cosas y solo subes tu proyecto y se despliega slo como Railway, o Vercel
- Luego finalmnte puedes aprender herramientas como Docker que te permiten crear como un instalador de tu aplicacion que puede ir en cualquier nube
estas practicas te daran una idea de como desplegar multiples aplicaciones y te daran la bienvenida al mundo del cloud si es lo que te intersa, que luego hay un area llamada DevOps, que puede esperar por ti, para saber mas te recomendai ver el video de Devops en 2025
2. Dominios y DNS
Cuando ya escogiste la nube donde vas a subir tu aplicacion, lo siguiente es es añadir un dominio, y aunque en realidad este es un proceso simple porque puees añadir un par de registros A o CNAME, y con esto ya eta. En realidad esto se puede convertir en algo mas complicado si necesitas colocar multiples subdominios, redirecciones, considerar confiugraciones de correos de tu propio servidor, configurar una base de datos con tu propio dominio y asi.
Esto hace que descubras conceptos como DNS, CNAME, registros A, TTL y demás nombres nuevos que al inicio puede que no creas que sean tan dificiles, pero que necesitas configurarlos bien si quieres que los correos lleguen correctamente admeas de servidr el sitio, y todo esto que no ocasiones inconvenientes.
aso qie sí, configurar un dominio te puede tomar más tiempo que hacer el deploy.
asi que Lo que te aconsejaria probar aqui si quieres:
- Probar añadir un dominio en un servicio PaaS como Railway, Heroku, render.com, Vercel y estos te permiten colocar un registro CNAMe en donde hayas comprado tu dominio
- Configurar un VPS con dos registros A uno para el dominio raiz, y otro www esto te puede dar una idea de que registros se necesitan, ademas de aprender que es un Proxy Server como Nginx por ejemplo
- Puedes intentar desplegar un PaaS basado software abierto que hacen que tengas que añadir un wildcard al inicio del dominio porque eso lo ira generando el usuario que despliga, esto es por ejemplo en proyectos como dokku, caprover, o coolify
- Configurar tu servidor de correos con algun programa abierto como mox, que de hecho te dejo un tutorual la descricpion que pide muchos registros DNS para que puedas tener tu propio servidor de correos en multiples protocoos
- Aprende a usar cloudflare que te permite configurar todo esto en caso compres dominios en una plataforma que es muy basica. por ejemplo en latam he visto que muchos adquieren un dominio en webs de su pais pero estos a veces no configurar todos los registros, asi que es mejor delegarlo a cloudfalre que es un servicio gratuito que gran parte de la web lo usa para proteger, acelerar y confgurar sitios web.
practicando con estos las siguiente vez que tengas que desplegar una aplicacion no te sera tan dificil entender lo que se necesita añádir en tu proveedor de dominios.
3. Servidores de correo
Ok, Hiciste un formulario de contacto hermoso. Pero... ¿cómo envias el mensaje?
Bueno para empezar, primero es entender lo que necesitas, aqui hay dos temas que son muy comunes y tipcamnete te van a pedir.
- Correos corporativos. Estos son de los servicios mas basicos cuando una empresa esta entrando a los servicios online con alguna web o aplicacion, porque necesitas crea un correo especial para contacto de tu web como contacto@miweb.com o de soporte como soporte@miweb.com y asi. Bueno al ser algo requerido muchos servicios de Hosting compartido ofrecen creacion de correos coporativos, asi que en los que estan namecheap, hostinger, don dominio, y Gooogle tambien tiene Google workspace, y asi. Pero algo a considerar es que todos estos cobran mensualmente y por usuario rondando los 10$ aprox por cada usuario, por lo otra opcion es pagar un hosting compartido y este ya viene con un CPanel y alli puedes crear cuantos correos quieras, aunque esto necesita unos pasos extras para que los correos lleguen quizas al gmail, o necesitarias usar un programa llamado "Cliente de Correos" para que los trabajadores de la empresa solo vean los correos corportativos, pero es una opcion valida.
o lo oto por otro lado tambien muchas veces las aplicacioens necesitan mandar sus propios correos, por ejemplo si haces una compra en una tienda, la web de forma automatica te envia un correo confirmando tu compra, si haces un inicio de sesion desde otro disptivo te llega un correo avisandote, bueno todo esto se programa pero no se usan los mismos servicios anteriores sino se usan "Servicios de correos transaccionales" que son APIs en donde simplemente mandas un mensaje y un servicio de la nube envia un correo por ti, estos ya se encargan de generar colas si son muchos mensajes, confirman que el usuario los haya abierto y son mas faciles de programar que hacerlos desde sero, entre estos estan sendgrid, mailgun, brevo.com, AWS Simple Email service y asi.
Por supuesto estos no son los unicos temas, pero si creo que estos son como recurrentes asi que ten en cuenta que a mas trabajes mas cosas te van a pedir y nuevas son las que vas a ir descubriendo, asi que siempre ten en cuenta que estaras estudiando constantemente y ya estaras mentalizado para esos nuevas solicitudes del cliente.
En mi caso conforme a pasado el tiempo he tenido que aprender de temas de SEO y Open Graph, o etiquetas meta, para cuando se comparte contenido en redes sociales, tambien facturacion, pasarelas de pago, como añadir analiticas y metricas de un sitio en webs como Google Anlyticas, Mixpanel, Hojar o Plausible, o por otro lado concepto basicos de contabilidad, y gestion de uusarios, politicas de privacidad y leyes de internet, licencias, inversiones, documentacion, gestion de usuarios y seguridad, y hasta aveces tienes que ser soporte tecnico, porque quizas te toque hasta entender lo que hace un servidor fisico. Ahora la idea no es que tengas que saber todo esto, pero si hay un trabajo y una parte de ese trabajo es conocer algo nuevo, y te estan pagando por ello porque no hacerlo.
Muchos de estos conocimientos llegan a ti cuando más los necesitas. Y aunque no seas experto en todo, tener un mapa general de lo que hay más allá del código te prepara para crecer como profesional.
Porque ser desarrollador no es solo escribir líneas de código.
Es construir productos reales, y eso implica conocer mucho temas más.
Bueno, ahora les toca a ustedes, me gustaria aber quetemas han tenido que aprender a ustedes fuera de codigo, dejeme sus comentarios y nos vemos en un sigueitenve video.
¿Te ha pasado tener que aprender algo "fuera del código"? ¿Te gustaría una serie sobre estas herramientas ocultas del desarrollo? ¡Déjamelo saber en los comentarios! 🚀