Ayuda sobre programacion !!!!

hola a todos,
llevo tiempo intentando estudiar programacion, he encontrado diversos tutoriales y cursos que van muy bien,
el unico problema es:
con que lenguaje comienzo???
he estado mirando y los principales para los novatos que no saben mucho(como yo) comienzan por el Pascal( corregidme si me equivoco) y luego siguen con C, etc...
que me recomendais como lenguaje para un completo novato??
Saludos y gracias
Bueno, lo que preguntas se sale de la tematica, pero voy a ver si lo enfoco mas al tema del foro.

Esto habria sido mas correcto en PC > Varios

Como lenguaje de programacion asi, sin tener conocimientos, recomendaria C en vez de pascal. Pascal es muy didactico y es muy sencillo de aprender, pero otros lenguajes como java se parecen a C, de tal forma que sabiendo C es mas facil aprender otros lenguajes.

Tambien C permite hacer muchas cosas que pascal no puede, pero eso ya se saldria un poco de lo que preguntas. Para aprender los dos estan bien, pero yo apostaria mas por C que por pascal.

De todas formas te digo una cosa: una vez sepas programar bien en un lenguaje veras que aprender uno segundo es facil, y ya cuando sepas dos o tres lenguajes programaras en lo que te echen :D.

Que uses manuales y tutoriales me parece estupendo, sirven de apoyo al principio, pero una vez ya estes algo suelto con el lenguaje que uses y veas que puedes hacer cosas sin mas ayuda de la necesaria te recomendaria que mirases codigos fuente, y es que el software libre está muy bien escrito y muy bien documentado, y se aprende mucho mirando código escrito por otras personas.

Piensa que el codigo abierto está escrito por personas que ni se conocen y que programan muy bien, y es por eso que documentan mucho y tienen mucho cuidado para que otras personas entiendan lo que han hecho.

La programacion es en gran medida, y contra lo que muchos digan, un arte. Puedes hacer un codigo chapucero que ni tu mismo entiendas cuando pasen un par de semanas, o hacer un codigo muy claro y muy bien escrito que entiendan otras personas. El software libre es de este segundo tipo, y por eso te digo que mirando codigos fuente aprenderas mucho.

Saludos
Dicen que el C es uno de los lenguajes más dificiles... aunque normalmente es el primero que enseñan. Yo llevo unos dos meses con el y empiezo a hacer mis pinitos (nada complicado, cosas con arrays, una pequeña agenda...) y la verdad no me parece tan complicado, pero es que claro, no he probado otros lenguajes. Lo único que me fastidia es que nos enseñan usando librerias no estándares como conio.h y me resulta dificil hacer los ejercicios de clase en Linux...

Un lenguaje que parece sencillo es el Python, hay un manual de introducción muy bueno aquí y ejercicios y prácticas. Muy recomendable.
Totalmente de acuerdo con RaUleX, yo tb me decantaria por C.

Tambien he oido que Python es muy didactico y que esta muy documentado. Miraré el link que ha dado khosu haber que tal (yo de python ni idea, solo he visto un poco de codigo en algunos scripts que tengo).
juer!!! que rapido habeis respondido XD XD
bueno pues... entonces me decanto por el C, gracias a todos, tengo varias preguntas mas:
que linux me recomendais que ponga para comenzar??
que programa necesito para programar y compilar en C??
es dificil el linux??
Saludos y gracias a todo !!!!!!!
Yo actualmente pienso que lo más didáctico es Pascal para estructurada, y Java para OO.

C puede dar muchos dolores de cabeza, si no se tienen las ideas bien claras.
Yo actualmente pienso que lo más didáctico es Pascal para estructurada, y Java para OO.


Claro, pero no le daras Java a alguien que se inicie en programacion no? (para mi eso seria un harakiri)

que linux me recomendais que ponga para comenzar??


Knoppix si quieres ver primero 'de que va linux'. Para instalarlo en el PC pos el mas facilito es Mandrake.

que programa necesito para programar y compilar en C??


Para compilar sobre linux GCC (incluido en todas las versiones) y para programar a mi me gusta vim (peaso editor :cool: ). Si buscas algun entorno de programacion te recomendaria Anjuta http://anjuta.sourceforge.net

es dificil el linux??


No, pero es importante leer bastante y documentarse.
Escrito originalmente por quelcom


Claro, pero no le daras Java a alguien que se inicie en programacion no? (para mi eso seria un harakiri)



En la mayoría de las carreras con planes renovados se empieza en Java ;), y creéme es MUY didáctico.

Eso de que detectes los fallos en tiempo de compilación, y la compilación en caliente es una maravilla. Incluso se puede simular la programación estructurada, así que no veo porque no.
No te lo voy a negar no, pero empezar con Java sin tener una base de programacion estructurada y modular ( Pascal, C ... ) a mi me parece un poco 'bestia'. Es solo opinion personal claro.

Pos en mi facultad lo primero es C. Alomejor en Lleida estamos un poco retrasaos nose... [ayay]
....lo que esta claro es que C es el presente y parte del futuro...no le veo ke de malo tiene C para aprender..si da dolor de cabeza es bueno, significa que estas pensando xD

y de java, mucha publicidad, por lo demas no le veo nada "nuevo" en C se puede hacer TODO y si no __asm__(); :P
Escrito originalmente por kriptoney
que linux me recomendais que ponga para comenzar??

Esa es una pregunta respondida hasta la saciedad: mandrake y knoppix
que programa necesito para programar y compilar en C??

Bueno, en otros SSOO como windows necesitas instalar un IDE y un compilador de C. El IDE digamos que es un programa que te ayuda a programar remarcando la sintaxis y permitiendote hacer algunas cosas. Mi IDE favorito en linux es el ANJUTA :)
En linux no necesitas instalar ningun compilador, ya viene instalado. Es el GCC
es dificil el linux??

Es otra pregunta respondida hasta la saciedad.

Nos nos importa ayudar, ya lo has podido comprobar, pero te agradeceriamos bastante que buscases respuestas antes de hacer preguntas que ya han sido mil y una veces respondidas ;)

Por cierto, mirando la fecha, la hora y la gente que esta posteando me parece que mas de uno (como yo) no ha salido para estudiar pero finalmente ha pensado que pasa olimicamente de estudiar XD

Saludos
Escrito originalmente por GTTURBO

y de java, mucha publicidad, por lo demas no le veo nada "nuevo" en C se puede hacer TODO y si no __asm__(); :P


Hombre, nada nuevo... La POO si que es el futuro. C es casi hoy en dia sólo para cosas muy puntuales. Y el poder corregir todos los fallos (o casi todos) en tiempo de compilación, quita muchísimas horas de debug, pero claro, tiene el inconveniente de ser bastante lento de momento en comparación.


Escrito originalmente por RaUleX


Por cierto, mirando la fecha, la hora y la gente que esta posteando me parece que mas de uno (como yo) no ha salido para estudiar pero finalmente ha pensado que pasa olimicamente de estudiar XD

Saludos



Exámen de estructuras de datos esta mañana, como que no me apetece de momento ponerme a estudiar para el del martes XD
Escrito originalmente por Churly
Exámen de estructuras de datos esta mañana, como que no me apetece de momento ponerme a estudiar para el del martes XD

Te entiendo perfectamente :)

Que par de pelotazos me estaria tomando ahora de no ser los los malditos examenes [+furioso] [+furioso] [+furioso]. Lo curioso es que en época de examenes es cuando mas toco internet y mas pierdo el timpo en no hacer nada, no se por qué (o quizá si [tomaaa])

Suerte a todos y feliz crujida [bye] (y perdonad el offtopic XD)
Hola a todos!!!!
gracias por contestar a mis dudas, y perdon por repetir algunas preguntas que ya se habian hecho en el foro, muchas gracias a todos
Saludos
Pues le he oído a más de uno, a más de dos y a más de tres que lo mejor es aprender common lisp. Hasta tal punto, que yo, en cuanto tenga un poco de tiempo libre quiero hacerlo.

Lo cierto es que Eric R. Raymond en Cómo convertirse en un hacker aconseja aprender al menos cinco lenguajes de programación: python (porque es bueno para empezar), perl (porque es el lenguaje por excelencia de la administración), c (porque es quien es), java (no recuerdo exactamente por qué, pero decia que tampoco es malo para empezar) y common lisp. Y con common lisp se deshacía en halagos.
auxiliar tio, ahí me has llegado.

Yo ya he programado en clisp varias cosas y en mi vida he visto un lenguaje mas .... aarrrgggg ODIADO cawentocawentocawento que ese.

No solo la sintaxis es confusa, el lenguaje está limitado, la documentación es escasa, pobre y antigua, sino que además es un lenguaje con el que no se puede hacer ... pues prácticamente nada.

Tiene sus aplicaciones. Yo lo he usado para hacer programas de IA y si es verdad que te facilita algunas cosas, pero es que como ya digo la sintaxis es confusa, el lenguaje está limitado, etc. ... aparte es programación funcional y la recursividad es algo que cuesta mucho coger. Yo ya estoy habituado a ella, pero al principio lo pasas muy mal.

Parece mentira, pero a la hora de hacer los programas de IA nos jodia mucho tenerlo ya todo pensado, planificado y estructurado y tirarnos una santa tarde en hacer una función de 5 o 6 líneas. Yo personalmente ya sé programar en varios lenguajes, entre ellos CAML, que tambien es funcional, y sé que parece mentira pero es que estuvimos 2 o 3 una tarde para hacer ¡¡¡una función!!!, y otra tarde hasta que conseguimos hacer ¡¡¡un registro!!!, y otra tarde hasta que ...

Además tambien tiene otra serie de peculiaridades como que todo son funciones (los if, dotimes, etc. devuelven valores, y hasta que lo descubres te vuelves loco), la notación es prefija, la sintaxis es confusa y muy diferente a otros lenguajes ...

Me parece estupendo que la gente lo use, haga cosas con él y se ¿divierta?, y si el LISP se le queda corto puede usar librerias como prodigy para hacer planificadores.

Y eso por no hablar de los paréntesis. Hay una coña que dice que LISP significa:

Stupid Parenthesis

si algun dia programais en LISP entendereis porqué, se os grabará a fuego, os lo aseguro ;)

Saludos


EDITO: respeto mucho la opinión de Raymond, pero pienso que en el momento de decir eso habia fumado algo más que tabaco [fumando].

El lenguaje tiene muchos seguidores, y aprenderlo creo que solo tiene dos metas:

1- Que os manejeis bien con la recursividad
2- Que trateis de evitar la recursividad :P

En otro hilo si quereis hablamos de por qué emplear recursividad en programación es bueno y malo. En mi opinión, tiene más de malo que de bueno.


Saludos de nuevo [bye]
Pues según he podido leer por ahi, los lenguajes funcionales (como por ejemplo haskell) son la transición al futuro, siendo este (el futuro) los llamados lenguajes naturales (creo que esto es más teoría que otra cosa...)

Oigo maravillas de ellos, por lo que me han dicho siempre, la idea está en cambiar el chip.

PD: Si no he aprendido clisp es porque por alguna extraña razón lo asocio a emacs :D y emacs y yo somos enemigos.

Salu2.Ferdy
Escrito originalmente por RaUleX
auxiliar tio, ahí me has llegado.


Yo ya he dicho que no sé lisp y no he programado en él en mi vida, pero que por lo bien que hablan algunos de él, me ha entrado curiosidad y en cuanto esté libre (allá por julio) me pondré a curiosear con él.

Si tu experiencia es mala, pues vete tú a saber: a lo mejor tienes razón o a lo mejor es que estás demasiado viciado con la sintaxis estructurada de C, Pascal y demás programas que la imitaron (me parece) de Algol.
Evidentemente será MUY distinto, me explico:

No podemos comparar lenguajes procedimentales con funcionales, imagino que no es solo cambiar la idea de la sintaxis, sino la idea de pensar al programar

Salu2.Ferdy
Ya auxiliar, lei tu post ;). Si digo que me has matado es porque esperaba no volver a leer la palaba "lisp" en mi vida :P

Todos sabemos lo que es programación estructurada y lo que es POO. El paso entre uno y otro es más o menos sencillo, pero la forma de programar es básicamente la misma.

La forma de programar funcionalmente es totalmente distinta. Cambiar el chip es dificil, pero una vez lo cambias ves que la forma de programar "puede ser" mucho mas potente. Digo que "puede ser " porque cosas triviales con programación estructurada son muy dificiles de conseguir con programacion funcional y al revés, es por eso que aplicaciones de IA o como dice Ferdy, el acercamiento al lenguaje natural, es mas fácil hacerlo con programación funcional.

La programación funcional tiene que luchar en varios frentes:

1- Lo comercial es lo iterativo: C, C++, JAVA, etc.
2- La mayoria de los programadores no saben programar funcionalmente.
3- Enseñar programacion funcional es más dificil que programación iterativa.

y, debido a esas 3

4- La programación funcional está relegada en un rincón y faltan muchas cosas por hacer con ella. No sólo aplicaciones, sino buenos intérpretes, lenguajes manejables, librerias de "ámbito general", etc.

Es mi opinión, claro.

Si a la programación funcional llega un momento en el que le coges cariño y todo :). A mi no me gusta por lo "poco" que se puede hacer con ella, no sirve en ámbito general, y LISP no me gusta porque odio su sintaxis, es para hacer el homólogo de un bucle for y me tiré horas (y porque al final vinieron a ayudarme).

Y Ferdy, tu asociación no es incorrecta. Yo usaba el xemacs como IDE de clisp ;)

Saludos
4- La programación funcional está relegada en un rincón y faltan muchas cosas por hacer con ella. No sólo aplicaciones, sino buenos intérpretes, lenguajes manejables, librerias de "ámbito general", etc.

Hombre, lenguajes no faltan para programación funcional. Ahí está Erlang, por ejemplo. Lo que pasa es que no se puede usar para aplicaciones para las que no está pensada. Para las que sí está pensada, es mucho más apropiada que la procedural. Por ejemplo, una comparativa graciosa:

http://www.sics.se/~joe/ericsson/du98024.html
Escrito originalmente por RaUleX
Lo curioso es que en época de examenes es cuando mas toco internet y mas pierdo el timpo en no hacer nada, no se por qué (o quizá si [tomaaa])


De curioso nada... a mi me pasa justo lo mismo X-D

salu2
Y a quién no XD, con decir que yo migré totalmente a Linux durante los exámenes de Junio [reojillo] [ginyo]


Tengo un profesor que es un entusiasta de la programación funcional, quizá el año que viene me meta a ella. Usa Haskell.
No solo la sintaxis es confusa, el lenguaje está limitado, la documentación es escasa, pobre y antigua, sino que además es un lenguaje con el que no se puede hacer ... pues prácticamente nada.


Como que no se puede hacer nada???

Yo resolví el problema de las torres de Hanoi con un lenguaje funcional, en concreto el sml XD

Yo creo que aparte de problemas matematicos, poquita cosa mas se puede hacer con estos lenguajes.

Lo bueno lisp, sml, etc.. es que no tienen restricciones de tipos de datos, la recursividad es el pan de cada dia, una función pude recibir como parametros funciones que a su vez reciben como parametros mas funciones (osea una rallada pero mi profesor decia que era util XD ) , es muy facil manejar listas. el codigo es muy claro y conciso...

Yo lo veo mas como algo para adquirir un poco mas de soltura en la programación y poquitas cosas mas.
Lo curioso es que en época de examenes es cuando mas toco internet y mas pierdo el timpo en no hacer nada, no se por qué (o quizá si )

Dímelo a mí. He aprovechado los ratillos para cambiarle el disipa al micro, reinstalar la MDK (taba mu malita ya), aprender a ripear alguna peli, elegir un equipo para la moza que le montaré la semana que viene con su overclock incluído, todo mientras preparo el papeleo para irme a estudiar fuera (esto por obligación de las fechas) y alguna cosa más que me dejaré.
La época de exámenes es el momento perfecto para aprender a hacer cualquier cosa, siempre que no tenga que ver con la carrera. ;)

PD: Y el miércoles me voy a la nieve.[sonrisa]

Un saludo
Escrito originalmente por Churly
Y a quién no XD, con decir que yo migré totalmente a Linux durante los exámenes de Junio [reojillo] [ginyo]


Tengo un profesor que es un entusiasta de la programación funcional, quizá el año que viene me meta a ella. Usa Haskell.


Yo toque algo de Haskel y creo recordar q es bastante ... diferente :cool:
TUTORIAL
Escrito originalmente por BuzzFuzz
Como que no se puede hacer nada???

Yo resolví el problema de las torres de Hanoi con un lenguaje funcional, en concreto el sml XD

Hombre, tampoco es que no se pueda hacer nada. Como ya digo yo lo he usado para resolver algunos problemas de IA y por tener tiene sus aplicaciones y su publico, pero no está pensado para hacer algo "normal y corriente".

Conozco a unos que hicieron un buscaminas, y hacerse se hace en palmo y medio de codigo, pero es que hay que sufrir tela para escribir ese palmo y medio XD
Escrito originalmente por BuzzFuzz
Lo bueno lisp, sml, etc.. es que no tienen restricciones de tipos de datos, la recursividad es el pan de cada dia, una función pude recibir como parametros funciones que a su vez reciben como parametros mas funciones (osea una rallada pero mi profesor decia que era util XD ) , es muy facil manejar listas. el codigo es muy claro y conciso...

Yo lo veo mas como algo para adquirir un poco mas de soltura en la programación y poquitas cosas mas.

No, ho hay restricciones. En C, por ejemplo, si necesitas un entero necesitas un entero, ni char, ni arrays ni leches, un entero. Aqui piedes parametros y esperas que te pasen lo que sea, como si son funciones.

LISP significa "LISt Processor", y las listas son moneda corriente y en muchos casos son muy utiles, pero el codigo de lisp, por lo menos, de claro y conciso no tiene mucho :-/ (por lo menos para mi gusto).

Leer algo escrito en funcional es facil, lo dificil es escribirlo, es ahi cuando te pegas con la maldita sintaxis y cuando tienes que cambiar de forma de pensar.

Y en lo ultimo estamos totalmente de acuerdo: sirve para adquirir soltura y poco mas.

Solo un apunte mas: se llama recursividad porque consume un monton de recursos, y de hecho hasta los procesadores la deshacen y tratan de ejecutar el codigo recursivo como si fuese iterativo, pero hablar de eso ya seria entrar en otro hilo XD

Saludos
Si no te apetece aprender C y vas ha instalar linux prueba a programar en bash. La sintaxis es bastante parecida a C y no te hara falta compilar los programas. Yo primero hice un poco de bash y luego me puse con C (si te interesa hay un post que se debia de haber llamado Maneras en C XD que hay bastante referencia en C)

Saludos!
yo me he quedado con lo de Python... que tipo de programas se puede hacer con python?
me recomendais empezar por aki?

Salu2 :D
Anark, yo creo que es una buena idea empezar por python. Yo he empezado este año en la universidad con python en Metodología y creo que para empezar a trabajar con variables, listas, bucles, funciones... es una buena idea. tienes un buen manual en un link que han dejado en este mismo hilo, que es el que usamos en la UJI (escrito por profesores de aquí). El único problema que me he encontrado ha sido que a la hora de seguir aprendiendo python (el manual es básico, para empezar) me cuesta encontrar documentación en español y en inglés cuando estás empezando por mucho que te esfuerces la cosa se pone chunga. En fin es mi opinión.
Con respecto al tipo de programas que puedes hacer no sabría explicarme googlea un poco y encontrarás de todo tipo.

Se me olvidaba, otra cosa que me gusta de python es que al ser interpretado, a la hora de depurar a mi me parece bastante sencillo, y coges destreza a encontrar errores y ver en que fallas. Tienes un buen entorno de programación para python en la misma página del manual.

Saludos.

PD: por cierto, alguien de aquí ha trabajado algo con python? algún manual en español o inglés no muy complicado? Gracias
Si estais hablando de como iniciarse en la programacion porque no hablais de que en 2º Bachiller , en la asignatura de Informatica hay un trimestre de programacion, exactamente de Visual Basic?

hasta donde se puede llegar programando en visual basic?
Escrito originalmente por Rikimaru
Si estais hablando de como iniciarse en la programacion porque no hablais de que en 2º Bachiller , en la asignatura de Informatica hay un trimestre de programacion, exactamente de Visual Basic?

hasta donde se puede llegar programando en visual basic?


Creeme , si quieres aprender a programar bien, no uses Visual Basic ( consejo de amigo) , rompe muchos conceptos de la programación.
Y eso? Yo le pregunte al profesor que potencia tenia el visual basic a la hora de crear programas y me dijo que se podia hacer de todo
Escrito originalmente por Rikimaru
Y eso? Yo le pregunte al profesor que potencia tenia el visual basic a la hora de crear programas y me dijo que se podia hacer de todo


ui... cuidado con los profes... yo tengo uno que dice que hay dos tipos de ratones los de "bola que corre" y los de "lucecita" [poraki]
Escrito originalmente por Rikimaru
Y eso? Yo le pregunte al profesor que potencia tenia el visual basic a la hora de crear programas y me dijo que se podia hacer de todo

Bueno.... esto es discutible.... creo q todo todo , en tu pc solo lo puedes hacer con ensamblador

XD
Visual Basic es la antiprogramación a su máximo exponente. Y si tu profesor dice eso, perdona que te diga, pero no tiene ni idea...

Prueba a hacer una simple calculadora en VB, y en cualquier otro lenguaje decente. En VB te ocupará tranquilamente diez veces más, irá más lenta, y encima seguramente si la ejecutas en otro PC, te pedirá las librerías del VB...


En Python se puede hacer casi de todo, incluso hay juegos para Linux que están hechos íntegramente en Python, y no hablo de buscaminas, sino de juegos hasta acelerados 3D.
hasta donde se puede llegar programando en visual basic?


Hasta donde llega el api de windows, ya que trabaja fundamentalmente sobre el. En la empresa el visual basic es muy utilizado para programas rapidos y sin mucha peso _computacional_ , grandes programas o programas optimizados bajo visual basic es muy raro de ver. Ahora con Vistual Basic .NET se actualizado un poco, pero ... a mi como lenguaje sigue sin gustarme, prefiero antes el C/C++ , c# o python .
Escrito originalmente por Churly


Hombre, nada nuevo... La POO si que es el futuro. C es casi hoy en dia sólo para cosas muy puntuales. Y el poder corregir todos los fallos (o casi todos) en tiempo de compilación, quita muchísimas horas de debug, pero claro, tiene el inconveniente de ser bastante lento de momento en comparación.



y solo java es POO? :P, lo dicho , nada nuevo xD
Escrito originalmente por Jaime

Pues yo se ensamblador :D, (menudas prácticas MAS PUTAS este cuatrimestre). Así que ya puedo hacer TODO, lo que pasa es que para hacerlo TODO ahí te puedes morir así que ... Un saludo.


ensamblador es para cuetro cosas concretas..porke sino te puedes morir xD

mov %esp,%es......pfff xD
Normalmente yo usaba ensamblador para programar puertos etc.., es decir, programas en c o c++ y luego para acabar de controlar el sistema haces rutinas en ensamblador. ( esa combinación es muy usada para optimizar programas industriales etc. )

saludos
40 respuestas