You are on page 1of 6

Aprender a programar: consejos y recursos

Por Fabrizio Ferri el da 16 junio, 2011

Cuando buscas una aplicacin que lleve a cabo una funcin determinada y no consigues encontrarla, te enfrentas a un triste hecho: hay programas que todava no existen. Tal cual. Puedes sentarte, llorar y esperar a que alguien programe esa aplicacin... o puedes hacerla t mismo. Cmo? Pues aprendiendo un lenguaje de programacin y creando desde cero el programa deseado. Si decides emprender este camino de auto-aprendizaje, consulta la lista de consejos y recursos que presentamos a continuacin. Quin sabe, un da podras ver tu programa publicado en Softonic...

No me hables en chino. Qu es eso de programar?


Tu ordenador es una mquina que acepta y ejecuta rdenes. Estas rdenes pueden ser tan simples como escribir una letra en la pantalla o calcular una suma, y pueden tener varias formas, dependiendo del lenguaje empleado. A un ordenador no puedes decirle lo siguiente: Ordenador, quiero que me bajes esa caja de la estantera, la roja a la derecha. No lo entender. En cambio, si escribes algo as, puede que te preste atencin: 010101010111010101001010111010101010111010011010100101010110011 Ceros y unos, cdigo mquina, el nico idioma que sabe hablar un PC. Para nosotros no es prctico hablar as, con lo que recurrimos a lenguajes artificiales, que no son ms que versiones simplificadas de nuestros idiomas. La frase inicial se parecera entonces a algo as: caja.Bajar(EstanteriaRoja3) = Verdad; Es feo, s. Pero es mucho mejor que escribir ceros y unos, no te parece? Esos puntos, espacios, puntos y coma y parntesis sirven para delimitar exactamente lo que se quiere decir a la mquina, al igual que ocurre al escribir frmulas matemticas. Un ejemplo con coloreado de sintaxis:

Organizadas en prrafos especiales, todas las lneas de rdenes conforman lo que se conoce como "cdigo fuente", las entraas de un programa. Para convertirlo en un programa ejecutable, el cdigo se "compila", esto es, se traduce a cdigo mquina. Si no hay fallos (bugs), el programa se abrir normalmente.

Eso est muy bien. Pero qu lenguajes hay? Cul elijo?


Como los idiomas naturales, tambin los lenguajes de programacin tienen su lxico, sintaxis y normas de puntuacin, que varan en funcin de la complejidad del lenguaje. Algunos son ms fciles de leer que otros, y entonces se les llama "de alto nivel", pues se aproximan al habla humana; los de bajo nivel son ms "robticos".

Las mquinas solo hablan con ceros y unos, un lenguaje incomprensible para un humano Para imprimir una palabra en un lenguaje de alto nivel como BASIC, basta con escribir PRINT "Hola" (print, en ingls, quiere decir "imprimir"; la mayora de lenguajes usan palabras en ingls). En un lenguaje de nivel bajo, como el Ensamblador, la cosa cambia (no te asustes por lo que vas a ver, no son palabrotas): SWI "OS_WriteS" EQUS "Hola" EQUB 0 ALIGN MOV PC,R14 Te estars preguntando quin puede preferir Ensamblador frente a otros lenguajes. Es una cuestin de rendimiento: el cdigo de bajo nivel se ejecuta ms rpido y aprovecha ms la potencia de la mquina a la cual est ligado, mientras que un lenguaje de alto nivel es ms universal; Java, por ejemplo, se ejecuta en cualquier sistema.

Casi todos los lenguajes de programacin estn emparentados entre s (imagen) Hay cientos de lenguajes de programacin, y, al igual que ocurre con los idiomas humanos, muchos tienen pocos "hablantes". Los hay que jams han salido de las universidades y empresas donde los crearon, mientras que los ms populares, por el contrario, se ensean por doquier y cuentan con amplias comunidades de usuarios. Para crear aplicaciones de escritorio, los lenguajes ms populares son C/C++, Java, Python, Visual Basic y Delphi. Su estilo es parecido, con lo que pasar de uno a otro requiere menos esfuerzo que hacerlo, por ejemplo, de Basic a Ensamblador. Sobre ellos hay una infinidad de libros, cursos y foros tcnicos.

Me aburro. Quiero programar ya.


Vale! Quieres saber qu se siente al hablar directamente con el ordenador? Empieza por probar alguno de los siguientes programas y enlaces. No hace falta saber muchas matemticas, aunque algo de ingls te vendr bien. 1. Practica con robots virtuales La metfora del robot -tienes un robot y le das rdenes- ha sido usada con xito en miles de aulas. Hay varios programas que implementan esa metfora para ensear los fundamentos de la programacin: Guido Van Robot,RoboMind y RobotProg son tres representantes destacados. Para algo ms visual, prueba Kodu.

2. Lenguajes de programacin educacionales Hay lenguajes para todo los gustos: industriales, militares, acadmicos, empresariales... y tambin educacionales. Estos lenguajes, como LOGO, son ms fciles de aprender y tienen menos instrucciones.

Elica es un estupendo entorno de aprendizaje basado en el lenguaje LOGO Microsoft Small Basic es el proyecto de Microsoft para ensear programacin a todos los pblicos, mientras que MIT Scratch es el alabado proyecto del Massachussets Institute of Technology.

3. Prueba un lenguaje directamente en el navegador Las pginas TryRuby, TryPython y TryHaskell son demostraciones interactivas de tres de los lenguajes ms potentes y amenos que existen. No necesitas instalar nada: tan solo sigue las instrucciones en pantalla y comprueba por tu cuenta lo fcil que es crear y modificar rdenes con sentido.

Quiero aprender un lenguaje de verdad!


En ese caso rmate de paciencia y toma en consideracin el apuntarte a algn curso de programacin. Para aprender por tu cuenta, necesitars estos ingredientes:

Compiladores e intrpretes de un lenguaje concreto (p.ej. Ruby o Python) Un editor de texto para escribir tu cdigo, como Notepad++ o SciTE Manuales gratuitos (Inmersin en Python y Python para todos son clsicos) Una vez hayas elegido un lenguaje, hazte con la documentacin, los editores de cdigo, el intrprete (o compilador) y mucho tiempo libre. En caso de duda, consulta foros especializados para preguntar dudas, ayudar a los dems y compartir cdigo y conocimientos. Conoces algn lenguaje de programacin? Te gustara aprender uno?