You are on page 1of 5

Introduccin

Hola a todos, Una de las preguntas ms frecuentes en los foros para principiantes es Cmo iniciarse en programacin? o Qu lenguaje de programacin aprender primero?. En este artculo intentar responder a estas preguntas, aunque habrn otros que tendrn opiniones diferentes. Para intentar ser objetivo, me he basado en las opiniones sobre este tema de los foros de programacin. Para comenzar, no existe un lenguaje de programacin para iniciarse en programacin, la programacin se comienza sobre un papel, haciendo algoritmos. Claro que para ver si los algoritmos funcionan puede ser ms cmodo utilizar un lenguaje de programacin. En este caso lo nico que recomiendo es utilizar un lenguaje simple que no sea orientado a objetos, ni grfico. Una buena eleccin puede ser Basic, Pascal, Python y sobretodo la sintaxis de estos ltimos ser de mayor utilidad ms adelante. Pero no deberiamos excluir ningun lenguaje ya que incluso el lenguaje de una calculadora puede ser suficiente para probar algoritmos simples. Tambin, es bueno tener una idea de los tipos de lenguaje, de lo que es un compilador y otras cosas generales. (http://es.kioskea.net/langages/langages.php3). A estas alturas, ya tenemos algunas bases para comenzar a programaralgo ms, no hay que programar por programar, hay que tener un objetivo, una idea, la necesidad de crear un programa. Aqu, yo nada puedo hacer por ti, esto est en funcin de tus gustos, conocimientos,..y ahora debemos tomar las primeras decisiones tcnicas: Lenguaje orientado a objetos? Multiplataforma? Con mquina virtual? Interfaz usuario? Acceso a una base de datos? Si es as, cul? Una vez que hayas respondido a estas interrogantes, el nmero de lenguajes de programacin ser ms reducido. A continuacin vamos a ver los lenguajes de programacin que mayormente son recomendados para iniciarse en programacin, teniendo en cuenta el punto de vista del aprendizaje. Nota: existe tambin un medio muy ldico para descubrir la programacin: KPL. KPL significa Kid's Programming Language (la pgina web: http://phrogram.com/kpl.aspx). Interfaz impecable (colores, sonido, grafismo) y un aprendizaje de la programacin orientada a la concepcin de juegos. La idea es: aprender divirtindose. Si realmente no sabes nada de nada en informtica ni programacin, ste puede ser la puerta de entrada. Del mismo modo, ste es un medio para que aprendan los nios. Este programa es un freeware y no est limitado a los juegos, y por supuesto, la pgina es multilenguaje (ingls, portugus, francs y algunas lenguas nrdicas), al igual que el programa. En cuanto al lenguaje, ste utiliza los trminos comnmente empleados en otros lenguajes: Begin, End, Main, False, True, etc.

Los lenguajes de programacin que podemos utilizar

Delphi/Pascal
Una buena solucin, los compiladores y entornos de desarrollo se encuentra gratuitamente (bajo ciertas condiciones). Podemos comenzar haciendo pequeos programas en el Shell de Pascal y luego podemos pasar (despus de haber aprendido la nocin de objeto) a cosas ms potentes con entornos grficos gracias a Delphi (y Kylix bajo Linux). El lenguaje es relativamente intuitivo y riguroso, la creacin de interfaz grfica es simple, rpidamente podemos sentirnos a gusto. La portabilidad es mediocre pero existe hacia algunas plataformas (Kylix) Para aprender Pascal http://www.programacionfacil.com/programacion:manual_pascal Pgina oficial Delphi (Ingls): http://www.codegear.com/en/products/delphi Desacargar Free Pascal

Java
Lenguaje orientado a objetos, muy portable, sintaxis utilizada tambin para los scripts de Internet (la sintaxis, no el lenguaje). Existen gran cantidad de entornos de desarrollo gratuitos en la web: no hay ms que elegir en funcin de nuestros gustos, sin embargo, no tiene la facilidad de Delphi en lo que respecta a la interfaz grfica. Este es un lenguaje de ltima generacin que dar una experiencia interesante a los que deseen trabajar en informtica. Para aprender Java: http://www.manual-java.com/ Lo siento, no tengo ms enlaces, no dudes en aadirlos si conoces buenos

Python
Simple, rpido, crea buenas costumbres de programacin, ligero (tanto as que pasar a otro lenguaje despus se hace pesado), abierto, gran cantidad de documentacin en Internet. Este nos permite rpidamente entrar en accin, ya sea creando scripts potentes (gracias a la programacin orientada a objetos) u otras cosas. Es tambin de ultima generacin y portable. Funciona con una mquina virtual que puede ser empaquetada gracias a algunas clases disponibles en la web (se encuentran de todo tipo y para todos los fines) en un exe para distribuir la aplicacin de manera simple e independiente. Pgina oficial de Python (en ingls): http://www.python.org/ Gua de aprendizaje de Python: http://www.programacion.com/tutorial/python/

.Net
Es el futuro segn Microsoft, hay cosas buenas y malas en esta plataforma pero permite programar aplicaciones grficas de manera simple, slo corre en Windows y con algunas adaptaciones en Linux. Yo recomendara C# que es el lenguaje nativo de esta plataforma: su sintaxis muy similar a la de C y Java, no hay punteros, todo se hace en un nivel de abstraccin superior a los antiguos lenguajes de Microsoft. Se compara a Java y a Python, excepto que no es libre. Un entorno de desarrollo gratuito y Open source para .Net: http://www.icsharpcode.net/OpenSource/SD/

Smalltalk

Para m el lenguaje orientado a objetos por excelencia. Gratuito, sintaxis simple, impone un rigor sin igual en la programacin orientada a objetos. Desgraciadamente no es muy utilizado, es raro encontrar un empleo con ste, pero da una referencia solida, y con cosas como Squeak permiten hacer gran cantidad de cosa con l. Squeak: http://www.squeak.org/ Tutorial Dolphin Smalltalk: http://www.dolphinmap.net/wiki/Documentation

Los que podemos utilizar en ltima instancia


C/C++
Estos son buenos lenguajes, pero con una sintaxis complicada que no facilita su aprendizaje. Adems el uso de punteros hace que su uso, incluso para los profesionales, sea complicado. La ventaja es que estos lenguajes pueden ser utilizados en diversas plataformas (despus de compilacin) y que, una vez dominados, hacen que los otros parezcan simples. Estos lenguajes son an muy utilizados en el mundo profesional. Utilzalo si se deseas hacer de la informtica tu profesin. Para aprender C: http://sopa.dis.ulpgc.es/so/cpp/intro_c/ Para aprender C++: http://zator.com/Cpp/E1_2.htm Pgina de Borland C++: http://www.codegear.com/en/products/cppbuilder

PHP
Un lenguaje inicialmente previsto para el desarrollo de pginas web dinmicas. Su sintaxis es muy similar a la de C++. PHP es bastante simple de abordar y permite conectarse fcilmente a una base de datos. Para desarrollar pginas web dinmicas, se requiere tambin un buen conocimiento de Html y eventualmente de Sql si se necesita una base de datos. Permite ver rpidamente el trabajo, ponindolo en lnea, y de este modo tener los comentarios/sugerencias de los internautas. Tambin podemos desarrollar otras aplicaciones que no sean para la web con este lenguaje. Podemos programar de manera procedural u orientada a objetos, a nuestra eleccin. Es un buen lenguaje pero no necesariamente el mejor para aprender. Es potente y permisivo pero con el riesgo de aprender malas costumbres. Especialmente en lo que respecta a las pginas web, ste no influye para que se programe con propiedad desde el inicio. Si buscas un lenguaje que sea fcil de aprender, que te permita aprender la programacin orientada a objetos, y que te deje buenas costumbres de programacin, entonces elije mas bien un lenguaje como Python. Para aprender PHP: http://geneura.ugr.es/~maribel/php/ Pgina oficial: http://www.php.net/

Ada
Lenguaje an utilizado en la programacin de sistemas de tiempo real. Es fcil de aprender pero es recomendado sobretodo para los futuros informticos, si no, no hay mucho inters. Es mejor pasar a Ada solamente con el objetivo del tiempo real ya que tiende a desaparecer. Para aprender Ada: http://www.wikilearning.com/curso_gratis/curso_de_ada-introduccion/10578-1 Lo siento, no tengo ms enlaces, no dudes en aadirlos si conoces buenos

Lisp/Caml/...
Los lenguajes funcionales son numerosos, estn clasificados en dos grandes familias: los puros (haskell) y los no puros (familia lisp). A la vez la familia de los puros estn clasificados en dos: los verdaderamente puros, sin efecto efecto secundario (familia haskell) y la familia ML (Caml,SML,...). La manera de programar es totalmente diferente con relacin a los otros lenguajes. La programacin funcional es otra manera de ver un programa y eso no impide por ejemplo tener un lenguaje funcional y orientado a objetos (scala por ejemplo) o incluso un lenguaje funcional que asocie imperativo/orientado a objetos/funcional (Ocaml). Conocer uno de estos permite tener buenas bases y permitir tambin a las personas ms orientadas a las matemticas pasarse suavemente a la informtica. Estos por lo general son utilizados en anlisis numrico o en inteligencia artificial (pero es slo a causa de su origen). Podemos utilizarlos para programar todo lo que se puede programar con otros lenguajes (la comunidad commonlisp es muy activa) http://fr.wikipedia.org/wiki/Common_Lisp http://www.paulgraham.com/onlisp.html http://www.scala-lang.org/index.html

Los que no podemos utilizar


(x)HTML/CSS
Voy a ser breve, escribir una pgina web o un sitio web en HTML es a la programacin lo que beber un vaso de agua es al alcoholismo. Aqu se trata de presentar un documento, no de programar, y no porque se agregan algunos scripts esto cambia gran cosa. Para aprender HTML: http://es.kioskea.net/html/htmlintro.php3 Para aprender DHTML: http://www.programacion.net/html/dinamico/tutorial/principal.htm

Perl
Seamos claros, este lenguaje aparentemente simple no es en lo absoluto adaptado al aprendizaje de la programacin. Su flexibilidad y potencia pueden hacer que adquieras malas costumbres de programacin e incluso te pueden desalentar por los errores que se estn autorizados a cometer. Es mejor comenzar aprendiendo un lenguaje riguroso, para luego explotar al mximo Perl. Para aprender Perl: http://www.wikilearning.com/...

Visual Basic/Basic: D
Los profesionales que han trabajado con l lo desaconsejan. Este crea malas costumbres de programacin (no es necesaria la declaracin de variables, ninguna nocin de valor/referencia, tentativa fracasada de programar con objetos,), y adems Microsoft (se trata de un lenguaje propietario) lo ha abandonado para privilegiar a Framework.Net. Para terminar, no existe ninguna versin gratuita, por lo tanto necesariamente hay que pagar. El slo punto positivo que le reconocera es su lado ldico y la facilidad de hacer interfaces grficas para Windows (algo que olvidaba, tampoco es portable), pero no es el nico, si es el que te interesa, ms bien inclnate hacia Delphi o .Net. El caso de Basic es ms o menos el mismo, existen compiladores gratuitos, pero se trata de un lenguaje obsoleto que no es ni rpido, ni portable, ni orientado a objetos, ni riguroso. Inclnate por Pascal que te permitir luego evolucionar hacia Delphi.

Para aprender Visual Basic: http://www.lopezdearenas.com/informatica/curso-vb.pdf Para los matemticos, pueden intentar los lenguajes de sistemas de gestin de pruebas. Por el momento, su potencia es limitada pero se espera que se desarrollen con el tiempo. Por el momento los que ms sobresalen son la familia ML o Haskel. Para Ocaml, tenemos a Coq. Los paradigmas estn basados en la lgica. Para aprender Coq: http://coq.inria.fr/ (en ingls)

Un consejo, es muy comn en el mundo de la programacin tener que leer artculos en ingles, por lo que aprenderemos a programar en mejores condiciones si podemos leer en ingls o mejor aun si lo podemos escribir. (para hacer preguntas en los foros especializados). Bueno, espero que haya sido lo ms completo posible. ------------------------------Puedes encontrar muchos compiladores gratuitos para diferentes lenguajes en esta direccin: http://www.thefreecountry.com/ PD: Iniciarse en programacin, es tambin estar confrontado a una espinosa cuestin: Pero por qu mi programa no corre? Los mensajes de error mostrados (o no) por los entornos de compilacin o de ejecucin (o el comportamiento de los dos) a veces sumergen al principiante en una confusin total que puede volverse exasperante. Un buen mtodo es dar el cdigo a alguien con experiencia para que lo lea primero, y/o explicar a otra persona el problema. A veces decir en voz alta nuestro razonamiento nos pondr en la va correcta. Finalmente la capacidad a programar (bien) va (a menudo) de la par con la de abstraerse de este mundo material en el cual nos encontramos sumergidos. Bienvenido al mundo donde nada es realmente concreto. Si te gusta demasiado la programacin, quizs soaras con ella Entonces ten en ese momento un papel y un lpiz (el arma de todo informtico) en el velador, toma nota de las soluciones que te vienen a la mente y prubalas por la maana. PD: El artculo original fue escrito por teebo contribuidor de CommentCaMarche

You might also like