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?
Jueves 15 de Marzo de 2007, 00:23
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!
Miércoles 21 de Marzo de 2007, 01:19
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
Miércoles 21 de Marzo de 2007, 02:06
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
Jueves 30 de Agosto de 2007, 06:49
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.
Jueves 30 de Agosto de 2007, 14:06
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!
Lunes 14 de Abril de 2008, 13:24
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.
Lunes 14 de Abril de 2008, 22:58
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.
Sábado 28 de Junio de 2008, 17:21
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?
Lunes 30 de Junio de 2008, 02:08
[...] @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? [...]
Martes 14 de Octubre de 2008, 13:37
muy interesante lo que cuentas, y si estoy muy interaso en aprender a programar.
tu me podrias indicar direcciones o recomendar algun libro con el cual puedas aprender a programar.
de antemano de agradesco la ayuda.
Martes 24 de Febrero de 2009, 12:36
Muy interesante tu articulo, lo que resalto particularmente es que la programacion no se aprende en un curso.. en el curso te pueden mostrar la sintaxis del lenguaje pero no te preparan la cabeza para inventar un algoritmo.
Para mi, la mejor manera de aprender programacion es siendo autodidacta, comprarse un libro bueno o malo no importa caro o barato, lo importante es sentarse sacar el mayor provecho de él estar con las primeras 10 paginas durante una semana hasta entenderlo bien y por supuesto no quedarse con el libro solo sino seguir buscando en internet, seguir imaginando que programas se pueden crear, no parar hasta no resolver el problema,(que linda satisfaccion que uno recibe despues de encontrar la solucion, eso no tiene precio!)
Cualquiera puede programar? Sí, cualquiera puede programar
Yo lo veo como el arte, cualquiera puede pintar un cuadro, pero no todos los artistas son dalí
Miércoles 4 de Marzo de 2009, 13:07
es exacto que el programar no es cualquier cosa no por jugar con una pelota ya eres futbolista este es el mismo caso no por manejar mas o menos una computadora ya eres un ingeniero en sistemas pero hay qe dar oportunidad igual y ese puede llegar a ser su camino.
Lunes 9 de Marzo de 2009, 02:24
hola amigos la verdad es que me siento confundida por todo el estima que gira alrededor de la programacion ya que conozco muchos profesores que no les gusta compartir sus conocimientos con sus alumnos es eso correcto
la verdad es que estor muy interesada en la programacion pero a veces me siento como si no fuera capaz de crecer dentro de este mundo tan impresionante como lo es la programacion porfavor aconsejenme
Lunes 30 de Marzo de 2009, 11:31
Gracias por tus comentarios Tordek, finalmente encontre nuevamente tu blog… lo perdi gracias al señor puertas vende ventanas que se descomponen… encontre el libro que me recomendaste en una pagina con muchoooos libros, por si les interesa a todos se llama ( http://www.quedelibros.com ) y el enlace ( http://www.quedelibros.com/Informatica/2/Algoritmos/1.html ) SI ESTAN EN ZIP, no me vayan a trucificar!! jejej, pero bueno, 1.- Estoy en Ubuntu asi que no me preocupo al abrirlos… Un Saludo desde México. Gracias
Miércoles 1 de Abril de 2009, 19:51
yo quiero aprender a programar, pues he leido Java, C++ y tengo algunos libros,
pero no tengo idea, de como empezar, que debo hacer?
Domingo 19 de Julio de 2009, 04:35
Hola. esta bueno el texto. Si, a la pregunta. Me interesa muchisimo el tema. No se si tengo “talento nato” para la programacion pero se decir que tengo 17 años y todo lo que sea referente a mi computadora lo arreglo yo, los problemas en las computadoras de los demás también, soy algo así como autodidacta en lo referente a PCs… Me interesaria muchisimo poder aprender programacion, porque como no soy una genia tampoco es algo que se me valla a generar espontaneamente en mi el conocimiento, jej.
Ahora estoy tratando de encontrar alguna informacion más facil de comprender, que no necesite tener demasiada base con la informacion para poder manejarme. Bueno, solo quería comentar.
de Uruguay
Sábado 23 de Enero de 2010, 11:23
Hola a todos, soy programador desde hace varios años, he trabajado en algunos proyectos grandes, personales y de trabajo… aún recuerdo el primer día que tuve contacto con la programación (seudocódigo), y sin pecar de ridículo les digo que fue una emoción tan grande como cuando te vez con la persona amada después de varios días.
Creo que es imprescindible, (si se quiere aprender a programar) QUERER APRENDER, AMAR LA PROGRAMACIÓN, SER AUTODIDACTA, pasar tiempo pensando en ello, resolviendo problemas en la mente y luego llevándolos a algún lenguaje. En mis tiempos libre doy clases particulares de programación, y una constante que he notado es que muchos quieren aprender a programar porque se lo exigen en el colegio no porque les guste…
¿Qué lenguaje conviene más? Con el que te sientas más cómodo(a). Como lo mas importante en principio es estimular la lógica, creo que se debe empezar con seudocódigo y diagramas de flujo y luego, si eres meticuloso(a) y detallista, puede ser que prefieras un lenguaje orientado a objetos (python, Java, C#, etc…), si no te interesa mucho lo bello que se vea el código con tal y funcione, otros lenguajes estructurados podrían servir para aprender (C, Pascal, QBasic, ect… ).