He estado tratando de aprender a programar durante mucho tiempo y todavía estoy luchando, ¿qué debo hacer?

Las respuestas clásicas a esta pregunta hablarán sobre tácticas que pueden ayudarlo a ser más eficiente. Estas serían cosas como la técnica de pomodoro, la gestión del tiempo y tutoriales específicos, lecciones, etc. que son realmente sólidos. Todo esto está en punto y te ayudará hasta cierto punto.

Sin embargo, para esta pregunta, me gusta alejarme y pensar en cosas a un nivel superior. Todos los detalles específicos son importantes, y son importantes, pero el panorama general es increíblemente importante para ellos.

Para acelerar el aprendizaje del programa, debe tener un cambio de actitud . No debes aceptar ninguna excusa. Necesitas hacer todo lo posible para ser un programador. Primero debe ser un programador; todo lo demás es secundario.

Escribí este artículo sobre las tácticas específicas para crear un cambio de actitud masivo. Uno que te llevará al siguiente nivel.

Screw Talent: 8 formas de liberar a tu héroe interno de codificación

Primero debe preguntarse si le apasiona la programación, ya que esta afirmación no indica: “Me resulta difícil recordar cosas y no encuentro interesantes algunas de las cosas que estoy aprendiendo porque es simplemente memorizar cosas diferentes”. “.

En segundo lugar, salga de W3Schools y consulte http://w3fools.com para saber por qué.

Compre algunos libros de programación y trabaje en ellos. Las conferencias y los cursos en línea a veces pueden ser demasiado rápidos para un principiante completo. Los libros te dan más oportunidades para detenerte y realmente asimilar lo que estás leyendo.

También debe decidir qué tipo de programación desea hacer. La programación web es muy diferente de la programación de juegos o la programación de aplicaciones de escritorio, pero se utilizan algunos lenguajes de programación generales para ambos. Java, por ejemplo, es ideal para aplicaciones web y aplicaciones de escritorio.

Si es web, entonces necesita aprender estos en orden: HTML, CSS, Javascript (jQuery), LUEGO un lenguaje del lado del servidor como Java, Python o Ruby.

Un par de libros que serán de gran ayuda:

http://www.amazon.co.uk/Code-Com
http://www.amazon.co.uk/Design-p…

Esto suena básico, pero lea detenidamente el artículo wiki sobre programación en general y siga los enlaces relacionados que le interesen:

http://en.wikipedia.org/wiki/Pro
http://en.wikipedia.org/wiki/Agi

No hay duda, hay una gran cantidad de información para asimilar, y es por eso que tienes que ser absolutamente apasionado de la programación. Comience con los fundamentos y avance desde allí.

Mientras aprende todo esto, asegúrese de tener una computadora frente a usted con un entorno de desarrollo donde pueda jugar con las ideas que está aprendiendo. Ese es quizás * el * aspecto más importante.

Editaré esta respuesta para que se adapte mejor a sus necesidades una vez que sepa exactamente qué tipo de programación está buscando seguir.

No olvides esta excelente publicación:

http://www.norvig.com/21-days.html

Empieza pequeño y trabaja hacia arriba. Por ejemplo, uso el motor de juegos de Unity, y veo a muchos usuarios de Unity que desean ayuda para crear grandes juegos y scripts complicados cuando probablemente ni siquiera saben cómo escribir un script simple que solo haga girar un cubo. Incluso los programadores experimentados, cuando adquieren un nuevo lenguaje o herramienta de programación, comenzarán con pequeños experimentos y proyectos. Y no se preocupe por la memorización: si está programando en un determinado lenguaje o sistema todos los días, memorizará cosas, pero eso no es realmente importante. A medida que adquiera más experiencia, ahora podrá buscar cualquier cosa que recuerde. Cada vez que cambio a un idioma que no he usado durante unos años o que solo uso con poca frecuencia, tengo que tomar un repaso rápido y hojear un libro o algunas páginas web, e incluso con mi trabajo diario, a menudo tengo que consultar el documentación de referencia, ya que además del lenguaje, generalmente tiene que trabajar con una API extensa. Nunca aprendí bien en la escuela y preferí aprender solo y a mi propio ritmo, pero algunas personas son lo contrario: si realmente necesita un entorno estructurado para aprender, debería tomar un curso tradicional, tal vez en un colegio comunitario local .

Proyectos de mascotas, amigo. Haga algunos proyectos estúpidos y simples para mascotas por diversión, solo para aplicar lo que está tratando de aprender.

Los sitios de instrucción en línea como Code Academy son geniales, pero simplemente copiar lo que quieren que hagas para completar un curso se vuelve rutinario. Necesita práctica real, intente hacer algo después de su propio diseño que aún no sabe cómo hacer. Eso te obliga a aprender por necesidad, no solo para completar el siguiente paso para terminar un curso o un capítulo.

No te preocupes por memorizar. Las funciones, etiquetas, técnicas que ha utilizado algunas veces eventualmente se pegan, no se preocupe por buscar documentación para encontrar pistas sobre Stack Overflow.

Preocuparse por hacer , no aprender .

Uno de mis primeros proyectos de mascotas fue increíblemente tonto: hice un gurú del almuerzo. En la oficina a veces perdemos un poco de tiempo discutiendo sobre dónde conseguir el almuerzo: sushi, hamburguesas, turco, tailandés, etc. Así que hice al gurú del almuerzo. Funciona así:

Cuatro cartas muestran cuatro frases aleatorias, como las letras de las canciones y las galletas de la fortuna. Se genera al azar. Cada frase es una tarjeta, la idea es que cada almuerzo coloque un dedo sobre el mouse y colectivamente, al estilo ouija-board, seleccione una “tarjeta de frase”. Desplácese sobre una tarjeta durante 7 segundos y, si se voltea, revela qué hay para almorzar: “¡Chino, en Xu’s!”.

Como dije, es realmente tonto. Solo funciona realmente en Firefox. Solo lo usamos una vez, creo, y terminamos yendo a otro lado de todos modos. Pero tuve que resolver muchas cosas para que funcionara, cosas que se me quedaron en la cabeza.

Así que crea pequeñas aplicaciones estúpidas y simples y abandónalas en el momento en que surja una mejor idea. Que te diviertas. No aprendas; crear. Es sorprendente cuánto ganarás mientras pierdes el tiempo en proyectos tontos como este.

Sin embargo, algunos consejos: que sea sencillo. Aprender muchos campos diferentes al mismo tiempo es frustrante. Manténgalo manejable o se quedará atascado con demasiada frecuencia. Lo que creas que es difícil en tu primer proyecto de mascota será la parte más fácil de tu próximo proyecto.

OK, de vuelta a mi generador de lorum ipsum que emite letras aleatorias de Johnny Cash.

¿Por qué no intentas un enfoque diferente entonces ?, aprende construyendo .

Encuentra algo que te interese lo suficiente y pruébalo. Lo importante es aprender conceptos poniéndolos en práctica, ver cómo se usan en una aplicación real, no en algún ejercicio. Recordar la sintaxis es bueno y de hecho útil, pero lo que es mucho más importante es saber qué necesita y dónde encontrarlo, perfeccionando sus habilidades para resolver problemas.

Divida los problemas que encuentre en muchos problemas manejables más pequeños, y divídalos aún más. No pierdas de vista el premio, tu proyecto, no la memorización, las minucias eventualmente se mantendrán.

El punto es seguir aprendiendo. ¡Buena suerte!

práctica práctica práctica. hazlo a diario. nunca te saltes un día hasta que realmente entiendas cómo funciona algo. si no entiendes algo, hazlo una y otra vez. siempre mantenga referencias. digamos, por ejemplo, que desea saber cómo se crea esta página, vea su código fuente. Si conoce los conceptos básicos de html, css y javascript, será fácil entender qué se usa y cuándo. Si desea saber cómo se hizo que algo se vea de esa manera, simplemente consulte su código fuente. inspeccionar ese elemento. elemento de inspección de Chrome; es una gran característica para aprender cómo se combinan html y css para crear cosas visuales. No hay manera fácil. primero obtén lo básico y luego sumérgete en la naturaleza. si quieres convertirte en desarrollador web o diseñador / codificador, primero aprende los conceptos básicos de html, css y javascript. luego estudie páginas web reales. inspecciona elementos. mira cómo han ido las cosas. hazlo diariamente una y otra vez.

La cuestión es que la programación nunca es “fácil” como lo hacen otros sujetos. Ajusta su definición de fácil después de acostumbrarse a las idiosincrasias de programación.

Soy un gran admirador de Codecademy, pero me doy cuenta, mientras lo uso, de que tiene el efecto “Cena china”, en el sentido de que te sientes lleno de conocimiento justo después de tomar las lecciones, pero en poco tiempo, te olvidas de todo, porque te dijeron cómo hacerlo, paso a paso, y luego solo lo hiciste una vez, y nunca volviste a revisarlo.

La revisión es realmente importante. Encuentro que, para los desafíos de Codecademy, paso por toda la lección del desafío, y luego borro mi código e intento construir lo mismo desde cero. Esto me muestra muchos de los lugares donde todavía estoy dudoso y me permite reforzar mi conocimiento.

Tengo que discrepar respetuosamente con Damien. Es verdad, hay personas a las que les encanta programar porque aman todas las pequeñas minucias de sintaxis. También hay desarrolladores igualmente buenos a los que les encanta programar porque les encanta construir la lógica detrás del código. Estoy seguro de que también hay otros tipos, pero una frustración con la memorización indica nada más que una frustración con la memorización, no una incapacidad para programar.

Puede parecer una tontería, pero ¿podría seguir las instrucciones para los niños? ¿Hablas de crear sitios web complejos, así que supongo que estás tratando de aprender a programar en Javascript?

Code Monster de Crunchzilla

https://www.udacity.com/course/c
Créeme.

¿Qué parte de CS101 que ofrece Udacity trata de memorizar cosas?