¿Aprender a programar por tu cuenta = trabajo inútil?
Autor | PRESSone
Fuente | Estudiante Huaizuo
Primero déjame contarte una historia para ver si has tenido una experiencia similar. Un día, vas a una reunión de clase y brindas con tus viejos amigos. Te dicen que si no aprendes a programar, quedarás fuera. A juzgar por las tendencias globales, la programación ha estado ardiendo durante muchos años. Ya en septiembre de 2014, el Reino Unido estipuló que los estudiantes de entre 5 y 16 años deben aprender programación, el CEO de Apple, Cook, dijo que los cursos de programación deberían ofrecerse en todo el mundo. Cuando llegas a casa, das vueltas y vueltas, sintiendo que no puedes seguir la tendencia de los tiempos, y suspiras: "Lian Po es viejo, ¿todavía puede ganarse la vida además de la ansiedad? " busque programación como Baidu, Zhihu y Sogou. Déjame aparecer. Después de un rato de operación, murmuras: "Vaya, las personas que saben programar son tan geniales y asombrosas, todos son grandes maestros". Después de suspirar, sientes que no puedes simplemente hablar en papel y pescar en el abismo, así que. también podrías retirarte y tejer una red.
Entonces, empezaste a aprender programación por tu cuenta.
Escuché a la gente decir que los algoritmos son el núcleo de la programación. Si aprendes bien los algoritmos, puedes tener éxito en todo. Lo que otros dicen está en sus bocas, pero tú escuchas en tu corazón. Inmediatamente compraste una "Introducción a los algoritmos" y planeaste estudiar algoritmos hasta tu muerte. Estudias día y noche el pequeño capítulo "Conceptos básicos de los algoritmos", lo retocas durante más de medio mes, pero aun así va y viene. Sin embargo, es arrogante y no sucumbirá al obstáculo de los "conceptos básicos de algoritmos". Comienza a visitar varios foros, CSDN, Blog Park, Jianshu y Zhihu están en su lista de visitas frecuentes. Aprovechas al máximo todo el tiempo libre, lo cepillas en el metro, lo cepillas mientras comes y lo cepillas antes de acostarte. Te diviertes mucho cepillándolo y lo recoges con decisión sin terminarlo.
Cuando has recopilado más de 100 artículos no leídos, finalmente te das cuenta de que colección = nunca volver a leer, lo que te frustra.
Lo que te frustra aún más es que la "Introducción a los algoritmos" que compraste ha estado en la estantería durante mucho tiempo. Para comprender los 'Conceptos básicos de los algoritmos', debe dejar en la sombra la 'Introducción a los algoritmos'. Lo que es incluso más cruel que esto es que desde que prometiste aprender a programar, ni siquiera has escrito una línea de código ni has ejecutado un solo programa. Te vuelves cada vez más ansioso y, finalmente, un día, colapsas por completo, compadeciéndote de ti mismo: "En el fondo soy un estudiante de artes liberales, ¿por qué debería seguir la moda? ¿Por qué debería aprender a programar? ¿Es interesante seguir aprendiendo y haciendo?". trabajo inútil? Escribe en voz baja ¿Es malo el artículo? "Es posible que la persona que escribe el artículo no pueda aprender a programar. El escritor Wang Xiaobo es uno de los primeros programadores en China y una vez programó un método de entrada independiente para DOS. Lo que realmente le impide aprender a programar no son los algoritmos profundos, sino sus métodos de aprendizaje incorrectos. Aprender a programar por uno mismo no significa hacer un trabajo inútil, pero aprender por uno mismo a ciegas y con ansiedad sí lo significa. Después de leer esto, debes estar lleno de dudas: "¿Qué hice mal?"
En primer lugar, la intención original del autoestudio no es estar ansioso o ciego, sino resolver problemas.
Bruce Lee acababa de regresar a Hong Kong y estaba en el programa "Happy Tonight". El equipo del programa invitó a un boxeador para probar si podía empujar al oponente. El boxeador también se puso de pie y esperó a que empujara, pero Bruce Lee golpeó al oponente en la cara. Lo que Bruce Lee quería expresar era: en el combate real, nadie esperará a que te coloques en posición y solo atacará en el lugar que especifiques. Lo mismo ocurre con el aprendizaje. En la vida real, el entorno y el conocimiento cambian constantemente. Es imposible aprender y completar una materia sistemáticamente como en la escuela y luego sentarse en el aula y esperar un examen que no exceda el programa de estudios.
La mayoría de las veces, la vida te hará una prueba primero y luego podrás encontrar las palabras clave basadas en las preguntas y empezar a estudiar. Por lo tanto, el punto de partida del aprendizaje no es el comentario casual de alguien en la mesa de vino, ni un libro que alguien publicó en Moments, un artículo recomendado de WeChat o un libro de texto clásico de esta industria que desencadene su ansiedad. realmente encontrado. Cuando encuentre un problema, comience a escribir, cometa errores, corríjalos, vuelva a cometer errores y corríjalos nuevamente. Este es el proceso más importante de aprender a programar. En segundo lugar, el autoestudio, especialmente la programación de autoestudio, a menudo no es lineal.
Cuando estudiamos en la escuela desde la niñez hasta la edad adulta, todos tenemos un libro de texto. A menudo seguimos el camino de la vista previa, escuchando conferencias, ejercicios y repasos. Todos los libros de texto son iguales: los puntos de conocimiento. Los involucrados en cada capítulo están relacionados, todos son relaciones lineales. Solo después de haber aprendido el primer capítulo podrás aprender los conceptos básicos del segundo capítulo. No sólo la estructura del conocimiento de la sociedad no es así, sino que casi toda ella no es así.
El trabajo y la vida están llenos de todo tipo de "referencias previas", es decir, si desea comprender el punto de conocimiento actual, debe confiar en uno o más puntos de conocimiento que pueda comprender en el futuro. Si todavía estudias de acuerdo con el pensamiento lineal de la época escolar, probablemente serás como el protagonista de la historia y al final no aprenderás. Tomemos como ejemplo la programación. Las personas que leen "Introducción a los algoritmos" a cada paso definitivamente no podrán soportarlo a menos que tengan una base sólida en matemáticas.
La vida rara vez nos enseña procedimientos paso a paso. Las pruebas que nos ofrece a menudo están fuera de su alcance, lo que requiere que actualicemos e iteremos constantemente. La mayor inspiración que nos ha traído el desarrollo de Internet es la iteración. Desde los portales hasta la búsqueda, desde la búsqueda hasta la Internet móvil, desde la simple interacción de una página web hasta las animadas redes sociales de videos cortos de hoy, la tecnología y la ecología se han actualizado e iterado.
Del mismo modo, el autoestudio también es un proceso de constante actualización e iteración. La programación es un oficio que hay que vivir y aprender. Hay algunos conceptos muy abstractos, no importa si no los entiendes al principio, primero tienes una impresión aproximada y luego sigues las instrucciones para escribir. Algunos fragmentos de código y practíquelo usted mismo. Después de escribir, resumir, resumir, organizar y organizar los puntos de conocimiento relevantes. Una vez que tenga más experiencia práctica, podrá mirar hacia atrás a las dificultades iniciales y, naturalmente, se iluminará.
Por ejemplo, return en Python. Muchas personas que son nuevas en Python están confundidas acerca de return. Literalmente significa retorno. Entonces, ¿qué devuelve exactamente y dónde regresa? Alguien puede explicarle: "La declaración de devolución devuelve el resultado al lugar de llamada y devuelve el control del programa juntos. Para los principiantes, esta explicación no es fácil de entender".
Está bien, practiquémoslo primero.
Tome las siguientes cuatro líneas de código como ejemplo. Puede imaginar que abre una fábrica y contrata trabajadores para trabajar. Bajo su dirección, este trabajador usa tres palabras. Los materiales son. Se utiliza para ensamblar dos productos terminados, x e y. Pero el montaje en el programa es diferente al de fábrica y los materiales usados no desaparecerán. De esta forma, el trabajador tiene cinco elementos a, b, c, xey en su mano. ¿Cómo sabe cuál quieres?
Entonces la función de devolución es decirle al trabajador lo que quiere en ese momento, ya sea una funda de iPhone o el iPhone completo. No hay duda de que devolver x y devolver y son resultados completamente diferentes. return x significa que cuando le pides a este trabajador que te ayude a trabajar (llama a la función), finalmente te entregará el producto terminado x, y cuando ingresas return y, el trabajador te entregará el producto terminado y.
Por ejemplo, trabajador (1,2,3), el resultado de devolver x es 1+2=3 y el resultado de devolver y es (1+2)*3=9. Practica esto, ¿tienes una comprensión más profunda del retorno? def trabajador(a, b, c): x = a + b y = x * c return yDespués de leer mi análisis, mirando hacia atrás, ¿sientes que es así? Cuando queda mucho más claro, es posible que desee preguntarse: ¿Cómo puede ser eficiente el autoestudio? En el proceso de autoestudio, existe un método particularmente efectivo, que consiste en utilizar la salida para forzar la entrada. Puede navegar por foros, leer artículos o ver tutoriales en video. La clave es tener salida, y la entrada por sí sola no es suficiente. . Y el mejor resultado es la práctica. ¿No sería maravilloso transformar lo que escuchas, ves y lees en programas que puedas escribir de forma independiente?
El protagonista de la historia al principio del artículo cayó en un atolladero de entradas ciegas pero ninguna salida. Superficialmente, sus canales de entrada parecen estar diversificados, pero estos insumos no generan resultados efectivos. Hay otro punto que mucha gente no sabe. Es probable que tu aportación sea una maldición que restrinja tu progreso.
La entrada también es muy particular. La entrada ciega conducirá a una sobrecarga de información. Se publican 4.000 libros cada día en el mundo, con más de 400 millones de palabras escritas en el New York Times en un día, casi igual a la cantidad de lecturas de los contemporáneos de Newton en toda su vida; Cada día se fabrican 4.000 artículos. Incluso si haces todo lo posible e ingresas conocimientos relevantes como loco, todavía habrá algunas cosas que se escaparán de la red.
Además, en el vasto océano de información, la calidad de la información es desigual, es imposible garantizar que lo que ingresas sean solo algunos fragmentos, pero te hará dudar en seguir adelante.
Aquí compartimos las opiniones expresadas en el libro "Principios" de Ray Dalio, fundador de Bridgewater Associates (un fondo de cobertura de renombre mundial): "Las decisiones correctas a menudo dependen de la ponderación de la credibilidad, no de aceptarlas todas". la información en su totalidad, pero para creerla selectivamente, en palabras de nuestros antepasados, debemos tomar la esencia y descartar la escoria. En la era de la explosión de la información, lo más importante no es agregar información, sino filtrarla y eliminarla. Además, debes tener el coraje de salir de tu zona de confort y practicar de forma deliberada.
El concepto de práctica deliberada fue propuesto por el psicólogo estadounidense Dr. Andre Ericson. El aprendizaje con propósito se refiere a dividir el contenido que se va a aprender en pequeños fragmentos específicos. Repetir el ejercicio para cada bloque pequeño. En el entrenamiento de artes marciales, hay un fuerte énfasis en dividir los ejercicios.
En primer lugar hay que recorrer todo el conjunto de movimientos y ver cómo lo hace el entrenador. Luego divídalo en múltiples acciones, cada acción en múltiples pasos, y practíquelos uno por uno. En este tipo de entrenamiento los movimientos deben ser lentos. Sólo cuando disminuyes la velocidad puedes percibir la estructura interna de los movimientos y notar tus errores. Los pintores necesitan coleccionar estilos, los jugadores de ajedrez necesitan escribir partituras, los abogados necesitan estudiar casos, los políticos necesitan leer historia, los científicos necesitan leer artículos y los corredores de maratón necesitan acumular al menos 150 kilómetros de distancia corriendo cada semana.
La mayor parte del aprendizaje no se logra de la noche a la mañana. A menudo se trata de práctica-retroalimentación-práctica-retroalimentación-práctica-retroalimentación-aprendizaje. La clave para la práctica deliberada es obtener retroalimentación efectiva en todo momento. Tomemos como ejemplo la programación autodidacta. Esta es un área donde es fácil obtener comentarios. Cuando el programa que escribe no se puede ejecutar, significa que debe depurarlo. Debe dividir el código que escribió en pequeñas secciones y verificarlo. ellos paso a paso hasta encontrar errores. Por supuesto, todo el mundo debe estar cansado de la sopa de pollo que preconiza el trabajo duro. El hecho es que incluso si muchas personas se sientan en sus escritorios y estudian mucho todo el día, los resultados reales están lejos del nivel de maestría académica. La clave del problema radica en sus métodos de pensamiento y aprendizaje, si su tiempo de estudio se utiliza de manera eficiente y si puede transformar el conocimiento en su verdadera fortaleza a través del aprendizaje eficiente.
Es que si tu atención se distrae y estás frente a tu escritorio, deambulando por el mundo; si finalmente terminas de aprender y te olvidas de todo en un abrir y cerrar de ojos; de código pero no sabes cómo hacer inferencias, al mismo tiempo Un punto de conocimiento vuelve a quedar perplejo al cambiar la pregunta. Si te falta curiosidad y espíritu de exploración en el campo que estás estudiando, serás simplemente un monje por un día; y tocar el timbre por un día sin práctica deliberada. Entonces, no importa cuánto tiempo se dedique, ¿cuál será el resultado?
Pregúntate, ¿cuándo fue la última vez que te sentaste y te concentraste en estudiar durante mucho tiempo?
Parece que esto es cada vez más difícil de hacer porque hay demasiadas distracciones en nuestras vidas: Weibo en el que hay que hacer clic, me gusta en Moments, recolección de energía en Alipay Ant Forest... las tentaciones. son infinitas, truncando muchas posibilidades en nuestro aprendizaje. Aceptamos demasiadas entradas no válidas y, naturalmente, no produciremos resultados eficientes. Después de leer esto, quizás quieras volver a preguntarme: "¿Qué debo hacer?" En lugar de extender ciegamente el tiempo de estudio, es más importante estudiar más "deliberadamente".
El aprendizaje nunca es algo que se realiza en una sola etapa, y mucho menos es algo fácil, pero podemos optimizar nuestro camino de aprendizaje, como crear un entorno de aprendizaje con pocas distracciones para nosotros. Tomemos como ejemplo la programación autodidacta, todo lo que necesitas es una computadora. Cuando estudies, será mejor que te mantengas alejado de tu teléfono móvil y apagues las versiones para computadora de WeChat, QQ y algunas aplicaciones complicadas. Sin embargo, el camino hacia el autoestudio nunca es fácil, lo que lo hace profesional y único. ¡Que regreses de tus estudios como un gran maestro!