Cómo la música y el dibujo me enseñaron a programar



De un traductor: Xijiang Yang, un programador de Nueva York, habla sobre cómo el arte lo ayuda a practicar la codificación.

La programación es similar al arte. Al mismo tiempo, otras formas de arte, en particular, la música y el dibujo, pueden enseñar mucho a un programador. Espero que te ayuden de la misma manera que me ayudaron a su debido tiempo.

Skillbox recomienda: Curso práctico de dos años "Soy un desarrollador web PRO" .

Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".

Centrarse en lo básico


Que enseñamos

Si te gustan los algoritmos, quiero decir, me gusta mucho, como el hecho de que temprano en la mañana comienzas a hacer árboles de recursión y segmentos, felicidades. Eres un programador puro. Pero nosotros, el resto, somos personas comunes, a veces nos hacemos la pregunta: ¿por qué resolver estos acertijos? ¿Solo para pasar las entrevistas con éxito?

De hecho, cuando practicas algo, debes entender por qué lo estás haciendo. ¿Quieres adquirir ciertas habilidades? ¿O fortalecer las debilidades?

Creo que todos estos acertijos para programadores no solo le permiten obtener conocimientos específicos, sino también comprender mejor los elementos básicos del proceso de creación y escritura de código. Obtener o mejorar habilidades básicas.

En cuanto a los acertijos, no son necesarios para resolver el problema, sino para estudiar el proceso de encontrar una solución. Estas son cosas diferentes.

¿Qué haces con el problema? ¿Romper en pequeños componentes? ¿Qué te ayuda a mejorar tu nivel? ¿Cuáles son las diferencias entre algunas estructuras de bases de datos de otras? Las habilidades básicas son similares a los armónicos principales sobre los que se construye la sonata.

¿Qué saben los profesionales experimentados?


Diría que un artista experimentado no sabe cómo dibujar Central Park en Nueva York en el otoño. Pero él sabe lo básico que se necesita para crear una imagen. Utilizándolos, pinta un paisaje, y el resultado es una imagen increíblemente hermosa.

Un artista experimentado no sabe dibujar hojas en los árboles. No, habla con fluidez los colores y sus combinaciones. Él sabe cómo se comportan los colores en el lienzo.

Por lo tanto, un programador experimentado no tiene que conocer todos los matices de React, Vue, Ember u otros marcos. Un programador experimentado sabe cómo funciona JavaScript y cómo funciona el navegador. Un programador experimentado comprende los beneficios de la programación funcional; sabe por qué React es primordial en un caso particular.

Aprenda los conceptos básicos, y todo lo anterior se unirá en una imagen clara.

Bocetos de la vida


Copiar-pegar vs fuente

Mis amigos, artistas que se toman en serio su oficio, siempre hacen bocetos de la vida. ¿Qué significa esto? Dibujan todo lo que ven, todo lo que les interesa.

No dibujan una fotografía o modelo, sino que dibujan lo que ven ellos mismos.

Cuando alguien dibuja un paisaje a partir de la imagen de alguien, no inventa, sino que copia. En programación, el equivalente de este comportamiento es copiar y pegar fragmentos con desbordamiento de pila.

El código de copiar y pegar nunca brindará la oportunidad de obtener conocimientos fundamentales. Copiar el código de otra persona tiene un significado similar: obtendrá una solución, pero no la experiencia. Gana la batalla, pero pierde la guerra.

Conocimiento universal


El conocimiento fundamental se puede llamar universal. Si intenta resolver el problema usted mismo, se equivoca y finalmente encuentra una solución, entonces obtiene tal conocimiento. Usted estudia los principios del trabajo que pueden usarse en proyectos futuros.

Raramente son decisiones comunes cuando "una talla para todos". Para obtener las llaves de diferentes cerraduras, tienes que trabajar. A veces es útil hacer el trabajo sin la influencia de la decisión de alguien, solo.

Practica


Repetición dirigida

Cuando un músico estudia una obra, no solo trata de tocarla de principio a fin, una y otra vez, miles de veces. Busca debilidades en su trabajo y las elimina.

De lo contrario, el rendimiento estará lejos de ser ideal, contiene las notas incorrectas (en el caso de la programación - errores).

Aunque la repetición ciega no es la mejor manera de aprender algo, la repetición enfocada le permite obtener la experiencia correcta. Trabajas en tus puntos débiles y mejoras.

Y para un principiante, la repetición ciega es útil. Esto desarrolla la memoria muscular, que en el caso de la programación puede considerarse habilidades cognitivas. Después de eso, puede pasar a trabajos complejos.

Trabajo de alto nivel


Si eres nuevo en el uso de cualquier marco, practica. Aprende sus elementos básicos, crea algo básico.

Seleccione un puerto, cree una ruta, envíe una solicitud y responda. Entonces repita esto.

Cuando un músico termina de estudiar la parte difícil de una pieza, no se da la mano y no se dice a sí mismo: sí, bueno, se acabó. No, lo repite para excluir la posibilidad misma de un error.

Es lo mismo con un programador: si escribe un programa complejo, resuelve un problema, puede omitir el error de sintaxis más simple, después de lo cual todo el mecanismo se negará a funcionar. Hay que buscar un problema. Si calcula la sintaxis del automatismo, se reduce la probabilidad de un problema.

Entonces no tienes que preocuparte. Un músico que haya dominado sus habilidades con el automatismo no se preocupará por tocar notas individuales de un concierto. Se centra en la melodía en su conjunto, y no en sus elementos individuales.

Entrenamiento y esquema


Da vinci ejemplo

Si alguna vez ha estudiado el trabajo de artistas realmente grandes, por ejemplo, Leonardo da Vinci, entonces probablemente sepa cuántos bocetos, borradores y lienzos de capacitación realizaron. Leonardo era famoso por su atención al detalle: hacía bocetos de partes del cuerpo, plantas, animales, personas y sus grupos.

Los artistas principiantes también practican mucho, por ejemplo, constantemente pintan bodegones. Pero ¿por qué, porque no son nerds? No, esto es todo entrenamiento dirigido. Los principiantes adquieren experiencia y conocimiento al trabajar con colores, luces y sombras.

Algunos programadores trabajan de manera similar, dividiendo un gran problema en varios pequeños y luego trabajando en todos ellos.

Programadores Sketchbook

¿Cómo puedo recordar esta función, en qué contexto se utiliza? ¿Necesito llamar a super () en cada componente React, o vale la pena estudiar un poco las clases de ES6? ¿Cómo integrar solicitudes HTTP asincrónicas?

Puedes entender todo esto abriendo Repl o JSBin. Los estudios pequeños pueden profundizar la comprensión de cosas más generales, aprender a trabajar con proyectos grandes.

Cuando un artista dibuja una manzana o un árbol, esto no significa que un objeto en particular le interese. Simplemente trabaja en lo pequeño para usar la experiencia en lo grande.

Mire las manos de la Mona Lisa: son ideales en términos de tecnología.

Retratos y árboles de dependencia


Composición

Creo que la tarea principal de muchos fines (incluidos los programadores) es la composición. Se trata de cómo combinar el cociente en el todo de tal manera que se obtenga una obra maestra.

Hay varios métodos para lograr esto. Una de ellas es comenzar con una capa con un mínimo de dependencias. Y ya desde esta capa base subir.

Si dibujas una analogía con el artista, entonces no comienza con pestañas. Él comienza con una cartilla. Las mismas pestañas, su ubicación depende de la forma y el tamaño del párpado. Depende del tamaño y la posición del globo ocular, que, a su vez, está asociado con las características estructurales del cráneo. Todo el retrato, si estamos hablando del retrato, tiene muchas dependencias.

Si un elemento se coloca incorrectamente, la impresión de armonía e integridad desaparece. Lo mismo con un proyecto de software. Habiendo cometido un error, comienzas a producir entidades que estropean todo el trabajo.

Capa sobre capa

Cuando cree una aplicación de pila completa, cuide la capa de datos. Ejecute pruebas. Verifica todos los artículos. Solo en este caso puede estar seguro de la fiabilidad de todo el proyecto. Pero inicialmente es necesario comprender su esencia y ver la imagen completa. Si hay comprensión, puede trabajar en los detalles.

Codificadores - Codificar


A cada uno lo suyo. Músicos - música, artistas - pinturas. Para programadores: un código. Comenzamos el artículo con las palabras de que el trabajo de un programador también es un arte. Y realmente lo es. Vale la pena recordar solo que la habilidad puede y debe mejorarse practicando, estudiando y explorando. Con la ayuda de la práctica, los programadores novatos podrán centrarse en lo básico, mejorar sus creaciones y, finalmente, crear un proyecto genial, tan grande como las ambiciones del creador.

Source: https://habr.com/ru/post/es432016/


All Articles