0:00:06.160,0:00:12.160 Hoy voy a hablarte de cómo tu mente aprende a programar. Así que el aprendizaje es una parte esencial 0:00:12.160,0:00:16.640 de ser desarrolladores de software, tanto cuando inicialmente aprendemos a programar antes de empezar nuestra 0:00:16.640,0:00:21.760 carrera pero también a lo largo de nuestra carrera a medida que aprendemos nuevas tecnologías, nuevos marcos de trabajo, nuevos lenguajes 0:00:21.760,0:00:26.800 de programación. Pero, ¿cómo funciona realmente nuestro aprendizaje funciona? De eso voy a hablar hoy. 0:00:28.480,0:00:35.120 Por lo tanto, el aprendizaje implica almacenar y pensar en hechos concretos. Así que, por ejemplo, cuando eres muy joven 0:00:35.120,0:00:40.000 aprendez los números, aprendes como contar, entonces aprendes, uno, dos, tres, cuatro. Mas adelante cuando 0:00:40.000,0:00:45.120 vienes a aprender a programar probablemente   aprenderás que números enteros también se llaman integers. 0:00:45.120,0:00:50.480 Así que tu mente almacena estos hechos y también vincula hechos que piensa que están relacionados para que 0:00:51.200,0:00:56.480 puedas asociar estas dos cosas juntas.  Así que eso son hechos concretos, pero mucho de lo que 0:00:56.480,0:01:02.000 hacemos en programación es aprender conceptos abstractos. Piensa, por ejemplo, en tratar de 0:01:02.000,0:01:06.240 aprender sobre el concepto de valores o el concepto de los tipos cuando estás empezando a aprender a 0:01:06.240,0:01:12.720 ¿Cómo podemos aprender esto? Una posibilidad es, por ejemplo, acudir a Wikipedia, el inicio de 0:01:12.720,0:01:16.720 el artículo "Valores" dice que el valor  es la representación de alguna entidad que puede 0:01:16.720,0:01:21.840 ser manipulada por un programa. Los miembros de un  tipo son los valores de ese tipo. Pero esto no es 0:01:21.840,0:01:26.160 muy útil para nuestro aprendizaje: es algo muy abstracto y difuso y se te escurre entre 0:01:26.160,0:01:31.440 los dedos cuando intentas releerlo para realmente entenderlo. Así que es bastante difícil de aprender 0:01:31.440,0:01:38.000 conceptos abstractos leyendo directamente sólo una descripción de los mismos. Lo que funciona mejor 0:01:38.000,0:01:44.960 es utilizar ejemplos. Así que si aprendes en cambio que "hola" y "adiós" son valores de cadena, 0 0:01:44.960,0:01:49.760 12, -5 son valores enteros y que true y false son valores booleanos, 0:01:49.760,0:01:52.960 y una vez que hayas aprendido estos hechos tu cerebro puede empezar a relacionarlos 0:01:52.960,0:01:56.720 para decir, todos estos son diferentes  clases de valores - tienen diferentes tipos. 0:01:56.720,0:02:00.320 Y de esta forma puedes empezar a manejar los conceptos abstractos. 0:02:01.680,0:02:05.760 Así que la abstracción se aprende al relacionar estos ejemplos. 0:02:05.760,0:02:11.440 esa es la mejor manera de que tu cerebro aprenda. Así que nuestra primera lección es que debes estudiar ejemplos 0:02:11.440,0:02:16.320 variados si quieres aprender conceptos abstractos. Y también, si tienes que explicar esto a 0:02:16.320,0:02:19.920 otra persona, quizás a un desarrollador junior, deberías usar ejemplos cuando lo expliques, 0:02:19.920,0:02:23.600 porque eso va a ser más fácil para  aprender la idea de la abstracción. 0:02:26.000,0:02:30.560 Hablemos ahora de cómo se organiza la memoria. La memoria se divide en 0:02:30.560,0:02:35.600 dos sistemas diferentes. Así que tenemos tenemos la memoria a largo plazo, que es lo que 0:02:35.600,0:02:39.040 clásicamente pensamos como memoria, donde almacenamos todos estos hechos y los unimos. 0:02:39.600,0:02:44.480 Pero también tenemos algo llamado la memoria de trabajo. Así que la memoria a largo plazo es esencialmente 0:02:44.480,0:02:49.920 ilimitada y puede almacenar todos estos diferentes tipos de hechos, mientras que la memoria de trabajo tiene en realidad una 0:02:49.920,0:02:54.240 capacidad muy pequeña. Es posible que ya hayas oído hablar de esto: la idea de que sólo se puede mantener, 0:02:54.240,0:03:00.640 más o menos, alrededor de cinco cosas, cuatro a seis números - las estimaciones varían - en tu memoria de trabajo en cualquier 0:03:00.640,0:03:06.560 momento. Así que es una capacidad fija muy pequeña y limitada. Y no es algo que 0:03:06.560,0:03:11.280 se pueda entrenar para mejorar: parece ser algo biológicamente inherente. Así que nunca se puede aumentar 0:03:11.280,0:03:18.160 tu capacidad de memoria de trabajo a lo largo de tu vida. Entonces, ¿qué cosas se guardan en la memoria 0:03:18.160,0:03:23.680 de trabajo? Bueno, se trata básicamente de los conceptos extraídos de la memoria a largo plazo. Así que cada uno de 0:03:23.680,0:03:28.400 los elementos mantenidos en la memoria de trabajo es algo que que has aprendido y almacenado previamente en tu 0:03:28.400,0:03:34.240 Pero entonces podrías pensar, bueno, si la memoria de trabajo es tan limitada, 0:03:34.240,0:03:39.760 ¿cómo podemos ser más inteligentes? ¿Cómo podemos mejorar nuestra capacidad? ¿Cómo ser mejores para 0:03:39.760,0:03:44.320 resolver problemas cada vez más complejos? Y la respuesta a esto se encuentra en la memoria 0:03:44.320,0:03:49.200 Así que estamos sacando una especie de elemento, algo llamado "chunk", de la memoria a largo plazo, 0:03:50.240,0:03:54.480 pero no todos tienen que ser necesariamente del mismo tamaño. Puedes aprender más sobre algo 0:03:54.480,0:03:58.000 y aumentar el tamaño de un elemento en tu memoria a largo plazo. Podrías aprender sobre 0:03:58.000,0:04:01.680 cosas relacionadas en tu memoria a largo plazo de manera  que se fusionen efectivamente. 0:04:02.560,0:04:06.320 Así que al aprender más conseguimos mayores  elementos en nuestra memoria a largo plazo 0:04:06.320,0:04:10.240 y eso significa que nuestra memoria de trabajo  puede contener más conocimientos en general 0:04:10.880,0:04:17.360 para que acabemos con algo de capacidad de sobra para  para contener aún más cosas. Así que nuestra lección es 0:04:18.320,0:04:22.880 aumentar tus conocimientos en realidad aumenta tu  capacidad de procesamiento para afrontar problemas. 0:04:25.840,0:04:31.840 Así que su cerebro está muy ansioso por vincular hechos relacionados  con el fin de cumplir con este proceso. Así que 0:04:31.840,0:04:35.600 por ejemplo, cuando estaba mostrando esta diapositiva  hace un momento, tal vez pensaste, 0:04:35.600,0:04:40.400 ah, así que la memoria de trabajo es un poco como los registros de la CPU  o como un caché, y luego hay este tipo de 0:04:40.400,0:04:45.120 punteros que apuntan a la memoria a largo plazo que  es esta especie de estructura de datos. Así que estás 0:04:45.120,0:04:49.520 muy interesado en vincular tu conocimiento existente sobre computación - cómo funcionan los ordenadores - con el conocimiento 0:04:49.520,0:04:54.320 sobre como funciona el cerebro. Pero tenemos que tener un poco de cuidado: tu cerebro no funciona exactamente como una 0:04:54.320,0:05:00.400 El tipo de diferencias - no es tan clara como la forma en que la computadora se organiza, 0:05:00.400,0:05:05.040 y puede tener tipo de capacidades diferentes que la computadora. Y esto es un ejemplo de 0:05:05.040,0:05:09.920 un punto más general, que es que a veces el conocimiento existente puede hacerte tropezar. Puedes formar 0:05:09.920,0:05:14.080 vínculos incorrectos entre las cosas que ya sabes y  cosas que estás tratando de aprender. Así, por ejemplo, 0:05:14.080,0:05:19.360 puedes aprender cómo funciona la herencia en Java  y luego viene a aprender la herencia en C++, 0:05:19.360,0:05:23.760 tratas de usar todo tu conocimiento existente y más tarde te das cuenta de que en realidad hay algunos 0:05:23.760,0:05:27.920 hay algunos puntos más finos que no coinciden y hay algunas diferencias clave, pero tu cerebro estaba muy 0:05:27.920,0:05:33.040 ansioso por vincular todo esto y así puede llevarte a un conocimiento incorrecto. 0:05:35.840,0:05:41.200 Así que la última cosa de la que voy a hablar tiene que ver con la resolución de problemas. Así que un error común 0:05:41.200,0:05:46.000 en cuanto a cómo funciona esto - por lo que hay varios dominios en los que podrías necesitar resolver un problema, 0:05:46.000,0:05:49.680 en tu día a día como programador/a puedes querer arreglar el rendimiento 0:05:49.680,0:05:54.240 de un servicio web, por ejemplo, pero puede haber otras cosas que quieras hacer que impliquen resolver 0:05:54.240,0:05:58.640 problemas. Puede que quieras hacer un movimiento en una partida de ajedréz o resolver un rompecabezas. 0:05:58.640,0:06:03.760 Pesar un jumbo era una pregunta habitual en las entrevistas de hace unos años, un 0:06:03.760,0:06:09.200 ejemplo de estos problemas de tipo rompecabezas. La idea errónea que tiene la gente sobre la resolución de 0:06:09.200,0:06:14.000 es que tienes una especie de proceso de resolución de problemas en tu cerebro y que es como 0:06:14.000,0:06:17.920 un tipo de procedimiento que se puede aplicar a todos estos diferentes tipo de cosas que necesitas resolver. 0:06:19.120,0:06:23.440 Y la consecuencia de esto fue, por lo tanto, que la gente pensó que tal vez si, por ejemplo, 0:06:23.440,0:06:27.600 aprendes más sobre cómo jugar al ajedrez, eso mejora tu resolución de problemas y por lo tanto mejorará 0:06:27.600,0:06:33.440 tu programación. Además, pueden pensar que al probar que tan bien resuelves rompecabezas 0:06:33.440,0:06:37.680 pueden poner a prueba tu módulo de resolución de problemas y, por lo tanto, comprobar lo bueno que eres programando. 0:06:38.320,0:06:45.440 Pero este no es el modelo correcto de cómo funcionan las cosas, por lo que es un error. La forma en que funciona realmente 0:06:45.440,0:06:51.120 es que tenemos dominios totalmente separados y aprendemos a resolver problemas por dominio. Así que si quieres 0:06:51.120,0:06:55.520 arreglar el rendimiento de un servicio web, entonces aprendes a resolver ese problema, pero tu 0:06:55.520,0:06:59.680 conocimiento se construye específicamente en torno a ese dominio y tu habilidad para resolver problemas 0:06:59.680,0:07:04.400 se basa en ese dominio. Por lo tanto, es diferente de que tan bien puedes hacer una jugada de ajedrez, 0:07:04.400,0:07:10.080 y también de lo bueno que eres para resolver problemas de ingenio. Por lo que aprender uno de estos temas no hará que mejores 0:07:10.080,0:07:15.840 en el otro y hacerte pruebas en uno no va a revelar demasiado sobre los otros. 0:07:17.760,0:07:22.480 Esto nos lleva a la tercera lección, que es que la resolución de problemas no es una habilidad genérica 0:07:22.480,0:07:26.880 que se aplique en todos los ámbitos. En realidad, se adquiere en cada ámbito 0:07:26.880,0:07:33.360 a través de la práctica general en ese ámbito. Entonces, ¿cómo podemos utilizar todas estas lecciones para 0:07:33.360,0:07:37.520 potenciar nuestra capacidad de aprender funciones y resolver problemas? 0:07:38.560,0:07:42.240 Así que las lecciones que tuvimos fueron utilizar ejemplos variados para aprender y explicar 0:07:42.240,0:07:47.280 conceptos abstractos - a tu cerebro le gusta aprender lo abstracto uniendo ejemplos concretos. 0:07:48.640,0:07:52.720 Podríamos aumentar nuestra capacidad de procesamiento incrementando y reforzando nuestros conocimientos, 0:07:52.720,0:07:57.040 de modo que si aprendemos más en la memoria a largo plazo y aumentamos el tamaño de los elementos de nuestra 0:07:57.040,0:08:01.200 memoria a largo plazo, podemos liberar la capacidad de la memoria de trabajo para hacer frente 0:08:01.840,0:08:06.800 a más problemas. Y esta es otra forma de saber que tu cerebro no es como una computadora: 0:08:06.800,0:08:11.840 esto es bastante contrario a la intuición si se piensa en ello desde cómo funciona una CPU. 0:08:13.680,0:08:18.480 Y por último, se puede mejorar la resolución de problemas dentro de un dominio específico, pero no se comparte 0:08:18.480,0:08:22.480 entre diferentes dominios, y si quieres saber lo bueno que es alguien en la resolución de problemas dentro de 0:08:22.480,0:08:26.720 n dominio - un lenguaje de programación particular o o lo que sea, entonces deberías mirar 0:08:26.720,0:08:31.120 esa habilidad específica, no tratando de probarla, sino viéndola desde otro ángulo. 0:08:32.320,0:08:35.360 Así que esas son mis lecciones y ahí están mis datos de contacto 0:08:35.360,0:08:39.840 por si quieres saber algo más sobre esto. Gracias por escuchar.