¿Qué lenguaje de programación aprender primero?

Hola a todos! Hace como media hora que estoy intentando chequear si este artículo ya fue posteado anteriormente, pero el buscador de la página no quiere andar.. así que bueno, lo voy a postear de todas formas (pues me pareció muy interesante) y si es repost simplemente se eliminará.

En estos días tengo que elegir un lenguaje de programación en la facultad de entre varios diferentes, y es por eso que estuve buscando información en internet para orientarme un poco. Así fue como me topé con este artículo, el cual si bien no es del todo objetivo me dio una idea general. Se los dejo, quizás le sea de ayuda a alguien más:



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.


¿Qué lenguaje de programación aprender primero?


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…)


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.



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.


.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.


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.


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.


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.



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.


Lisp/Cam1...

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)



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.


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.


Visual Basic/Basic


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.



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.




Fuente: http://es.kioskea.net/faq/sujet-540-que-lenguaje-de-programacion-aprender-primero

Comentarios Destacados

@Lalexander +9
tratemos de ser objetivos. Todos los que comentamos en este post tenemos idea de programacion, estudiamos o vivimos de eso.

Ahora bien, para recomendarle a una persona que nunca vio nada del tema, lo ideal es ser bien claro y poner enfasis en la etapa inicial:

Antes de ver un lenguaje, es importantisimo entender el marco teorico, y sobre todo la logica de los algoritmos. Los diagramas de flujo son la mejor forma de comenzar a entender la programacion

Una vez pasada esta etapa, es recomendable tratar de ejercitarse utilizando lo que vulgarmente llamamos \"pseudocodigo\". Esto a la vez nos limita. La sintaxis es como C++ pero en castellano.... y en papel ... sin embargo para comenzar, me parece un metodo sumamente acertado. Una vez que conocemos la diagramacion, los lenguajes varian en lo fino, asi que se hace mas facil elegir, segun los gustos de cada uno.

Hace un tiempo realicé dos posts relacionados con el tema.

El primero define los fundamentos de la programacion orientada a objetos. Lamentablemente con el tema del buscador que no funciona, y las opciones deshabilitadas de T!, no logro encontrar el link (para los interesados, el titulo era \"Introduccion a P.O.O.\" o algo similar... espero lo puedan buscar alguna vez). El segundo aporte si lo tengo a mano, y es un programa llamado DFD (Diagrama de flujo de datos). el link es http://www.taringa.net/posts/downloads/1184559/Dfd-para-programadores___.html

Es un pequeño programa pa realizar Dfd\'s y ejecutarlos...

espero les sea de utilidad, me gusta ver posts de estos temas, por que realmente aportan a la comunidad taringuera... +5
@kira_19 +6
yo soy de visual basic 2005 y está de mas

52 comentarios - ¿Qué lenguaje de programación aprender primero?

@kira_19 +6
yo soy de visual basic 2005 y está de mas
@julianess +1
yo empecé con .net y este mes empiezo a estudiar ing. en informatica. gracias por el post +10 en cuanto tenga... mandame mp
@MexicanHiro725 +2
interesante información

yo medio programo en java, ahí comencé y no es nada difícil, es muy bueno la verdad

ta bueno tu avatar
+5
@caifaz +2
yo empeze con el logo WR aguante la tortuguitaaa
@herkis
batch
@stata002
en realidad no es un lenguaje de programacion
@visca_visca +1
me gusto a favoritos, que elegiste vs? yo se un poco de html bascio, y algo lejano en pascal, pero espero poder continuar en esto ya que me gusta
@sharmuta
Excelente Post.

ya termine los modulos de visual basic .NET . JAVA y SQL Server y no puedo conseguir trabajo de eso....

Espero que cuando aprenda las herramientas de WEb pueda conseguir algo.
@RMC08
si no tenes experiencia no te contratan en ningun lado...
@Patamoje +3
yo se programar en vb.net y en asp.net y la verdad me gustan bastante, son sencillos y potentes y con respecto a la no declaracion de variables de vb, puedes habilitar una opcion para que si o si las tengas que declarar (esta opcion viene activada por defecto) asi que si no quieres malacostumbrarte, dejala como está y requerirás declararlas. Me gusta mucho el mundo de la programación y planeo seguir analista de sistemas asi que me gusta mucho hacere cursos todo el tiempo de difs lenguajes. Pero todavía no entro a la facultad porque recien tengo 15 años asi que me queda tiempo todavia para que pueda ir a la facu... Bueno, espero que te sirva lo que te dije del visual. Un saludo.
@DobleCero7 +1
pera que hago memoria ....
basic del que venia con la commodore 64, en la uni aprendi pascal, cobol, c
labure en c y c++, foxprox, informix 4gl, visual basic
Y cuando apareció .Net me tiré de cabeza a C#.
.Net como plataforma y C# como lenguaje me pareció una combinación genial porque el framework simplifica mucho el caos que vi en el mundo java y el lenguaje tomó lo mejor de la experiencia de Java y C++.
Saludos
@superchango2007
JAVA JAVA JAVA JAVA JAVA!!!! EMPEZA CON JAVA DE UNAAAAA!!!! OOP RULS!
@bara77 -1
Java, el presente y el futuro.
@bara77
buen post te dejo +10
@hatm1
me alivianaste el dia yo pensaba que ya habia valido el explorador jejeje po lo del buscador
@Lalexander +9
tratemos de ser objetivos. Todos los que comentamos en este post tenemos idea de programacion, estudiamos o vivimos de eso.

Ahora bien, para recomendarle a una persona que nunca vio nada del tema, lo ideal es ser bien claro y poner enfasis en la etapa inicial:

Antes de ver un lenguaje, es importantisimo entender el marco teorico, y sobre todo la logica de los algoritmos. Los diagramas de flujo son la mejor forma de comenzar a entender la programacion

Una vez pasada esta etapa, es recomendable tratar de ejercitarse utilizando lo que vulgarmente llamamos \"pseudocodigo\". Esto a la vez nos limita. La sintaxis es como C++ pero en castellano.... y en papel ... sin embargo para comenzar, me parece un metodo sumamente acertado. Una vez que conocemos la diagramacion, los lenguajes varian en lo fino, asi que se hace mas facil elegir, segun los gustos de cada uno.

Hace un tiempo realicé dos posts relacionados con el tema.

El primero define los fundamentos de la programacion orientada a objetos. Lamentablemente con el tema del buscador que no funciona, y las opciones deshabilitadas de T!, no logro encontrar el link (para los interesados, el titulo era \"Introduccion a P.O.O.\" o algo similar... espero lo puedan buscar alguna vez). El segundo aporte si lo tengo a mano, y es un programa llamado DFD (Diagrama de flujo de datos). el link es http://www.taringa.net/posts/downloads/1184559/Dfd-para-programadores___.html

Es un pequeño programa pa realizar Dfd\'s y ejecutarlos...

espero les sea de utilidad, me gusta ver posts de estos temas, por que realmente aportan a la comunidad taringuera... +5
@Tio Malandra +1
Yo creo que si querés aprender a programar y obtener bases teóricas muy fuertes y buenas prácticas, el mejor lenguaje es Haskell. Incluso creo que quienes ya programan en otros lenguajes, también debieran aprender Haskell para mejorar su código. Es un lenguaje un poco duro para quien está acostumbrado a la programación imperativa, pero exhibe muchos conceptos que después se aplican en diferente medida en el resto de los lenguajes.
@Tio Malandra +1
Los menos recomendables para aprender a programar son PHP, y los derivados de Basic.
Vayan preparandose para los lenguajes funcionales orientados a objetos, porque son lo que se está viniendo para la programación distribuida y concurrente. F#, Scala y Erlang son buenas opciones.
@FortineroalexisBAN +1
QBASIC (en automatizacion se sigue usando todavia)
VIsual Basic
Assembler
@Tio Malandra
rmflorencia dijo: Qué les parece PHP vs C?? Alguien me puede aconsejar sobre eso?
Hoy en día es más fácil conseguir con PHP, aunque C sea el lenguaje más utilizado, pero si querés aprender a programar, C es mucho mejor opción, porque es un lenguaje menos sucio y más puro que el frankenstein denominado PHP
@pablo_ubuntu
python es facil,

estoy comenzando y vi algo de java, php y basic

python es muy bueno y hay muchos doc en internet, lo recomiendo para los que no sabes lo que es ni un html....

linux-noa.blogspot.com/2009/02/encontre-en-httpmundogeek.html
@marqz
buena info.. a favoritos
@lukaschemie
estoy empezando con pascual.... no me gusta nada..
@MrToms +4
pascaaall!
Que pascual!
@KamikazeArg
jA! yo soy programador y programa en visualfox, visual basic, c++ y java. y me quedo con visual para aplicaciones comerciales.
@6ustav +1
lukaschemie dijo:estoy empezando con pascual.... no me gusta nada..



@LOTsonic -1
¡¡¡Visual Basic 2008 Express!!!
@RMC08
-_-
lo que nombras no es un lenguaje, es un IDE en donde se desarrolla escribiendo codigo visual basic. net - el lenguaje es Visual Basic.NET
@eniothesexmachine +2
el c++ es uno de los primeros en salir, antes que java y demas, c++ te habre las puertas a las otros lenguajes, por que asi como un musico, esta influido por otros musicos, los que hicieron python, java etc, fueron influidos por c++ por eso muchas cosas como los \"for, do, while, se repiten en todos los lenguajes.
KamikazeArg para \"aplicaciones comerciales\" visual basic es como comparar un abaco con una calculadora cientifica, donde visual basic es el abaco!!!!!! en todo caso habla de .net, o si no toma el consejo que le voy a dar nuestra amiga del post que es el que sigue:

rmflorencia : te falto agregar Genexus, es una poderosa herramienta para el diseño y desarrollo de software multiplataforma,soporta las plataformas y lenguajes líderes y los DBMS más populares, Java, VisualBasic, C, entre otros.Utiliza bases de datos Acces, SQL Server, MySql, Oracle, entre otros
GeneXus genera el 100% de la aplicación. Basado en los requerimientos de los usuarios realiza el mantenimiento automático de la base de datos y del código de la aplicación, sin necesidad de programar.
visiten el post de este amigo que tiene info
@dashman
depende que queres hacer de la vida, pienso que esta bien algo como visual basic para entusiasmarse pero como bien dijeron hay que comenzar por el pseudocodigo y por c o java si se quiere uno meter enserio
@bor123
Batch and Perl !

LO +


bor123
@noclass
java, complementando con servlets y jsp, y para terminar le agregas jquery (javascript).

bomba!
@ahleguina +2
+10 prefiero ver un post con esta informacion como TOP que esas perchas de racing, rosario centra y demas
@elcabezon2222 +1
superchango2007 dijo:JAVA JAVA JAVA JAVA JAVA!!!! EMPEZA CON JAVA DE UNAAAAA!!!! OOP RULS!

posta, en la universidad en primer lenguaje que aprendí fué JAVA, no fué facil, pero ahora que estoy viendo php html mysql css y todas esas cosas, se me hace mas facil.

OBVIAMENTE: es muy importante aprender a hacer algoritmos en papel, si lo haces de esta manera, a cualquier persona que le hagas llegar la hoja de tu algoritmo, el lo va a poder implementar en cualquier lenguaje.
@Oleh +1
herkis dijo:batch

es lo mas el batch con eso empeze yo
@nico_tombino +1
nico_tombino dijo:gracias buena info para leer !


y no me equivoqué, este semestre estoy empezando con programación en la facultad, y al dominar algoritmos, practicaremos con C para comenzar, abrazo !!


+10
@andres30x
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.


Bueno lo que dices aqui es muy cierto ... yo inicie con este lenguaje .... como estudiante de Ciencias de la Computación(Ing. Informática) .... te lo recomiendo ... claro esta aprender un lenguaje es aprender como funciona un programa su estructura en conclusión aprende bien algoritmos ya que es la base para cualquier lenguaje ... no solo vallas al codigo.... sino como funciona
@rodri_sl
Yo no recomiendo empezar por objetos, sino algo estructurado, onda C, Pascal. En Java por ejemplo no se manejan punteros, pero cualquier objeto en si es un puntero, y no esta demas familiarizarse bien con las referencias y otras hierbas que ayudan a entender como funcionan las cosas.
@RMC08 +1
ACA ESTA LA POSTA:
http://frikitechblog.wordpress.com/2013/02/06/que-lenguaje-de-programacion-aprender-en-el-2013-la-tendencia/

yo personalmente te recomiendo algo de .NET ( C# ) =D
@matiasbatero17 +1
@marianxs Parece un celular taringa, cada vez menos caracteres para comentar,...

informatica
@marianxs
@matiasbatero17 Si se puede hacer , yo cree app con Python 2.4 para GNOME es muy facil ejecutas Python y listo . Lo que no se como hacerlo en GNOME-SHELL o CINNAMON . Pero tendria que buscar codigo del lenguaje usado en GNOME -SHELL ya se viejo o nuevo , lo modifico y listo .
Te doy un ejemplo que hice : yo cree un menu-mint para un gestor de archivos .


link: https://www.youtube.com/wa
@RMC08
haber... si te limita a windows, pero todo es dependiendo a que te quieras dedicar a desarrollar. Si sos un desarrollador Android se te va a hacer dificil hacer una app comercial para empresas, ya que todas se manejan con windows. en mi caso es ese.
Yo hago y quiero seguir haciendolo para vivir y para llenarme de guita apps empresariales. Les guste o no, el mundo profesional/ofimatico/administrativo esta dominado por MS Windows asique a mi no sirve multiplataforma.
Si de repente necesitara hace
@nico_tombino
Estoy viendo actualmente C, y me cuesta por novato pero es cuestion de práctica sumado a la resolución previa con diagramas de flujo, me gusta C, objetos es otro paradigma asombroso he escuchado, en un futuro será con C++ gracias!