Anuncio publicitario
La programación es duro. Las únicas personas que dicen lo contrario son las que tienen años de experiencia en codificación a sus espaldas. ¡Está bien sentirse abrumado! Hay una lote aprender y probablemente olvidará las cosas tan rápido como las aprenda. Créame: eso es normal.
Pero el hecho de que sea normal no significa que no sea frustrante. La verdad sea dicha aprendiendo a codificar Cómo aprender a programar sin todo el estrésTal vez hayas decidido dedicarte a la programación, ya sea para una carrera o simplemente como un pasatiempo. ¡Excelente! Pero tal vez empiece a sentirse abrumado. No muy bien. Aquí tiene ayuda para facilitar su viaje. Lee mas puede ser extremadamente estresante si no lo aborda con la mentalidad y la actitud adecuadas.
Quieres aprender ese nuevo idioma, biblioteca o marco lo antes posible, ¿verdad? Eso es comprensible. Afortunadamente, hay algunos consejos que pueden ayudarlo a retener mejor toda esa información pesada de programación que sigue volando en un oído y saliendo por el otro.
No más sesiones intensivas
Nadie quiere escucharlo, pero abarrotar es la peor forma de aprender a programar. Si eres como yo, abarrotar fue tu modus operandi todo a lo largo de la escuela y la universidad. Es la única forma de estudiar.
Pero aprende de mis errores: cuanto más intente abarrotar, menos recordará. Eso es bastante cierto para cualquier tema basado en el conocimiento, pero es especialmente cierto cuando se trata de programación.
La base de esta afirmación viene de un estudio de 2008 por la Universidad de California, San Diego:
"Los estudiantes se desempeñan mejor cuando espacian sus sesiones de estudio en lugar de cuando tratan de meter todo en sus mejillas durante una sesión".
¿Por qué? Probablemente debido a la efecto de posición en serie:
"El efecto de posición de serie es la tendencia de una persona a recordar mejor el primer y último elemento de una serie, y el medio, peor".
En otras palabras: en cualquier sesión de estudio dada, es más probable que retenga la información que aprendió cerca al principio y al final de la sesión y es más probable que olvide la información de la mitad de la sesión. sesión.
Quieres maximizar el número de comienzos y finales. Por eso es mejor tener varias sesiones cortas en lugar de unas pocas sesiones largas cuando se trata de aprender y absorber material nuevo.
La próxima vez que te sientes a aprender código, tómate un tema a la vez y haz una breve pausa entre cada tema. (¡Solo asegúrate de evitar que tus descansos se conviertan en procrastinación!)
Revisión, revisión, revisión
Otra razón por la que abarrotar es antitético a la retención de conocimientos a largo plazo es porque la memoria se desvanece con el tiempo. Esto no siempre es cierto, estoy seguro de que todos tenemos algunos recuerdos de la infancia que nunca desaparecerán, pero parece ser el caso general de los recuerdos que no están ligados a la emoción.
Existe cierto debate sobre si la memoria en sí misma decae debido al tiempo (teoría de la decadencia) o simplemente es expulsado y reemplazado por nuevos recuerdos a lo largo del tiempo (teoría de la interferencia). Cualquiera que sea la teoría a la que se suscriba, el resultado es que es más probable que los recuerdos más antiguos se desvanezcan.
Aquí es donde entra en juego la revisión.
Piense en ello como caminar por un bosque de recuerdos. Cada vez que desee acceder a un recuerdo, debe rastrear la vía neural para encontrarlo. Cada vez que trazas ese recuerdo, el camino queda grabado en un poco más, al igual que se forma naturalmente un camino de tierra cuando las personas recorren el mismo camino una y otra vez. Si dejas de caminar por el sendero, puede desvanecerse y el recuerdo termina perdido en algún lugar del bosque.
Dejando de lado toda la psicología pop, aquí está la conclusión: cuando se trata de programación, no es suficiente aprender un tema solo una o dos veces. Tienes que volver a visitarlo decenas o incluso cientos de veces. Cada revisión graba ese tema en su cerebro un poco más profundo.
Sé lo difícil que puede ser esto si eres un entusiasta natural, pero te sorprenderá lo rápido que empiezas a retener material una vez que te esfuerzas por revisarlo con regularidad.
Utilice varios recursos diferentes
El aspecto más difícil de la programación, al menos para los nuevos programadores, es la gran variedad de detalles y matices que deben internalizarse. Hasta que ocurra esa internalización, estarás en un estado perpetuo de rascarse la cabeza.
Dependiendo del idioma, deberá memorizar cientos de reglas de sintaxis (por ejemplo, palabras clave, punto y coma, espacios en blanco). Algunos lenguajes son más estrictos, otros lo son menos y otros tienen sus propios enfoques de sintaxis que no se utilizan en ningún otro lugar. Todo esto puede resultar confuso si no tiene experiencia previa en codificación.
Sin mencionar toda la información conceptual que trasciende los idiomas individuales. Temas como la programación orientada a objetos, los sistemas de componentes de entidad y los patrones del observador pueden hacer que su cabeza dé vueltas la primera vez que intente aprenderlos.
Ya he compartido esta ilustración antes, pero es tan acertada que vale la pena repetirla:
Suponga que alguien le muestra una fotografía de una estatua. Podría proporcionarte una imagen suficiente para que puedas tener una idea adecuada de la estatua, pero no obtendrás la imagen completa. Una foto ampliada perdería detalles intrincados, mientras que una foto ampliada perdería la sensación de perspectiva. Sin embargo, con fotografías adicionales tomadas desde otros ángulos, realmente puede comenzar a ver el plenitud de la estatua en textura, en tamaño, en detalle, de adelante hacia atrás, de lado a lado y de arriba hacia abajo."
Aprender a programar puede ser sorprendentemente arbitrario. Todos pueden elogiar el Recurso A por ser la mejor manera de aprender el Lenguaje X, pero tal vez no tenga sentido para ti. Tal vez todo el mundo odie el Recurso B, pero le echas un vistazo y ¡tiene mucho sentido! En cuanto a alguien más, tal vez se desvíen al estudiar los Recursos A y B, pero se beneficien enormemente del Recurso C.
Por eso es tan importante para usted estar dispuesto a consumir todo tipo de recursos. Todo el mundo aprende de forma diferente. Si tiene problemas con un tema en particular, busque otro recurso. Quizás ese sea más adecuado para ti. Tal vez no.
Incluso si cree que comprende ciertos temas, es posible que haya más que aprender al respecto. También es posible que la explicación de otra persona solidifique el concepto en su mente para siempre. Nunca se sabe, entonces, ¿por qué no consumir tantos recursos como pueda?
¡Tenga en cuenta que los juegos pueden ser un recurso muy útil! Mira estos juegos de codificación divertidos y educativos Los 9 mejores juegos de codificación para desarrollar tus habilidades de programaciónLos juegos de codificación te ayudan a aprender más rápido con práctica y experiencia. Además, ¡son una forma divertida de poner a prueba tus habilidades de programación! Lee mas .
Enseñe conceptos a medida que los aprende
Hay un hermoso concepto en programación llamado depuración de pato de goma Los principios de programación más extraños de los que nunca ha oído hablarLos siguientes principios le enseñarán a ser prudente con su código. Algunos son extraños y muchos son divertidos, pero todos son igualmente prácticos e importantes. ¡Presta atención! Lee mas , que describe la técnica de explicar el código de uno, línea por línea, a un pato de goma inanimado. Se usa cuando un segmento particular de código está roto, pero no hay una razón obvia para ello.
Curiosamente, la mayoría de los programadores tienen un "¡Eureka!" momento en el medio de explicar el código cuando de repente ven dónde ocurre el error en la lógica de codificación. La verbalización activa un área diferente del cerebro, lo que te obliga a ver el problema desde un nuevo ángulo.
Este concepto también se puede utilizar para ayudarlo a aprender material nuevo. Es posible que se haya encontrado con esta cita popular que a menudo se atribuye a Albert Einstein:
"Si no puede explicarlo simplemente, no lo comprende lo suficientemente bien".
Con la excepción de algunos campos que tratan con conocimientos teóricos avanzados, este dicho es cierto. Cuanto más comprenda un tema, mejor preparado estará para explicarlo de tal manera que alguien que no tenga conocimiento de dicho tema pueda llegar a entenderlo.
Lo contrario de esto también es cierto. Al tratar de enseñar un tema, se encontrará con ciertos conceptos que parece que no puede explicar de manera clara. Esta no solo es una manera increíble de diagnosticar las debilidades en su conocimiento, el proceso real de encontrar la explicación adecuada puede ayudar a solidificar el concepto en su mente.
Se llama aprendizaje mediante la enseñanza y es básicamente un giro en la depuración de patitos de goma.
Ahora, no estoy diciendo que debas Realmente enseñar a otros; más bien, cada nuevo tema de programación que aprenda, intente enseñárselo a un patito de goma (o un amigo invisible). Puede parecer tonto al principio, pero puede que le resulte increíblemente fructífero cuando se trata de la retención de la memoria.
La práctica deliberada hace la perfección
La noción de talento es una completa tontería. Nadie sale del útero como violinista, luchador o programador de clase mundial. Claro, algunas personas pueden estar más inclinadas hacia ciertas disciplinas, pero el talento sin experiencia es inútil No dejes morir tus talentos ocultos: 7 formas de ir y encontrarlos de nuevoLa mala noticia es que tienes que trabajar duro con la intención de pulir tus talentos ocultos. La buena noticia es que hay más oportunidades que nunca para hacer brillar sus talentos. Lee mas . Del mismo modo, el trabajo duro siempre es más valioso que el talento.
Habiendo dicho eso, no todas las formas de trabajo duro son iguales. Malcolm Gladwell acuñó la infame Regla de las 10,000 horas, que dice que debes invertir al menos 10,000 horas en un tema para convertirte en un maestro en él. Si bien el sentimiento puede ser cierto, muchas personas malinterpretan lo que estaba tratando de decir.
En pocas palabras, un compromiso de 10,000 horas en realidad no garantiza el dominio. Ya conoces el dicho: "La práctica no hace la perfección. La práctica perfecta hace la perfección ". Para que sea significativo, la práctica debe ser intencional ¿Quieres convertirte en un experto en algo? Prueba la práctica deliberadaEs muy fácil sentirse abatido cuando estás tratando arduamente de mejorar una determinada habilidad. Utilice el poder de la "práctica deliberada" para superar esas mesetas exasperantes. Lee mas . El dominio solo se puede lograr a través de 10,000 horas de práctica deliberada.
La forma en que practicas importa mucho más que la cantidad de tiempo que pasas practicando.
La lectura es pasiva. Ver lecciones de YouTube es pasivo. Escuchar podcasts es pasivo. Como programador novato, es posible que tenga la tentación de pasar de un tutorial a otro, abordando un tema tras otro sin aplicar ninguno de esos conocimientos de una manera práctica. Resista esta tentación.
Una cosa es entender un ejemplo que tienes ante ti, pero otra es sintetizar una solución desde cero. Si desea acelerar el proceso de aprendizaje, debe estar dispuesto a ser activo en lugar de pasivo. La práctica activa es la única que importa al final.
Experimente con proyectos personales
Para mí, la tarea era la peor parte de la escuela. Parecía una estratagema elaborada para matar la diversión y mantener ocupados a los estudiantes, lo cual, para ser justos, a veces era cierto. Pero ahora que miro hacia atrás, la importancia de la tarea finalmente tiene sentido. Me obligó a aplicar los conocimientos recién adquiridos de forma activa.
Si está inscrito en cursos y clases de programación Los 11 mejores sitios para cursos gratuitos de programación informática en líneaCon estos cursos gratuitos de programación de computadoras en línea, puede convertirse en un gran codificador sin un título en ciencias de la computación. Lee mas , no subestime la eficacia de la tarea. Tómelo en serio, siempre tratándolo como una oportunidad para consolidar aún más lo que ha aprendido en la memoria a largo plazo.
Pero muchas veces, la tarea todavía no es suficiente. (Y si está aprendiendo a programar por su cuenta sin un instructor real, probablemente no tenga ninguna tarea para empezar).
¿Cual es la solución? ¡Crea un par de proyectos secundarios desechables!
Pensar en un pocas ideas de proyectos 5 ideas de proyectos que le ayudarán a aprender a programar más rápidoHay algunas formas de facilitar la curva de aprendizaje de la programación. Ensúciese las manos y aprenda más rápido con proyectos paralelos que puede comenzar en cualquier momento. Juega con estos cinco. Lee mas que le gustaría implementar. Para los novatos absolutos, puede considerar un juego de Tic-Tac-Toe o Hangman. Para los programadores experimentados que intentan aprender un nuevo marco, intente codificar una aplicación móvil simple o un juego web. Siempre que te interese a nivel personal, ¡adelante!
La belleza de este enfoque es doble.
Primero, es más probable que llame su atención. Los estudios han demostrado que los estudiantes aprenden mejor cuando pueden seguir temas que les interesan. Eso es exactamente lo que ofrece un proyecto personal. Tiene un objetivo final que realmente desea lograr, por lo que es más probable que retenga la información que lo llevará allí.
En segundo lugar, no hay presión para que tenga éxito. Si bien el éxito sería bueno, la falta de formalidad te permite ser experimental y creativo. Es inevitable que te encuentres con problemas, pero es más como jugar con Lego que como tarea. Es más divertido y no tan estresante.
Relájese y marque todo
La verdad es que ningún programador recuerda todo han aprendido. Incluso después de haber estado trabajando con una biblioteca o marco en particular durante un tiempo, no es raro que no pueda recordar cada función o variable en la parte superior de su cabeza.
De hecho, tratar de memorizar todo podría terminar siendo una gran pérdida de tiempo y esfuerzo. Las hojas de referencia existen por una razón. ¿Por qué memorizar una enciclopedia completa cuando puede abrirla cuando la necesite?
Entonces, ¿cuándo memorizar y cuándo hacer referencia?
Cuando se trata de material conceptual, siempre internalícelo lo mejor que pueda. Con eso me refiero a comprender la teoría incluso si no puede convertirla en código real (y la teoría debe ser lo suficientemente clara para que usted la enseñe claramente).
Para todo lo demás, como nombres de funciones específicas, listas de parámetros o incluso peculiaridades del idioma, No me preocuparía por comprometerme con la memoria. No dude en remitirse a una hoja de referencia. A veces, harás referencia a algo con tanta frecuencia que terminas memorizándolo. Si eso sucede, está bien. Si no, también está bien.
Personalmente, tengo cientos de marcadores de Internet para varias API, guías y tutoriales. Si necesito implementar algún tipo de algoritmo de búsqueda de rutas, podría hacer referencia a una guía que me ayude a codificarlo antes de olvidarlo nuevamente. Me ayuda a comprender los conceptos subyacentes, pero trato de no preocuparme por los detalles de implementación.
Pensamientos finales
Lo repetiré un millón de veces si tengo que: La programación es difícil y está bien si tienes problemas. He programado como un pasatiempo durante más de una década y todavía me siento intimidado cuando tengo nuevos conceptos que aprender.
No se castigue si no puede recordar todo de inmediato. Es de esperar que los consejos anteriores le resulten útiles, e incluso si no es así, siempre puede confiar en las referencias marcadas como último recurso.
¿Le resulta difícil programar? ¿Qué tipo de trucos y consejos conoces que podrían ser útiles para los programadores novatos? ¡Comparte tu sabiduría con nosotros en los comentarios a continuación!
Créditos de imagen: Programador binario a través de Shutterstock, Borrador de memoria a través de Shutterstock, Código ofuscado a través de Shutterstock, Patito de goma a través de Shutterstock, Mecanografiado de teclados a través de Shutterstock, Código fuente PHP a través de Shutterstock, Carpetas de archivos a través de Shutterstock
Joel Lee tiene un B.S. en Ciencias de la Computación y más de seis años de experiencia profesional en escritura. Es el editor en jefe de MakeUseOf.