Software Crafters Academy

5 Principios de Diseño de software que lo mismo te ayudan a escribir mejor código

Programar es el arte de decirle a otra persona lo que quieres que la máquina haga

A la mayoría de los desarrolladores nos han enseñado a programar mal... y muchos ni siquiera lo saben.

Quizás tu si, pero porque llevas el suficiente tiempo en esto.

Principalmente existen dos motivos.

El primero es consecuencia directa de la persona que te está instruyendo.

Docentes que no son profesionales del desarrollo de software, sino de la enseñanza, y que no han experimentado las calamidades que genera el paso del tiempo en los proyectos.

Esto pasa constantemente en cursos online, bootcamps y (sobre todo) en las formaciones académicas: universidad, ciclos formativos, etc.

Y es que la mayoría de las formaciones para desarrolladores que te encuentras hoy en día en el mercado están creadas por personas que nunca han convivido lo suficiente con su propio código.

Simplemente no son conscientes de los problemas de mantenimiento que puede acarrear la forma en la que enseñan a programar.

Es más, me atrevo a decir que en el 90% de esos cursos no se escribe ni un test.

Debemos entender de una vez por todas que sin buenos tests no puede haber calidad en el software.

Y esto es así, porque una buena batería de pruebas es lo que te permite hacer refactor con garantías, los tests son nuestra red de seguridad.

Sin tests, intentarás mejorar una cosa y romperás otra, garantizado.

El otro motivo tiene que ver con la forma y las herramientas que usan.

¿Te imaginas ir a un curso de cocina y que te enseñen a hacer recetas de Thermomix?

Pues en la mayoría de los cursos para developers te enseñan a programar así, utilizando el framework o librería de turno.

No se centran en los principios.

Si no en diseñar soluciones totalmente acopladas al robot de cocina de moda.

El problema es que cuando pones en práctica estas ideas en el mundo real empiezan a surgir los problemas de mantenimiento.

Añadimos tal cantidad de complejidad accidental que el proyecto en unas pocas semanas o meses se nos va de las manos.

Diseñar software centrándote en librerías y frameworks es como cocinar usando la Thermomix.

Ser un chef profesional no es eso. Ser un verdadero programador senior es otra historia.

Hablo sobre todo esto (y mucho más) en mi newsletter. Además, al suscribirte recibes gratis una guía con con 5 principios fundamentales de Ingeniería y Artesanía del Software que todo developer debería conocer.

Únete gratis a las miles de personas que han descubierto una forma diferente de entender la programación. Eso sí, si tienes la piel fina, mejor no te suscribas.

5 Principios de Diseño de software que lo mismo te ayudan a escribir mejor código

Programadores Junior con 10 años de experiencia

El significado de la palabra senior no ha cambiando demasiado durante los últimos 20 años.

Aún hoy en día en muchas empresas a los developers se les considera seniors (o se consideran ellos mismos) por el simple hecho de llevar “n años” en la industria, sin tener en cuenta su conocimiento.

Y no me refiero solo a sus habilidades técnicas, hay soft skills que también se esperan de un programador experimentado, especialmente las relacionadas con la comunicación. Y si, el código también comunica.

Para esto es fundamental entender cómo funciona el negocio, cómo hace dinero, dónde se aporta valor y dónde no.

A ver, no estoy diciendo que llevar años en la industria no sea necesario.

Sin lugar a dudas lo es, no hay mejor aprendizaje que sufrir las calamidades del paso del tiempo en los proyectos para entender la importancia de saber escribir código de calidad.

Eso solo se consigue con horas de vuelo y, como diría Nassim Taleb, con Skin in the game. Sufriendo las consecuencias en tu propia piel. No hay otra.

Ahora bien, hay una enorme diferencia entre 10 años de experiencia y un año de experiencia repetido 10 veces.

No es lo mismo 10 años de aprendizaje constante trabajando en varios proyectos, con diferentes lenguajes, tecnologías y paradigmas, y rodeado de desarrolladores con mucho nivel.

Que pasar 10 años trabajando en la misma empresa, con un equipo mediocre y resolviendo siempre el mismo tipo de problemas, en un proyecto que hace aguas, sin tests y plagado de malas prácticas.

Esto, después de poco tiempo, limita tu capacidad de aprendizaje. O lo que es peor, consolida una forma de programar que no te llevará muy lejos en tu carrera.

No te digo que estés saltando de empresa cada poco tiempo, eso también es un error.

Debemos de convivir el tiempo suficiente con nuestro propio código para sufrir en nuestra piel las decisiones que tomamos.

Lo que sí te recomiendo es que te expongas y practiques. Sal de tu zona de confort y enfréntate a problemas y retos diferentes.

No dejes de formarte, la vida es un continuo aprendizaje.

Mejora tu inglés, tus habilidades de comunicación y sobre todo tu técnica de programación.

Con las dos primeras no podemos ayudarte. En lo que sí podemos ayudarte es a convertirte en mejor programador.

Únete gratis a las miles de personas que han descubierto una forma diferente de entender la programación. Eso sí, si tienes la piel fina, mejor no te suscribas.

5 Principios de Diseño de software que lo mismo te ayudan a escribir mejor código