Enseñando a programar (Parte 1)

El tema que señala el título de este post es un tema amplísimo, del que habría tanto para decir y discutir. Veamos de tratar algunos puntos, que surgen de experiencia personal, e ideas sin probar que van rondando mi cabeza desde hace unos años.


Primero, una aclaración: si bien gran parte de mi actividad semanal (en estos tiempos, más del 60% del tiempo que empleo), está dedicado al dictado de cursos (en empresas e institutos acá en Argentina, o en charlas en distintas ciudades) me considero no un instructor de programación, sino un desarrollador de software que por esos accidentes de la vida terminó dedicando tanta cantidad de sus horas al dictado de clases. Pero no soy una persona pedagógica, o que haya estudiado para enseñar sino, como muchos otros instructores, soy alguien que programa y que muestra algunos temas de programación, desde mi propio óptica personal (hace años que no doy un curso oficial o de Sun o de Microsoft, prefiero dar mis temas a mi forma y con mis temarios).


Segundo: prefiero programar que enseñar. Contrariamente a lo que algunos de Uds. podrían pensar, para mí enseñar no es la mejor forma que imagina de pasar mi tiempo profesional, por lo menos en cursos presenciales de la forma en que me toca ahora dictar. Prefiero escribir, leer, programar ejemplos, pruebas de conceptos, aplicaciones completas, describir temas en posts, antes que estar dictando una clase presencial (una charla es otra cosa: es más interesante, es para presentar un tema, y llamar a la acción a los asistentes, sin tener que seguir por semanas hablando de lo mismo). Cuando tengo, digamos, un curso para las 18:30, ya sé que ese día no puedo trabajar hasta las 18hs en un proyecto, o no puedo irme a almorzar tarde, o no puedo salir de viaje a otra ciudad, o no puedo…  o voy a salir demasiado tarde para ir a cenar tranquilo, o pasar por tal lado, o … y mil cosas más. Un curso es un clavo en el medio de cualquier agenda a armar. También pasa que un curso que no es nocturno, parte al medio cualquier día de trabajo, especialmente cuando trabajo en un equipo Scrum. Como los cursos tienen días ocupados durante varias semanas, también se me complica organizar cualquier visita al interior de mi país, para dar una charla sobre un tema. En definitiva, curso presencial con muchas clases, es un incordio para cualquier agenda.


Y una de las cosas que más me cansan, a esta altura de mi vida, es hablar, hablar y hablar durante horas en un curso. Vuelvo a mi cubil, a veces, bastante cansado y congestionado, nada más de hablar. Imagino que en cualquier momento comienzo a dar una clase mostrando cosas en el proyecto y explicando lo que hago escribiendo en el Notepad… :-)


Hechas esas confesiones personales, respiro hondo, y paso a comentar algunos problemas que detecto en los cursos que conozco, los míos.


Muchos de mis cursos se pueden circunscribir a estos tipos:


- Grupo de gente que conoce algo de programación, que pueden estar en distintos niveles, y quieren aprender un tema de tecnología, ejemplo: ASP.NET o JSP.


- Curso con máquina o sin máquina y proyector


Bien, comienzo por los temas que veo que no están del todo bien y se pueden mejorar, o cambiar completamente por otro “approach”.


Notemos que los cursos presenciales tienen un gran problema: son, justamente presenciales. Hay que combinar los horarios de todos los que quieren participar, reservar tal tiempo a tal hora y lugar; también tienen que estar todos presentes. Esto es un resabio de como se enseñaba en las universidades que comenzaron a aparecer en la Edad Media: como no había libros, el papel no existía o era caro y los profesores escasos, la única forma de enseñar era presencial: juntar un grupo que tenía que escuchar a un profesor mientras daba un tema. En aquellos años incluso se estudiaba para ejercitar la memoria ante la escasez de elementos para tomar apuntes.


Pasaron los siglos y veo seguimos con el mismo esquema. Algunos problemas derivados de esto:


- Cada asistente tiene que venir, a cada clase. Si llueve, si está complicado en el trabajo, si se enferma, por lo que fuera se pierde una clase que en generle al es irrecuperable presencialmente. Tiene que estar disponible cada día al horario en que se dicta el curso, por varias semanas a veces. Y si un día se le complica asistir lo más probable es que falte o que llegue tarde y no pueda aprovechar bien la clase.


- Cada asistente mismo tiene que estar con el ánimo más despierto, durante varias horas, para captar todo lo que se dicta en el curso.


- Como un curso presencial implica asignar recursos escasos, como lugar, proyector o máquinas, sala, etc., entonces cada clase dura por lo menos 3 horas durante las cuales o se dan demasiados temas, de tal forma que no hay tiempo de asimilar, o se dan pocos y el curso se encarece por durar más tiempo.


- El instructor tiene que explicar algo que ya explicó, probablemente, cuarenta veces.


- Como los asistentes, el instructor también tiene que estar con todas las luces, explicar de forma clara y tener todas las neuronas prendidas en cada clase, que se repite y repite a lo largo del año.


- No siempre el lugar de dictado es el adecuado: o no está cerca o no tiene todos los elementos en condiciones.


- No todos los asistentes tienen el mismo nivel de conocimientos inicial con lo que no todos van aprovechando el contenido de la misma forma.


- Si trabajan con máquina, el curso se alarga. Se necesita más tiempo para corregir ejemplos en cada máquina. También pasa que algunos asistentes terminan antes y otros quedan trabados. Coordinar las distintas velocidades es difícil de manejar. Muchas veces sugiero trabajar de a grupos, con poco éxito. Pasa cuando los asistentes son particulares que no se conocen entre sí y hay una máquina por persona: la gente prefiere encarar por su cuenta, en solitario, cada ejercicio. Esto trae como consecuencia que la clase se alarga. O hay que alargar el curso completo, con el consiguiente aumento del costo final.


- Aun teniendo práctica para captar un tema, un asistente puede necesitar su tiempo para entenderlo. Necesita practicar y jugar con un ejercicio un tiempo. No siempre es posible disponer de ese tiempo: muchas veces porque hay que seguir con otro tema.


- Si no trabajan con máquina, muchas veces los asistentes no se toman el tiempo para practicar. Hay varias razones: están tomando el curso en el trabajo pero no tienen máquina adecuada para practicar. O están tapados de trabajo y no tienen tiempo. O sus jefes no les asignan tiempo para practicar. O podrían practicar en una máquina personal, al volver a casa, pero ahí también: hay otros temas de que ocuparse. Me ha pasado dejar ejercicio a un curso y que de los veinte integrantes sólo uno o dos practicó algo entre dos clases. Cuando esto se repite, a lo largo de las clases, llega un momento que el contenido que se trata no se asimila porque no se practicó lo anterior. Llegados a ese punto, sin práctica de lo ya tratado es difícil captar todas las facetas del contenido nuevo. También a algunos asistentes se les complica instalar todo lo que necesitan para practicar. Una vez, recuerdo, puse un ejercicio entre clases en un curso de cuarenta personas. Lo escribí mal planteado a propósito. A la siguiente clase, solo uno de los asistentes se dio cuenta del problema: era el único que lo había encarado.


- El lugar de dictado puede estar a varios kilómetros de donde un asistente vive y trabaja.


- Si el curso es en el propio trabajo, un asistente puede sufrir interrupciones, o por tener un tema “urgente” para solucionar, debe abandonar la clase.


- Si el curso es en el trabajo, pero después o antes de hora de oficina, a muchos no les es fácil participar por tener otras actividades o no poder llegar más temprano.


- De vez en cuando me pasa que algunos asistentes no tienen mucha motivación para hacer el curso: los “mandaron” al curso y no tienen un soporte, un apoyo, de parte de sus empleadores, para sacar provecho del mismo (especulo, pero eso puede ser también un “test de proactividad” de su empleador o contratante).


- Otras veces, el asistente está motivado porque necesita trabajar pero hace tiempo que no toma un curso. Las tecnologías nuevas lo sobrepasan y termina necesitando de más tiempo para aprovechar el contenido.


- Si el curso es por cuenta de cada integrante, no lo paga una empresa, entonces probablemente tenga que asistir después de hora un día de semana o un sábado. En esos horarios también tendrá que pelear su tiempo con otras actividades, familiares, o de estudio formal.


- El temario es introductorio para un lenguaje de programación, pero no se enseña a programa. Se pide explícitamente que se conozca de programar y de base de datos. Y algunos asistentes no tienen esos conocimientos en firme.


- Otro caso es cuando el temario es intermedio o avanzado.  Puede pasar que de los que asisten, algunos ya saben varios puntos del temario y se aburren. Mientras, otros necesitan repasar o incluso aprender un tema, porque no llegan al nivel que se necesita para el curso. Esto pasa cuando los cursos son para asistentes de distintas empresas o que se inscriben por su cuenta.


- Cuando el temario lo arma una empresa, el que arma el temario pide todos los temas habidos y por haber, pero luego no se asigna tiempo para que los asistentes practiquen en el medio del trabajo de cada día.


- Prácticamente todo el material que doy queda disponible en mi sitio personal. A la quinta o sexta clase del curso, alguien se acerca y me pregunta: ¿dónde puedo bajar los ejemplos? Yo me pregunto entonces: ¿cómo hizo para seguir las anteriores clases, si nunca repasó los ejemplos que YA se dieron? Detecto acá que no han tenido tiempo para practicar entre clases.


Y en mi caso en particular, muchas veces los cursos no se abren por falta de inscriptos: se necesita un número mínimo para costear los activos inmovilizados (proyector, máquinas si es con práctica, lugar, instructor) que no siempre se cubre. También me pasa armar una lista de correo para los asistentes del curso (por ejemplo, en los míos de Java) . Luego de dos años, les cuento que solo cuatro personas, entre decenas que asistieron, se inscribieron para hacer más preguntas.


No quisiera afirmar que siempre es así como describo arriba. Pero me asombra la cantidad de veces que algunos de esos “anti-patrones” aparecen, por lo menos, en muchos de los cursos que me ha tocado dictar. Así que pienso, desde hace algún tiempo, que debo mejorar en algunos temas. O motivar más, o hacer algo para que estos anti-patrones no aparezcan tan frecuentemente. Una sorpresa agradable: los cursos de Scrum son los más participativos de todos: son casos donde prácticamente no prácticamente no aparecen estos “issues”.


Y un tema, disculpen, más personal: otra “constante” que detecto. Ante un curso de cuarenta personas, pregunto cuántos conocen mi blog. Sólo uno levanta la mano. Pasan las semanas, y al final del curso, después de dos meses, pregunto de nuevo. Y ahora, son 1 o 2 las manos levantadas. Así que algo tengo que hacer: o mejorar los contenidos o escribir más claro o de temas que les interesen más. Muchas veces escribo para que lo explicado quede más claro. Si algo no se entiende en una clase presencial, quisiera que se pueda leer y releer por acá. Pero veo que he tenido poca llegada en ese tema, por lo menos en los asistentes a mis cursos presenciales.


Pero también detecto y especulo un patrón: los que programan y no leen blogs (mío o de cualquiera), en general, no se mantienen actualizados y necesitan cursos presenciales. Los que programan y leen blogs son otro grupo: se mantienen actualizados y no necesitan cursos presenciales, apenas algunas charlas introductorias como primeros pasos en un tema. Luego, ellos mismos aprenden de una nueva tecnología, patrón, estilo arquitectónico o herramienta.


Habiendo repasado estos puntos, ¿cómo se podría mejorar? Tengo algunas ideas al respecto, tomadas de otros ámbitos, y de lo que veo que puede funcionar, pero son temas para seguir en la segunda parte de este post. Mientras tanto: ¿tienen alguna sugerencia?


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 1389, 1390, 1391, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>