R. Chavarria's Blog

Proud of developing software, proud of being an Engineer

Elixir: cuarto asalto

Éste es el cuarto asalto en mi aventura aprendiendo Elixir. En esta ocasión trato con tipos de datos binarios, cadenas y sigils. No es mucho, pero las cadenas son una parte esencial de cualquier lenguaje de programación. Y dominarlas significa dominar una gran parte del lenguaje.

Por supuesto, sigo aprendiendo con el método descrito en el post sobre aprender Elixir:

  • Aprender lo suficiente para comenzar
  • Experimentar, jugar, buscar puntos desconocidos, hacerse preguntas
  • Aprender lo suficiente para hacer algo de utilidad
  • Enseñar lo aprendido

Practical Vim

de Drew Neil

Por qué lo he leído

Hace un tiempo decidí que quería aprender a utilizar Vim. Entre los muchos recursos para aprender se encontraba este libro, pero encontré más prácticos una serie de videos. Pero más adelante, escuchando el podcast Giant Robots, hablaron de este libro, y cuando recibes varias señales, quiere decir algo.

Elixir: tercer asalto

Éste es el tercer asalto para aprender Elixir, y las cosas se van poniendo interesantes, aunque todavía siento que estoy muy verde y me falta todavía mucho para ser capaz de hacer las cosas más sencillas.

En este asalto, aprendo nuevas cosas proporcionadas por los módulos Enum, Stream y otras coleciones, así como las comprehensions, que me recuerdan mucho a los clásicos bucles for.

Sigo aprendiendo siguiendo el método descrito en el post sobre aprender Elixir:

  • Aprender lo suficiente para comenzar
  • Experimentar, jugar, buscar puntos desconocidos, hacerse preguntas
  • Aprender lo suficiente para hacer algo de utilidad
  • Enseñar lo aprendido

Elixir: segundo asalto

Sigo aprendiendo Elixir, despacio, pero sigo con ello. Éste es el segundo asalto del aprendizaje. En este asalto, lucho con estructuras de datos un poco más complejas, como listas, diccionarios, structs o sets. Estas estructuras ya existen en otros lenguajes de programación, pero en Elixir son tratadas de una forma un poco diferente.

Por supuesto, en este asalto también sigo el método de aprendizaje descrito desde el post sobre aprender Elixir:

  • Aprender lo suficiente para comenzar
  • Experimentar, jugar, buscar puntos desconocidos, hacerse preguntas
  • Aprender lo suficiente para hacer algo de utilidad
  • Enseñar lo aprendido

The Software Craftsman

de Sandro Mancuso

Por qué lo he leído

Me encanta programar, me encanta escribir software, escribir código. Me encanta resolver problemas, puzles. Me encanta la tecnología. Y me encanta hacer las cosas bien, poner cariño en lo que hago. La ideología de Software Craftsmanship va de todo esto. Y me gusta la metáfora. Mi padre es carpintero, artesano, y me gustaría poner el mismo cuidado en mi trabajo que él pone en el suyo. La excelencia técnica es lo que más me gusta del desarrollo software.

Elixir: primer asalto

Éste es el primer asalto de mi aprendizaje de Elixir. En él, no espero resolver problemas súper complicados, es un primer contacto con el lenguaje. Me conformaré con ser capaz de escribir un programa algo más complicado que un simple hola mundo. En este primer asalto, lucho con tipos de datos, funciones (anónimas y con nombre), pattern matching, claúsulas de guarda y módulos.

En estos asaltos, intentaré seguir los siguientes pasos:

  • Aprender lo suficiente para comenzar
  • Experimentar, jugar, buscar puntos desconocidos, hacerse preguntas
  • Aprender lo suficiente para hacer algo de utilidad
  • Enseñar lo aprendido

El código fuente no es suficientemente grande para los dos

En biología, el concepto de repetirse a uno mismo es fundamental. Ninguno de nosotros existiríamos si los primeros organismos unicelulares no hubieran sido capaces de desarrollar el mecanismo de mitosis, la capacidad de multiplicarse, de crear réplicas de sí mismos. Para los niños, la repetición también es importante. Aprenden por imitación, repitiendo lo que observan en el comportamiento de los demás.

A la hora de desarrollar software, la repetición no está vista con tan buenos ojos. Por ejemplo, se ha dado un nombre despectivo a los programas que crean copias de sí mismos, como los virus. Por otro lado, la duplicidad de código de una aplicación produce muchos quebraderos de cabeza a aquellos de nosotros que nos dedicamos al software. Para recordárnoslo, contamos con el principio D.R.Y., don’t repeat yourself, o dicho de otro modo, no te repitas a tí mismo.

Aprendiendo Elixir

No es una propósito de año nuevo ni nada, pero me apetece aprender un lenguaje puramente funcional por el simple hecho de aprender. He estado dudando entre Clojure y Elixir. Al final me he decidido por Elixir porque lo venden como divertido y porque sigo a varias personas en Twitter que están haciendo lo mismo (durante la redacción de este post me he enterado que hay un meetup nuevo del lenguaje en Madrid, Madrid |> Elixir), por lo que podré compartir lo aprendido. Dicen de Elixir que se parece mucho a Ruby, y que es un lenguaje moderno que se ejecuta la máquina virtual de Erlang. Con esos hermanos mayores promete mucho, la verdad.

Artículo técnico: Getting testy

Dando una vuelta por Twitter descubrí una serie de artículos sobre testing titulados Getting testy, de Randy Coulman. Parecían artículos interesantes, pero era mucha lectura para ser tratada como un blog. Así que decidí leerlo como si fuera un libro. Aunque un libro cortito.

Es una serie de artículos muy recomendable sobre TDD y cómo escribir buen software. Trata muchísimos temas relacionados con escribir tests para nuestro código. Conceptos sencillos y conceptos avanzados. Diferencias entre los dos estilos principales de hacer TDD. Qué hacer y qué no hacer a la hora de escribir tests. Y un sinfín de cosas más. Todas interesantísimas.