En este capítulo vamos a Hablar de Russ Olsen, un desarrollador ahora de Clojure, pero bastante reconocido en el mundo de Ruby. Ha escrito varios libros y contribuye activamente a la comunidad mediante podcasts, presentaciones y charlas.

Acerca de Russ

Russ trabaja como vicepresidente de Cognitec, la empresa que está detrás de Clojure. Ha participado en proyectos que parecen bastante complejos, su Github muestra creación de compiladores, marshalling y otras cosas interesantes.

Según la biografía que se encuentra en sitios de conferencias ha trabajado en motores de renderizado 3D, sistemas de consulta de bases de datos y sistema de flujos de trabajo, en pocas palabras, proyectos bastante complejos.

Russ es el autor de tres libros bastantes respetados:

  • Eloquent Ruby: acerca de cómo escribir Ruby idiomáticamente.
  • Design Patterns in Ruby: la implementación de los patrones de diseño clásicos en Ruby.
  • Getting Clojure: te enseña a programar en Clojure mientras te explica las ideas detrás de cada una de las caracerísticas del lenguaje, ya que es importante concer la visión detrás del lenguaje.

Las ideas de Russ

Russ tiene ideas muy pragmáticas para crear software, con un background de ingeniería mecánica. Vamos a hablar de algunas cosas que podemos aprender de él y aplicar directamente en nuestras carreras y proyectos.

  1. Transmitir conocimiento es MUY IMPORTANTE para el desarrollo de software. Si no lo compartimos ponemos en riesgo el desarrollo del proyecto en el que estamos participando. Saber explicarlo de manera sencilla es una habilidad que todos debemos adquirir.

  2. La programación funcional, como una serie de restricciones, técnicas y habilidades que reorganizan la forma en que escribimos código, es una forma de crear código de mejor calidad y más mantenible.

  3. Trabajar con otras personas es uno de los aspectos más importantes que tiene el desarrollo de software y saber organizarla y tratar con ellas es imperativo para llevar a los proyectos a buen término.

  4. Crear cosas que importen y difíciles te inspirará para seguir creando y también a otras personas.

Charlas y presentaciones

“Ve y haz cosas difíciles.” - Russ Olsen

Aquí tienes las tres charlas que Russ que pueden aportar a tu conocimiento y motivación para seguir creando software:

  • To the Moon. Si vas a ver una charla de Russ Olsen, tiene que ser esta. Tiene nulo contenido técnico, pero te puede enseñar muchas cosas: cómo dar una charla entretenida, cómo contar una historia, métodos narrativos y cómo mantener enganchada a la audiencia. En ella cuenta las dificultades técnicas que se presentaron en el proyecto del Apollo 11, y como se solucionaron. La lección más importante de la charla es: hacer cosas difíciles como ingenieros de software te ayudará a creer más en ti y a inspirar a otros.

  • Eloquent Explanations: En esta charla Russ nos habla sobre lo importante que es comunicar claramente varios aspeectos de los sistemas que creamos, con la premisa fundamental de que el conocimiento es lo que nos permite crear el software que necesitamos. En este hilo de Twitter hicimos un resumen.

  • Functional Programming in 40 minutes: Como puedes ver, Russ es un programador bastante versátil. En los últimos años se ha dedicado a programar en Clojure. Esta es una de las charlas que más me ayudó a comprender la programación funcional como idea más allá de las definiciones clásicas y que te dejan híper confundido. Si quieres aprender programación funcional, esta charla te puede ayudar a entenderla para empezar con una buena base.

Tiene varias charlas más que puedes buscar en YouTube, pero estas son las más importantes para mi, y parece que varias de ellas son la mismas que mencionamos aquí pero repetidas.

Recursos para aprender más

Conclusión

Una de las cosas que aprender al ver la carrera de Russ es su flexibilidad y adaptabilidad. Russ era un gran nombre en el mundo de Rails y Ruby, pero ahora está en el mundo de Clojure y tiene una de las mejores explicaciones para aprender programación funcional.

Además, el pragmatismo que demuestra en los consejos que da, es algo que podemos aprender a aplicar: resolver el problema es mucho más importante que sonar rimbombantes y asombrar a todos con las palabras tan bonitas que usamos.

El último punto que quiero resaltar tiene que ver con la capacidad que tiene de contar historias, explicar progresivamente y dar charlas entretenidas. La comunicación es uno de los aspectos más importantes en el desarrollo de software, y mientras mejores seamos e eso, más podremos avanzar en nuestra carrera.

Comentar