En que lenguaje empiezo a programar?

Hola a todos, quería preguntaros que lenguaje de programación es el ideal y cuál es la guia ideal para empezar a programar en un lenguaje de programación. Os pregunto esto porque por mucho que busque en "San Google" no encuentro nada adecuado.
Muchas gracias y un saludo, NuhR.
Depende... del SO, de lo que te gustaría programar, del tiempo a dedicar... vamos, tus metas.
Yo te recomendaría Python o C. De todas formas, usa la búsqueda avanzada que me suena que había un hilo preguntando lo mismo que tu.
No se programar en ningun lenguaje, pero, he leido los primero capitulos de tutoriales de unos 5 o 6 lenguajes, y el que me pareció mas asequible fue python, c es un rollo, y eso que a ese fue el que mas tiempo dedique, incluso hice alguno programillas, pero te aseguro que gestionar algunas cosas es un rollo, igual que declarar el tipo de varibles y cosas por el estilo, ademas en pytho puede ejecutar el programa en tiempo real, en c es escribir, comprobar, compilar y ejecutar. En c tienes que escribir un programa de al menos seis linea para un hello world y en python escribes print 'hello world' y listo ya tienes un programa en pytho, en c entre los includes, los main () y return 0, a y que no se te olvide un dichoso ";" por que si no ya la hemos liao,pues que se te va la tarde (exagero).

En definitiva, empieza en python, y luego si te apetece profundic¡za en c.
Yo estoy empezando ahora y segun comenta el profesor, si sabes programar en C, luego adaptarte a otro lenguaje es relativamente sencillo. Y si, C es un toston.
C es aburrido como decís. Y sí, un tostón. Pero es una base esencial para poder comenzar... aunque Python no es para nada una maña elección ;-) Aunque eso sí, cuando comencéis con Python, ya no querréis ningún otro [+risas] [+risas] [+risas]
C es un toston? Uy que poquitas ganas de programar se ven por aqui...
JanKusanagi escribió:C es un toston? Uy que poquitas ganas de programar se ven por aqui...


jejeje, la verdad es que sí... para aprender a programar yo creo que hay que empezar por c. aunque no sea a un nivel muy alto (punteros, memoria...), por lo menos saber hacer tus cositas...

luego ya tirarás para donde quieras, pero c es EL LENGUAJE. cuando tengas algo de soltura pasate a c# o java, que son "parecidos" en sintaxis, pero con otra concepción.
JanKusanagi escribió:C es un toston? Uy que poquitas ganas de programar se ven por aqui...

Bueno, y eso que nadie le ha dicho que comience con ensamblador [+risas] [+risas] [+risas]
Como primera aproximación si te asusta esto un poco, empezaría por pascal, como lenguaje no vale para nada pero bueno, es relativamente sencillo aprender lo básico y la parte de punteros, luego ya te puedes pasar a lenguajes de verdad (C)
Rufa escribió:Como primera aproximación si te asusta esto un poco, empezaría por pascal, como lenguaje no vale para nada pero bueno, es relativamente sencillo aprender lo básico y la parte de punteros, luego ya te puedes pasar a lenguajes de verdad (C)

A nivel principiante las diferencias entre C y Pascal son mínimas, sin embargo con C tienes un margen mucho mayor de aprendizaje (básicamente, si llegas a dominar C puedes pasar a cualquier otro lenguaje sin demasiadas complicaciones) por lo que yo empezaría, y de hecho, empecé, por C, luego pasé por Visual Basic, Pascal, Java, C++...
Baek escribió:
Rufa escribió:Como primera aproximación si te asusta esto un poco, empezaría por pascal, como lenguaje no vale para nada pero bueno, es relativamente sencillo aprender lo básico y la parte de punteros, luego ya te puedes pasar a lenguajes de verdad (C)

A nivel principiante las diferencias entre C y Pascal son mínimas, sin embargo con C tienes un margen mucho mayor de aprendizaje (básicamente, si llegas a dominar C puedes pasar a cualquier otro lenguaje sin demasiadas complicaciones) por lo que yo empezaría, y de hecho, empecé, por C, luego pasé por Visual Basic, Pascal, Java, C++...

Completamente de acuerdo. C ofrece más cosas que Pascal (lo cual puede liarte un poco al principio), pero te servirá en La vida Real™
Buff, ni caso, empieza por python, verás resultados mucho mas rápido que con c, además tampoco es muy diferente en su sintaxis a c, ademas puedes hacer cosas muy potentes o muy sencillas con python. Eso si, hay mucha mas documentacion de c en la red que de python, al menos en español. Toma, esta guia esta muy bien:
http://mundogeek.net/tutorial-python/

Pero hagas lo que hagas decídete ya antes de que nos tiremos con algo. Saludos.
Para empezar, C++. Para seguir Java, que guste o no tiene mucha proyección profesional. Para disfrutar programando, dicen que Python, pero yo no lo he probado. Es que soy mas de programar por dinero que por ocio [sonrisa]

Las lenguas muertas no tienen mayor interés que el de aprenderlas. Así que pudiendo escoger entre aprender inglés, que te va a servir para todo, o latín que te va a servir para... poder decir que sabes latín y leer las columnas de las iglesias, pues es cuestión de gustos.
PrivateJerson escribió:Las lenguas muertas no tienen mayor interés que el de aprenderlas.

Y de que """lengua muerta""" estamos hablando?
JanKusanagi escribió:
PrivateJerson escribió:Las lenguas muertas no tienen mayor interés que el de aprenderlas.

Y de que """lengua muerta""" estamos hablando?


No me refería a ninguna en concreto.
Aprender con Python puede hacer que cojas vicios feos. El hecho de no ser un lenguaje tipado como PHP puede que después no tengas en cuenta la conversión de formatos, a usar el famoso método main....

Yo empezaría con C o Java.
C es el clásico, el inicio de todo... Saber C te va a permitir usar casi de forma instantánea un montón lenguajes más.
Sin embargo, Java tiene dos ventajas geniales para novatos: Nada de punteros y compilación en caliente.
Esta última te hará saber en tiempo real si tienes o no algún fallo de sintaxis y olvidarte de los core dumped típicos del C.

A mi personalmente el C no me termina de convencer, pues "necesito" Orientación a Objetos casi siempre, así que en cuando tuviese n poco de manejo con este migraría a C++.
elchicosinhada escribió:Sin embargo, Java tiene dos ventajas geniales para novatos: Nada de punteros y compilación en caliente.


Lo de los punteros es precisamente la principal desventaja de Java para aprender. Hay dos cosas que todo programador debe comprender a la perfección, una son los punteros y la otra la recursividad. A un programador que está aprendiendo hay que tenerlo a pan y agua. Un manual de C, papel y boli, un "bloc de notas" y un compilador pelón [sonrisa]
elchicosinhada escribió:Aprender con Python puede hacer que cojas vicios feos. El hecho de no ser un lenguaje tipado como PHP puede que después no tengas en cuenta la conversión de formatos, a usar el famoso método main....

¿Te das cuenta de la burrada que acabas de decir? ¡¡¡Python es un lenguaje fuertemente tipado!!! A la más mínima que utilices una variable con otra variable de un tipo con otra de otro tipo, vas a tener un bonito type error.

In [104]: 'Tengo ' + 42 + ' coches'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)

/home/nintux/<ipython console> in <module>()

TypeError: cannot concatenate 'str' and 'int' objects

In [105]:


En PHP en cambio sí que se te permite sumar un int y un str, es decir, totalmente lo contrario a lo que decías.

Además, Python te da buenos hábitos, como el identar, cosa que se debería hacer siempre en cualquier lenguaje :)
Yo te recomiendo que aprendas C antes de nada. Si es un rollo, hay lenguajes más faciles y tal, pero es que aprendiendo a programar decentemente en C luego no tendrás problemas con otros lenguajes de alto nivel. También estaría bien que cuando dominases el C aprendieras C++ para que te quedes con los conceptos de la programación orientada a objetos. Llegados a este último punto te echen lo que te echen no vas a tener problemas teniendo Internet a mano para documentarte.
xzibit escribió:Yo te recomiendo que aprendas C antes de nada. Si es un rollo, hay lenguajes más faciles y tal, pero es que aprendiendo a programar decentemente en C luego no tendrás problemas con otros lenguajes de alto nivel. También estaría bien que cuando dominases el C aprendieras C++ para que te quedes con los conceptos de la programación orientada a objetos. Llegados a este último punto te echen lo que te echen no vas a tener problemas teniendo Internet a mano para documentarte.


+1, y yo no lo veo tan rollo

Ahora mismo estoy siguiendo un libro, C/C++ Curso de programación de Fco. Javier Ceballos y la verdad es que se hace ameno el aprendizaje, salvo que algunas veces pone unos ejecicios para que hagas que hay que pensar bastante.

Creo que C es el lenguaje que mas me gusta, intente con python y java y no me convencieron, python era demasiado...¿simple?...y java era un relio, al menos para mi
no sabes programar nada? aprende python pues...
section .text
    global _start

_start:
    mov edx,len
    mov ecx,msg
    mov ebx,1
    mov eax,4
    int 0x80

    mov eax,1
    int 0x80

section .data
    msg db 'Aprende ensamblador',0xa
    len equ $ - msg


Bromas aparte, debes aprender C.

Un saludo.
feler escribió:
section .text
    global _start

_start:
    mov edx,len
    mov ecx,msg
    mov ebx,1
    mov eax,4
    int 0x80

    mov eax,1
    int 0x80

section .data
    msg db 'Aprende ensamblador',0xa
    len equ $ - msg


Bromas aparte, debes aprender C.

Un saludo.

Pero con Python puedes volar, para algo tenemos el módulo antigravity [+risas] [+risas] [+risas]
empezar a programar en python me parece una aberración, yo creo que todo el mundo debería empezar en c.
Yo empecé con C. Ahora estoy con Python y veo el cielo, porque es mucho más sencillo, y después de haber tenido el truño de C, te aseguro que todo lo demás te alegrará la vida.

Sólo por vivir esa sensación debes empezar con C, aunque sufras
Jason Bourne escribió:Yo empecé con C. Ahora estoy con Python y veo el cielo, porque es mucho más sencillo, y después de haber tenido el truño de C, te aseguro que todo lo demás te alegrará la vida.

Sólo por vivir esa sensación debes empezar con C, aunque sufras

Somos sadomasoquistas, pero sí, hay que vivir la experiencia xD
Madre mia que odio profundo a C. Pues sinceramente a mi me parece un gran lenguaje, ademas, estoy completamente de acuerdo con lo que dicen por ahi, si no sabes lo que es un puntero, o como usar la recursividad, vas bastante mal.

Por otro lado, yo siempre he pensado que para poder aprender a programar, tambien se deberían de tener conceptos básicos de que tiene una máquina por dentro y como funciona. Eso te ayudará mucho a ser un buen programador, y para eso tampoco estaría mal que mriases un poquito de ensamblador, aunque sea más complejo.
... o como usar la recursividad, vas bastante mal.


En este caso.... C no es que ponga muy 'a huevo' hacer algoritmos recursivos (todo lo contrario, diría yo).

- ferdy
Yo aconsejo C# o Java para empezar , luego ya cuando tengas a dentro te metes en C y C++.
Aprender a programar... para?.

Si lo quieres porque vas a entrar en la universidad, empieza primero por el pseudocodigo. Inutil?, si, te ayuda a empezar a comprender la programación para hacer los primeros algoritmos?, es de lo mejor.

Luego, sin ninguna duda, C. Y luego ya, programación orientada a objetos.

Al menos, es lo que yo veo la transición mas logica.
Yo aprendí algo de C por cuenta propia con unos libros de mi hermano, más que nada por curiosear. Cuando entré a la universidad lo primero que me dijo el profesor de programación es que empezar con C estaba bien pero que creaba malos hábitos. Comentar que a los de informática nos enseñaban como primer lenguaje Ada, a los telecos, químicos e industriales les enseñaban pascal.

Después de Ada enseñaban C, C++, lisp y java, más o menos en ese orden.

Yo empezaría por C.
A mí en la técnica de teleco me enseñaron primero ensamblador, luego C (bastante en profundidad), luego java, y por último por encima php.
Creo que ha sido una progresión acertada, aunque en mi opinión el ensamblador te lo puedes saltar XD yo empezaría por C.
Ferdy escribió:
... o como usar la recursividad, vas bastante mal.


En este caso.... C no es que ponga muy 'a huevo' hacer algoritmos recursivos (todo lo contrario, diría yo).

- ferdy



Cierto, nada que ver con con LISP [fumando]
d4rkb1t escribió:Aprender a programar... para?.

Si lo quieres porque vas a entrar en la universidad, empieza primero por el pseudocodigo. Inutil?, si, te ayuda a empezar a comprender la programación para hacer los primeros algoritmos?, es de lo mejor.

Luego, sin ninguna duda, C. Y luego ya, programación orientada a objetos.

Al menos, es lo que yo veo la transición mas logica.


+1 Luego uno tiene mas facilidad para comprender y desarrollar la aplicacion, parece una tonteria pero ayuda bastante.
Cierto, nada que ver con con LISP


Ahí quería llegar :P
Los hombres de verdad programan en Fortan77.

Pero vaya, si eres una nenaza, supongo que el C esta bien.

En serio, el C creo que es lo mejor para empezar. Yo llevo años con Fortran por ejemplo y ahora tengo malos hábitos y sobretodo limitaciones.
Eso si, quien haya dicho que aprender una "lengua muerta" es una tontería se equivoca. Siempre podrás programar, más o menos limitadamente, pero siempre podrás tener tus programas.
lovechii5 escribió:Los hombres de verdad programan en Fortan77.

Pero vaya, si eres una nenaza, supongo que el C esta bien.

En serio, el C creo que es lo mejor para empezar. Yo llevo años con Fortran por ejemplo y ahora tengo malos hábitos y sobretodo limitaciones.
Eso si, quien haya dicho que aprender una "lengua muerta" es una tontería se equivoca. Siempre podrás programar, más o menos limitadamente, pero siempre podrás tener tus programas.


No sólo al hecho de programar en sí se limita, sino que también te "estructura" de la cabeza para todo lo que tengas que aprender de programación. Personalmente pienso que todo lo que aprendas de programación bienvenido sea, nada cae en saco roto
Un dato curioso:

Fuente: http://www.vivalinux.com.ar/articulos/p ... divertidos

Es más divertido programar en Python y Ruby que en C# y Java

Stack Overflow es un popularísimo sitio donde sus más de 72.000 programadores registrados pueden publicar sus preguntas, consultas o pedir sugerencias y dejar que otros las respondan; las respuestas son luego calificadas por quien las pidió, creando una valiosísima base de datos de conocimiento en una gran variedad de tópicos.

Recientemente los creadores de Stack Overflow liberaron su esa base datos bajo una licencia Creative Commons, y los estudios independientes de sus números no se hicieron esperar. Por ejemplo, un experto realizó operaciones de data mining con SQL Server y Excel.

Pero más interesante para nosotros son estos resultados de un experimiento que demuestra que lenguajes "corporativos" como C# y Java aumentan sus preguntas durante los días de semana laborables, disminuyendo su cantidad los fines de semana. Lo llamativo es que exactamente lo contrario sucede con lenguajes dinámicos como Python y Ruby. Según las palabras de su autor, la conclusión es sencilla:

“Mi teoría es que los programadores eligen usar lenguajes como Python y Ruby para sus proyectos personales, a pesar de sus debilidades, porque es más divertido programar en esos lenguajes”.
K. Ichigo escribió:Un dato curioso:

Fuente: http://www.vivalinux.com.ar/articulos/p ... divertidos

Es más divertido programar en Python y Ruby que en C# y Java

Stack Overflow es un popularísimo sitio donde sus más de 72.000 programadores registrados pueden publicar sus preguntas, consultas o pedir sugerencias y dejar que otros las respondan; las respuestas son luego calificadas por quien las pidió, creando una valiosísima base de datos de conocimiento en una gran variedad de tópicos.

Recientemente los creadores de Stack Overflow liberaron su esa base datos bajo una licencia Creative Commons, y los estudios independientes de sus números no se hicieron esperar. Por ejemplo, un experto realizó operaciones de data mining con SQL Server y Excel.

Pero más interesante para nosotros son estos resultados de un experimiento que demuestra que lenguajes "corporativos" como C# y Java aumentan sus preguntas durante los días de semana laborables, disminuyendo su cantidad los fines de semana. Lo llamativo es que exactamente lo contrario sucede con lenguajes dinámicos como Python y Ruby. Según las palabras de su autor, la conclusión es sencilla:

“Mi teoría es que los programadores eligen usar lenguajes como Python y Ruby para sus proyectos personales, a pesar de sus debilidades, porque es más divertido programar en esos lenguajes”.

Una chorrada como un piano.
xzibit escribió:Cierto, nada que ver con con LISP [fumando]


Pues una de mis eternas asignaturas pendientes (no soy informático, así que lo que sé es lo que voy tocando yo por mi cuenta) es la programación funcional: lisp o mejor aún haskell.
Si Haskell te llama la atención me han hablado bien de http://book.realworldhaskell.org/read/ y lo que vi en su momento no me disgustó. Yo aprendí por 'la otra vía' (la vía formal, demostraciones, ...); con el libro de Bird y con 'Razonando con Haskell'

Tambien me han dado buenas referencias de Programming in Haskell de Graham Hutton pero no lo he leído.

Saludos.
Ferdy escribió:Tambien me han dado buenas referencias de Programming in Haskell de Graham Hutton pero no lo he leído.


Pues no te defraudara ya que es bastante bueno (y el mas conocido).

Existe esta lista: http://www.haskell.org/haskellwiki/Books

Un saludo.
43 respuestas