¿Crees que el futuro de la enseñanza de la programación está en el código o en herramientas de arrastrar y soltar simplificadas?

Me pregunto por qué la mayoría de las respuestas no hablan de este punto tan importante.

1) La programación no consiste básicamente en escribir códigos. Hay más que pensar que escribir.
Suponga que se le permitió usar ese tipo de lenguaje de arrastrar y soltar en IOI, Code Forces o un concurso popular como ese. Si no tiene idea de algoritmos, estructuras de datos y conceptos importantes como la complejidad de tiempo / espacio, casi obtendrá una puntuación muy cercana a cero. Lo mismo sucede con la programación de la vida real. Entonces, incluso si se implementó un lenguaje de arrastrar y soltar con todas las funciones en Java / C ++, no significa que todos puedan programar.

2) Eficiencia
Por supuesto, si se trata de una aplicación realmente simple que implica ” si esto es así, entonces haga esto” como pasos que todos podrán crear un programa que funcionaría como se esperaba. Pero aún si no tiene idea de la complejidad y la eficiencia del tiempo de un programa, el programa sería muy ineficiente y la aplicación tardará mucho tiempo en ejecutar una tarea que de lo contrario se podría hacer mucho más rápido.

3) Diferentes programas utilizando el mismo lenguaje de arrastrar y soltar.
Por ejemplo, si le pide a un ingeniero de software y un ingeniero que no sea de software que cree una solución para el problema de Knapsack usando el mismo lenguaje de arrastrar y soltar.
El ingeniero de software propondría una solución de DP que se ejecutaría en O (n ^ 2) utilizando el lenguaje Dragndrop, mientras que el ingeniero de software no crearía una solución muy ineficiente que se ejecuta en O (2 ^ n).
Por lo tanto, aunque ambos usaron el mismo lenguaje Dragndrop, la solución para no programadores no es prácticamente utilizable. Entonces, no es el código o, en nuestro caso, los rectángulos gráficos lo que importa, es lo que haces con ellos.

Claramente, todos no podrán ser buenos programadores sin ningún tipo de estudio (formal / autodidacta) solo porque existe un lenguaje en el que es fácil escribir pasos.

4) ¿La programación será arrastrar y soltar un día?
Seguramente no.
No porque sea difícil crear ese lenguaje de arrastrar y soltar con todas las características.
Pero porque es mucho más fácil escribir un código que arrastrar y soltar.
Piensa en la siguiente línea,
si (x == 4) c = 201;
Me tomó menos de 5 segundos escribir esto,
Ahora piensa que tuve que escribirlo usando un lenguaje de arrastrar y soltar.
¡Primero tendré que arrastrar la condición IF al programa desde una caja de herramientas usando el mouse!
Y lo mismo con el comparador (==) y los operadores de asignación (=) pueden ser.
¿Realmente crees que es más fácil que escribir este código? Seguramente no has codificado.

Así que en última instancia, como en la pregunta,
¿No crees que, algún día, la creación de programas se hará arrastrando y soltando? ¿Esto reducirá las necesidades de los ingenieros de software, ya que todos podrán programar?

a) ¿No crees que, algún día, la creación de programas se hará arrastrando y soltando?

Parece que la pregunta asume que todavía no estamos tan avanzados en tecnología para desarrollar un buen lenguaje de arrastrar y soltar con todas las funciones en java / c ++ y es por eso que la gente todavía usa lenguajes de codificación como lenguajes de programación. Esto no es verdad. No somos técnicamente inviables para crear tal lenguaje. Pero es realmente difícil programar un lenguaje que no sea un lenguaje de codificación común para un programador.

b) ¿Reducirá esto las necesidades de los ingenieros de software, ya que todos podrán programar?
No, seguiremos necesitando programadores (programación de arrastrar y soltar) incluso si (lo que no ocurrirá) la mayoría del software que se desarrolla en el mundo se realizó con lenguajes de arrastrar y soltar.

Yo diría que ambos porque usar solo Drag and Drop no será eficiente para la programación avanzada, por supuesto, habrá muchos más lenguajes que inspirarán a la gente a la programación, pero como siempre, la programación avanzada de alto nivel creo que estará en la codificación tradicional.

Arrastrar y soltar sería mucho más fácil, divertido y más interesante para que las personas aprendan, pero la codificación tradicional durará mucho más.

Siento que debería saber la respuesta a esto debido a mi mentalidad.
Y la pregunta ya tiene la respuesta.
Así que tal vez debería señalar que la “enseñanza” depende principalmente de los estudiantes … 🙂
Eso es … lo que funciona para un estudiante puede no funcionar para el otro.
La buena noticia es que las herramientas de “arrastrar y soltar” a menudo conducen a un diseño de aplicación más imaginativo que requiere codificación de back-end.
A menos que alguien ya haya descubierto un back-end con arrastrar y soltar. (Como puedes ver, crea una situación de Catch-22, ¿no?)
De todos modos, estoy divagando. Lo que estoy tratando de decir es que el futuro de la enseñanza de la programación depende de lo que los estudiantes (del futuro) estén interesados.
Después de todo, la relevancia es una buena manera de retener las lecciones aprendidas … que, con suerte, conduce a campos más interesantes en la programación [computadoras] … 🙂