José M. Alarcón es todo un referente en la comunidad de desarrollo y formación. MVP desde hace años, es el fundador de la editorial de libros tecnológicos, Krasis Press, y de la plataforma de formación online CampusMVP.
Hoy traigo una larga entrevista en donde responde a preguntas relacionadas con su perfil profesional, con el reciente curso de Javascript que ha elaborado con sus propias manos, sobre el propio lenguajes y demás preguntas que le he realizado a otros entrevistados.
Espero que la disfrutéis tanto como yo lo he hecho haciendo las preguntas y leyendo sus respuestas.
¿Qué te considera más: formador o desarrollador?
Siempre me he sentido un poco más formador que desarrollador. Lo de transmitir ideas complejas de manera comprensible siempre se me ha dado bien. Ya desde primero de carrera, allá por el año 1990 (¡ya ha llovido!), me dedicaba a dar clases particulares ayudando a los alumnos de empresariales a aprobar matemáticas.
Es más: me metí en la programación a través de la formación.
En ingeniería industrial se utilizaba mucho una calculadora programable de HP, la mítica HP-48 que era una maravilla. Aprendí a programar con ese aparato para resolver problemas de ingeniería mecánica, que era lo mío por aquel entonces. Yo veía que la mayor parte de la gente infrautilizaba la HP-48 y desde luego no se metían a programarla, así que en la Universidad me dediqué a impartir formación enseñando a mis compañeros a manejarla. Eso hizo que se iniciara en mí el interés por la programación que luego marcó el resto de mi carrera. Y ambas facetas han ido siempre paralelas desde entonces.
Un poco más tarde en 1995 descubrí Internet, que estaba empezando a adoptarse de manera generalizada, y fue como una revelación. Vi el futuro y cambié de profesión definitivamente. He trabajado muy poco en ingeniería mecánica.
¿Has programado?¿Desde cuándo?
¡La duda ofende!
He programado mucho, muchísimo, durante muchos años. Desde que empecé con la HP-48 no he parado. Empecé con Reverse Polish Lisp en la HP-48 y luego di el salto a los PCs, programando en diversos lenguajes: Object Vision, VB, ASP, Delphi, C++ Builder, C#... y por supuesto HTML y JavaScript, que los conozco y los utilizo prácticamente desde que aparecieron.
Ahora programo menos debido a todas las responsabilidades que tengo más allá de la parte técnica, aunque dirijo técnicamente a nuestro equipo de desarrollo. Por supuesto aunque no sea al 100% sigo programando, aunque más por vicio y por mantenerme al día que por necesidad. Hoy mismo, sin ir más lejos, he estado toda la mañana programando una funcionalidad nueva para nuestra plataforma de e-learning.
¿Cuándo decidiste que te ibas a dedicar a la formación on-line?
Mi empresa, Krasis, empezó a comercializar la primera versión de nuestra plataforma de e-learning, SELF, a principios de 2003, y fuimos de los primeros en España en construir un LMS (Learning Management System) moderno de desarrollo propio. Siempre me atrajo y ya desde el principio quise que nos orientásemos hacia ello.
Además dos años después, a principios de 2005, en una reunión de MVPs en Madrid, convencí a unos cuantos amigos -de lo mejorcito en lo suyo- para hacer los primeros cursos y probar. Y así nació campusMVP. El nombre viene precisamente de que todos los tutores iniciales del proyecto habían sido premiados por Microsoft como MVPs, y aún hoy en día la mayoría de nuestros tutores lo son. De todos modos ya no estamos centrados en enseñar tecnologías de Microsoft como al principio y tenemos de todo.
Fue juntar dos cosas que era obvio que debían estar juntas: nuestra experiencia en e-learning con la gente que más sabe de tecnología.
Hoy en día nuestros clientes imparten cientos de miles de cursos al año utilizando SELF, y nosotros mismos la empleamos para impartir nuestra formación on-line, claro. Así, nuestras dos principales líneas de negocio se complementan a las mil maravillas aun estando completamente separadas.
¿Se puede vivir de la formación en el mundo de desarrollo tan orientado al "Free"?
El mundo de la formación en España es muy complicado.
Por un lado está lo que comentas tú, que implícitamente quiere decir que la gente cada vez está menos dispuesta a pagar por contenidos digitales, por muy buena calidad que tengan. La única forma de luchar contra esto es ofrecer mucho más que unos simples contenidos, y eso precisamente es lo que venimos haciendo nosotros desde siempre. Yo personalmente no creo demasiado en las empresas de formación que te ofrecen una tarifa plana para que accedas a unos vídeos que cuelgan y ya está. Eso puede servir para alguna gente y para algún contenido muy concreto, pero para la mayoría es lo mismo que apuntarse a un gimnasio: te apuntas y luego no vas nunca, y el gimnasio vive de la gran mayoría de usuarios que no lo utilizan. Lo de menos para este tipo de empresas es que la gente aprenda: mientras paguen la cuota mensual les vale.
Luego en España está el otro estigma que hemos tenido durante décadas y aún mantenemos a pesar de la crisis: una gran mayoría de la formación subvencionada, que además suele ser de muy mala calidad. Yo siempre digo que, salvo honrosas excepciones, no competimos contra otras empresas que venden formación, sino que competimos contra empresas que regalan la formación. Y eso es un problema grande, porque ante formación de calidad que cuesta dinero (aunque sea de precio razonable) y algo que es un sucedáneo pero que es gratis, la mayoría se queda con lo gratis. Lo que no se dan cuenta muchas veces es que eso gratis tiene un coste importante: su tiempo, que muchas veces vale más que el dinero.
A mí personalmente me gusta más el modelo de la bonificación, sobre todo si se controla bien para que no haya los desmanes que ha habido hace años. La empresa paga el curso y luego si lo termina y lo aprovecha, el Estado le devuelve todo o parte del importe de esa formación en forma de descuentos de lo que tiene que pagar a la seguridad social. Al hacerlo así el valor de la formación se hace tangible: ya no es gratis y sí que importa si es buena o mala. La tienes que pagar y aprovecharla aunque luego te salga a coste cero. Esta distinción es muy importante.
¿Has recibido algún apoyo económico por parte de las administraciones?
Nosotros no trabajamos con dinero público ni pedimos subvenciones. No va con nuestra filosofía como empresa. La única ayuda que solicitamos fue hace unos años un plan PIPE para promoción de la internacionalización de empresas. Nos vino bien porque un consultor nos ayudó mucho con el plan de internacionalización y además nos financiaron unas partidas para algún viaje a EEUU, algunos eventos promocionales que patrocinamos por allí, etc… Aunque esto era lo de menos: lo más importante fue el consultor, que nos ayudó bastante. Tuvimos suerte con la persona que nos tocó. Por lo demás hasta la fecha todo lo que hemos hecho ha sido con inversión propia.
¿Qué hay que hacer para ser formador en la plataforma campusMVP?
Proponernos un curso interesante que encaje en nuestro catálogo :-) Siempre estamos deseando escuchar propuestas, sobre todo de materias que no tenemos bien cubiertas en el catálogo actual. Nos interesan cuestiones de nivel iniciación-intermedio, porque los cursos muy avanzados, aunque nos gustan mucho, se venden muy poco.
Lo que buscamos sobre todo es gente formal, que sea muy buena en lo suyo pero sobre todo que se sepa explicar y expresar correctamente. Hay personas que saben mucho y tienen mucha experiencia pero que son incapaces de explicar de manera inteligible los conceptos, ni escribiendo ni de palabra a través de vídeos prácticos. Otras personas, por suerte, son unos portentos de la naturaleza y nos facilitan mucho el trabajo.
Todo el contenido es original de campusMVP. No revendemos material de terceros. Los primeros módulos siempre cuesta bastante crearlos porque las exigencias son muy altas. Hacer un curso es un esfuerzo importante, sobre todo para el autor, pero también para nosotros, por eso debemos escogerlos bien. Disponemos de unas pautas formales para la elaboración de los cursos, con cosas que hemos ido aprendiendo a lo largo de los años. Además participamos muy activamente en todo el proceso: revisando, corrigiendo y dando feedback al autor desde el primer momento.
Aunque ponemos todo de nuestra parte para que los cursos lleguen a buen puerto, desechamos todos aquellos que no tienen la calidad apropiada en cuanto a estilo, practicidad, pedagogía, estructura… o si vemos que el tutor luego no va a poder responder a las expectativas de los alumnos. Preferimos un catálogo pequeño pero muy bueno que uno grande de calidad irregular.
¿Merece la pena ser autor de campusMVP más allá de lo económico?
Pues depende mucho de la situación de cada uno. En general yo creo que a la gran mayoría de nuestros autores y tutores les ha compensado porque se involucran en un proyecto con prestigio, ganan visibilidad, y además en muchos casos aprenden mucho en el proceso. Yo diría que sí, pero se lo deberías preguntar a ellos ;-)
¿Por qué un curso de JavaScript, justo ahora que los framework son los reyes de la fiesta?
Me alegro mucho de que me hagas esa pregunta. Podría hablar durante horas sobre el tema, pero para abreviar te diré que un problema que he observado consistentemente en muchos programadores es la carencia de formación de base, de concepto. En el caso concreto de JavaScript se trata de un lenguaje sencillo en apariencia pero que tiene infinidad de detalles que es preciso dominar pero que muchos programadores desconocen. Como empezar con él es fácil, muchos lo aprenden “de oído” y se quedan en la superficie. Luego es cuando empiezan a surgir los problemas.
Si intentas aprender un framework como AngularJS o incluso jQuery sin dominar los fundamentos va a haber muchas cosas que se te escapen aunque no seas consciente. Además luego cuando aparecen los problemas no sabes por dónde atajarlos o eres incapaz de determinar qué está pasando. Por otro lado al carecer de las herramientas conceptuales apropiadas faltan recursos y se limitan las posibilidades a la hora de resolver requisitos. Antes de poder correr hay que aprender a caminar.
En el curso he procurado abarcar desde lo más básico, para alguien que empieza a programar, ya que lo harán muchos diseñadores web que dominan HTML+CSS pero no saben nada de programación, hasta temas avanzados de programación orientada a objetos, funcional, ámbitos, clausuras, auto-ejecución… Más o menos todo el mundo puede encontrar algo de utilidad. Teniendo claros los fundamentos y fundamentos avanzados, luego al abordar un framework se parte de una base sólida y se aprovechan mucho más.
¿Cuánto tiempo cuesta hacer un curso de este tipo?¿Lo has hecho tu solo o un equipo?
El tiempo que lleva depende de muchos factores: de la soltura que tenga el autor, del nivel y del ámbito que abarque el curso, del mix de teoría y práctica que haya, si hay ejemplos complejos o más sencillos, de la propia materia a tratar… pero en cualquier caso la dedicación es bastante alta. Yo a un curso como este que acabo de terminar le suelo dedicar del orden de 130-150 horas, compaginándolo con el trabajo, claro. Así que el proceso suele ser largo, de al menos 2 o 3 meses. En este curso en concreto he estado trabajando casi 4 meses.
Hay que tener en cuenta que no solo es elaborar el material en sí: hay que post-producir los vídeos, recopilar material relacionado y referencias cruzadas, un plan maestro de estudio, crear decenas o centenares de preguntas de evaluación…
Nosotros no dejamos al autor solo en todo este proceso, pero la mayor parte del trabajo sin duda le corresponde a éste.
En mi caso trabajo yo solo en mis cursos, puesto que aparte de una revisión final para cazar alguna errata que se me haya escapado, soy quien mejor conoce todo el proceso. Al fin y al cabo llevo casi 20 años escribiendo libros y artículos e impartiendo formación, por lo que a estas alturas ya tengo una soltura importante :-)
A pesar del esfuerzo que supone crear un curso, de todos modos es un proceso muy gratificante que hace que merezca la pena: ver cómo tu conocimiento queda plasmado en un conjunto ordenado y con estructura del que estás orgulloso, tener alumnos encantados con el resultado que te escriben felicitaciones… Y también aprendes mucho en el proceso porque cuestiones que creías que tenías dominadas te las tienes que plantear mejor y ver más a fondo para poder explicarlas bien. Es una forma estupenda de reforzar tus propios conocimientos. Y luego con las dudas de los alumnos, en ocasiones, te tienes que replantear cosas. También se aprende mucho enseñando.
¿Cuantas horas lectivas representan para el estudiante?
También depende del curso. Por ejemplo este de JavaScript que acabo de terminar está estimado entre 50 y 60 horas de dedicación por parte del alumno, en 12 semanas, o sea, unas 4 o 5 horas a la semana. Luego depende mucho del nivel del que parta, claro. Hay quien le dedicará menos y quien le dedicará mucho más. En cualquier caso les estamos encima si vemos que no avanzan al ritmo mínimo apropiado.
En este cómputo no entra solamente el hecho de seguir el material del curso: partimos de la base de que el alumno debe dedicar bastante tiempo a practicar, pues la única forma de aprender bien a programar es programando. Por eso se les insiste mucho en este particular en la metodología, y además en la mayor parte de los cursos (este incluido) se les proponen ejercicios prácticos a realizar que van más allá de las demostraciones que hace el tutor.
¿Es necesario tener experiencia técnica para hacer un curso de esta extensión?
Me imagino que te refieres a seguirlo como alumno ¿no?
En este caso en particular no es necesaria tener experiencia técnica previa. Basta con disponer de conocimientos básicos de HTML y CSS para poder aprovecharlo con garantías. Otros cursos sí que tienen pre-requisitos más elevados, por eso siempre los marcamos muy claramente en la ficha, pues no nos interesa que nadie haga un curso que no va a aprovechar. Es más, en algunos casos llegamos a poner advertencias sobre cursos que son especialmente duros o con unos requisitos previos especiales. Sé que ser tan claros nos supone perder ventas, pero lo contrario sería pan para hoy y hambre para mañana.
¿A quién le viene bien este curso?
Hay dos perfiles diferenciados. Por un lado está el programador novel que quiere iniciarse en el lenguaje o incluso en la programación y que no tiene apenas experiencia. Estos aprovecharán mucho mejor la primer aparte del curso, que parte totalmente de cero, y luego con la segunda alcanzarán un nivel muy bueno.
Por otro lado están los programadores que tienen experiencia en otros lenguajes o que incluso conocen y usan habitualmente JavaScript pero lo han aprendido “de oído”. Estos aprovecharán mucho mejor la segunda parte, más avanzada, pero estoy seguro de que también le sacarán partido a muchos detalles que explico en los primeros módulos del curso. Es posible incluso que este tipo de programador sea el que al final agradezca más el curso. Ya lo veremos…
¿Ves algún lenguaje que pueda hacer sombra a JavaScript?
Sí, JavaScript evolucionado :-) Cuando se cierre el estándar ECMAScript 6 (la próxima versión de JavaScript) y sea soportado por completo por los principales navegadores, va a mejorar mucho.
Me refiero con que nadie le hace sombra dentro de su ámbito de actuación que hoy por hoy se relaciona sobre todo con la web. Tanto en cliente como en servidor y en almacenamiento con el stack MEAN (MongoDB + Express + AngularJS + NodeJS). De todos modos el lenguaje se está abriendo cada vez a más ámbitos y lo podemos usar para administración de sistemas, programación de aplicaciones móviles (PhoneGap) o de escritorio “Modern” (WinJS), manejo de hardware embebido…
En mi opinión JavaScript está haciendo realidad la promesa que nos hizo Java hace dos décadas y que ha sido incapaz capaz de cumplir adecuadamente: Write Once, Run Everywhere.
Yo considero feo JavaScript, como lenguaje. Y por ello entiendo el nacimiento de decenas de framework que lo hacen más amigable. ¿Qué piensas sobre ello?
No creo que JavaScript sea un lenguaje más feo que otros. De hecho su sintaxis se parece tanto a Java o C# que en ciertos fragmentos hasta costaría distinguirlos de un golpe de vista.
Es cierto que hay ciertas partes, sobre todo la orientación a objetos, que son más difíciles y más feas de gestionar que en otros lenguajes orientados a objetos “puros”, aunque a eso le pondrá remedio ECMAScript 6. Pero la proliferación de frameworks tiene poco que ver con la fealdad o belleza del lenguaje y más con lo poco idóneo que es HTML para crear aplicaciones. Es decir, en mi opinión es más culpa de HTML que de JavaScript. HTML estaba pensado para maquetar textos de manera bonita, no para crear monstruos como Gmail o Facebook.
En cualquier caso si piensas en cualquier otro lenguaje, por bonito que se considere, existen tantos o más frameworks que se han creado para simplificarlos: en PHP (que a mí me parece horrible), en .NET, en Java….
¿Es más positivo que negativo tanto framework de JavaScript?
¿Si tuvieras que elegir escogerías uno o varios? ¿Cuáles y para qué?
Es positivo o negativo dependiendo de lo que se agobie uno. Me explico…
Hoy en día hay tantos frameworks y bibliotecas en todas las plataformas que es imposible seguirles la pista a todos, ya no digamos aprenderlos. No es un fenómeno exclusivo de JavaScript. Yo hace años que aprendí a no agobiarme con estas cosas: si no los conozco todos, pues no los conozco y punto. Me da igual. Es preferible dominar uno o dos bien que tratar de conocer todo lo que se cuece. Además hay que apostar por uno o dos y escoger bien, rezando para que no se convierta en un proyecto olvidado en un par de años. En ese sentido AngularJS es muy interesante por una sencilla razón que va más allá de sus virtudes técnicas: está creado y soportado por Google. Aunque no sería lo primero que eliminan del mapa tampoco, es complicado que en el estado actual en el que está se lo vayan a cargar. Parece una buena apuesta. Otros interesantes son Backbone y Knockout, y parece que mucha gente está enamorada últimamente de DurandalJS. Por supuesto jQuery es indispensable, aunque la gente abusa demasiado de él en mi opinión, añadiendo la carga de jQuery a algunas páginas para hacer cosas que podrán solucionar igual de fácilmente con JavaScript puro.
¿Cuál consideras la mayor ventaja y la mayor desventaja de JavaScript?
Su mayor ventaja: que es una apuesta segura como lenguaje para aprender, tanto por las aplicaciones que tiene como por la demanda que existe en el mercado, directa o indirectamente a través de los frameworks que mencionamos.
Su mayor desventaja: que su sencillez es un arma de doble filo como comentaba antes y que hacerlo trabajar bien en todos los navegadores, sobre todo antiguos, puede ser un infierno. Aunque eso es sobre todo culpa de los fabricantes y su implementación del BOM/DOM, pero hay veces que no se puede elegir al compañero de viaje.
Y ahora dos preguntas clásicas que le hago a todos los entrevistados:
¿Qué consejo les darías a las estudiantes actuales de informática para su futuro profesional?
Asumir que deben estar reciclando conocimientos siempre. El aprendizaje continuo es esencial para cualquier profesión actual, pero en el caso de la informática es simplemente ineludible. Si no estás dispuesto a aprender y estar al día, mejor que escojan otra profesión. ¡Ah!, y que si esperan que con lo que le enseñan en la facultad están preparados para el mercado laboral… tengo malas noticias. Si saben aprovechar esa base pueden ser unos profesionales de primer nivel y destacarse de otros que no han tenido la suerte de tener una formación superior. Pero deben asumir que al terminar la carrera aún tienen que aprender por su cuenta muchas otras cosas más prácticas que les harán falta para trabajar.
¿Cómo podríamos motivar a las nuevas generaciones para que escojan Ciencias de la Información como su futuro profesional?
Buena pregunta… En mi opinión si no te motivas tú solo es muy complicado que esto se te pueda dar bien. Creo que la informática en general y la programación en particular es una profesión muy vocacional. Si te tienen que motivar, mal vamos. Por eso es importante que los críos ya en el colegio tengan contacto con los ordenadores y aprendan cosas, aunque sean muy básicas, sobre lógica y programación. Porque el que tenga vocación, en cuanto lo vea, sabrá que eso es lo suyo. Y no le hará falta mucho más.
Le quiero dar muchas gracias a Jose M. Alarcón por responder a estas preguntas de una forma tan completa y desarrollada. Espero que sea una fuente de motivación para los lectores de GenbetaDev.
Más información | Jose M Alarcón-Aguín, Curso de JavaScript Avanzado