epelpad

El post que buscas se encuentra eliminado, pero este también te puede interesar

En busca de mi primer lenguaje de programación.



Llevo años queriendo aprender a programar, pero nunca me he puesto a ello. En esta serie, voy a contarte mis peripecias como programador novel. En este primer episodio, empiezo por lo básico: la elección del primer lenguaje de programación.

Mi objetivo: crear una aplicación y publicarla. No aspiro a lanzar un software memorable, ni tampoco a hacer el próximo Minecraft, pero si al final consigo crear algo original y usable, me daré por satisfecho. ¿Me seguirás en esta aventura?

En busca de mi primer lenguaje


Encontrar el lenguaje de programación perfecto para uno es agotador. Hay centenares. Y al igual que ocurre con los idiomas, los hay que son muy populares y los hay que solo se “hablan” en entornos muy específicos.

Programacion


Cada lenguaje tiene sus peculiaridades, herramientas, manuales y gurús. Cada programador parece tener un lenguaje favorito para sus proyectos y otro que recomienda para aprender. Rara vez ambas elecciones suelen coincidir.

Pero yo quiero aprender a programar ya, y por eso me he puesto a pensar en qué busco en un lenguaje de programación y cuáles lenguajes me ofrecen esas cosas. Quiero compartir contigo mis humildes conclusiones.

¿Por qué un solo lenguaje para empezar?


Todos los lenguajes de programación, como todos los idiomas, tienen características únicas e historias fascinantes. Con algo de esfuerzo puedes hacer casi todo con cualquier lenguaje, pero no de la misma forma ni con la misma facilidad.

c#


Pero así como no dedicaría mi vida a aprender sanscrito o georgiano -que son idiomas preciosos-, tampoco dedicaría mi tiempo a aprender oscuros lenguajes de programación que solo se usan en universidades o bancos.

¿Qué debe tener el lenguaje ideal?


Para mí preguntarse qué lenguaje de programación es más difícil no tiene sentido, como tampoco lo tiene preguntarse qué idioma es más difícil. Es cierto que un lenguaje de programación puede ser complejo, pero eso no significa que sea más “difícil”.

Sí puede ocurrir que un lenguaje sea más difícil de leer, disponga de menos herramientas de aprendizaje o de una comunidad poco desarrollada. Esos son obstáculos objetivos.

Para mí, de cara a su aprendizaje, un lenguaje es atractivo si...

Tiene buena documentación, herramientas y usuarios
Tiene una sintaxis inteligible y atractiva
Permite obtener resultados de inmediato
Se puede usar literalmente para todo
Admite varios estilos de programación
Se lleva bien con otros lenguajes

Tiene documentación, herramientas y usuarios


Un lenguaje de programación puede ser muy potente, pero si no tiene documentación de calidad, apoyada por buenas herramientas y una comunidad de usuarios activa y colaboradora, será mucho más complicado aprenderlo.

La documentación no se reduce a las páginas de ayuda oficiales: también se compone de manuales y tutoriales producidos por docentes y programadores. ¿Hay libros sobre el lenguaje? Bien. ¿Son gratuitos y se distribuyen en formato electrónico? Mejor todavía.

pascal


En cuanto a las herramientas, hay que preguntarse si se proporcionan gratuitamente y para qué sistemas, cuáles entornos de desarrollo hay a disposición, y si existen recursos de aprendizaje interactivos, como juegos o aplicaciones web.

lenguaje


La comunidad es el aspecto más complicado de evaluar. Depende mucho de las preferencias personales de cada uno. Una comunidad puede ser grande pero poco activa o poco amigable. O directamente poco enfocada en “evangelizar”.

Tiene una sintaxis inteligible y atractiva

Una forma de clasificar los lenguajes de programación es haciendo referencia a su nivel de abstracción, en lo mucho o poco que se parecen a un idioma natural escrito.

Un nivel “bajo” se refiere a que el lenguaje es más cercano a la máquina y a sus instrucciones, que son difíciles de leer. Un nivel “alto” es más cercano a los humanos.

En busca de mi primer lenguaje de programación.


Por lo general, aprendemos un idioma natural antes de aprender a programar, y también contamos con rudimentos de inglés. Casi todos los lenguajes de programación usan para sus instrucciones palabras tomadas del inglés.

De un lenguaje que aspire a ser usado para el aprendizaje de la programación espero un nivel de comprensibilidad alto, muy similar al de un idioma natural.

Permite obtener resultados de inmediato


Hacer es mejor que leer. El aprendizaje es más fácil y duradero si es interactivo: puedes empapar tu cerebro de teoría, pero si no puedes ver los resultados de inmediato, difícilmente te quedarás con lo aprendido.

Por lo general, es más fácil aprender un lenguaje de programación interpretado (escribes código y lo ejecutas en el acto) que un lenguaje compilado (escribes código y creas un ejecutable). Es una cuestión de inmediatez: aprendes algo y lo pruebas.

Programacion



Al ser interpretado, un programa es más lento al ejecutarse, pero tiene otras propiedades que lo hacen interesante: es independiente del sistema operativo utilizado, su código es fácil de corregir y hay que preocuparse menos por el hardware.

Hay otro punto por el que un lenguaje interpretado es mejor para el aprendizaje: su código fuente es legible. Los programas compilados no se pueden inspeccionar en busca de ideas o para aprender cómo funcionan (a menos que hagas ingeniería inversa).

Se puede usar para (casi) todo


Hay lenguajes maravillosos para cosas tan concretas como las matemáticas (MATLAB), el dibujo (Logo), la consulta a bases de datos (SQL) o la síntesis de audio (CSound). En su campo, hacen un trabajo estupendo. Pero los sacas de ahí y son casi inútiles.

c#


Creo que un lenguaje de programación de propósito general, como Java, C o Python, es más idóneo para el aprendizaje porque no te constriñe a un dominio específico. La abstracción de un lenguaje así es ideal para hacerse con las bases de la programación.

Eso no quiere decir que los lenguajes de propósito general sean mejores que los específicos. Hay, de hecho, quien se pregunta si seguirán siendo los más populares dentro de unos años, dada la potencia de los lenguajes específicos.

Opino que aprender programación con un lenguaje específico es viable, pero condiciona excesivamente el aprendizaje. Y cuando me refiero específico no hablo solo del campo de aplicación, sino también de cosas ya mencionadas, como el estilo.

Admite varios estilos de programación


En programación, el paradigma es la forma o estilo en que el código de los programas se redacta. Hoy en día se habla de cuatro paradigmas fundamentales: imperativo, funcional, lógico y orientado a objetos. No te asustes, son conceptos sencillos:

Imperativo: primero un comando, luego otro, como en una receta
Funcional: metes datos y salen resultados, como en una calculadora
Lógico: defines el problema (lo qué quieres), no cómo resolverlo
Orientado a objetos: datos y métodos están en objetos; es como el LEGO

Los debates sobre cuál de estos paradigmas es mejor son violentos e interminables. Y no tienen, en mi opinión, mucho sentido, ya que un estilo determinado es más eficaz para ciertas cosas y no para otras, y si un programador es hábil, deja de importar.

pascal


Para evitar problemas, lo ideal es aprender un lenguaje que admita más de un estilo de programación. Y los hay. Muchos de los lenguajes modernos son multiparadigma, esto es, admiten más de un paradigma de programación.

Se lleva bien con otros lenguajes


Los lenguajes de programación no se han creado en un vacío: la mayoría derivan de los primeros lenguajes, y muchos se organizan en familias. Casi todos nacieron con el objetivo de superar las limitaciones de sus antecesores.

lenguaje


Varios lenguajes modernos comparten características de múltiples familias. Así, por ejemplo, Ruby ha recibido influencias de C++, Perl, Smalltalk y Ada, mientras que C# cuenta con parientes tan ilustres como Java y Pascal.

Las similitudes entre lenguajes facilitan el aprendizaje por la cantidad de recursos que pueden ser compartidos entre ellos. Y al ser más sencillo pasar de uno a otro, aportan un extra de motivación a quien desee aprender a programar.

En busca de mi primer lenguaje de programación.


Por último, cuando hablo de relaciones no solo me refiero a la similitud con otros lenguajes. Un buen lenguaje de propósito general puede actuar como “pegamento” para unir código escrito en otros lenguajes. Es práctico. Es bueno.


Qué lenguajes he descartado


Teniendo en cuenta los criterios que he mencionado más arriba, empecé descartando lenguajes. Soy consciente de aquí voy a ganarme enemigos para toda la eternidad, y por ello voy a dejar claro que se trata de una selección personal y sesgada.

Los primeros en caer fueron varios centenares de lenguajes poco populares y los de bajo nivel, difíciles de leer o simplemente duros para un principiante (Ensamblador, C++). Son potentes en manos expertas, pero no muy aptos -creo- para el aprendizaje.

Luego fue el turno de los demasiado específicos (R, MATLAB, Scratch) y también de algunos que, aun siendo muy interesantes, carecen de recursos suficientes para el aprendizaje desde cero y/o no eran lo bastante populares (Go, D, Lua).

Lenguajes interesantes y populares, como Visual Basic .NET y C# estuvieron a punto de entrar en mi selección, pero se quedaron fuera por su dependencia del ecosistema de Microsoft, de .NET y de su Visual Studio. Quise una mayor libertad.

El mayor debate interno lo tuve con C y PHP. Con C me hallaba ante un lenguaje importantísimo, pero compilado y algo duro de leer. Con PHP, estaba ante otro lenguaje importante, pero usado casi en exclusiva para el desarrollo web.

Todos ellos son lenguajes fantásticos, pero no llegaron a pasar mi selección y los dejé fuera. Al final me quedé con cinco…

Los cinco candidatos


Aquí están. Son los lenguajes que, en mi opinión, son más aptos para el aprendizaje rápido, moderno y amigable de la programación. Cabe destacar que algunos son muy populares y están muy solicitados en el mercado laboral.

Ruby, la gema que viene de Japón


Ruby es el décimo lenguaje más popular (datos TIOBE de agosto 2013). Es un lenguaje interpretado de propósito general. Tiene parientes ilustres como Perl, Lisp y Eiffel, y admite varios paradigmas de programación (funcional, imperativo, orientado a objetos).

Hoy en día este lenguaje, oriundo de Japón y creado para superar las limitaciones de Python y Perl, se usa para todo, desde programación web hasta scripting en uno de los muchos sistemas operativos en los que está presente.

Programacion

Python, el protegido de Google


Python es el octavo lenguaje más popular (datos TIOBE de agosto 2013). Es interpretado y compatible con varios paradigmas (orientado-a-objetos, imperativo, funcional). Pone un énfasis especial en la legibilidad.

Hoy en día Python es uno de los más usados en universidades y centros de enseñanza, y también en empresas como Google o Yahoo!. Su intérprete se distribuye con la mayoría de sabores de Linux.

c#

JavaScript, el motor de la Web 2.0


JavaScript es el noveno lenguaje más popular (datos TIOBE de agosto 2013). Omnipresente en las webs modernas, deriva de Java y C, pero tiene su propia sintaxis. Es multiparadigma e interpretado.

¿Qué dije más arriba sobre lenguajes demasiado específicos? Sí, en efecto, JavaScript es fundamentalmente un lenguaje web. Pero se usa para cada vez más cosas, y los recursos de aprendizaje a disposición son muchísimos.

pascal

Java, un clásico orientado a objetos


Java es el lenguaje más popular (datos TIOBE de agosto 2013). Es un clásico de la programación orientada a objetos, y aunque algunos lo critiquen, es uno de los lenguajes más usados en la enseñanza.

Su comunidad es enorme; su documentación, interminable. Para aprender programación orientada a objetos, es insuperable. Y aunque Java no sea el lenguaje más cool hoy en día, se puede hacer de todo con él. Por ejemplo, Minecraft.

lenguaje

Perl, la cinta adhesiva del shell


Perl es el undécimo lenguaje más popular (datos TIOBE de agosto 2013). Ha sido definido como "una navaja suiza", un lenguaje imprescindible para la administración de sistemas.

Su sintaxis increíblemente flexible y tolerante -con la que se escribe incluso poesía- y su naturaleza pragmática hacen que Perl sea una de las elecciones favoritas para aprender a programar. Su enorme comunidad se articula alrededor de CPAN.

En busca de mi primer lenguaje de programación.

Ha llegado el momento de elegir


Si quiero aprender a programar, tengo que ponerme a ello lo antes posible, y eso implica elegir mi primer lenguaje de programación. Es realmente difícil decantarse por una u otra opción. Quizá tú puedas ayudarme...

¿Con qué lenguaje debería empezar?


25 comentarios - En busca de mi primer lenguaje de programación.

9290789 +3
si eligen Java, pasen por mis post!
titorp14_v2
@9290789 ¿? pero te pregunté si era tuyo el video (osea el pelado del video sos vos?) no de que eran
9290789
@titorp14_v2 si te digo que soy yo pasas por el post?...si claro soy yo jaja
titorp14_v2
@9290789 ya lo toy bajando = es para saber si lo hiciste vos no vas a recomendar al pedo!! che ya mas o menos voy agarrando el código, pero me falta la parte de interfaz, quiero hacer un programa que al apretar control + C en un memo (te vaya agregando el link) x ej, para cuando hago un post de imagenes y hago control + c en el codigo fuente me agregue
 [img] LINK [/img] 

electroboy007 +2
c#
jjj, jarvis es el mejor
PD: Buen post, a mi tambien me gustaria aprender.
erick0012
Te interesaría algo de C# Sharp?
electroboy007 +1
@erick0012 si es uno de mis favoritos, es muy bueno a la hora de programar aunque conozco un poco mas del c++
DieLuk +1
yo uso eclipse y no entiendo un carajo
superjackdevil
El primer lenguaje que aprendí fue el HTML y HTML5 (era administrador web), después de ese estudie el lenguaje pyton ( que decían que era mas fácil) pero nunca aprendí nada de eso, se me hacia muy dificil xDDD
DanyAlejandro +1
Preferible Java. Ruby es demasiado joven y más que todo es una moda, primero todos decían que era el lenguaje del futuro o algo así, pasó un tiempo y ahora dicen que node.js es "como ruby pero sin apestar". Cada año sale un lenguaje nuevo que dice ser lo máximo, pero la verdad se sabe luego de unos años. JavaScript te deja con vicios para los demás lenguajes, tiene cosas muy raras (es "basado en objetos", no "orientado a objetos". Perl no te va a dar trabajo. Python es genial, pero aún no encuentra su nicho (sirve para todo, pero en todo hay opciones mejores cuando te juegas el trabajo).
erick0012
Tenés razón yo al menos prefiero apoyarme en lenguajes antiguos y no los nuevos que salen cada año.
ashir +1
Para empezar a programar NINGUNO de tus 5 elecciones final es buena. El MEJOR lenguaje para empezar a programar es Basic. Es facil y simple. Una vez que agarras lo basico con Basic puedes subir a un lenguaje mas maduro como Pascal, despues de que hayas programado mucho en Pascal puedes irte a un lenguaje orientado a objetos como Free Pascal o Java, y LUEGO podras escojer el lenguaje con el que te sientas mas comodo. En mi caso fue Free Pascal.

De seguro sale algun boludo a decir que Pascal no, pero la verdad es que Pascal no tiene nada que envidiarle a C/C++, y las versiones mas nuevas como Free Pascal tiene MUY poco que envidiarle a lenguajes como Java.
erick0012
Buen punto de vista, pero hay gustos, hay quienes les gusta empezar desde arriba. A mi me gusta desde en medio algo no tan dificil pero que tenga potencial.
aryix +1
Pascal es el mejor lenguaje para empezar porque fue creado para ese proposito. Free Pascal ofrece muchas cosas mejores que c y c++, aunque solo le faltan las variables locales estaticas que son como las globales pero solo visibles localmente.
johnpanther +2
De los mas usados en el mundo son Java, C y C++ los 2 ultimos me los enseñaron en la preparatoria junto a Visual Basic y el Java me lo están enseñando ahora en la uni (lic. sistemas computacionales) antes de empezar a aprender a programar recomiendo que aprendan sobre algoritmos. Recomiendo que aprendan Java por que multiplataforma
erick0012
¿En serio? A mi no me dan nada de eso en Prepa, igual me los he reuscado yo, me gusta bastante esto.

Gracias por comentar.
johnpanther +1
@erick0012 Es que en la preparatoria que estudie daban bachilleratos técnicos, yo escogí informática, aprendí muchas cosas y tengo mi titulo de técnico en informática (te presumo) xDD
CaputCruentus +1
Yo estudio Ingeniería Electrónica, para mi C++ está buenísimo, y es muy útil, todavía me falta un golpe de horno para el Assembler, pero veré que hago en estos cuatrimestres ...
Aprender desde un cero total, probá con Fortran (aunque leí que descartaste el VisualBasic que es casi lo mismo ...) es difícil, porque si bien decís que querés empezar de la nada, también das varios conocimientos interesantes, así que no estás "tan en bolas" .

De última, siempre está el Block de Notas y los archivos .bat jajajaja, pero por mi parte, creo que con C o Fortran tenés la posibilidad de hacer algo sencillo, complejizarlo y hacerlo viable para varias plataformas, sin ser lenguajes muy complejos.

De todas formas, mas hallá del lenguaje, el "secreto" de la programación es la optimización del código y de como se lo hace "No hagas algo que ya está hecho, mejor mejóralo o úsalo", es ahí donde con C tenes un amplio abanico para empezar.
titorp14_v2
yo arranqué con algoritmos dar vuelta un numero y demás giladas, después delphi, solo codigo, a los 6 meses pasé a la parte de interfaces, unidades y archivo, en el 2do año visual studio 2008, primero consola y despues interfaz, no es malo (ya que las empresas en mi ciudad usan .net por eso no enseñaron java) hace 2 semanas arranque a programar en java, es bastante parecido, muchos métodos iguales, mi objetivo es php ya que es lo que se está usando y muchos profes lo recomiendan.

en codigofacilito (canal de youtube) enseñan bastante aunque no mucho, pero lo basico sirve y hay varios lenguajes, uno de los expertos recomendó phyton, por si sirve, yo no lo he probado
erick0012 +1
Gracias por comentar
mxmetroid
Donde quedo el lenguaje G , LabVIEW ?
erick0012
La verdad no los conozco.

Gracias por comentar.
Agori +1
Algo no me quedó muy en claro, dices
"...Visual Basic .NET y C# estuvieron a punto de entrar en mi selección, pero se quedaron fuera por su dependencia del ecosistema de Microsoft, de .NET y de su Visual Studio. Quise una mayor libertad. ..." y luego nos invitas a aprender C#...
erick0012 +1
Lo estoy aprendiendo desde hace bastante ya, y me gusta porque desarrollo en PSVITA, en Android, hay un entorno para linux no lo he probado pero dicen que tiene basantes errores.
mxmetroid
Es muy bueno, existe desde 1980
Ripperar +1
Te felicito por el post, hoy en día es muy difícil ver con "que lenguaje me quedo", y esta bueno exponer características, pros, contras, etc. En mi casa se un poco de .NET, PHP, HTML... pero cada día me doy cuenta que Java, por ejemplo, se va adaptando a las cosas que yo desarrollo. Saludos!
erick0012 +1
Gracias por pasar y comentar.
ragnarok_023
Apenas voy a estudiar mi carrera en tecnologia de la informacion y comunicacion, desde ya me inclino por Phyton y C++ por ser los mas usados y porque su rendimiento es bastante acetable en las aplicaciones creadas con dichos lenguajes.

Desaconsejo Visual Basic porque a pesar de tener una facilidad de uso bastante buena las aplicaciones no tienen un rendimiento optimo, algo que por ejemplo reduciria el tiempo que puedes usar tu portatil corriendo dicha aplicacion.
muvisemaen +1
lo mas facil para empezar son los lenguajes como visual basic, pues no son demasiados complejos y no te mete mucho en temas complicados, si bien quieres algo un poco mas maduro para empezar el java esta bueno solo que para empezar si no sabes nada de programacion quiza batalles poquito con la abstraccion de las cosas. estudio eso y entre mis colegas del cole, todos concuerdan que lo mas comodo que han usado es java. ahi mi aporte en tu odisea mucha suerte y nos habisas que lenguaje elegiste
octaporinga +1
Yo todavía busco un lenguaje fácil para aprender rápido y que permita trabajar creando programas con interfaz desde cero. ¿Qué lenguaje recomiendan, el cual tenga una enorme cantidad de información para aprender? O sea, mucha info en internet y en castellano, pasos a pasos, ejemplos interesantes, y sobre todo, una comunidad en castellano. Tengo ideas grosas en la mente hace tiempo y busco que alguien por amor a Yisus, a Cristo, a Goku, etc., me ilumine el camino correcto!
TOMASDOWSKI
Visual Basic 6. Es fácilisimo, pero no es el mejor... igual estoy aprendiendo a usarlo con base de datos en el terciario.
abelnicolas1976 +1
Interesante post/consulta, pero hay un par de cosas que te olvidaste:
* Algoritmos: para definirlo rápidamente,un algoritmo es una métodología que mediante reglas definidas se usa para resolver un determinado problema
* Diagramas de flujo: para complementar lo de arriba tenés que tener una imagen mental del problema y luego plasmarla gráficamente
Junto con el aprendizaje de algoritmos (que no necesariamente tienen que ser complicados o complejos) vas aprendiendo el uso de diagramas, si no te gustan los diagramas, podés usar metalenguajes o pseudocódigo
* Algunas definiciones: algo que aparece en casi todos los lenguajes son los bucles, matrices, y expresiones condicionales y definición de funciones (entre otros elementos), fijate si podés aprender -aunque sea parcialmente- lo que significan y además lo que es sintaxis, semántica, sistema de tipos y algo de álgebra booleana.
Esto te lo digo porque programar no es sólo escribir código, cuando aprendas otras cosas que deben acompañar al lenguaje que hayas eligido, vas a entender por qué escribí lo de arriba, por experiencia te digo que conozco mucho más del tema ahora que cuando dominaba 27 lenguajes de máquina.

Exitos
erick0012 +1
Gracias por el consejo y por comentar lo tendré en cuenta.
AdrianF31
donde yo voy a estudiar. empece con c# y python.
pero no se programar con herencia. estoy al horno
the_winter
pascal

y luego


link: https://www.youtube.com/watch?v=tTTA1znmmSI
TOMASDOWSKI
Yo empecé con un lenguaje propio de la UNLP que algo de Da Vinci o algo así (el de robot, con papeles y flores en una ciudad) (Como lo odié!!!). Luego con C que me encantó. Y ahora estoy aprendiendo Visual Basic + MS Access.
Herbo352
Yo estoy aprendiendo con Python, lo único es que se necesita leer un poco de teoría de POO o si no te pierdes, buen post!
noiecity2 +1
No es por nada, pero PHP es muy buen lenguaje de programación y fácil de aprender, pero me quedo con perl.
qleonazo1 +1
te dejo +5, sirve de gran ayuda, y los comentarios todos bueno, al final da para uno sacar sus conclusiones ejejej, salu2