› Foros › PC › Software libre
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.
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
//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();
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.
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.
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
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.
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.
zambombas escribió:Si quieres mis apuntes de la uni , yo te los subo a megaupload
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.
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
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
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
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.
Si no sabes programar, al principio te vas a encontrar con ellos a punta pala...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...
¿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.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?
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
Si no sabes programar, al principio te vas a encontrar con ellos a punta pala...
¿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.
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.
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.
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.
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
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.