Newsletter

Newsletter sobre desarrollo web y tecnología.

Bases de Datos: Importancia y Conceptos Clave

Bienvenidos a la séptima edición de la newsletter. En esta ocasión vamos a hablar sobre las bases de datos y su importancia crucial a la hora de desarrollar software. En la actualidad, existe una gran variedad de bases de datos que dan soporte a las aplicaciones que utilizamos a diario. Cada tipo de base de datos ofrece ventajas específicas sobre los demás. Por ello, mi experiencia y recomendación es que siempre elijamos en función de las necesidades del problema y de los conocimientos del equipo que se encuentra al frente del proyecto. Uno de los grandes debates en este ámbito es el uso de sistemas relacionales frente a los no relacionales. Dentro de estas dos vertientes, las opciones más comunes y utilizadas hoy en día son, sin duda, PostgreSQL y MongoDB. Obviamente existen muchas otras alternativas, pero, junto a MariaDB, estas son las herramientas con las que he trabajado personalmente. Si tuviera que destacar los conceptos más importantes que se deben dominar en este campo, serían los siguientes: el modelado y la normalización de datos, la indexación, las transacciones y propiedades ACID, la optimización y mejora de consultas, y el compromiso entre consistencia y escalabilidad. Para aprender y reforzar estos fundamentos, uno de los mejores recursos disponibles es el siguiente repositorio de GitHub: https://github.com/pingcap/awesome-database-learning Espero que os haya gustado la edición de esta semana. Aunque mi área favorita dentro de la programación es el Frontend, considero indispensable mantener una visión global de los sistemas y conocer los cimientos de lo que estamos construyendo. Esto es especialmente crítico en el contexto actual, donde nos enfrentamos a continuos ataques de cadena de suministro (supply chain) en muchos de los entornos de desarrollo.

System Design: Importancia y Recursos Clave

Bienvenidos a la sexta edición de la newsletter. En esta ocasión, explicaremos la importancia del conocimiento en System Design y algunos de los recursos más interesantes para dominarlo. El System Design es crucial al diseñar y desarrollar software a gran escala; de hecho, muchas entrevistas en grandes empresas incluyen pruebas específicas en este campo. El objetivo principal de esta disciplina es saber cómo diseñar y escalar todas las partes que componen tu software. Uno de los recursos más populares es este repositorio de Donnemartin, que cuenta con más de 350k estrellas en GitHub (https://github.com/donnemartin/system-design-primer). Otro gran repositorio es el de https://github.com/karanpratapsingh/system-design, que también te permite conocer y estudiar los diferentes conceptos. Tener conocimientos sobre conceptos clave como Load Balancing, Caching, Database Sharding y Replication, entre muchos más, es fundamental para desarrollar productos utilizados por miles de personas. Actualmente, existen muchas herramientas que permiten crear diagramas o diseños para obtener una representación gráfica de cómo funciona tu sistema. Un aspecto crucial es la capacidad de planificar cómo escalamos el sistema y cómo resolverías los problemas potenciales que podrían surgir de ese planteamiento.

Cómo Elegir tu Stack: Necesidades del Proyecto vs. Tecnologías de Moda

Bienvenidos a la quinta edición de la newsletter. Hoy hablamos de algo que aparece en casi todos los proyectos nuevos: cómo elegir el stack de tecnologías con el que vas a trabajar. Mi opinión es clara: conviene dominar varios lenguajes populares, algunos frameworks y distintos tipos de bases de datos, y elegir según las necesidades concretas del proyecto. En muchos casos no hace falta el último framework de moda. Y si encima no lo dominas, puede ser una mala decisión a largo plazo. Un ejemplo personal: estoy arrancando un proyecto y me planteé usar Rust. Pero no conozco Rust en profundidad, y es uno de los lenguajes más difíciles que existen. Elegir un lenguaje, framework o librería sin conocerlo se acaba pagando cuando toca mantener el proyecto y darle soporte. En el *frontend* pasa lo mismo. Si dominas React y tienes una buena base de TypeScript, no tienes por qué usar Svelte o Angular solo porque te apetezca o estén de moda. Un proyecto real no es el sitio para experimentar con una tecnología que nunca has usado. Mi reflexión final: elige las tecnologías en función de las necesidades del proyecto y de las habilidades de las personas que lo van a desarrollar. Esa combinación, y no la tendencia del momento, es la que sostiene el proyecto a largo plazo.

Tecnología vs. Educación: La Brecha de la IA y el Futuro de los Perfiles Junior

Bienvenidos a la cuarta edición de la newsletter. En esta ocasión vamos a hablar sobre cómo la tecnología avanza más rápido que la educación y los aspectos negativos que ello conlleva. Con la llegada de la inteligencia artificial ha quedado algo muy claro: en muchos sentidos, las personas que están en contra de la digitalización o que nunca han sido afines a la tecnología van a sufrir una brecha aún mayor. Por no hablar de la educación, ya que, en muchos casos, lo que se enseña no es suficiente, teniendo en cuenta lo cambiante que es el sector y la velocidad a la que evoluciona. Por ejemplo, en el caso de la ingeniería de software, existe una brecha enorme entre quien tiene los recursos económicos para pagar una suscripción de 20 euros y quien puede permitirse una de 100 o incluso muy superior al mes. En realidad, es un ecosistema *pay-to-win* o *pay-to-job* al que debemos adaptarnos y, en mi humilde opinión, el coste real de la inteligencia artificial es muy superior al que se muestra actualmente. Sin duda, creo que hay que enseñar a utilizar la inteligencia artificial, pero también pienso que los perfiles *junior* de hoy van a estar peor preparados que los de antes, ya que "prácticamente" todo está creado y va a haber muchas personas desmotivadas por la situación actual. Si tuviera que describirla con una sola palabra, sería "confusa": no sabemos qué profesiones existirán en el futuro ni cómo va a evolucionar el software. Como decía uno de los creadores de Claude Code, el software realmente no existe desde hace tantos años y, sin ninguna duda, creo que todo va a ir a más.

Herramientas de IA para Programar: Comparativa (Claude Code, Codex, Kimi Code, OpenCode) y el Futuro Local

Bienvenidos a la tercera edición de mi newsletter semanal. En esta edición vamos a hablar sobre las diferentes opciones de herramientas para programar con inteligencia artificial, cuál me funciona mejor a mí, y por qué en el futuro una de las mejores opciones será el uso de modelos de inteligencia artificial en local. Las opciones más conocidas en la actualidad son Claude Code, Codex, Gemini CLI, OpenCode, Kimi Code, entre muchas otras. Respecto a los modelos, actualmente el mejor es GPT-5.5 (xhigh), por lo tanto, Codex es una de las mejores opciones. También Opus 4.7 y Opus 4-6 son muy buenos modelos. A su vez, OpenCode es una gran alternativa porque te permite utilizar cualquier modelo de cualquiera de los proveedores. Cada proveedor tiene sus reglas y, en la mayoría de los casos, sólo puedes usar la suscripción en sus propios productos, como en el caso de Anthropic. Una gran alternativa calidad-precio que he estado probando estos últimos días y que no está tan lejos de los mejores modelos es Kimi K2.6 de [Z.AI](http://z.ai/). Teniendo en cuenta que el precio de los modelos está en 10$ o por encima de 11$, Kimi K2.6 tiene un coste de 1.71$ *Blended*, lo que lo convierte sin duda en una de las mejores opciones si no quieres asumir un coste mínimo de más de 100$ al mes, especialmente si consideras que con Kimi Code lo puedes utilizar con la suscripción de 20$. La IA es muy cara y lo estamos empezando a ver con los recortes de las diferentes empresas. Un claro ejemplo es cómo pasamos de poder usar los mejores modelos con límites muy amplios por 20$, a que ahora esa misma suscripción de 20$ sea directamente a coste de API de cada modelo que utilices. Vamos a ver cómo los límites de las herramientas van a ser cada vez más estrictos y empezaremos a ver planes que incluso alcancen los 1000$ al mes.

Cómo empezaría a aprender programación en 2026 (y recursos clave)

Bienvenidos a la segunda edición de mi newsletter semanal. Hoy quiero compartirles mi enfoque personal sobre cómo empezaría a aprender programación en 2026, especialmente ante el auge de la Inteligencia Artificial (IA).A pesar del auge de la IA, la programación y la ingeniería de software seguirán siendo disciplinas fundamentales y con una presencia duradera. Por ello, recomiendo comenzar con lenguajes robustos y de gran trayectoria, como Java y Python. Para el aprendizaje inicial, sugiero estos recursos clave:- Canal de YouTube: amigoscode- Repositorio de Python: 30-Days-Of-Python- Recurso sobre Bases de Datos: awesome-database-learning. Posteriormente, es recomendable aprender a utilizar frameworks como Spring Boot, Django o FastAPI, debido a su alta demanda laboral y su gran ecosistema. Recuerden que la clave para aprender es la práctica y la realización de proyectos. Un recurso excelente para empezar es awesome-for-beginners. En cuanto al desarrollo Frontend, es vital dominar las bases: HTML, CSS y JavaScript (JS). Además, se debe incorporar el manejo de herramientas esenciales como Package Managers, Linters y conocimientos de Seguridad Web (Web Security). React es, sin duda, una de las mejores opciones en el ecosistema de JS. Posteriormente, es necesario profundizar en conceptos de ingeniería de software Front-end como SSR (Renderizado del lado del servidor), CSR (Renderizado del lado del cliente) y otros tecnicismos avanzados. Finalmente, para proyectos grandes y con miles de usuarios, es fundamental conocer System Design. Un gran recurso para este tema es: system-design.

Lo que creo sobre construir software (y por qué)

Hola, mi nombre es Daniel Las Heras y esta va a ser mi newsletter sobre programación e inteligencia artificial. El tema de la primera newsletter va a ser mi pensamiento sobre el futuro del desarrollo de software. Vamos a ello: en mi honesta opinión, el desarrollo de software no va a morir, sino que va a evolucionar con el uso de herramientas de generación de código como Claude Code, Codex o cualquier agente dentro de un editor de código. Y eso es un problema porque, siendo junior o no teniendo tanto conocimiento, nunca vas a escribir código de forma manual y vas a pensar que todo está resuelto. Me parece una mala práctica cuando no sepas los conocimientos o las bases de un lenguaje, ya que la inteligencia artificial es capaz de generar código tan complejo que no lo entiendas o, al revés, que no esté listo para producción, y eso es un problema. Los LLM hay que dirigirlos muy bien porque pueden ser capaces de ser lo peor o lo mejor. Si la inteligencia artificial te genera el código, te revisa el código y se equivoca, ¿qué ocurre? Además, hay que tener en cuenta los costes económicos y la dependencia de estos servicios. Creo que la base es tener conocimiento de los fundamentos, especializarte en un área, aunque tengas conocimientos en diferentes ámbitos, aprender sobre seguridad, system design, bases de datos, escalabilidad, arquitectura de software (como microservicios), testing y prácticas de código limpio. Otro gran ejemplo: imagina que estás haciendo una aplicación en React con fetching de datos y la IA decide instalar Axios por ti (que es una gran opción). ¿Qué ocurre si hay una CVE o vulnerabilidad en esa librería? Si no estás al tanto o no tienes conocimiento sobre cómo gestionar dependencias o de cómo realmente funciona, vas a tener un problema. Creo que en los próximos años vamos a ver a más equipos arreglando y solucionando problemas de seguridad por motivos de la IA y del código generado por la IA, que desarrollando; sobre todo en equipos pequeños que no tengan tanto conocimiento. Sin ninguna duda, hay que usar agentes de código como Claude Code, pero con mucho conocimiento y siempre con Manual QA, porque la inteligencia artificial se equivoca, sobre todo con modelos no tan buenos, en todo momento. Espero que os haya gustado esta primera edición sobre mi visión sobre este tema.

Suscríbete a la newsletter

Recibe mis últimos artículos y novedades directamente en tu bandeja de entrada.