Aprender programacion en mis ratos libres, por donde empezar

Pues eso, ultimamente tengo varios ratos muertos y me gustaria aprovecharlos, me gustaria aprender algun lenguaje de programación para hacer mis cosillas a la larga, por donde deberia empezar?

Quiero aclarar que no quiero meterme en algo demsiado serio, simplemente quiero aprender poco a poco a desenvolverme en este campo y a la larga si quiero aprender pues ya tengo una base por donde empezar ;)

Eso si, no tengo NADA de base, no tengo absolutamente nada de idea sobre programación, asique habria que empezar de 0
aprender solo es... muy dificil, hay muchos cursos, si buscas encontraras, o si tienes edad suficiente o has echo baxillerat puedes apuntarte a dai, que es el ciclo formativo de programacion de grado superior.
eXecuter está baneado por "utilizar un clon para saltarse un baneo"
dragolion escribió:aprender solo es... muy dificil, hay muchos cursos, si buscas encontraras, o si tienes edad suficiente o has echo baxillerat puedes apuntarte a dai, que es el ciclo formativo de programacion de grado superior.


No estoy NADA de acuerdo.

PreFteRioR escribió:Pues eso, ultimamente tengo varios ratos muertos y me gustaria aprovecharlos, me gustaria aprender algun lenguaje de programación para hacer mis cosillas a la larga, por donde deberia empezar?

Quiero aclarar que no quiero meterme en algo demsiado serio, simplemente quiero aprender poco a poco a desenvolverme en este campo y a la larga si quiero aprender pues ya tengo una base por donde empezar ;)

Eso si, no tengo NADA de base, no tengo absolutamente nada de idea sobre programación, asique habria que empezar de 0


Lo primero de todo sería empezar con una introducción teórica a la Programación, los diferentes paradigmas, qué es un algoritmo, qué es un programa, qué es interpretar, compilar... de eso en Wikipedia y Google vas a encontrar de sobra. Te aseguro que aunque pueda ser aburrido -para mí no lo fue- es bastante recomendable, lo que nunca se debe hacer es tirarse directamente uno a programar cuando no sabe ni qué es un algoritmo. Es como el que se instala GNU/Linux y conoce ni lo más básico...

Una vez ya sepas qué es programar y cómo se ejecuta teóricamente un programa, podrías empezar con pseudocódigo, ésto es, con un lenguaje inventado por ti pero que de alguna forma esté estructurado.

Por ejemplo, tenemos el siguiente problema. Necesitamos un programa que tras introducir un número nos diga si es primo o no. Sabemos que un número es primo cuando sólo es divisible por sí mismo y por la unidad, entonces es bien fácil, cuento por cuántos números es divisible el número que me introduzcan y si lo es por más de dos no es primo y viceversa.

//Comienza el programa
inicio();

//En esta variable almacenaré el número
entero n;
//En esta otra almacenaré las veces que he conseguido dividir de forma entera el número introducido
entero suma;
//Esta la utilizaré como un simple contador
entero cont;

//Pido el número
n=pedir_numero();

//Lo divido entre tantos números enteros como existan entre 1 y el introducido. Cuando consiga una división exacta, aumento
//la variable que cuenta las divisiones enteras satisfactorias
bucle(desde cont=1 hasta cont=n)
      si(division_entera(n,cont)=0) entonces suma = suma + 1;

//Finalmente, si he conseguido dos divisiones satistfactorias (entre uno y entre sí mismo), es que el número es primo
si(suma>2) entonces escribo("El número no es primo.");
si no escribo("El número es primo");

fin();


Tampoco te abrumes si no entiendes ese pseudoprograma en pseudocódigo (por cierto, creo que es correcto, que como estoy medio zombie puede que hasta me haya equivocado en una tontuna de programa), es que no se me ocurre algo más básico.

El caso es que cuando ya sepas programar teóricamente, lo cuál no significa que conozcas ningún lenguaje de programación, es la hora de elegir una sintaxis. Yo empecé con Python y C, los cuales te recomiendo encarecidamente. En la red encontrarás bastantes manuales.

Paciencia y, sobretodo, no desesperarse ni tirarse corriendo a programar.
eXecuter escribió:Lo primero de todo sería empezar con una introducción teórica a la Programación, los diferentes paradigmas, qué es un algoritmo, qué es un programa, qué es interpretar, compilar... de eso en Wikipedia y Google vas a encontrar de sobra. Te aseguro que aunque pueda ser aburrido -para mí no lo fue- es bastante recomendable, lo que nunca se debe hacer es tirarse directamente uno a programar cuando no sabe ni qué es un algoritmo. Es como el que se instala GNU/Linux y conoce ni lo más básico...

Una vez ya sepas qué es programar y cómo se ejecuta teóricamente un programa, podrías empezar con pseudocódigo, ésto es, con un lenguaje inventado por ti pero que de alguna forma esté estructurado.


Lo curioso es que para saber cómo se ejecuta un programa necesitas saber programar y cómo funcionan ciertas estructuras de datos. Si, quizá seas capaz de recitar de memoria dos o tres párrafos sobre qué es un intérprete y cómo funciona, o cómo se ejecuta un programa en el sistema operativo; sin embargo, eso no sirve PARA NADA ya que la realidad dista mucho de dos párrafos.

Obviamente, tener una pequeña noción de qué es cada cosa no viene mal pero llegado el momento, habrá que revisar esos conceptos.

eXecuter escribió:Por ejemplo, tenemos el siguiente problema. Necesitamos un programa que tras introducir un número nos diga si es primo o no. Sabemos que un número es primo cuando sólo es divisible por sí mismo y por la unidad, entonces es bien fácil, cuento por cuántos números es divisible el número que me introduzcan y si lo es por más de dos no es primo y viceversa.

//Comienza el programa
inicio();

//En esta variable almacenaré el número
entero n;
//En esta otra almacenaré las veces que he conseguido dividir de forma entera el número introducido
entero suma;
//Esta la utilizaré como un simple contador
entero cont;

//Pido el número
n=pedir_numero();

//Lo divido entre tantos números enteros como existan entre 1 y el introducido. Cuando consiga una división exacta, aumento
//la variable que cuenta las divisiones enteras satisfactorias
bucle(desde cont=1 hasta cont=n)
      si(division_entera(n,cont)=0) entonces suma = suma + 1;

//Finalmente, si he conseguido dos divisiones satistfactorias (entre uno y entre sí mismo), es que el número es primo
si(suma>2) entonces escribo("El número no es primo.");
si no escribo("El número es primo");

fin();


Tampoco te abrumes si no entiendes ese pseudoprograma en pseudocódigo (por cierto, creo que es correcto, que como estoy medio zombie puede que hasta me haya equivocado en una tontuna de programa), es que no se me ocurre algo más básico.

El caso es que cuando ya sepas programar teóricamente, lo cuál no significa que conozcas ningún lenguaje de programación, es la hora de elegir una sintaxis. Yo empecé con Python y C, los cuales te recomiendo encarecidamente. En la red encontrarás bastantes manuales.

Paciencia y, sobretodo, no desesperarse ni tirarse corriendo a programar.


¿Programar en un lenguaje inventado? Je, eso se asemeja a hablar en idiomas inventados o a tener amigos invisibles.

Es decir, en tus algoritmos en lenguajes inventados no hay bugs, no falla nada, todo funciona. Y, sin embargo, cuando vayas a un lenguaje de verdad, todo serán errores y pequeños fallitos.

Mi recomendación es que le eches un vistazo al segundo enlace que te ha pasado zootropo, tiene buena pinta.

- ferdy
Hola , pues si realmente te gustaria aprender pero no quieres apuntarte modulo / universidad siempre puedes buscar en lo cursos del inem , alli hay cursos de todo tipo y suelen salir programacion. :) prueba a ver. Yo aprendi primero en el modulo y luego en la universidad estoy afinando mis dotes de programador. Como dicen arriba aprender solo es mas dificil pero no imposible con libros y paciencia lo iras consiguiendo :) animo!!
Yo una cosa si que te recomiendo es empezar programando en Basic, si, el línea a línea de msdos.

No es que sea más fácil, pero en la versión que usaba yo no hacía falta declarar variables para usarlas, era cómodo y hacías programitas sencillos fácilmente. Luego te puedes pasar a visualbasic (ya lo sé, software libre, pero son mis comienzos XD) y hacer programas con ventanitas mensajes de error y todo eso. Yo hice un programa para ver fotos, por ejemplo.

Yo luego en la facultad usé DevC++, y para mí fue lo mismo pero las palabras más abreviadas y con declaración de variables (que en realidad es lo más útil del mundo). Pero cuanto más bajes el lenguaje mejores programas puedes hacer...a costa de tener que saber un monton, pero C es lo que se usa ahora en win y mucho linux. Aprender Python sabiendo C es muy fácil.

Si pasas de basic y quieres empezar con C (el ++ no lo uso, aunque sea devc++, no uso objetos) te puedo dejar mi temario de la facultad (ingeniería tecnica industrial) que los apuntes del profesor empiezan en un "Hola mundo" a prueba de gañanes. Me gustaron mucho.

Un saludo
yo empece con un simple tutorial de shell script... donde te explican y ejemplifican todo el tema... funciones, variables, ciclos... etc etc creo que asi seria mejor, una cierta base teorica, pero eminentemente practica con ejemplos...


ahora estoy mirando c (me rayo con los punteros xD), que tiene una sintaxis diferente, y para mi mas compleja (aunque tambien infinitamente mas completa) viniendo de saber solo movidas en shell... pero eso ya es otra historia...

no se, no me fue mal, entiendo las cosas y me parece que es una buena forma de empezar
Aun siendo amante de C, creo que una muy buena forma de empezar a toquetear, seria Python. Preferiblemente bajo GNU/Linux, pero puede ser bajo windows, MacOS, BSD, OpenSolaris...

Principalmente tienes un interprete del lenguaje, que es el que ejecuta tus programas (que no se compilan). Ejecutando el propio interprete a secas, puedes hacer todo tipo de pruebas de sintaxis. Por ejemplo, "print 2*2" y ver que escribe 4 al darle al intro.

Y el lenguaje en si, siendo muy completo, y flexible, puede ser muy sencillo para cosas simples.

http://www.python.org
(saber algo de ingles es bastante vital para programar, sea dicho)

Si usas GNU/Linux, el interprete de python lo tendras ya instalado, casi seguro XD


P.D.- Te recomiendo tambien olvidarte de "visual basics" y bodrios por el estilo. Con eso seguramente solo aprenderas a poner botones, y no podras ver lo que es realmente programar.
Yo intentaría pillarme apuntes de alguna asignatura de programación de los primeros cursos de Ingeniería Informática de alguna universidad... Te viene todo más concentrado que en los libros, que los usaría de apoyo nada más... aunque en toda la carrera no he tocado ni uno sólo...
eXecuter está baneado por "utilizar un clon para saltarse un baneo"
Ferdy escribió:
eXecuter escribió:Lo primero de todo sería empezar con una introducción teórica a la Programación, los diferentes paradigmas, qué es un algoritmo, qué es un programa, qué es interpretar, compilar... de eso en Wikipedia y Google vas a encontrar de sobra. Te aseguro que aunque pueda ser aburrido -para mí no lo fue- es bastante recomendable, lo que nunca se debe hacer es tirarse directamente uno a programar cuando no sabe ni qué es un algoritmo. Es como el que se instala GNU/Linux y conoce ni lo más básico...

Una vez ya sepas qué es programar y cómo se ejecuta teóricamente un programa, podrías empezar con pseudocódigo, ésto es, con un lenguaje inventado por ti pero que de alguna forma esté estructurado.


Lo curioso es que para saber cómo se ejecuta un programa necesitas saber programar y cómo funcionan ciertas estructuras de datos. Si, quizá seas capaz de recitar de memoria dos o tres párrafos sobre qué es un intérprete y cómo funciona, o cómo se ejecuta un programa en el sistema operativo; sin embargo, eso no sirve PARA NADA ya que la realidad dista mucho de dos párrafos.

Obviamente, tener una pequeña noción de qué es cada cosa no viene mal pero llegado el momento, habrá que revisar esos conceptos.

eXecuter escribió:Por ejemplo, tenemos el siguiente problema. Necesitamos un programa que tras introducir un número nos diga si es primo o no. Sabemos que un número es primo cuando sólo es divisible por sí mismo y por la unidad, entonces es bien fácil, cuento por cuántos números es divisible el número que me introduzcan y si lo es por más de dos no es primo y viceversa.

//Comienza el programa
inicio();

//En esta variable almacenaré el número
entero n;
//En esta otra almacenaré las veces que he conseguido dividir de forma entera el número introducido
entero suma;
//Esta la utilizaré como un simple contador
entero cont;

//Pido el número
n=pedir_numero();

//Lo divido entre tantos números enteros como existan entre 1 y el introducido. Cuando consiga una división exacta, aumento
//la variable que cuenta las divisiones enteras satisfactorias
bucle(desde cont=1 hasta cont=n)
      si(division_entera(n,cont)=0) entonces suma = suma + 1;

//Finalmente, si he conseguido dos divisiones satistfactorias (entre uno y entre sí mismo), es que el número es primo
si(suma>2) entonces escribo("El número no es primo.");
si no escribo("El número es primo");

fin();


Tampoco te abrumes si no entiendes ese pseudoprograma en pseudocódigo (por cierto, creo que es correcto, que como estoy medio zombie puede que hasta me haya equivocado en una tontuna de programa), es que no se me ocurre algo más básico.

El caso es que cuando ya sepas programar teóricamente, lo cuál no significa que conozcas ningún lenguaje de programación, es la hora de elegir una sintaxis. Yo empecé con Python y C, los cuales te recomiendo encarecidamente. En la red encontrarás bastantes manuales.

Paciencia y, sobretodo, no desesperarse ni tirarse corriendo a programar.


¿Programar en un lenguaje inventado? Je, eso se asemeja a hablar en idiomas inventados o a tener amigos invisibles.

Es decir, en tus algoritmos en lenguajes inventados no hay bugs, no falla nada, todo funciona. Y, sin embargo, cuando vayas a un lenguaje de verdad, todo serán errores y pequeños fallitos.

Mi recomendación es que le eches un vistazo al segundo enlace que te ha pasado zootropo, tiene buena pinta.

- ferdy


Vamos a ver, pongámonos en situación, ¡es la primera toma de contacto con la programación! Ya tendrá tiempo de hablar de bugs, depuración, y demás. Evidentemente, cada maestrillo tiene su librillo, a mí me sirvió de mucho solucionar dos o tres ejercicios simples en pseudocódigo.
Pillate un manual de iniciacion al lenguaje C. En internet hay muchisimos. Aprende a hacer tus programillas simplones y cuando sepas hacer el clasico juego de la serpiente o el tetris (en un interfaz cutre por supuesto jejeje) ya te podras pasar a java o visual basic.

Eso si, aprendiendo con un profesor eso podrias apenderlo de 4 a 6 meses... aprendiendo tu solo se te puede ir un año. Hombre, si eres un tio espabilao y te resulta facil, igual avanzas mucho mas rapido, tb es cierto que depende de como seas y, por supuesto, los "ratos" que le dediques, porque cuantas mas horas eches, mas avanzas claro esta :)
eXecuter escribió:Vamos a ver, pongámonos en situación, ¡es la primera toma de contacto con la programación! Ya tendrá tiempo de hablar de bugs, depuración, y demás. Evidentemente, cada maestrillo tiene su librillo, a mí me sirvió de mucho solucionar dos o tres ejercicios simples en pseudocódigo.


La moraleja es que por muy fácil que sea tu lenguaje, no todo funcionará a la primera. Así que es mejor empezar por cosas simples (el lenguaje REALMENTE es lo de menos) e ir progresando.

- ferdy
eXecuter está baneado por "utilizar un clon para saltarse un baneo"
Ferdy escribió:
eXecuter escribió:Vamos a ver, pongámonos en situación, ¡es la primera toma de contacto con la programación! Ya tendrá tiempo de hablar de bugs, depuración, y demás. Evidentemente, cada maestrillo tiene su librillo, a mí me sirvió de mucho solucionar dos o tres ejercicios simples en pseudocódigo.


La moraleja es que por muy fácil que sea tu lenguaje, no todo funcionará a la primera. Así que es mejor empezar por cosas simples (el lenguaje REALMENTE es lo de menos) e ir progresando.

- ferdy


Por eso mismo, el lenguaje es lo de menos, por tanto, empezar con algo parecido al lenguaje humano y a tu idioma en concreto me parece buena idea.
Por eso mismo, el lenguaje es lo de menos, por tanto, empezar con algo parecido al lenguaje humano y a tu idioma en concreto me parece buena idea.


No, porque eso no es programar (por definición...)

Es como aprender idiomas empezando por hablar uno que tu te inventes...

- ferdy
yo, dentro de mi ignorancia y autodidactismo del montón, me inclino mas a pensar como ferdy... no veo ningun sentido a inventarse un lenguaje.... con el primer lenguaje que elija para empezar, es cuando de verdad se econtrara con los problemillas tipicos al escribir cualquier cosa... pero en su lenguaje utopico, todo estara bien, y sera lo mismo que simplemente saber la teoria... cosa que se puede ver simultanemaente a practicar, y es mas idoneo....

que elija el lenguaje que le apetezca, que tenga tutoriales basicos en plan "ahora vamos a ver que/como es una variable" con sus dos tres frases de teoria y unos cuantos ejemplos para verlo claramente...

y si es de sintaxis sencilla para empezar, mejor. (porque no es tan intuitivo "printf( tengo %i años, variable);" como lo es "echo "tengo $VARIABLE años"" (en mi opinion))
Realmente, cualquiera puede aprender a programar con cualquier libro de introducción a la programación a nivel de primero de ingeniería. Joyanes tiene buenos libros con ejercicios, el que tiene de C tiene buena pinta.

Pero hay que darse cuenta de que aprender a programar no es devorar libros, es justo lo contrario, ir poco a poco, aplicando lo que se lee en cada hoja, a hacer los ejercicios y a hacer cosas que a uno le gusten e interesen.

- ferdy
El pseudocódigo sí que es útil, simplemente para poder hacer borradores y esquemas de funcionamiento en un folio, y no tener que estar dale que te pego al compilador a ver si encuentra fallos. Si los encuentra, ya sabemos cuales son y queremos la molla, saber qué devuelve la variable y cosas así, no que por hacer algo rápido nos diga que no hemos puesto ; al final de 3 renglones.

Vamos, que pensar un programa no se hace con el interprete abierto y el indicador de texto parpadeando.....leñe, yo he hecho exámenes en pseudocódigo.

Pero si algunos piensan que (visual)basic es un bodrio pues bueno. Ya me contareis como voy a hacer un tirador de dados de rol con C y un entorno gráfico con...botones, en menos de 2 horas. (a nivel aficionado..algunos tardarían 10 minutos...)

Y los que defienden el pseudocodigo deben defender el basic (sin visual) ya que es practicamente lo mismo, pero en inglés, así de sencillo, aunque no compile. Pero que si empiezas directamente en C....pues bueno, mejor, pero se te puede ir la olla y aprender un monton o salir corriendo asustado.
Empezar a aprender a programar con visual basic esta muy mal. Cojes malas costumbres que al principio te pueden parecer facilidades, pero a la larga te das cuenta de que te esconde muchas cosas y te haces en tu cabeza una idea erronea de lo que en realidad es programar.

Yo empecé hace mucho ya, con el rpg maker. Yo no entendía como iba eso de las "variables" y un chico en el foro hizo un cursillo con manuales en .hlp muy vistosos y bastante entendibles comenzando con pseudocódigo y algoritmos. Al final ese chico lanzo solo 2 partes y el resto no lo terminó que era cuando se empezaba a tocar código, en Pascal exactamente.

Despues viendo que hacia muchas referencias a Pascal, pues yo por mi cuenta y mirando en internet manuales y tal pues aprendí a programar en Pascal. Después de esto y viendo que se me había olvidado para que quería aprender Pascal (entender variables en el rpg maker, que por cierto las entendia ya de puta madre xDD) empece a tocar C con un libro que me compre en el C.I. que se llamaba "C++ Para Dummies". Luego ya me metí en C++ que aun estoy, pero bueno, la verdad es que me gusta mas C.

Fuera tochos, te cuento todo esto para que te hagas una idea de como empezar, no por el RPG Maker por supuesto xD

Venga salu2!!
Si quieres mis apuntes de la uni , yo te los subo a megaupload :)
zambombas escribió:Si quieres mis apuntes de la uni , yo te los subo a megaupload :)


él no se, pero yo, todo lo que es almacenar conociminetos.... si no es mucha molestia ;)


pd: sobre el pseudocodigo, en mi opinion.... no es decir que es inutil, sino que para aprender no acaba de ser lo mejor... una vez sabes programar, o tienes tus ideas, y te vas a meter a hacer algun programilla, pues vale, usarlo para el diseño de tu creacion, para tener todo claro, ordenado y repasar detalles, perfecto... pero para aprender a programar, sigo pensando que teoria y practica deben ir de la mano: tocas un concepto nuevo, y lo aplicas en ejercicios practicos. asi todo el rato.
Subo los apuntes de la universidad de Alicante de Fundamentos de programacion I y II . La mayoria de estos apuntes son orientativos asi que fijandote en ellos y un poco de google puedes aprender. Ya que estoy cursando este año Programacion Orientada a Objetos y Programacion y Estructura de datos subire tambien los apuntes ejercicios , y notas que coja en clase :) conforme lo vaya dando.
http://www.megaupload.com/?d=2UL6RXBK
http://www.megaupload.com/?d=1O606C1N

En fundamentos de programacion uno estan los enunciados de las practicas pero no su resolucion , pero tambien hay muchos ejemplos para realizar los ejercicios. Lo he subid por el que quiera ver lso ejemplos. Algun tema sale pseudocodigo.
Joder, muchisimas gracias a todos, no esperaba tantas respuestas.

Me bajaré los apuntes y le echaré un vistazo a todos los links que habeis puesto por aqui mientras me repaso todo el post aver que saco en claro, pero por lo que e leido creo que lo mejor seria que empezara con un lenguaje como por ejemplo python o C en uno de esos tutoriales por internet que te explican desde el principio.

Pero vamos cuando decida que hacer lo comunicaré por aqui, gracias a todos ;)
zambombas escribió:Subo los apuntes de la universidad de Alicante de Fundamentos de programacion I y II . La mayoria de estos apuntes son orientativos asi que fijandote en ellos y un poco de google puedes aprender. Ya que estoy cursando este año Programacion Orientada a Objetos y Programacion y Estructura de datos subire tambien los apuntes ejercicios , y notas que coja en clase :) conforme lo vaya dando.
http://www.megaupload.com/?d=2UL6RXBK
http://www.megaupload.com/?d=1O606C1N

En fundamentos de programacion uno estan los enunciados de las practicas pero no su resolucion , pero tambien hay muchos ejemplos para realizar los ejercicios. Lo he subid por el que quiera ver lso ejemplos. Algun tema sale pseudocodigo.



muchisimas gracias por esos apuntes ;)
eXecuter está baneado por "utilizar un clon para saltarse un baneo"
Ferdy escribió:
Por eso mismo, el lenguaje es lo de menos, por tanto, empezar con algo parecido al lenguaje humano y a tu idioma en concreto me parece buena idea.


No, porque eso no es programar (por definición...)

Es como aprender idiomas empezando por hablar uno que tu te inventes...

- ferdy


Es que creo que no entendemos lo mismo por programación, compañero. Por tu símil, programar es aprender idiomas, los cuáles, en el mundo de la programación son los lenguajes. Por tanto, entiendo que para ti, programar es saber escribir algo en C, Python, Pascal, etc.

Para mí -y me permito decir que para la mayoría- programar es aprender a comunicarse, el lenguaje, ¡el lenguaje da igual! (por eso no tiene mucho sentido lo de idiomas). Yo tengo que saber que tengo unas variables en determinada posición de memoria, que opero con ellas a través de funciones, etc.

Y a mí me enseñaron -precisamente en la Universidad de Alicante- que una buena forma de aproximarse al mundo es en pseudocódigo, ésto es, con un lenguaje parecido a tu lengua vernácula. Evidentemente, esto no lo extiendes más allá de dos ejercicios, ¡no tiene sentido!

P.D.: recuerdo que hasta había un intérprete de pseudocódigo (ALC le llamábamos).
Para empezar con C te recomiendo este curso, lo explica todo de una manera bastante sencilla y cuando lo acabes puedes ir ampliando por tu cuenta ;)
http://www.elrincondelc.com/cursoc/cursoc.html
A todo esto, ¿que pasa con Java?
La mayoría de los colegas que están saliendo de la facultad (telecos), están encontrando mucho trabajo como programador Java. Yo, como buen analfabeto funcional programador (aunque mi expediente diga que esto es mentira), no tengo ni idea de si esto es bueno o malo, pero en su momento java me pareció una mierda.
Para los que vivis, disfrutais y/o sabeis de esto, si ahora mismo tuvierais que meteros a fondo a aprender un lenguaje de cara a su futura utilidad/expansión ¿cual escogeriais?. Me está dando la vena de aprender programación de verdad a estas alturas, y me gustaría elegir el camino más correcto (si lo hay).

Saludos
Pues aprende assembler. Así si que pillas un curro que sólo tu sabes hacer...Ya me contarás que hace un robot de fabrica con java. Me refiero que assembler es algo tan raro que no conozco a nadie que lo sepa usar. Ni siquiera es un lenguaje, es un...em....wikipedia lo sabe
http://es.wikipedia.org/wiki/Assembler

¿Sabías que las televisiones tienen programas internos? yo no hasta hace poco....
eXecuter está baneado por "utilizar un clon para saltarse un baneo"
Atlante escribió:A todo esto, ¿que pasa con Java?
La mayoría de los colegas que están saliendo de la facultad (telecos), están encontrando mucho trabajo como programador Java. Yo, como buen analfabeto funcional programador (aunque mi expediente diga que esto es mentira), no tengo ni idea de si esto es bueno o malo, pero en su momento java me pareció una mierda.
Para los que vivis, disfrutais y/o sabeis de esto, si ahora mismo tuvierais que meteros a fondo a aprender un lenguaje de cara a su futura utilidad/expansión ¿cual escogeriais?. Me está dando la vena de aprender programación de verdad a estas alturas, y me gustaría elegir el camino más correcto (si lo hay).

Saludos


Personalmente, aunque curré muy poco de programador -estaba en Everis, pagan mal, se curra bastante y no pretendas cobrar horas extra XD- puedo decirte que hoy en día un tío que sepa Java y pueda aportar experiencia puede encontrar un buen curro.

También está muy bien saber ABAP y, aunque parezca una gilipollez, controlar bastante de Flash + ActionScript.

Lo que dice carlosyeah no es tampoco una gilipollez.

Es la mítica ley de la oferta/demanda, programadores de PHP, Java, Visual Basic .NET, etc., hay bastantes y salvo que seas un experto con experiencia demostrable, no te van a pagar muy allá. Pero un tío que controle ABAP, Assembler o lenguajes específicos...
Es que aprender a comunicarte en un idioma que te inventes no vale de nada. Y si no te gusta el símil, ok, acepto que es una mierda de símil. Pero lo que realmente es una mierda es programar en algo que no sabes si funciona o no. Porque eso no es programar, ni se le asemeja.

Por otro lado 'intérprete de pseudocódigo' es una contradicción, por definición. Otra cosa es que aprendierais a programar con un lenguaje y un intérprete de juguete... pues vale.

A mi Java me parece un lenguaje malo para empezar, necesitas saber demasiado sobre programación en general para poder entender Java. Es un lenguaje relativamente complejo. Claro que 'programar en java' no requiere saber cómo funciona...

- ferdy

PD: Dicho sea de paso, el símil va justo por donde tú lo entiendes. Aprender idiomas es aprender a COMUNICARTE en esos idiomas. No es lo mismo comunicarte en Español, en Inglés o en, por ejemplo, Irlandés. Comunicarse es mucho más que saber el idioma, pero la comunicación DEPENDE del idioma ya que la forma de pensar y expresar los mismos conceptos es distinta. Al igual que las técnicas de programación, idioms, patrones, dependen del lenguaje.

Aprender a programar en un lenguaje que no existe y que tu te inventas es bastanche chorra... y dudo que sirva de algo ya que, una vez más, no sabes ni qué estás haciendo.
Atlante escribió:A todo esto, ¿que pasa con Java?
La mayoría de los colegas que están saliendo de la facultad (telecos), están encontrando mucho trabajo como programador Java. Yo, como buen analfabeto funcional programador (aunque mi expediente diga que esto es mentira), no tengo ni idea de si esto es bueno o malo, pero en su momento java me pareció una mierda.
Para los que vivis, disfrutais y/o sabeis de esto, si ahora mismo tuvierais que meteros a fondo a aprender un lenguaje de cara a su futura utilidad/expansión ¿cual escogeriais?. Me está dando la vena de aprender programación de verdad a estas alturas, y me gustaría elegir el camino más correcto (si lo hay).

Saludos


Java ahora mismo es el lenguaje mas usado segun las encuestas peeero para mi java tiene muchas limitaciones aun siendo su lentitud porque aunque ha mejorado mucho estos años es aun lento. Eso si xD lo del recolector de basuras y no usar punteros ( no de forma directa ) es para mi dios xDDD
Pues yo no veo tan mal empezar por diagramas de flujo y pseudocódigo, pues mucha gente que no ha tenido contacto con la programación en ningún momento, da muchas cosas por supuesto, como bucles que se rompen mágicamente, hacerlos de 1 a n o de 0 a n iteraciones, etc. Eso a mi juicio son problemas endémicos de la programación, y si no tienes mucha práctica, diseñarás mejor en una sintaxis fácilmente interpretable, sin tener mucho cuidado de, por ejemplo respetar los tipos de variables, que en una sintaxis fija, pues a mi juicio resolver errores de casteo o de sintaxis es algo poco más que trivial. Lo que sí que es un error, es presuponer que ese diseño va a funcionar bien, y no traducirlo inmediatamente a un lenguaje formal y testearlo, y a partir de los síntomas, encontrar los errores en el diseño.
Eso a mi juicio son problemas endémicos de la programación, y si no tienes mucha práctica, diseñarás mejor en una sintaxis fácilmente interpretable, sin tener mucho cuidado de, por ejemplo respetar los tipos de variables, que en una sintaxis fija, pues a mi juicio resolver errores de casteo o de sintaxis es algo poco más que trivial.


Nadie ha dicho nada sobre 'errores de casteo' o 'problemas de sintaxis'. Si alguien tiene muchos problemas con esos es que no sabe programar muy bien...

Lo que sí que es un error, es presuponer que ese diseño va a funcionar bien, y no traducirlo inmediatamente a un lenguaje formal y testearlo, y a partir de los síntomas, encontrar los errores en el diseño.


¿Pero qué diseño? ¿Alguien ha leido lo que quiere el que abrió el hilo? El tronco quiere aprender a programar, ¿cómo le pides que DISEÑE algo si no sabe programar?

¿Qué síntomas? Si no sabe cómo deben funcionar las cosas (je, en su lenguaje inventado funcionan!!!!) no sabe por qué fallan.

Estais perdiendo el norte... una cosa es decirle que aprenda en pseudocódigo o un lenguaje inventado, lo cual me parece desacertado pero pase. ¿Pero aprender haciendo diagramas? Si no sabes ni lo más básico, es IMPOSIBLE que hagas un diagrama que valga para algo.

- ferdy
A mí python me parece un lenguaje de programación bastante clarito y adecuado para comenzar a aprender. Supongo que alguien lo habrá ya aconsejado.
Si, zootropo si no recuerdo mal, fue el primero. A mi me parece una buena opción, sin duda.

- ferdy
Ferdy escribió:Nadie ha dicho nada sobre 'errores de casteo' o 'problemas de sintaxis'. Si alguien tiene muchos problemas con esos es que no sabe programar muy bien...
Si no sabes programar, al principio te vas a encontrar con ellos a punta pala...

Ferdy escribió:¿Pero qué diseño? ¿Alguien ha leido lo que quiere el que abrió el hilo? El tronco quiere aprender a programar, ¿cómo le pides que DISEÑE algo si no sabe programar?
¿Cómo vas a programar sin tener un diseño antes? Aunque sea en la cabeza, algo tienes, y al principio es difícil hacerte un esquema de funcionamiento del programa así en el aire, mejor plasmarlo en papel a tu manera. Al menos a mi me enseñaron a programar con un PC delante y papel y lápiz al lado, y chico pienso que tan mal no me ha ido.

Bien es verdad que he metido la gamba al decir "diagramas de flujo", lo que yo hacía eran organigramas, o ordinogramas, o algo así...
Ferdy escribió:
Por eso mismo, el lenguaje es lo de menos, por tanto, empezar con algo parecido al lenguaje humano y a tu idioma en concreto me parece buena idea.


No, porque eso no es programar (por definición...)

Es como aprender idiomas empezando por hablar uno que tu te inventes...

- ferdy

Lamento contradecirte, pero empezar usando pseudocodigo para entender la estructura de un programa es un metodo cojonudo, al menos conmigo ha funcionado en la universidad.
Si no sabes programar, al principio te vas a encontrar con ellos a punta pala...


Por supuesto. Estos duran pocos días, de todos modos.

¿Cómo vas a programar sin tener un diseño antes? Aunque sea en la cabeza, algo tienes, y al principio es difícil hacerte un esquema de funcionamiento del programa así en el aire, mejor plasmarlo en papel a tu manera.


No se cómo diantres pretendes DISEÑAR un algoritmo sin saber qué herramientas tienes a tu disposición, no me entra en la cabeza.

Creo que el aprendizaje a estos niveles tiene (o debe tener) varias fases:

1) En la que te familiarizas con el lenguaje con el que vas a aprender:

"Esto es una variable, aquí guardas datos. Mira, así 'imprimes' el valor de la variable en la pantalla."
"Mira así lees un dato del teclado y lo metes en una variable. Mira así se suma, resta, multiplica y divide."
"Con estas 'cosas' puedes controlar qué trozos se ejecutan y qué trozos no. Así comparas dos valores."
"Como ves, eso se hace repetitivo, mira, estas herramientas te ayudan."
"Esos trozos parecen iguales, mira, de este modo, puedes unificarlos. Se llaman funciones."

2) En la que te familiarizas con la forma de resolver problemas:

"Mira, así recorres los caracteres de una cadena."
"Mira, así podrías comparar dos cadenas."
.....
[ hasta que se da cuenta de que mirar la pantalla no ayuda, si no que distrae ]

3) En la que aprendes a resolver problemas:

"Mira, el papel es comodísimo para 'prototipar' (porque no es ni diseñar...). Una vez parezca bueno en el papel, deberías intentar plasmarlo en el código." (lo bueno es que aquí se ciñe a lo que conoce, no divaga con cosas que no existen).
"Además, estos simbolitos son más o menos estándar para hacer cosas en el papel."
....
[ hasta que se da cuenta de que no sabe hacer cosas útiles como leer de un fichero, escribir un fichero, ... ]

4) En la que profundiza en el lenguaje y lo que este le ofrece

"Mira, así abres un fichero, así lees y así escribes."
"Mira, no necesitas usar tu función para comparar cadenas, esto lo hace por ti."
"Mira, para elevar a la n-potencia tampoco necesitas ese bucle, hay una función."
...
[ hasta que sabe lo suficiente para volver a pensar en problemas ... ]

5 y adelante) Alternar horas de pantalla con horas de papel y lápiz.

Tras meses y años haciendo eso, entonces puedes diseñar de verdad. Pensad que para poder diseñar hay que haber visto muchas cosas, no solo sirve con aplicar la teoría y la intuición (eso solo vale en los problemas convencionales).

Al menos a mi me enseñaron a programar con un PC delante y papel y lápiz al lado, y chico pienso que tan mal no me ha ido.


Eso lo puede decir cualquiera de si mismo :)

- ferdy

PD:

Lamento contradecirte, pero empezar usando pseudocodigo para entender la estructura de un programa es un metodo cojonudo, al menos conmigo ha funcionado en la universidad.


¿Qué significa 'ha funcionado'?

- ferdy
Pues que pase de no tener ni puta idea de como ese monton de palabros juntos (C) hacian funcionar un programa a entender que era y para que servia cada cosa y por que estaban dispuestos en ese orden.
Yo creo que empezar por entender la estructura d eun programa usando pseudoprogramacion es un buen metodo, no te digo que lo sigas usando siempre, pero el primer mes que empiezas a aprender nunca esta demas hacerte un pseudocodigo en sucio antes de empezar el programa con un lenguaje real.
Pues que pase de no tener ni puta idea de como ese monton de palabros juntos (C) hacian funcionar un programa a entender que era y para que servia cada cosa y por que estaban dispuestos en ese orden.


Siento decirte que eso dista mucho de saber programar...

- ferdy
Yo la verdad es que tampoco recomiendo para nada empezar con pseudo-código (pero oye, son métodos de cada uno :)). Desde luego me parece mucho más lógica la progresión que Ferdy nos muestra unos posts atrás. De esa forma cuando coges papel y lápiz tienes una idea de lo que el lenguaje elegido pone a tu disposición (y lo que no).

Saludos.
Yo en primero empecé por Java. Por una parte me parece una buena manera y por otra no.

Por la parte buena es el ahorro de usar punteros y todo eso, pero, curiosamente, la mala es que si quieres 'dar el salto' a C te haces un lío tremendo.

Python me parece un muy buen lenguaje para empezar.

A todo esto una preguntilla...
Yo en la técnica de Sistemas prácticamente sólo he hecho una asignatura de programación, en Java. Explican lo más básico, bucles, variables, programas sencillos... hasta algo de orientación a objetos (herencia, clases madre, polimorfismo...).
Para trabajar de becario como programador en Java, con convenios con las universidades, qué nivel mínimo buscan?

O sea, todo eso de que las empresas te 'forman', significa que te dan experiencia laboral o que no necesitas ser un crack como programador y ellos te ayudan? No sé si me explico...
Es que no sé, el nivel que tengo yo creo que es bastante bajo, y no me veo en una empresa como programador en Java.
eXecuter está baneado por "utilizar un clon para saltarse un baneo"
Ferdy escribió:Es que aprender a comunicarte en un idioma que te inventes no vale de nada. Y si no te gusta el símil, ok, acepto que es una mierda de símil. Pero lo que realmente es una mierda es programar en algo que no sabes si funciona o no. Porque eso no es programar, ni se le asemeja.

Por otro lado 'intérprete de pseudocódigo' es una contradicción, por definición. Otra cosa es que aprendierais a programar con un lenguaje y un intérprete de juguete... pues vale.

A mi Java me parece un lenguaje malo para empezar, necesitas saber demasiado sobre programación en general para poder entender Java. Es un lenguaje relativamente complejo. Claro que 'programar en java' no requiere saber cómo funciona...

- ferdy

PD: Dicho sea de paso, el símil va justo por donde tú lo entiendes. Aprender idiomas es aprender a COMUNICARTE en esos idiomas. No es lo mismo comunicarte en Español, en Inglés o en, por ejemplo, Irlandés. Comunicarse es mucho más que saber el idioma, pero la comunicación DEPENDE del idioma ya que la forma de pensar y expresar los mismos conceptos es distinta. Al igual que las técnicas de programación, idioms, patrones, dependen del lenguaje.

Aprender a programar en un lenguaje que no existe y que tu te inventas es bastanche chorra... y dudo que sirva de algo ya que, una vez más, no sabes ni qué estás haciendo.


Desisto, de verdad, pero vaya, en ningún momento estaba hablando de aprender a programar en un lenguaje inventado, simplemente me parece que es un pequeñito paso necesario antes de programar en serio.

No quiero entrar en un debate léxico.
Buenas,

De programar yo no tengo mucha idea la verdad, es mas, lo poco que he intentado ha salido un desastre, pero ... ¿No seria mejor empezar con HTML>JavaScript>PHP para empezar de cero?.

Lo digo porque son lenguajes que no suelen tomar mucho tiempo conocer cosillas de ellos, poder hacerlos trabajar juntos y de paso adquirir virtudes en el ámbito de la programación, por ejemplo:

- HTML suele ser algo especialito con el "como" esta introducido el código y si te dedicas a picar código a mano puede darte fallos y hacer que te comas la cabeza un buen rato. También necesita un orden, lo que sea dentro de la etiqueta HEAD al HEAD, lo que sea en el BODY al BODY, etc. con lo que obliga a mantener orden y eso en la programación se agradece :) .

- JavaScript es un nivel superior de programación en el cual sales del tipo texto plano puro y duro a juguetear con ese texto, te enseña a interconectar varios lenguajes de programación, hacer llamadas a variables, bucles, etc.

-PHP si lo juntamos con SQL te da mucho juego ya que puedes hacer grandes cosas con "pocos conocimientos".

Este es mi punto de vista viendo lo que PreFteRioR solicita y aporta (ratitos libres, conocimientos bajos en la programación, posible lenguaje de futuro, etc.), también es cierto que yo no recomendaría HTML>JavaScript>PHP como lenguajes para un futuro profesional ... pero si le termina gustando, ¿porque no?.

ta logoooooooooo
el_perro_ escribió:Buenas,

De programar yo no tengo mucha idea la verdad, es mas, lo poco que he intentado ha salido un desastre, pero ... ¿No seria mejor empezar con HTML>JavaScript>PHP para empezar de cero?.

Lo digo porque son lenguajes que no suelen tomar mucho tiempo conocer cosillas de ellos, poder hacerlos trabajar juntos y de paso adquirir virtudes en el ámbito de la programación, por ejemplo:

- HTML suele ser algo especialito con el "como" esta introducido el código y si te dedicas a picar código a mano puede darte fallos y hacer que te comas la cabeza un buen rato. También necesita un orden, lo que sea dentro de la etiqueta HEAD al HEAD, lo que sea en el BODY al BODY, etc. con lo que obliga a mantener orden y eso en la programación se agradece :) .

- JavaScript es un nivel superior de programación en el cual sales del tipo texto plano puro y duro a juguetear con ese texto, te enseña a interconectar varios lenguajes de programación, hacer llamadas a variables, bucles, etc.

-PHP si lo juntamos con SQL te da mucho juego ya que puedes hacer grandes cosas con "pocos conocimientos".

Este es mi punto de vista viendo lo que PreFteRioR solicita y aporta (ratitos libres, conocimientos bajos en la programación, posible lenguaje de futuro, etc.), también es cierto que yo no recomendaría HTML>JavaScript>PHP como lenguajes para un futuro profesional ... pero si le termina gustando, ¿porque no?.

ta logoooooooooo


HTML no lo recomendaria, usar etiquetas no se parece mucho a programar aun cuando tengas que seguir un orden, para hacer eso puede empezar con Python o C perfectamente.
Mmmmmm html es un lenguaje de marcado cuyo proposito es estructurar el contenido de las paginas web asi que programar lo que es estrictamente programaR NO ES . Puedes aprender lenguajes como javascript o php si es que te gustan los orientados a pagina web / servidores
Yo te recomiendo python o C#, y sobre todo practicar mucho, no te limites a leer y leer.
Ferdy escribió:
Pues que pase de no tener ni puta idea de como ese monton de palabros juntos (C) hacian funcionar un programa a entender que era y para que servia cada cosa y por que estaban dispuestos en ese orden.


Siento decirte que eso dista mucho de saber programar...

- ferdy

Yo no he dicho que sepa programar, he dicho que empece a entender la programacion gracias a ello, pero mira esta claro que sabes mas que el jodido departamente de programacion de una universidad, tienes razon el pseudocodigo no ayuda para nada a los novatos.

-El_Harto
Yo no he dicho que sepa programar, he dicho que empece a entender la programacion gracias a ello, pero mira esta claro que sabes mas que el jodido departamente de programacion de una universidad, tienes razon el pseudocodigo no ayuda para nada a los novatos.


¿Y quién ha dicho que no sepas programar? Teneis una facilidad para entender todo como una referencia personal que abruma...

Te he dicho que lo que has descrito no significa que el método te permita aprender a programar en meses más que nada porque eso es IMPOSIBLE, uses el método que uses. Lo que has descrito es 'tener nociones de programación'.

- ferdy
A ver el pseudocodigo ayuda...sobre todo si no has tocado un lenguaje de programacion en tu vida . El pseudocodigo usa palabras entendibles por ejemplo :
Estructura condicional en pseudocodigo
Si numero > numero2 hacer
escribir este numero es mayor
fsi

En C :
if ( numero > numero2 )
{
cout << " Este numero es mayor " ;
}

No os parece mas entendible lo de arriba? Pues para eso se usa el pseudocodigo , amen de escribir programas y luego poder traducirlos de pseudocodigo al lenguaje que quieras.
:) Saludos!
89 respuestas
1, 2