Aprender los conceptos básicos de la programación.

Tarde o temprano, un niño que crece en una familia comenzará a molestar a papá o mamá, que está programando en casa:

- Que estas haciendo?
- ¿Qué significa esta palabra?
"¿Y por qué hay letras verdes aquí, y aquí hay letras azules?"
Y ciertamente llegará a la pregunta principal:
"¿Me enseñarás cómo programar?"

Esta pregunta también me fue hecha. No estaba listo para una respuesta. Y comenzó a reflexionar sobre el problema. ¿Cómo vincular a un niño (de unos diez años) a esta actividad interesante y fascinante?

Además, algunas reflexiones sobre este tema y lo que me llevaron a ...

Una pequeña explicación, para mayor discusión. Soy un desarrollador profesional de Java. Estoy familiarizado con este lenguaje y plataforma. No encuentro que Java sea demasiado difícil de aprender, incluso como el primer lenguaje de programación. Al igual que otros lenguajes, Java se puede estudiar gradualmente, sin sumergirse en la jungla de OOP.

Soy de la opinión de que cualquier persona moderna debe comprender los conceptos básicos de la programación. Así es como se conocen las matemáticas en el volumen de la escuela primaria. Todos usamos calculadoras y hojas de cálculo, pero aún sabemos cómo sumar y multiplicar en un papel o en la mente. Y enseñamos esto a los niños. Lo mismo ocurre con la programación: una persona debe tener las habilidades de algoritmo y tener una idea de cómo implementar el algoritmo inventado en algún lenguaje.

Por lo tanto, la tarea es introducir al niño a la programación. Sería bueno si esto no destruyera el interés incipiente. Lo que logré encontrar:

Scratch y otros sistemas de juegos visuales


Personalmente, nunca he usado tal. Estoy seguro de que a muchos niños les gusta jugar y participar en ellos. Para mis propósitos, esto es de poca utilidad porque veo en ellos demasiado componente de entretenimiento.

Numerosos cursos de capacitación en programación en línea.


GeekBrains, JavaRush, Codecademy y otros. Nuevamente, debido a las limitaciones de adquirir una profesión, no tomé cursos. Revisé sus materiales de marketing y lecciones de prueba. Tampoco los encontré adecuados. O el material no se entrega desde cero, o la capacitación se enfoca demasiado en el empleo adicional. La impresión general no es para enseñar a los estudiantes más jóvenes, sino para dominar la profesión.

Literatura educativa


Busqué en Google el libro de Jacob Fine, "Programación en Java para niños, padres, abuelos". Algo anticuado, pero tal vez como una lectura auxiliar adecuada. Una presentación detallada en los primeros capítulos sobre cómo instalar y configurar JDK y Eclipse no inspirará a todos a seguir estudiando. Personalmente, tales descripciones me ponen triste y deprimido.

También está la filosofía Java de Bruce Eckel, un buen tutorial. Pero no lo recomendaría a los niños.

Entonces, no pude encontrar el sistema ideal para enseñar a un niño a programar, pero desarrollé un conjunto de criterios que debe cumplir:

  • Presentación compleja del material: teoría, ejemplos y tareas prácticas.
    materiales educativos en ruso
  • Aprender un lenguaje de programación real y moderno (Java)
  • editor de código de error de sintaxis y compilación simple
  • ayuda contextual en la biblioteca estándar, preferiblemente en ruso
  • La interfaz del sistema en ruso no está sobrecargada de herramientas
  • mensajes del compilador en ruso
  • los materiales de capacitación están diseñados para una persona que no está familiarizada con el mundo de la programación, es decir, incluso cosas muy obvias deben explicarse

Con respecto al idioma ruso mencionado repetidamente. Muchos pueden oponerse, dicen en el mundo de TI sin inglés en ninguna parte, lo que significa que debe enseñarse. Así que deja que el niño enseñe. Incluyendo de esta manera.

Estoy de acuerdo en que un programador debe hablar inglés con fluidez al menos al nivel de "lectura de documentación". Pero no estamos hablando de entrenar a un programador. La barrera del idioma que surge en esta etapa del entrenamiento puede convertirse en un obstáculo insuperable y extinguir rápidamente el entusiasmo del niño. Por eso considero que la rusificación de todo y de todo es críticamente importante.

Entorno de aprendizaje integrado.


Como ya comienzas a adivinar, llego a la esencia del artículo. Al no encontrar el ideal en el mundo que me rodea, como muchos de nosotros, decidí crearlo yo mismo. Entonces, con nosotros, los programadores se han establecido desde hace mucho tiempo. La tarea me pareció interesante y factible en un tiempo finito y razonable.

El título de trabajo del proyecto es "clase Java". La idea es la siguiente. La aplicación de escritorio es un "entorno de aprendizaje integrado". Descargué, instalé e inmediatamente puedes leer las lecciones, escribir código y ejecutarlo.

Tecnología JavaFX. El entorno puede estar en tres modos: leer materiales educativos, trabajar con el código fuente y ejecutar un programa en ejecución.

Modo: leer materiales de entrenamiento


Aquí puede leer las lecciones y la documentación disponibles. Se supone que debe descargar materiales del almacenamiento en línea.

Los materiales tendrán derechos de autor. Está previsto desarrollar un formato XML especial para el marcado de texto. Dentro del programa, los archivos XML se convertirán a documentos HTML y se mostrarán en el navegador integrado (WebView). Los elementos interactivos se incrustarán en las páginas. Por ejemplo, al final del texto de la lección habrá un botón "Abrir proyecto" que pondrá el entorno en modo de edición de código con un ejemplo cargado de la lección.

Para las clases principales de la biblioteca estándar, se supone que debe escribir documentación mínima en ruso al estilo javadoc. Esta documentación también estará disponible como ayuda contextual en el editor de código.

Modo: trabajando con código fuente


, . — /, « ...». java-. . . ECJ Eclipse JDT, . , .

richtextfx. code completion .

java- main() , .

:


, , . . .. — .

. :

  • java-
  • java-




, «Java », .

? - ? . ( ) .

.

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


All Articles