Apego a la herramienta

Cuandó programaba en Delphi arrastrando componentes gráficos para programar las aplicaciones de escritorio, me parecía tan potente y tan sencillo que no quería cambiar de herramienta (allá por 2001). Por motivos de trabajo tuve que saltar a Gnome, con Gtk (en un principio con C++ y Gtkmm) Me parecía un atraso volver a aprender nuevas herramentas para hacer cosas parecidas y se mi hizo dificil. Sin embargo, el cambio me trajo nuevos conocimientos, nuevas ideas para abrir la mente. En medio de todo estó también programé aplicaciones Java + Swing, tanto cuando no había editores de GUI visuales como cuando los hubo. Pasé por Mono y Gtk#, luego a la web con Castle.MonoRail y eso me llevó con el tiempo a MS .Net y Windows.Forms.  Siempre por motivos de trabajo, un poco en contra de lo que me apetecía. Contínuamente a aprender y encima saltando a la plataforma propietaria de Microsoft, el "maligno" (yo que ?olo tenía Linux en mi maquina desde hacía años).
Gracias a las herramientas de Microsoft pude aprender conceptos como el Data Binding que hoy en día aplico en Javascript y llegué a aprender y dominar los genéricos, que le dan mil vueltas a los de Java. Incluso me hice un framework para escritorio que me permitiese testear automaticamente mis aplicaciones.
Después por motivos de trabajo, tuve que abandonar .Net y salté a Python + Django, para trabajar ya en la web. Nada que ver con lo anterior. Nada en absoluto. En todos estos años también he tenido que trabajar con Applets Java, con PlayFramework, con Weblogic, con Spring y en los últimos meses, muchísimo Javascript.

Cada cambio era una patada a mi ego, porque me sacaba de la zona de confort y me hacía sentir que perdía mi valía, la maestría de la herramienta que tanto me habia trabajado.

Y resulta que en lugar de perder, estaba ganando. Si no hubiese tenido que pasar obligado por todos estos cambios, no tendría la visión que tengo hoy en día sobre patrones, técnicas de programación, arquitecturas ... la tranquilidad de que me cuesta muy poco adaptarme a una nueva plataforma porque siempre contiene elementos de otras que ya conozco. Me da seguridad en mi mismo y me ha quitado por completo el apego a las herramientas. Programo en lo que sea y estoy deseando seguir aprendiendo lenguajes, frameworks.

Disfruto programando cualquier lenguaje y sé qué elementos me interesan usar de un framework y qué otras partes me puedo saltar. Solo porque he tenido que trabajar en muchos.

Ahora que estamos buscando gente para que se una a nuestro equipo, donde usamos mayormente .Net con C# y por otro lado Javascript, sé que mucha gente no tiene interes porque no quiere abandonar su stack tecnológico de siempre. Parece que programar .Net fuese lo peor del mundo, cuando es tan solo una copia de Java que lo mejora en muchos aspectos. Se van copiando el uno del otro. Además puedes usar F#, IronPython, IronRuby, Boo, y aprender de algunos de los programadores más increibles del planeta.

Me parece muy bien que la gente tenga predilección por frameworks como, Django, Symfony, Rails o Grails pero la negativa a usar otra cosa, tal como yo lo veo, es una cuestión de apego  poco racional. En algunos casos, yo diría que inmadurez. Además, los proyectos no duran para siempre, son etapas, son transiciones como la vida misma.

Todos los que me habeis dicho personalmente (amigos mios) que nos veníais por el stack tecnológico, creo que aún teneis que seguir madurando profesionalmente.  Y yo tambien, por supuesto. Lo digo sin rencor ni enfado de ningun tipo.

Contínuamente me digo a mí mismo... no dejes que el ego frene tu aprendizaje 🙂

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
  • @fperezpt

    Creo que el “miedo” a salir de la zona de confort, no es realmente el salir de lo que ya conoces. Pienso que se trata más del miedo a la gran cantidad de tiempo que, al principio, se pierde en detalles simples y en cosas triviales.

    Yo al menos no tendría ningún problema en cambiar radicalmente mi entorno, lenguaje, etc… si pudiese contar con unos compañeros acostumbrados a hacer pair programming con asiduidad y tener cerca y dispuesto a ese compañero al que puedes consultar una “tontería” -propia del entorno- que, de otro modo, te llevaría horas solucionar. En el futuro, serás tu mismo el que ayude a otro recién llegado.

    Lamentablemente lo habitual no es el escenario anterior. El escenario habitual es de prisas, de proyectos que ya se venden con un tiempo que es casi imposible de cumplir ya con un entorno que, más o menos, conoces. Imagina con uno completamente desconocido.

    Así que, con todo esto, creo que tienes razón en tu planteamiento y comparto al 100% la consecuencia. Pero creo que el origen, ese miedo a salir de la zona de confort, no se debe tanto a la gente en si misma, como al entorno, prioridades y obligaciones que nos rodean.

    Y como muestra, ahí tienes el último Global Day of Code Retreat. Lleno de gente en varias ciudades de todo el mundo. Y todos los asistentes del CodeRetreat al que yo asistí, se sentaron al lado de alguien que manejaba un lenguaje desconocido para ellos. Delphi incluido. 🙂

    Salu2…

  • Rafael Cano

    Pienso que no es miedo a salir del confort. Es que te paguen menos por tu trabajo, porque ya no eres un experto.

    Yo la verdad que me defiendo bastante bien con VFP y MS-SQL Server 2005 (T-SQL), por estos conocimientos en la empresa donde estoy empleado me pagan un cantidad, pero si ahora me decidiese a cambiar de trabajo y de lenguaje seguro que querrían pagarme bastante menos. Por mi cuenta estoy aprendiendo PHP, HTML, para hacer pequeñas cosas a mis amigos en la web e irme complicando poco a poco la vida con cosas más complicadas. Eso lo tienes que hacer fuera del trabajo, porque sino tus ingresos “nominales” pegan un bajón, y la cosa no está para perder poder adquisitivo.

    Saludos

  • http://www.devjoker.com Pedro

    Hola Carlos.

    Yo tengo apego por la herramienta.

    No porque tenga miedo a moverme a otros entorno (a lo largo de mi carrera he pasado por Visual Basic, ASP, PHP, Power Builder, Java, Essbase,.NET, etc …), sino porque es en un entorno concreto donde aporto mas valor y donde puedo hacer valer mis conocimientos y experiencia de cara a obtener un mejor puesto de trabajo. En mi caso además esto es crítico ya que trabajo como freelance.

    En el plano personal intento aprender otras técnologias y tener otros puntos de vista que me permitan tener una visión más amplia – completamente de acuerdo contigo-, pero profesionalmente, la especialización es la que me permite «ganarme el pan».

    Lamentablemente, en este pais y sector, no importa que tengas 10 años de experiencia en desarrollo web con ASP.NET, ASP, CGI etc, si el puesto de trabajo es para trabajar con Rails toda tu experiencia anterior no es valorada.

    Hace unos dias leia un link de un alumno tuyo en la que hablaba de que la formacion en TDD le habia ayudado a acceder a un trabajo en una gran red social. Creo que tiene mucha suerte (y seguro se la ha buscado), pero pienso que a dia de hoy es una excepción.

  • http://www.foxandxss.net Fox

    Hola,

    Estoy 100% de acuerdo con tu punto de vista. El apego es algo que todos tenemos, y decir que no es mentira. Si alguien te dice, oye, dale caña a Java + (frameworks web) o que si quieres pilles Django o Rails pues obviamente vas a ir por el que más apego tengas.

    Cambiar de aires como tu aconsejas es muy bueno, y no voy a repetir lo que tu has dicho.

    Yo le veo otra ventaja más, dedicada a aquellas personas tales como yo que somos fieles a una tecnología.

    Yo, “apegado” a .NET como si yo fuera su creador o algo, descubrí Django y aunque me costó la vida cambiar, descubrí que Django para mi gusto (y al menos para el día de hoy) es más completo que ASP.NET MVC y fijate, a parte de las ventajas que tu has nombrado, a veces puedes encontrar una plataforma mejor que la que tu pensabas que era la perfecta.

  • @reemplazable

    Pues yo estoy deseando de cambiar de stack de programación, pero te diré una cosa desde la experiencia que yo tengo. No me gustan las tecnologías propietarias y lo que significa de cara a la gente que trabaja con ellas.
    Es decir, no tendría problemas en cambiar a grails, django, rails… pero jamás entraría en .Net(Ponga aquí su tecnología propietaria favorita) . ¿Porqué?
    Sencillo, mientras en estas tecnologías puedo tocar hasta el alma del framework e incluso mas allá en las tecnologías privadas estás atado de manos y esto se nota en la gente que tienes a tu alrededor, en como para solucionar ciertos problemas la gente espera a la siguiente versión del producto y mientras monta alguna chapucilla para salir del paso.
    El IBM/Microsoft/Oracle proveerá es el canto diario para problemas solucionables con otro tipo de framework y herramientas mas abiertas.
    Así que yo no me considero apegado a mi herramienta, de hecho, estoy deseando cambiarla, a lo que si tengo apego es a mi libertad y mi autonomía para poder cambiar las cosas que necesito cuando lo necesito.

  • http://carlosble.com Carlos Ble

    Hola!
    Gracias por el feedback. Efectivamente hay muchos matices como siempre.
    Si eres consultor de un framework especifico, y le sacas dinero, me parece genial y ademas me parece muy necesario. La especializacion en herramientas concretas es muy necesaria para momentos puntuales de muchos proyectos y se paga muy bien. Es un modelo de negocio perfectamente valido. Sin embargo no me referia a los que son consultores de una herramienta en particular.

    En nuestro caso, no se iba a pagar menos a quien viniese por no saber de tecnologia concreta, siempre que tuviera asimilados los conceptos. Asi que lo de cobrar menos, en nuestro caso no se aplica.

    Con respecto a lo de propietario, la mayor parte de .Net es un estandar ECMA, que ademas tiene una implementacion open source (Mono). Por si no fuera suficiente, es facilmente desensamblable para poder mirar lo que hacen las librerias del core. Las empresas que hacen open source tambien abandonan los proyectos cuando dejan de ser rentables y te quedas mas tirado que una tanga. Lo que no me parece bien del software propietario es que se use para la administracion publica, por el gasto en licencias que se paga del bolsillo del ciudadano. Pero lo peor no es eso, lo peor es que las consultoras que desarrollan para la admin publica, tambien entregan su software con licencia cerrada, de manera que no se puede reutilizar para otras comunidades. El mamoneo enorme que se traen las administraciones publicas y todos los que comen de ello.
    En lo que respecta al negocio privado, me da igual trabajar con tecnologia privada que open source, si la calidad del producto es buena. Su documentacion, el soporte que te de la empresa, etc.

    Saludetes 🙂

  • Pingback: #AprenderAMarchasForzadas | Omar Garrido()

  • http://www.tonidorta.com Toni

    Carlos,

    Totalmente de acuerdo contigo.

    Es cierto que cambiar continuamente de herramienta puede hacerte en un “conocedor de todo, maestro de nada”. Pierdes la potencia que puede darte un expertise concreto y en tener un conjunto de código “fácilmente reutilizable”.

    Sin embargo, muchas veces noto en amigos y conocidos la tendencia a encasillarnos, a quedarnos en nuestra zona cómoda de trabajo y a no querer salir de ahí. A veces incluso noto como nos posicionamos como si de una contienda se tratase, eligiendo un bando y apostando por una comunidad (y para la que, irónicamente, tal vez no le seamos tan importantes y no merezcan tanta pasión por nuestra parte).

    La tecnología evoluciona, y nosotros también debemos hacerlo. Hoy desarrollas en una cosa, y mañana en otra, y no debe ser algo dramático. En cierta manera, suelo decir que debemos ser algo “mercenarios” en lo referente a herramientas.

    Opinión 🙂

    Salu2!

  • http://herickbeth.blogspot.com/ Erika

    ¡Muy buen post! Ciertamente lo que nos hace amantes de la tecnología es la tendencia a su cambio/evolución constante. Y nuestra experticia tecnológica va más allá de un lenguaje y de una arquitectura particular, creo que va hacia nuestra abstracción de dar solución a un problema observando desde arriba todos esos caminos que ya hemos recorrido y nos hacen capaces de determinar cuál es el más apto para lo que se nos presenta.

    ¡Saludos!

  • hernan

    Lo que me gusta de Delphi es que al usarlo en dsarrollos freelance, creo la aplicación, la instalo y me olvido, no existen los errores extraños, dependencias, etc.

    Saludos y excelente pubicación

  • Pingback: Java en pequeños proyectos Webs « Esauro Tech()