Estimados todos los que enseñan programación: lo están haciendo mal

Enseñar codificación está de moda. Codecademy famoso inscrito El alcalde de Nueva York como usuario (y recientemente acumulado $ 10 millones de capital de riesgo ), y la popular preocupación de enseñanza en línea Khan Academy acaba de lanzar un conjunto de lecciones de programación . Siguió una reacción violenta: los programadores de carrera se burló de la idea de codificar como alfabetización, mientras que un estudio académico afirmó que algunas personas pueden codificar y otras simplemente no.





Bret Victor , ex diseñador de interfaces de Apple, cree que son todo incorrecto. En un ensayo interactivo devastador y persuasivo , argumenta que los sitios de programación de bricolaje son en su mayoría inútiles debido a sus interfaces opacas. (Utilizando los tutoriales en línea de Khan, escribe , es como tratar de aprender a cocinar presionando botones al azar en un microondas sin etiqueta).

Pero eso es solo la mitad del problema. Víctor piensa que programación en sí está roto. A menudo se dice que para codificar bien, debes ser capaz de pensar como una computadora. Para Victor, esto es absurdamente al revés, y es la verdadera razón por la que la programación se considera fundamentalmente difícil. Las computadoras son humano herramientas: ¿por qué no podemos controlarlas en nuestro términos, utilizando técnicas que son naturales para todos nosotros?

El principal problema con la programación se reduce al hecho de que el programador tiene que imaginar la ejecución del programa y nunca ve los datos, me dijo Víctor. Para ilustrar este problema, hace otra vívida analogía con la cocina:



Obviamente, esta es una forma terrible de enseñar a un principiante a cocinar un plato. La idea más importante de Víctor es que también es una forma terrible para que un chef experimentado cree nuevos platos. Los chefs no están obligados a simular perfectamente todo entre los ingredientes y el nuevo soufflé en sus cabezas antes de tocar la comida; ni esperarían que todo lo que sucede entre el ensamblaje de los ingredientes y la extracción del soufflé del horno se les oculte. Pero así es como sucede realmente gran parte del trabajo de programación, según Victor.

No es de extrañar que la programación parezca algo que solo aquellos con una extraña habilidad para manipular símbolos abstractos jamás podría hacer. Lo hemos configurado de esa manera.

El ensayo de Víctor está lleno de ejemplos interactivos de cómo solucionar este problema (desafortunadamente, no se pueden insertar haz clic para verlos ): de rediseñar IDE para que visualicen el flujo de datos de una instrucción a la siguiente, para repensar las metáforas básicas que sustentan los propios lenguajes de programación. (Alerta de spoiler: el hombre de 45 años Logo recibe mucho más amor que Procesando .)



¿Pero con qué fin? ¿La programación es realmente tan jodida? Entonces, ¿qué pasa si nosotros, los normales, nunca somos capaces de entenderlo? ¿No son los enfoques actuales para aprender y escribir código adecuados para generar suficientes programadores para que el mundo siga girando?

Bueno, sí. Pero sólo si se suscribe a los programadores como analogía de fontaneros, lo que Victor enfáticamente no hace. Bill Atkinson (creador de Hypercard ) quería que la creación de software fuera como dibujar o escribir, algo que todos pudieran hacer, dice Víctor. Esperamos que todos puedan escribir una carta. La capacidad de crear su propio software para sus propios usos es muy poderosa.

Victor no solo está hablando de lanzar su propio cliente de Twitter. Lo que es verdaderamente poderoso es la capacidad de construir / escribir lo que él llama explicaciones explorables : simulaciones interactivas de sus propias ideas y argumentos, o los de otros. Y si ¿El siguiente artículo de opinión que leyó sobre el calentamiento global o la seguridad nuclear incluía un modelo integrado para examinar sus afirmaciones? Esto es, literalmente, programación como alfabetización, es decir, una amplificación de pensando —Con el potencial de estar disponible para cualquiera. Pero solo si salimos de los rincones en los que nos hemos metido en lo que respecta a lo que es la programación, cómo hacerlo y cómo enseñarlo.



Aún así, millones de desarrolladores no van a repensar repentinamente cómo hacen su trabajo; millones de herramientas, aplicaciones, lenguajes de programación e IDE no se pueden rediseñar de la noche a la mañana. Víctor dice que esa es solo una razón más para comenzar a cortar los cimientos ahora. Thomas Kuhn, autor de Estructura de las revoluciones científicas , sugirió que cuando ocurre un cambio de paradigma, los viejos científicos nunca adoptan realmente la nueva forma de pensar, dice Víctor. Simplemente se jubilan y son reemplazados por una nueva generación que piensa de la nueva manera.

[ Programación que se puede aprender por Bret Victor ]

esconder