Acerca de este proyecto de enseñanza.

Este sitio para el aprendizaje de la programación de computadoras es un proyecto de Diego Moisset.

El material al ser elaborado por una única persona favorece a que tenga un mismo estilo de presentar los conceptos de programación, lo cual no significa que no deba complementar los conceptos aprendidos visitando otros sitios de tutoriales, foros de programadores, sitios de preguntas y respuestas, libros y estudios formales es universidades e institutos.

Tal vez mostrando mi recorrido en el estudio de la programación ayude a otros a evitar frustraciones tempranas cuando no entendemos algunos temas.

Mi primer computadora fue una TK-85 con 16Kb, me permitió implementar mis primeros algoritmos utilizando el lenguaje Basic.

(1985) Con esta pequeña computadora hogareña podía empezar a entender los conceptos de variables, estructuras condicionales y estructuras repetitivas.
Parece mentira pero para almacenar el programa se debía utilizar un Grabador a Cassette y la salida de datos se empleaba un televisor (recuerdo que tenía que esperar que la habitación de mis padres estuviera desocupado el televisor y no haber peleado con mi hermana que era la dueña del Grabador)

(1989) La segunda computadora fue una Talent MSX. Seguí programado en una versión más completa de Basic, pero el cambio fundamental es que pude comenzar a programar con el lenguaje Turbo Pascal. Con el lenguaje Pascal aprendí los conceptos de programación estructurada mediante la definición de funciones y procedimientos. Otros conceptos que aprendí con el lenguaje Pascal es la posibilidad de definir estructuras datos como son los vectores, matrices, listas, árboles etc. Pero los dispositivos de entrada/salida que tenía eran muy limitados, seguía conectando la computadora a un televisor y grabando los programas en un Cassette.

(1990) Llegó la posibilidad en ese año de adquirir una PC XT Compatible. Ahora las posibilidades en cuanto a lenguajes aumentaba. Dedique mucho tiempo implementando proyectos en Cobol, Turbo C, Turbo Pascal,DBase III, FoxPro, Clipper etc. La diversidad de lenguajes disponibles te permiten seleccionar cual es el mejor según el problema que tienes que resolver.

(1995) La cuarta computadora sigue siendo una PC Compatible pero con mejor procesador (386), hay mayor cantidad de dispositivos de entrada y salida para programar (teclado, mouse, monitor, impresora, tarjeta de sonido, disquetera, disco duro) Se empieza a programar con interfaces visuales y programación orientada a eventos (presión de un botón, selección de un item de una lista etc.)

(1997) Nueva computadora con procesador 486.
Empieza a ser popular el lenguaje Java, pero para Windows las herramientas de programación más utilizadas son Visual Basic y Delphi

(1999) Nueva computadora con procesador Pentium En estos años se comienza a programar para Internet y lenguajes como PHP y ASP se vuelven muy populares.

(2006) Comienzo a organizar y publicar en Internet muchos de los materiales para aprender a programar que desarrollo en el Instituto donde enseño programación desde 1994 (ISSD)

(2009) En este año se comienza a popularizar la programación de dispositivos móviles en iOS y Android.
En el desarrollo de aplicaciones web en el lado del servidor hay muchos herramientas y en el lado del navegador son fundamentales el HTML, CSS y JavaScript.

Es decir desde el 2010 a la fecha actual alguien que quiere iniciarse en la programación de computadoras se enfrenta primero en seleccionar en que plataforma empezar:

  • Aplicaciones de escritorio
  • Aplicaciones web
  • Aplicaciones móviles

Creo que lo más conveniente es comenzar con el desarrollo de “Aplicaciones de escritorio". No significa que tenemos que ver profundamente un lenguaje orientado a esta plataforma. Una vez que adquirimos destrezas en aplicaciones de escritorio podemos pasar al desarrollo de aplicaciones móviles o web.


Algunas de las prácticas que utilizo en estos tutoriales y que me han servido más son:

  1. Empezar un tema desde lo más elemental dejando en claro que aquellos que ya lo dominan lo pueden repasar rápidamente y continuar con el siguiente tema.
    Hay que tener en cuenta que todos tenemos un caudal previo de conocimento muy distinto.
  2. Los conceptos teóricos deben ser concisos y precisos. No tratar de abarcar todas las situaciones posibles, excepciones etc.
    Siempre habrá conceptos futuros que vuelvan al tema anterior para enriquecerlo.
  3. Inmediatamente luego del concepto teórico es fundamental presentar un ejercicio resuelto con todo el nivel de detalle que se pueda.
    La selección del problema es fundamental. Debe ser específico del concepto tratado y se lo debe tratar de aislar lo más posible de otros conceptos. En el caso de ser importante relacionarlo con conceptos previos puede ser importante que se haga esto en un segundo ejercicio.
    El tema que trata el problema debe ser fácilmente entendido por los alumnos (no buscar problemas avanzados de matemáticas, física, lógica)
  4. La parte fundamental en la programación es "programar", luego que el alumno entendió el concepto y uno o más problemas resueltos se le presentan ejercicios a resolver.
    Nuevamente los ejercicios a presentar tienen que tener un nivel de complejidad próximo a los ejercicios resueltos pero siempre deben incluir elementos que obliguen a razonar e imaginar una solución.
  5. Proponer el desarrollo de ejercicios más complejos propuestos por los mismos alumnos. Esto es muy favorable ya que los gustos personales son muy distintos así como sus conocimientos previos, algunos elegirán desarrollar juegos, otros programas administrativos, de multimedia, software de base etc.
  6. Dejar bien en claro el placer que a uno le genera el desarrollar programas.
  7. Hacer notar que el camino para llegar a ser un programador no es corto y se construye lentamente y va a requerir tiempo para darnos cuenta si es nuestra vocación.

Desde ya los invito a disfrutar de la programación como una "actividad lúdica".