Aprender a programar es cada vez más difícil

in programacion •  6 months ago

Por Allen Downey traducción al castellano por Pablo Álvarez Corredera bajo permiso del autor.


Chico perdido en una biblioteca

Fotografía de Redd Angelo en Unsplash


He escrito varios libros que usan Python para explicar temas como Estadística Bayesiana y Procesamiento Digital de Señales. Junto con los libros, proporcionó un código que los lectores pueden descargar de GitHub. ____ Para trabajar con este código, los lectores deben conocer algo de Python, pero eso no es suficiente; también necesitan una computadora con Python y sus bibliotecas de soporte, deben saber cómo descargar el código de GitHub y luego deben saber cómo ejecutar el código que descargaron.

En este punto, es donde muchos lectores tienen problemas

Algunos me envían un correo electrónico. A menudo expresan frustración, porque están tratando de aprender Python, o Estadística Bayesiana y Procesamiento Digital de Señales.
¡No están interesados en instalar software, clonar repositorios o establecer la ruta de búsqueda de Python!

Soy comprensivo con estas reacciones

En cierto sentido, su frustración está completamente justificada: no debería ser tan difícil como descargar un programa y ejecutarlo. Aunque a veces su frustración está mal dirigida, a veces culpan a Python, otras me culpan a mí. Lo que no es del todo justo.

Déjame explicarte los problemas, luego sugerirte algunas soluciones

El problema fundamental es que la barrera entre el uso de una computadora y la programación de una computadora es cada vez mayor. Cuando tuve un Commodore 64 (en 1982, creo) esta barrera era inexistente. Al encender la computadora, cargaba y ejecutaba un entorno de desarrollo de software (SDE). Para hacer algo, tenía que escribir al menos una línea de código, incluso si todo lo que hacía era otro programa (como Archon ).

En la actualidad

Desde entonces, tres cambios han hecho que sea cada vez más difícil para los usuarios convertirse en programadores.

  1. Los minoristas de computadoras dejaron de instalar entornos de desarrollo de forma predeterminada. Como resultado, cualquier persona que desee aprender a programar debe comenzar instalando un SDE, y esa es una barrera más grande de lo que cabría esperar.
    Muchos usuarios nunca han instalado nada, no saben cómo hacerlo o no pueden hacerlo. Instalar el software ahora es más fácil de lo que solía ser, pero sigue siendo un proceso propenso a errores y puede ser frustrante.
    Si alguien solo quiere aprender a programar, no debería verse forzado a aprender cómo administrar el sistema primero.

  2. Las interfaces de usuario se desplazaron de las interfaces de línea de comandos (CLI) a las interfaces gráficas de usuario (GUI).
    Las GUI generalmente son más fáciles de usar, pero ocultan información de los usuarios sobre lo que realmente está sucediendo. Cuando los usuarios realmente no necesitan saber, ocultar información puede ser algo bueno.
    El problema es que las GUI ocultan mucha información que los programadores necesitan saber.
    Entonces, cuando un usuario decide convertirse en programador, de repente se enfrenta a toda la información que se les ha ocultado. Si alguien solo quiere aprender a programar, no debería tener que aprender conceptos del sistema operativo.

  3. La computación en la nube ha llevado la ocultación de la información a un nivel completamente nuevo. Las personas que usan aplicaciones web a menudo tienen solo una vaga idea de dónde están almacenados sus datos y qué aplicaciones pueden usar para acceder a ellos.
    Muchos usuarios, especialmente en dispositivos móviles, no distinguen entre sistemas operativos, aplicaciones, navegadores web y aplicaciones web. Cuando cargan y descargan datos, a menudo se sienten confundidos acerca de dónde provienen y hacia dónde se dirigen. Cuando instalan algo, a menudo están confundidos acerca de qué se está instalando.

Para alguien que creció con un Commodore 64, aprender a programar era bastante difícil; para alguien que crece con un dispositivo móvil conectado a la nube, es mucho más difícil.

Las diferentes opciones

Bueno, ¿.. y qué podemos hacer al respecto? Aquí hay algunas opciones (a las que he dado nombres amistosos).

1. Regresar al Futuro

Una opción es crear computadoras, como mi Commodore 64, que rompan la barrera entre usar y programar una computadora.
Parte de la motivación para Raspberry Pi, según Eben Upton es recrear el tipo de entorno que convierte a los usuarios en programadores.

2. Afrontar el Sufrimiento

Otra opción es enseñar a los estudiantes a configurar y usar un entorno de desarrollo de software antes de que comiencen a programar (o al mismo tiempo)

3. Dilatar el Sufrimiento

Una tercera opción es utilizar los recursos de la nube para que los estudiantes comiencen a programar de inmediato y posponer la creación de sus propios entornos.

4. Abrazar al futuro, por Nick Coghlan

La última opción, sería que los principiantes comiencen sobre entornos de desarrollo basados ​​en la nube y permanezcan allí para siempre.

Mi Metodología

En unas de mis clases “Afrontamos el Sufrimiento”, los estudiantes aprenden a usar la interfaz de línea de comandos de UNIX al mismo tiempo que están aprendiendo C.
Los estudiantes en esa clase ya saben cómo programar y tienen profesores en vivo para ayudar. Para los principiantes, y especialmente para las personas que trabajan por su cuenta, recomiendo dilatar el sufrimiento.

Estas son algunas de las herramientas que he usado:

  • Tutoriales interactivos que ejecutan código en un navegador, como esta adaptación de "Cómo pensar como un informático".
  • Entornos de desarrollo completos que se ejecutan en un navegador, como PythonAnywhere.
  • Máquinas virtuales que ya contienen entornos de desarrollo completos, que los usuarios pueden descargar y ejecutar (siempre que tengan, o puedan instalar, el software que ejecuta la máquina virtual).
  • Servicios como Binder que ejecuta entornos de desarrollo en servidores remotos, lo que permite a los usuarios conectarse mediante el navegador.

En varios proyectos míos, he usado todas estas herramientas. Además de la versión interactiva de “ Cómo pensar..“, también existe esta versión interactiva de Think Java , adaptada y alojada por Trinket .
En Think Python , animo a los lectores a utilizar PythonAnywhere durante al menos los primeros cuatro capítulos, y luego les doy instrucciones para hacer la transición a una instalación local .


He utilizado máquinas virtuales para algunas de mis clases en el pasado, pero recientemente he usado más servicios en línea, como el servicio de Think DSP, alojado por O’Reilly Media . Y los repositorios de todos mis libros están configurados para ejecutarse bajo Binder.

Estas opciones ayudan a las personas a comenzar, pero tienen limitaciones.
Tarde o temprano, los estudiantes querrán o necesitarán instalar un entorno de desarrollo en sus propias computadoras; pero si separamos el aprendizaje del programa del aprendizaje para instalar el software, sus posibilidades de éxito serán mayores.


Publicaciones Recientes & Redes Sociales

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Es bueno que a cada problema le encuentren solución, como indica el autor ( su metodología). Pienso que de alguna manera los programadores de alto nivel no les conviene dejar ese poder al acceso de todos.

·

Podría ser.. Al fin y al cabo, es una competencia; como en cualquier otro campo, supongo, y quién más y quién menos, lucha por intentar estar siempre en lo más alto.

Los buenos programadores, los de verdad, los que son finos. Si se dan cuenta de ello, por lo general, se encierran bastante en sí mismos.. Existe un problema muy común entre programadores.

Cuando vas creando código, por lo general, es de buena costumbre que comentes lo que ese código quiere decir o hacer, los grandes programadores por lo general; prefieren no hacerlo. .. Al fin y al cabo, no deja de ser un método para embarrar a los demás si les toca trabajar con ese mismo código; y de valorarse a sí mismos, porque si se necesita modificar algo, deben ser ellos; sí o sí, quién lo haga.

Será parte del ego.. Cuanto menos mejoren los demás, más cobrarán ellos. :D

·
·

más claro imposible...!!

Your Post Has Been Featured on @Resteemable!
Feature any Steemit post using resteemit.com!
How It Works:
1. Take Any Steemit URL
2. Erase https://
3. Type re
Get Featured Instantly & Featured Posts are voted every 2.4hrs
Join the Curation Team Here | Vote Resteemable for Witness

Congratulations @rosepac! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments
Award for the number of comments received
Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Saludos! te sigo

·

Gracias por la visita!

Buen post e información detallada, felicidades¡¡

·

Gracias, por pasar!

Cuando te pones a escribir no hay quien te pare jiijjiji
Saludos yapla :)

·

Sí, sobre todo a transcribir, jajajaja! yapla, yapla!

Me alegra verte interactuar y tomar esos consejos que a todos nos ayudan. Enhorabuena pana yapla y adelante, confiamos en ti. Saludos...

·

Thank´s. Al final lo del título y la traducción, decidí ser más incisivo y espetarlo ahí, a toda página. Claro y conciso. Ya ves.. A veces lo más sencillo, es lo mejor.

Como al parecer los tamaños de los títulos o parafraseos no estaban muy claros, lo pase de H2 y H3 a H2 y H4. Ese rango mayor de diferencia, así parece que queda más fraccionado y más relajado a la vista, junto con separar las parrafadas.... :X

Las etiquetas ya no me dejaba cambiarlas.. para la siguiente. :D

El mundo tecnológico, de la informática y las redes es tan complejo pero a la vez tan rico en información que vale la pena adentrarse en esos nuevos caminos. Seguiré leyendo. Saludos

·

Esto es todo un mundo, nunca mejor dicho.

Gracias por pasar!

Prueba fallida. :(

Te hemos dejado una mención en el siguiente post de @RadioSteemit. Gracias por escucharnos y participar en nuestros especiales musicales.

https://steemit.com/spanish/@radiosteemit/especiales-radiosteemit-presenta-guns-and-roses

Hola amigo, este tipo de post aclaran muchas cosas que en lo particular me enredan. Éxito

·

Poco a poco, el mundo va evolucionando hacía un lugar donde todos debemos ir sabiendo, al menos lo más básico sobre programación. :)