Aprendiendo a aprender Informática (y JavaScript)

Esta es la vida del informático. Da igual los años que tengas: la sensación es que nunca tienes ni idea de nada. Avanza tan rápida la industria que, por mucho que hagas, siempre te quedas atrás. Y hay que tomar decisiones. Los tiempos aquellos de poder ser un «informático renacentista» que sabía de hardware, de software, de todo un poco, pasaron. Yo hace tiempo que desistí de aprender ciertas cosas (como BB.DD.) y me centré en otras. Si no enfocas sobre un tema, no hay manera.

Por eso te recomiendo que sigas mi «método» sobre cómo aprender, en general, mientras avanzas en tu carrera profesional como informático:

  • asúmelo: siempre va a haber muchas más cosas que NO sepas, que las que sabes. Aunque ahora aprendas Ruby, mañana necesitarás Java. O JavaScript. O C++, Clojure, o lo que sea. Nunca lo vas a saber todo. Y no pasa nada.
  • hablar estas cosas y admitir las propias carencias frente a nuestros compañeros nos quita un gran peso. Porque la mente es mala, y constantemente te dice «mira que no saber CSS, seguro que todos estos ya hacen transformaciones CSS3 mientras duermen, y tú aquí, sin tener ni zorra idea de nada, mira que eres torpe…«. Nos machacamos sin piedad, y resulta que cuando preguntas no todo el mundo está tan avanzado. Es más, si tienes esta inquietud, probablemente tú ya sepas algo: «sólo se que no se nada«. Uno de los motivos por los que voy a las NSCoder Night es por hacer esta «terapia de grupo».
  • no te dejes llevar por el agobio, o el estrés. Sí, vale, que tienes que entregar el proyecto para ayer: entonces usa Google (o mejor, stackoverflow). Pero márcate unos objetivos cada año, y aprende o profundiza en algún aspecto que te sirva y te interese: un lenguaje de programación, dominar un IDE, ver qué sistema de control de versiones te gusta más, patrones de diseño, UML, etc. Si tienes esos objetivos marcados y los cumples, cada año sabrás más que el anterior. No son importantes los años de experiencia, sino lo que experimentas durante esos años.
  • lee libros. Internet es fantástico para búsquedas de dudas, y hay muchos tutoriales. Pero muchos de ellos no se pueden comparar al material que encuentras en un libro: bien pensado, estructurado, con ejemplos. Además, leer un libro supone un esfuerzo y desarrollar una concentración que nos viene bien como programadores: cada vez somos menos capaces de concentrarnos durante un par de horas, por culpa de las interrupciones. Leer te obliga a trabajar esos conocimientos, y así a aprender.
  • una vez leas libros, busca vídeos del tema. En iTunes (y en Internet en general) hay vídeos de casi todo. Es bastante ameno ver cómo se hace algo, en lugar de tener que leerlo. Pero hazlo siempre después de leer el libro.
Estos son los pasos que suelo dar, y me han servido tanto para las certificaciones Java, como para aprender Cocoa Touch. Y este verano me ha surgido la oportunidad de poder empezar a desarrollar Apps para otra plataforma móvil, WebOS y el HP TouchPad. El problema es que (ver punto primero) no tengo ni idea de JavaScript. Solución: tirar de Amazon.co.uk (que a partir de una cantidad no cobra gastos de envío) y pedirme estos dos libros sobre JavaScript:
Libros JavaScript

Libros JavaScript

Tienen el visto bueno de los Tuiteros expertos en JavaScript (José Blanco y Luis Medel), así que deben ser la pera.
Con ellos voy a seguir explorando el Framework Enyo y WebOS, a la espera de que me llegue una unidad de pruebas HP TouchPad para depurar las Apps. Cuando llegue, pondré por aquí mis impresiones.

16 comments

  1. Hola Diego,

    Leer tu articulo me ha encantado, soy desallorador y tengo muchissimos amigos desalloradores tambien en otra especialidades, y es cierto que siempre tengo esta sencacion de «el sabe todo eso y yo no tengo ni idea», me ha gustado leer el hecho que no soy el unico pensando asi.

    La cosa es que uno no puede ser impatiente en este dominio, que un lenguaje, una nocion, no se aprende en solo un libro, o solo un video, hay que practicar practicar y practica aun mas.

    Muy buen articulo,

    Saludos,

    • Hola Yanis

      Gracias por tu comentario. Cierto. Nuestra profesión es muy nueva, trabajamos con conceptos y herramientas complejos y cambiantes, y tenemos sensaciones que muchas veces, no son agradables :-). Es duro trabajar en algo muy difícil y que tu madre piense que lo que sabes hacer es instalar Windows XP 😉

      Totalmente de acuerdo en que hay que practicar: a programar (o a lo que sea) sólo se aprende programando (practicando).

      Por cierto, supongo que será un «typo», pero developer en Español es «desarrollador» y no «desallorador». Aunque con tu permiso lo voy a usar, porque muchas veces estamos quejándonos continuamente y somos más llorones y «desalloradores» que desarrolladores 😉

  2. Lo siento para el typo, soy Frances y todavia mi espanol no esta perfecto 😉

    Por lo de windows XP es cierto, y si no logras instalar su impresora entonces eres un informatico malo. Esa tambien la he oido varias veces.

    Luego mas que herramienta (lenguajes de programmacion, herramienta proprietaria) creo que un desarrollador tiene que apprender «conceptos» (REST, diseno de bases de datos, etc…) que luego implementara con la herramienta que sea. Es una opinion personal.

    Saludos,

    • No te preocupes, ya había visto por tu perfil de Twitter que eras Francés. Por cierto, si vieras mi Francés :-). Está en /dev/null, por desgracia.

      Totalmente de acuerdo en que, además de aprender «cosas útiles ya», hay que profundizar en los conceptos: POO, Patrones de diseño, UML, REST, HTTP y otros protocolos, etc. Hay que ir aprendiendo de todo lo que nos sirva, pero siempre con un plan. Que si no, no hacemos nada 😉

      Un saludo

  3. Interesante artículo. Creo que reflejas perfectamente el pensamiento de la mayoría de profesionales de la informática. Y digo profesionales porque, como en toda profesión, hay de todo y solo los verdaderos profesionales están en continuo aprendizaje y mejora, y sobre todo no se quedan estancados ( o ponen los medios para que no sea así).

    Por otra parte, y en cierta manera movido por el interés en aprender, unos cuantos locos nos juntamos todos los Jueves en un Grupo de Estudio de JavaScript, para intentar entre todos, ir aprendiendo este incomprendido y desconocido lenguaje.

    Os animo a participar, si pincháis en mi nombre en este comentario podréis ir a la wiki que hemos montado.

    Un saludo,

    Israel

    • Hola Israel

      Has puesto el dedo en la llaga de algo sobre lo que yo paso de puntillas: «los años de experiencia vs. años contratado». Efectivamente, no todo el mundo disfruta con su profesión, sea la que sea. La nuestra no es la excepción. Sólo a quién le apasiona esto sigue y sigue aprendiendo y le maravilla cada cosa nueva que ve. Es lo que Jose A. Lobato llama en su Podcast 85% Cocoa el Programador de Élite. Estoy seguro que son esos los que leen esto, esos que también tienen «otra vida después del trabajo», y que a veces es programar por placer. El que no entienda eso, no podrá entenderme nunca.

      ¡Las reuniones estas de JavaScript son como las NSCoder Night que hacemos con Cocoa! Si estuviera en Madrid, iba de cabeza, sobre todo ahora que estoy empezando con el lenguaje. Tenéis que bautizarlas de alguna forma divertida como CocoHeads, NSCoder Nights, etc. Quizá un MapReduceJS Group mostrara al personal de dónde viene el lenguaje y otra gente que lo ha despreciado desde siempre (como yo) se anime a aprenderlo.

      Un saludo y mantenme informado de vuestras actividades!

  4. Definitivamente, la informática es tan amplia y tan cambiante que se ha convertido en una ciencia inabarcable para un cerebro humano convencional. Si no vas con este pensamiento en la cabeza (incluso antes de acceder a los estudios correspondientes), entonces tu frustración será total.

    Tras mi humilde experiencia laboral, me atrevo a decir que trabajar en un puesto de informática requiere aproximadamente 20% de conocimientos, 30% de experiencia y 50% de ingenio. Por eso me extraña mucho que ciertos organismos oficiales no consideren la informática como una ingeniería en sí. En algunos casos, las soluciones informáticas rozan más el arte que la ciencia.

    Efectivamente, lo que quizás nos diferencia de otros sectores técnicos es la capacidad para poder decir: «no sé la causa de este problema y no sé cómo arreglarlo, incluso ni siquiera conozco este sistema, pero sé dónde buscar información, sé dónde puedo conseguir las herramientas y tengo la capacidad para encontrar una solución más o menos rápida.»

    Saludos.

    • Hola Juanma

      100% de acuerdo en que lo que hacemos no es una Ingeniería, aunque utilicemos métodos formales y herramientas. También los usan los arquitectos, por ejemplo, pero el acto de crear un edificio en un plano no es algo «ingenieril». Es más bien un arte. De acuerdo en que hay que calcular estructuras, que hay restricciones impuestas por las leyes, los costes, etc. Pero que el diseño arquitectónico sea bello, funcional, etc. no se puede «automatizar». Lo mismo sucede con lo nuestro, desde montar en condiciones un CPD hasta programar un script.

      Y es cierto que, al menos, tenemos dónde buscar (a veces no) las respuestas. En esto hay que «saberse buscar la vida». Aunque supongo que en el resto de profesiones también.

      Lo curioso es que, pese a saber todas estas cosas, nos siguen agobiando. Creo que voy a escribir una serie de posts sobre nuestras neuras particulares 🙂

      Un saludo

  5. Pingback: Ejemplo de menú para una aplicación Enyo/WebOS

  6. Gracias por el artículo, me ha quitado un gran peso de encima; he querido aprender y abarcar tanto que no he hecho nada. voy a selecionar dos cosas por semestre y me les dedico al 100%

  7. Pingback: Mi TouchPad | freniche.com: iPhone, Java, Macs, Linux...

  8. Pingback: La BcnDevCon | freniche.com: iPhone, Java, Macs, Linux...

Comments are closed.