Metodo para aprender a programar.

El lenguaje es casi lo de menos. La mayoría se parecen unos a otros.

Lo importante es la lógica y entender la manera de "pensar" de una máquina para resolver un determinado problema. Todas "piensan" más o menos igual.

Para llegar a una misma solución existen formas más o menos elegantes, más rápidas, o más lentas, más limpias y más guarras.

Con los entornos integrados se ha solucionado el problema de la sintaxis, faltas de "ortografía" y demás frutadas que hacían la curva de aprendizaje más lenta.

Lo que quieras profundizar depende de de tí y de tus objetivos.
 
Pes básicamente depende de si tienes el 'don', yo he visto a mucha gente aprendiendo, y he dado muchas clases, y hay personas que de alguna forma en cuanto empiezan a aprender la progresión va casi sola, y otras necesitan una metodología para abordar los problemas y memorizar pasos y soluciones.
 
Mi ruta favorita es HTDP + SICP, pero es mucho más purista que la mayoría de las cosas que te vas a encontrar por ahí. Ahora creo que a esta metodología la llaman "program by design".

Otra vía es nand2tetris, pero esto es mucho más generalista y es un enfoque paralelo y complementario.

Si te lo vas a tomar como un pasatiempo tal vez es mejor que vayas por un camino menos ambicioso y tires por los libros de Python o Ruby de referencia para principiantes (como Thinking in Python o Invent With Python) y luego sigas a partir de ahí.
 
Me parece a mi que alguien que pregunta en un foro como aprender a programar anda todavia un poco lejos del mercado laboral, lo mismo le da aprender java que basic para el nivel que tiene.

Así es, si aprende por aprender, por saber, entretenerse y pasarlo bien, pues eso, Java y luego el SDK del Android y a hacer alguna cosa divertida, si resulta que se le da bien, es un genio y se inventa un facebook, un whattsapp o alguna cosa de esas de uso masivo, ya tiene la vida solucionada, pero de los garajes salen pocos de esos.

Si busca ganarse la vida programando, que no elija lo que pueden hacer 200.000 millones de personas, que se especialice, pero para eso hace falta primero tener una buena base sólida, no sólo de programación, eso cuesta tiempo y dinero, y normalmente no es divertido.

Saludos.
 
A ver; el problema no es programar, que en 6 meses sabes todo, el problema es las tragaderas y trabajar en "equipo". Huye huye huye insensato, programa en tu casa y lo que te guste, trabajar "con gente" que hace lo que le sale de los guevos es para pegarse un tiro.
 
No soy informático ni estoy puesto en programación, pero me pareció curiosa la iniciativa de ésta web. Trata de ofrecer cursos de aprendizaje y, para mí, están muy bien.

Learn to code | Codecademy

Gracias por el aporte, me gusta éste tipo de metodos, que ya he probado previamente en una web de idiomas Duolingo | Learn Spanish, French, German, Portuguese, Italian and English for free

El aprendizaje se hace muy ameno, aprendes por repetición y práctica
 
No se donde veo mas ilusa esperanza, ¿si en quienes depositan las esperanzas de un prometedor futuro en la programación, o en los que van por su tercer matrimonio?
 
Lo más importante es saber un poco de lógica y un poco de matemáticas (sencillas). Todo lo demás es secundario.

Mis elecciones como lenguajes de programación para aprender serían, dependiendo de lo que quieras, las siguientes:

- Orientada a objetos, sencilla (pocas líneas de código para hacer cosas curiosas, pero lento): Python
- Orientada a objetos, un poco más compleja: Java
- C para entender lo que es un estándar y por qué, tras décadas de haber sido creado, sigue siendo de lo mejor


Con estos tres lenguajes ya podrías entender PHP, C++, C# y Perl.
 
No se donde veo mas ilusa esperanza, ¿si en quienes depositan las esperanzas de un prometedor futuro en la programación, o en los que van por su tercer matrimonio?

A mí me parece un fin en sí mismo, más allá de las posibles salidas laborales que pueda tener.
 
No soy experto programador pero creo que la costumbre antes de embarcarse en estudios superiores es empezar por c y los típicos ejercicios de matemáticas (Un programa que halle la media de tres números, que separe los números primos de los no-primos, etc), esta página tiene muy buenos ejemplos en gran cantidad de lenguajes :

Diagramas de Flujo y Algoritmos

Espero serte de ayuda

Disiento. C es muy potente pero empezaría antes por un lenguaje más esctrictamente tipado, ya que si no C puede inducir constumbres peligrosas (por ejemplo un char a = 43 te lo da por válido aunque los tipos no coincidan. Cuando estudiaba aún se ensenaba MODULA-2, que es muy bueno en este aspecto aunque no te lo recomendaría ahora porque para empezar tendrías que volver a MS-DOS :p

Metodología de la programación es lo que buscas. Una vez que lo domines empieza con C. Y cuando lo domines pásate a un lenguaje orientado a objetos (C++ o Java).

intercambiosvirtuales.org/libros-manuales/metodologia-de-programacion-a-traves-de-pseudocodigo-1era-edicion-mcgraw-hill

Salud

Exacto, la metodología es fundamental para poder disenar un código eficiente. Cualquier pueblerino puede aprender la sintaxis de un lenguaje en unos días, pero hacer un código que funcione bien, sea entendible por otros y además escalable y mantenible es otra historia.

Aprovecho para preguntar:

En cuanto tiempo (meses) creéis que se puede aprender a programar para trabajar de picateclas?

Pongamos una persona adulta con buena capacidad de estudio y gestión del aprendizaje autónomo y unas 20 horas de dedicación semanales.

Pues he visto gente trabajando en cárnicas tras un cursillo de Java de dos semanas (vendidos como expertos al cliente), pero su rendimiento dejaba bastante que desear. Al final dependerá de cada uno, de su pensamiento analítico, del empeno que le ponga, si disfruta haciéndolo, etc.

A todo esto, ppuedo anadir dos consejos:

1 - Si ya tienes algun oficio previo, busca un lenguaje que case bien con eso y especialízate. Por ejemplo, si vienes del mundo de las finanzas, aprende R (o en su defecto Python), que es muy potente para análisis estadístico. Si vienes del mundillo industrial, aprende a programar PLCs o microcontroladores, etc. Eso siempre te dará más oportunidades laborales que ser uno más de los millones de picateclas generalistas de Java que hay en el mercado.

2 - Como ya te han dicho antes, aprende de los demás. Descarga códigos fuente a mansalva , entiéndelos, modifícalos, mejóralos. Y si no entiendes algo, pregunta en foros especializados; hay muchísimos cracks que te pueden echar una mano. Y cuando tengas un cierto nivel, cuelga tu código en sitios como github y úsalo como carta de presentación.

Edito para anadir que solo te dediques a esto si realmente lo disfrutas de verdad. La programación puede ser MUY frustrante si estás a disgusto con lo que haces, y lamentablemente hoy en día los sueldos tampoco compensan demasiado (al menos en Espana).
 
Última edición:
Si quien va a aprender a programar, que dices que está a nivel preuniversitario, va a hacer un grado de informática o similares luego, mira a ver qué lenguaje se utilizará en su curso. Si comienza con ése, después le sacará más rendimiento a las clases.

Una cosa importante a la hora de aprender, como decían otros foreros, es que el lenguaje sea tipado (esto es que no te permita mezclar tipos de datos a la ligera). En la universidad en la que estudié yo utilizaban Pascal y Ada para los primeros cursos. Pascal no te va a servir para encontrar trabajo, pero es muy sencillo para dar los primeros pasos. Ada, parecido, también es sencillo y tiene el tipado más fuerte que he visto.
 
gracias por la respuesta. De todos modos conozco a varios picateclas en consultoría, empresas de desarrollo web, bases de datos etc. que trabajan sin ser ingenieros,sólo con módulos...

Menos de un año, en ese caso?

Si se te da bien y tienes facilidad si
 
Disiento. C es muy potente pero empezaría antes por un lenguaje más esctrictamente tipado, ya que si no C puede inducir constumbres peligrosas (por ejemplo un char a = 43 te lo da por válido aunque los tipos no coincidan. Cuando estudiaba aún se ensenaba MODULA-2, que es muy bueno en este aspecto aunque no te lo recomendaría ahora porque para empezar tendrías que volver a MS-DOS :p
.
Tienes razón C puede ser lioso pero el lenguaje también depende del sector en el que quieras programar y C de unos años a aquí por lo que he visto se ha vuelto muy popular en lo que control industrial se refiere, para quien programes, etc... En C hay auténticos dramas sobre si usar goto está bien o es una aberración, etc...
Es lo que tiene la programación, cada programador es un mundo.
Si es por afición y curiosidad busca el lenguaje que más te guste y punto.
 
Para aprender a programar, primero aprende algoritmia. Saber cómo resolver problemas en lenguaje natural te evitará en un principio los problemas de sintaxis típicos de los lenguajes de programación. Esta es la forma correcta de empezar a programar. Ten en cuenta que la programación es independiente del lenguaje que vayas a utilizar.

Una vez seas capaz de esto, solo te queda practicar con el lenguaje que desees (te recomiendo python).

Un saludo.
 
Volver