Introducción
Hola a todos,
Una de las preguntas más frecuentes en los foros para principiantes es “¿Cómo iniciarse en programación?” o “¿Qué lenguaje de programación aprender primero?”. En este artículo intentaré responder a estas preguntas, aunque habrán otros que tendrán opiniones diferentes. Para intentar ser objetivo, me he basado en las opiniones sobre este tema de los foros de programación.
Para comenzar, no existe un lenguaje de programación para iniciarse en programación, la programación se comienza sobre un papel, haciendo algoritmos. Claro que para ver si los algoritmos funcionan puede ser más cómodo utilizar un lenguaje de programación. En este caso lo único que recomiendo es utilizar un lenguaje simple que no sea orientado a objetos, ni gráfico. Una buena elección puede ser Basic, Pascal, Python y sobretodo la sintaxis de estos últimos será de mayor utilidad más adelante. Pero no deberiamos excluir ningun lenguaje ya que incluso el lenguaje de una calculadora puede ser suficiente para probar algoritmos simples. También, 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 programar…algo más, 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 función de tus gustos, conocimientos,..y ahora debemos tomar las primeras decisiones técnicas:
Una de las preguntas más frecuentes en los foros para principiantes es “¿Cómo iniciarse en programación?” o “¿Qué lenguaje de programación aprender primero?”. En este artículo intentaré responder a estas preguntas, aunque habrán otros que tendrán opiniones diferentes. Para intentar ser objetivo, me he basado en las opiniones sobre este tema de los foros de programación.
Para comenzar, no existe un lenguaje de programación para iniciarse en programación, la programación se comienza sobre un papel, haciendo algoritmos. Claro que para ver si los algoritmos funcionan puede ser más cómodo utilizar un lenguaje de programación. En este caso lo único que recomiendo es utilizar un lenguaje simple que no sea orientado a objetos, ni gráfico. Una buena elección puede ser Basic, Pascal, Python y sobretodo la sintaxis de estos últimos será de mayor utilidad más adelante. Pero no deberiamos excluir ningun lenguaje ya que incluso el lenguaje de una calculadora puede ser suficiente para probar algoritmos simples. También, 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 programar…algo más, 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 función de tus gustos, conocimientos,..y ahora debemos tomar las primeras decisiones técnicas:
¿Lenguaje orientado a objetos?
¿Multiplataforma?
¿Con máquina virtual?
¿Interfaz usuario?
¿Acceso a una base de datos? ¿Si es así, cuál?
…
Una vez que hayas respondido a estas interrogantes, el número de lenguajes de programación será más reducido.
A continuación vamos a ver los lenguajes de programación que mayormente son recomendados para iniciarse en programación, teniendo en cuenta el punto de vista del aprendizaje.
Nota: existe también un medio muy lúdico para descubrir la programación: KPL.
KPL significa Kid's Programming Language (la página web: http://phrogram.com/kpl.aspx).
Interfaz impecable (colores, sonido, grafismo) y un aprendizaje de la programación orientada a la concepción de juegos. La idea es: aprender divirtiéndose. Si realmente no sabes nada de nada en informática ni programación, éste puede ser la puerta de entrada. Del mismo modo, éste es un medio para que aprendan los niños. Este programa es un freeware y no está limitado a los juegos, y por supuesto, la página es multilenguaje (inglés, portugués, francés y algunas lenguas nórdicas), al igual que el programa. En cuanto al lenguaje, éste utiliza los términos comúnmente empleados en otros lenguajes: Begin, End, Main, False, True, etc.
Los lenguajes de programación que podemos utilizar
Delphi/Pascal
Una buena solución, los compiladores y entornos de desarrollo se
encuentra gratuitamente (bajo ciertas condiciones). Podemos comenzar
haciendo pequeños programas en el Shell de Pascal y luego podemos pasar
(después de haber aprendido la noción de objeto) a cosas más potentes
con entornos gráficos gracias a Delphi (y Kylix bajo Linux). El lenguaje
es relativamente intuitivo y riguroso, la creación de interfaz gráfica
es simple, rápidamente podemos sentirnos a gusto.
La portabilidad es mediocre pero existe hacia algunas plataformas (Kylix…)
Para aprender Pascal
http://www.programacionfacil.com/programacion:manual_pascal
Página oficial Delphi (Inglés): http://www.codegear.com/en/products/delphi
Desacargar Free Pascal
La portabilidad es mediocre pero existe hacia algunas plataformas (Kylix…)
Para aprender Pascal
http://www.programacionfacil.com/programacion:manual_pascal
Página oficial Delphi (Inglés): http://www.codegear.com/en/products/delphi
Desacargar Free Pascal
Java
Lenguaje orientado a objetos, muy portable, sintaxis utilizada también
para los scripts de Internet (la sintaxis, no el lenguaje…). Existen
gran cantidad de entornos de desarrollo gratuitos en la web: no hay más
que elegir en función de nuestros gustos, sin embargo, no tiene la
facilidad de Delphi en lo que respecta a la interfaz gráfica. Este es un
lenguaje de “última generación” que dará una experiencia interesante a
los que deseen trabajar en informática.
Para aprender Java: http://www.manual-java.com/
Lo siento, no tengo más enlaces, no dudes en añadirlos si conoces buenos
Para aprender Java: http://www.manual-java.com/
Lo siento, no tengo más enlaces, no dudes en añadirlos si conoces buenos
Python
Simple, rápido, crea buenas costumbres de programación, ligero (tanto
así que pasar a otro lenguaje después se hace pesado), abierto, gran
cantidad de documentación en Internet. Este nos permite rápidamente
entrar en acción, ya sea creando scripts potentes (gracias a la
programación orientada a objetos) u otras cosas. Es también de “ultima
generación” y portable. Funciona con una máquina 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 aplicación de manera simple e independiente.
Página oficial de Python (en inglés): http://www.python.org/
Guía de aprendizaje de Python: http://www.programacion.com/tutorial/python/
Página oficial de Python (en inglés): http://www.python.org/
Guía de aprendizaje de Python: http://www.programacion.com/tutorial/python/
.Net
Es el futuro según Microsoft, hay cosas buenas y malas en esta
plataforma pero permite programar aplicaciones gráficas de manera
simple, sólo corre en Windows y con algunas adaptaciones en Linux. Yo
recomendaría 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 abstracción 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/
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 programación 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
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. Además 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 (después de
compilación) y que, una vez dominados, hacen que los otros parezcan
simples. Estos lenguajes son aún muy utilizados en el mundo profesional.
Utilízalo si se deseas hacer de la informática tu profesión.
Para aprender C: http://sopa.dis.ulpgc.es/so/cpp/intro_c/
Para aprender C++: http://zator.com/Cpp/E1_2.htm
Página de Borland C++: http://www.codegear.com/en/products/cppbuilder
Para aprender C: http://sopa.dis.ulpgc.es/so/cpp/intro_c/
Para aprender C++: http://zator.com/Cpp/E1_2.htm
Página de Borland C++: http://www.codegear.com/en/products/cppbuilder
PHP
Un lenguaje inicialmente previsto para el desarrollo de páginas web
dinámicas. Su sintaxis es muy similar a la de C++. PHP es bastante
simple de abordar y permite conectarse fácilmente a una base de datos.
Para desarrollar páginas web dinámicas, se requiere también un buen
conocimiento de Html y eventualmente de Sql si se necesita una base de
datos.
Permite ver rápidamente el trabajo, poniéndolo en línea, y de este modo tener los comentarios/sugerencias de los internautas.
También podemos desarrollar otras aplicaciones que no sean para la web con este lenguaje.
Podemos programar de manera procedural u orientada a objetos, a nuestra elección.
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 páginas web, éste no influye para que se programe con propiedad desde el inicio.
Si buscas un lenguaje que sea fácil de aprender, que te permita aprender la programación orientada a objetos, y que te deje buenas costumbres de programación, entonces elije mas bien un lenguaje como Python.
Para aprender PHP: http://geneura.ugr.es/~maribel/php/
Página oficial: http://www.php.net/
Permite ver rápidamente el trabajo, poniéndolo en línea, y de este modo tener los comentarios/sugerencias de los internautas.
También podemos desarrollar otras aplicaciones que no sean para la web con este lenguaje.
Podemos programar de manera procedural u orientada a objetos, a nuestra elección.
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 páginas web, éste no influye para que se programe con propiedad desde el inicio.
Si buscas un lenguaje que sea fácil de aprender, que te permita aprender la programación orientada a objetos, y que te deje buenas costumbres de programación, entonces elije mas bien un lenguaje como Python.
Para aprender PHP: http://geneura.ugr.es/~maribel/php/
Página oficial: http://www.php.net/
Ada
Lenguaje aún utilizado en la programación de sistemas de tiempo real. Es
fácil de aprender pero es recomendado sobretodo para los futuros
informáticos, si no, no hay mucho interés. 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 más enlaces, no dudes en añadirlos si conoces buenos
Para aprender Ada: http://www.wikilearning.com/curso_gratis/curso_de_ada-introduccion/10578-1
Lo siento, no tengo más enlaces, no dudes en añadirlos si conoces buenos
Lisp/Caml/...
Los lenguajes funcionales son numerosos, están clasificados en dos
grandes familias: los puros (haskell) y los no puros (familia lisp). A
la vez la familia de los puros están 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 relación a los otros lenguajes. La programación 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á también a las personas más orientadas a las
matemáticas pasarse suavemente a la informática. Estos por lo general
son utilizados en análisis numérico o en inteligencia artificial (pero
es sólo 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
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 página web o un sitio web en HTML es a la
programación 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
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 programación. Su flexibilidad y potencia
pueden hacer que adquieras malas costumbres de programación e incluso te
pueden desalentar por los errores que se están autorizados a cometer.
Es mejor comenzar aprendiendo un lenguaje riguroso, para luego explotar
al máximo Perl.
Para aprender Perl: http://www.wikilearning.com/...
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 programación (no es necesaria la declaración de
variables, ninguna noción de valor/referencia, tentativa fracasada de
programar con objetos,…), y además Microsoft (se trata de un lenguaje
propietario) lo ha abandonado para privilegiar a Framework.Net. Para
terminar, no existe ninguna versión gratuita, por lo tanto
necesariamente hay que pagar. El sólo punto positivo que le reconocería
es su lado lúdico y la facilidad de hacer interfaces gráficas para
Windows (algo que olvidaba, tampoco es portable…), pero no es el único,
si es el que te interesa, más bien inclínate hacia Delphi o .Net.
El caso de Basic es más o menos el mismo, existen compiladores gratuitos, pero se trata de un lenguaje obsoleto que no es ni rápido, ni portable, ni orientado a objetos, ni riguroso. Inclínate por Pascal que te permitirá luego evolucionar hacia Delphi.
Para aprender Visual Basic: http://www.lopezdearenas.com/informatica/curso-vb.pdf
Para los matemáticos, pueden intentar los lenguajes de sistemas de gestión de pruebas. Por el momento, su potencia es limitada pero se espera que se desarrollen con el tiempo. Por el momento los que más sobresalen son la familia ML o Haskel. Para Ocaml, tenemos a Coq. Los paradigmas están basados en la lógica.
Para aprender Coq: http://coq.inria.fr/ (en inglés)
Un consejo, es muy común en el mundo de la programación tener que leer artículos en ingles, por lo que aprenderemos a programar en mejores condiciones si podemos leer en inglés o mejor aun si lo podemos escribir. (para hacer preguntas en los foros especializados…).
Bueno, espero que haya sido lo más completo posible.
-------------------------------
Puedes encontrar muchos compiladores gratuitos para diferentes lenguajes en esta dirección:
http://www.thefreecountry.com/
PD: Iniciarse en programación, es también estar confrontado a una espinosa cuestión: ¿Pero por qué mi programa no corre? Los mensajes de error mostrados (o no) por los entornos de compilación o de ejecución (o el comportamiento de los dos) a veces sumergen al principiante en una confusión total que puede volverse exasperante. Un buen método es dar el código 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 vía 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 programación, quizás soñaras con ella… Entonces ten en ese momento un papel y un lápiz (el arma de todo informático) en el velador, toma nota de las soluciones que te vienen a la mente y pruébalas por la mañana.
El caso de Basic es más o menos el mismo, existen compiladores gratuitos, pero se trata de un lenguaje obsoleto que no es ni rápido, ni portable, ni orientado a objetos, ni riguroso. Inclínate por Pascal que te permitirá luego evolucionar hacia Delphi.
Para aprender Visual Basic: http://www.lopezdearenas.com/informatica/curso-vb.pdf
Para los matemáticos, pueden intentar los lenguajes de sistemas de gestión de pruebas. Por el momento, su potencia es limitada pero se espera que se desarrollen con el tiempo. Por el momento los que más sobresalen son la familia ML o Haskel. Para Ocaml, tenemos a Coq. Los paradigmas están basados en la lógica.
Para aprender Coq: http://coq.inria.fr/ (en inglés)
Un consejo, es muy común en el mundo de la programación tener que leer artículos en ingles, por lo que aprenderemos a programar en mejores condiciones si podemos leer en inglés o mejor aun si lo podemos escribir. (para hacer preguntas en los foros especializados…).
Bueno, espero que haya sido lo más completo posible.
-------------------------------
Puedes encontrar muchos compiladores gratuitos para diferentes lenguajes en esta dirección:
http://www.thefreecountry.com/
PD: Iniciarse en programación, es también estar confrontado a una espinosa cuestión: ¿Pero por qué mi programa no corre? Los mensajes de error mostrados (o no) por los entornos de compilación o de ejecución (o el comportamiento de los dos) a veces sumergen al principiante en una confusión total que puede volverse exasperante. Un buen método es dar el código 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 vía 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 programación, quizás soñaras con ella… Entonces ten en ese momento un papel y un lápiz (el arma de todo informático) en el velador, toma nota de las soluciones que te vienen a la mente y pruébalas por la mañana.
No hay comentarios:
Publicar un comentario