Aprendizaje y el estilo iconoclasta

El dedicar tiempo constantemente para aprender nuevas tecnologías parece que permanecerá siendo una necesidad para alguien que —sin importar cuánto haya aprendido ya— quiera seguir viviendo del oficio de diseñar programas para computadoras digitales; lo mismo si esos programas son sistemas empresariales a gran escala para cientos o miles de usuarios, productos de productividad personal o juegos de impresionante realismo.

Por ejemplo, lenguajes de programación como Ruby, Python, Haskell o Schema o nuevas versiones de lenguajes como Microsoft Visual C# 3.5 ofrecen formas de expresividad que amplían las posibilidades disponibles para diseñar software.

El proceso de aprendizaje en el ser humano incluye aspectos disruptivos en su estado de conciencia antes del aprendizaje en comparación con su estado de conciencia después del mismo. Por lo que aprender nuevas tecnologías —o aprender en general— no se trata de memorización, como lo sería si por aprender un lenguaje de programación se entendiera la memorización de su interfaz de usuario (sintaxis), sino que se trata de indagar las posibilidades o el significado detrás del estilo particular de diseño que dicho lenguaje enfatiza y cómo ese nuevo significado replantea mi realidad actual.

Por lo tanto, una actitud pensante y una disposición por cuestionar lo establecido son ingredientes para un aprendizaje con efectos (o simplemente aprendizaje pues si no tiene efecto alguno la palabra pierde su significado). Sabemos que la realidad no la podemos conocer directamente sino únicamente a través del complejo drama de nuestras percepciones y a lo que podemos aspirar es a tener tan sólo un mapa de la misma. Así es como la humanidad ha progresado en el conocimiento de la existencia a nuestro alrededor: por medio de proponer un mapa de la realidad y luego impugnar dicho mapa cuestionándolo con confianza pues sabemos que no es el territorio y siempre aspirando a un mejor mapa cada vez.

En la historia de la humanidad se ha registrado que en muchas ocasiones dicho progreso sucede gracias al estilo iconoclasta de ciertos seres humanos llamados en su momento locos, irreverentes, rebeldes, subversivos o simplemente herejes; y sin embargo ellos nos han ayudado, por ejemplo, a comprender que nuestro planeta Tierra no es el centro del Universo o que no hay mejor o peor color de piel y muchas otras cosas más (aunque todavía no podemos decir que la humanidad aprecie en su totalidad dichos aprendizajes).

El tamaño de la necesidad por realmente aprender en la industria de desarrollo de software se puede detectar cuando frecuentemente se escuchan opiniones apasionadas por determinado concepto proveniente de la gente de ventas o de aquella bizarra mezcla, llamada marquitectura, entre mercadotecnia y una malinterpretación de la arquitectura de software. Por tanto, vale la pena considerar esa conciencia del papel que juega el desarrollo y arquitectura de software en la sociedad que distingue al estilo iconoclasta de ciertos autores como Alan Cooper, Joel Spolsky, Kent Beck o Eric Brechner. Sin importar que algunos por ahora los llamen locos, irreverentes, rebeldes, subversivos o simplemente verduleros herejes.

A propósito de aprendizaje ¿Haz experimentado con lo nuevo del compilador Microsoft Visual C# recién liberado?

Aparte de lo nuevo en la versión 2.0 (lista parcial):

  • Generics
  • Iterators
  • Anonymous Methods
  • Partial Types
  • Nullable types
  • Namespace alias qualifier
  • Static Classes
  • Covariance and Contravariance in Delegates

La versión reciente ofrece nuevos mecanismos para el diseño:

  • Implicitly Typed Local Variables and Arrays
  • Object Initializers
  • Collection Initializers
  • Extension Methods
  • Anonymous Types
  • Lambda Expressions
  • Query Keywords
  • Auto-Implemented Properties
  • Partial Method Definitions

Mis mejores deseos para tu continuo aprendizaje durante 2008.