Programación Para Principiantes
Monday 12 de March de 2007
Programar puede ser la cosa más fácil del mundo, si llamamos programar a escribir código (como algunos piensan); pero programar no es eso. Justamente, programar es hacer el algoritmo que resuelva un problema, y LUEGO pasarlo a código.
Programar es una cosa que siempre me pareció que no se puede enseñar; se tiene que aprender. Sé que suena paradójico, pero tiene sentido…
Podría explicar lo que es una variable, un condicional, un bucle… y dos minutos después alguien levantará la mano y preguntará “¿Para qué sirve eso?”.
Programar no es algo para todos; no es como manejar, no es algo que cualquiera puede aprender. Cualquiera puede llegar a memorizarse la sintaxis de mil lenguajes, y todavía ser incapaz de hacer algo más que un “Hola mundo”; mientras tanto, un chico de 18 años hizo el engine de Duke Nukem 3D.
¿Por qué? Fácil: al chico de 18 le gusta.
Programar (igual que otras disciplinas MUY diferentes, como la publicidad, la literatura, y hasta la arquitectura) no es cuestión de repetir incesantemente una serie de pasos; hay que usar la cabeza, pensar formas de resolver los problemas, y arreglarse dentro de los límites que se ponen (el lenguaje en la programación, el medio en la publicidad, las reglas del idioma en la literatura, la física en la arquitectura…); más importante que todo eso: tiene que gustar. Alguien que puede programar como alguien que puede idear una publicidad nueva, o pintar un cuadro (hay quienes consideran la programación un arte): no es un talento mágico, pero no todos pueden hacerlo; los únicos que pueden son los que quieren.
No se puede saber quien tiene potencial como programador, pero es fácil decir quien no: los que sacan 10 en historia y 1 en matemática. Las pruebas de historia son casi siempre pruebas de memoria (ojo, no por esto la historia es inútil; sólo las pruebas de historia, en muchos casos), mientras que para la matemática se necesita razonar.
No tendría sentido enseñar a programar en las escuelas: pocos entenderían el tema, y además, ya lo sabrían, porque el que quiere aprender a programar lo busca, lee; no espera que alguien le diga cómo se hace.
Antes de preguntar “¿Cómo se programa?“, hay que preguntar “¿Me interesa programar?“. Para los pocos que todavía se atreven a decir que sí, hay esperanza; para los que no están seguros sólo queda una cosa: probar.
Hay miles de lenguajes, y el primero va a determinar si van a seguir, por eso hay que elegir bien. Java es pésimo, porque requiere mucha teoría antes de hacer el más simple “Hola mundo”, y C no es mucho mejor. Yo aprendí con QBasic, pero en esta época recomiendo Python: empieza fácil, y se puede hacer tan complejo como uno quiera.
Yo programo, y me gusta. ¿Ustedes se atreven?
Thursday 15 de March de 2007, 12:23 am
Que lastima me estaba gustando Java, parece facil, deberias explicar la manera de “probar” hasta encontrar “el” lenguaje. Cuando encuentre la manera de instalar Java en Mandriva te cuento!
Wednesday 21 de March de 2007, 1:19 am
oh :_ me has dejado completamente chafada… yo soy de las que sacan 10 en historia y 2 en matematicas… pero mi novio me esta enseñando a programar en c y lo entiendo, espero que cuando pise la uni no me pase lo que tu dices y sea capaz de aprobar
Wednesday 21 de March de 2007, 2:06 am
Ojo, no digo que no te sea posible programar; lo que digo es que la programación no es algo que se aprende de memoria (además, la correlación no es directa… hay gente a la que le gusta la historia; a mí me gusta la lengua y la literatura (además de la matemática, física y química), que muchos me han dicho que tiene poco que ver). Aunque existen algoritmos para resolver algunos problemas, donde se prueba un programador es en crear nuevos.
Si no te molesta que te pregunte, se nota por su acento que no sos Argentina, ¿De donde sos?, y ¿cómo encontraste el blog?.
(Todos los que lean este comentario están invitados a responder.)
Saludos, y buena suerte
Thursday 30 de August de 2007, 6:49 am
ni modo. Yo he aprendido desde el primer hola mundo en java, y si se puede ir avanzando de a poco. Hay muchas cosas q uno no sabe para que sirven, hasta q se avanza, y las vas entendiendo. Pero java no es limitado de ninguna manera para alguien q recien comienza.
Adhiero al “programar lo puede hacer cualquiera q disfrute de ello”, pero no me parece q alguien q se saca 10 en historia, y 1 en matematicas, no pueda hacerlo.
Hay demasiadas variables en juego como para dar una opinion tan suelta a respecto.
Thursday 30 de August de 2007, 2:06 pm
Justamente el hecho de que hayan cosas que no entendés hasta bastante más adelante es algo que a muchos principiantes asusta. En particular, a lo que me refiero es a cosas como que, para hacer algo como una función que compruebe si un número de tarjeta de crédito es válido, hay que crear un clase ValidadorDeTarjetas con un método ValidarTarjeta (o algo similar). Aunque, claro, siempre podes decirte “nah, me aburre hacerlo así”, ponerlo en la misma clase que estás usando, y cagarte en todas las buenas prácticas de la orientación a objetos.
En realidad no quise decir que no pueda, sino que son más raros los programadores con esas características que con las opuestas porque, en mi experiencia, las pruebas de historia son simplemente pruebas de memoria, no como las de matemática que necesariamente uno tiene que aprender a combinar los conceptos y técnicas que aprendió en el camino.
¡Gracias por el comentario!
Monday 14 de April de 2008, 1:24 pm
Hola Tordek, empiezo a leer sobre programar, y me parece muy acertado lo que comentas al inicio, no se puede enseñar hay que aprender, y tambien lo de escribir el algoritmo. ¿Tienes alguna sugerencia de donde leer sobre estos? Gracias. Por cierto una maestra que tuve nos hacia escribir en papel todas las tareas, todos los ejercicios de la clase y ojo, era en la sala de computo, todos nos quejabamos y al final del curso hizo un comentario parecido al tuyo, HAY QUE ESCRIBIRLO y luego pasarlo a la computadora.
Monday 14 de April de 2008, 10:58 pm
Si lo que hacía tu profesora es hacerte escribir el código en un lenguaje de programación “de verdad” a mano, no estoy de acuerdo con ella.
Escribir un algoritmo descriptivamente es perfecto; obligarte a memorizar detalles más o menos variables sobre la sintaxis de un lenguaje es estúpido. Para revisar errores están los compiladores.
Sobre los algoritmos, no sé recomendarte un libro para entender cómo armarlos, pero para aprender acerca de los más útiles, uno de los mejores (aunque algo avanzado) es el Arte de la Programacion de Computadoras, de Donald Knuth. El primer fascículo se llama “Algoritmos Fundamentales”.
Suerte en tu trayecto, y si tenés alguna pregunta, no dudes en contactarme.
Saturday 28 de June de 2008, 5:21 pm
Que interesante lo que planteas, en este momento me encuentro realizando un proceso de investigación sobre la didáctica de la programación, y lo que ud señala sobre que no a todos les gusta me parece muy acertado,pero ¿Si tubieras que enseñar programación en un colegio, qué tomarías en cuenta para abordar la programación de manera que aunque no les guste puedan programar?
Monday 30 de June de 2008, 2:08 am
[...] @ndres me hizo una pregunta interesante (gracias a Moradin; necesitaba un tema para el post del lunes): ¿Cómo abordaría enseñar programación en un colegio, aunque a los estudiantes no les gustara? [...]