DEV Community

Street Smart Coding

Hace ya algún tiempo que tengo Street Smart Coding, un libro de programación escrito en inglés, por César Aguirre, uno de los escritores más prolíficos aquí en dev.to, y me propuse escribir una revisión del mismo.

Cuando lees este libro, te das cuenta de un detalle importantísimo, y que para mi valida su contenido como para recomendarlo a cualquiera: está escrito desde la experiencia. Es decir, no te dice cómo hay que hacer las cosas, sino cómo aprendió personalmente cómo hay que hacer las cosas.

Pongamos un ejemplo. He escogido este porque no tiene que ver directamente con programación, sino con lo que hoy en día se denomina soft skills. A mi me gusta más el término acuñado ya hace unos años: peopleware.

That day, I learned it's never just five minutes. Next time someone says "just five minutes," remember it could turn into 3:00AM the next day. Say no.

Encontraremos este párrafo en el capítulo Learn to say no, junto con Saying yes to everything often means saying no to the people who matter most. You need healthy boundaries instead. Sometimes, all it takes is one single word: no. Efectivamente, aprender a decir no es muy importante, tan importante que si no lo haces, puede implicar decir no a tus más allegados: los límites son importantes. ¿Pero, cómo puedes explicarle a un desarrollador junior que es importante saber decir no? La única forma es hacerlo a través de una experiencia personal (experiencia que encontraremos en ese capítulo, junto a las conclusiones ya mencionadas), y ahí es donde está la fortaleza real de este libro.

Never, ever, ever tell anyone they're wrong.

Efectivamente, siempre hay una forma distinta de hablar con alguien, incluso convercerlo de algo, más productiva, en lugar de decirle: "no, eso está mal." Personalmente, esto lo aprendí en mi trabajo como profesor; pronto me di cuenta de que decirle a un alumno que algo que había dicho estaba mal era la mejor forma de conseguir que dejase de participar en clase. Quizás en una relación profesor-alumno podemos asumir que decir "no, eso está mal", debería ser una posibilidad real y por lo tanto constructiva, pero no lo es. Así, una pequeña modificación de esa frase tan simple podría ser: "eso es cierto, pero también hay que tener en cuenta..." Y es que, la confianza de tu interlocutor en ti termina cuando le dices que algo está mal. Es indiferente si tienes razón o no.

Vamos con algo de código, C# en este caso:

var movies = [ "The Matrix", "Inception", "Interstellar" ];

string result = movies[0];

for (int i = 1; i < movies.Count; i++) {
    result += "," + movies[i];
}
Enter fullscreen mode Exit fullscreen mode

César nos explica que podemos sustituir el código de arriba por el siguiente:

var movies = [ "The Matrix", "Inception", "Interstellar" ];

string result = string.Join( ", ", movies );
Enter fullscreen mode Exit fullscreen mode

¿La diferencia? Que hay código que no escribimos nosotros. Efectivamente, siempre que abordo un proyecto cualquiera, siempre tengo que descender por debajo del nivel de abstracción en el que yo deseo estar; es decir, siempre que me planteo escribir código como el de arriba, me pregunto. ¿Para algo tan básico y repetitivo, no hay ya una función/clase/biblioteca que lo haga?

Podemos encontrar este ejemplo en Know your standard library. ¿Por qué no escribir código es algo importante? Porque podemos apoyarnos en código ya escrito, de manera que nos evitemos una tarea menor y repetitiva, reutilizando código que alguien ya se ha molestado en desarrollar y probar para nosotros, lo que nos permite centrarnos en el código realmente importante. No reinventes la rueda, apóyate en código de calidad, en cambio.

¿Por qué nos comenta el autor esto? Pues porque él mismo se ha encontrado con código similar, independientemente del lenguaje de programación, en casi todos los trabajos en los que ha estado. Volvemos así al aspecto de la experiencia personal.

Estos son solo unos pocos ejemplos de lo que puedes encontrar en Street Smart Coding. ¿Te lo vas a perder?

Top comments (0)