Training in programming from the basics

A child growing up in a family will sooner or later start pestering a dad or mom who is programming at home:

- What are you doing?
- What does this word mean?
- Why are there green letters, and here are blue ones?
And it will definitely come to the main question:
- Will you teach me how to program?

I was also asked this question. I was not ready for an answer. And he began to reflect on the problem. How to introduce a child (about ten years) to this interesting and exciting activity?

Further, some thoughts on this topic and what they led me to ...

A little explanation, for further presentation. I am a professional Java developer. I am familiar with this language and platform. I do not find Java too difficult to learn, even as a first programming language. Like other languages, Java can be studied gradually, without plunging immediately into the wilds of OOP.

I am of the opinion that any modern person should understand the basics of programming. This is how to know math in the amount of primary school. We all use calculators and spreadsheets, but we still know how to add and multiply on a piece of paper or in the mind. And teach this children. Likewise with programming - a person must possess the skills of algorithmization and have an idea of ​​how to implement the invented algorithm in any language.

Thus, the task is to introduce the child to programming. It would be good if this does not destroy the nascent interest. What I managed to find:

Scratch and other visual gaming systems


Personally, I never used these. I am sure that many children like to play and practice in them. For my purposes, this is not enough, since I see in them too large an entertainment component.

Numerous online programming courses


GeekBrains, JavaRush, Codecademy and others. Again, due to the prescription of acquiring a profession, the courses did not take place. I looked through their marketing materials and test lessons. Also did not find them suitable. Either the material is not given from the beginning, or the training is too focused on further employment. The overall impression is not to teach younger students, but rather to master the profession.

Textbooks


Nuggul Yakov Fayn's book "Programming on Java for children, parents, grandfathers and grandmothers." Somewhat obsolete, but perhaps as an auxiliary reading will do. A detailed presentation in the first chapters of how to install and configure the JDK and Eclipse does not inspire everyone to further study. Personally, such descriptions make me sad and depressed.

There is also Bruce Ekkel's Java Philosophy - a good tutorial. But I would not recommend it to children.

So, I did not manage to find the ideal system of teaching a child to programming, but on the other hand I developed a set of criteria with which it must satisfy:


In occasion of repeatedly mentioned Russian language. Many may argue, they say in the IT world without English, nowhere, which means it should be taught. So let the child teach. Including in this way.

I agree that the programmer must speak English at least at the level of "reading documentation." But we are not talking about training a programmer. The language barrier arising at this stage of learning can become an insurmountable obstacle and very quickly extinguish the child's enthusiasm. That is why I consider the Russification of everything and everything critically important.

Integrated learning environment


As you begin to guess, I come to the essence of the article. Not finding the ideal in the surrounding world, I, like many of us, decided to create it myself. So we have, programmers since ancient times instituted. The task seemed to me interesting and doable in a finite and reasonable time.

The working title of the project is “Java class”. The idea is as follows. The desktop application is an “integrated learning environment.” I downloaded, installed and immediately read the lessons, write the code and run it.

JavaFX technology. The environment can be in three modes: reading learning materials, working with source code and executing a running program.

Mode: reading teaching materials


Here you can read the available lessons and documentation. It is supposed to download materials from the online storage.

Materials will be copyright. It is intended to develop a special XML format for marking text. Inside the program, XML files will be converted into HTML documents and displayed in the embedded browser (WebView). Interactive elements will be embedded in the pages. For example, at the end of the lesson text there will be a “Open project” button that will switch the environment to the code editing mode with a loaded example from the lesson.

For the main classes of the standard library is supposed to write the minimum documentation in Russian in the style of javadoc. This documentation will also be available as context sensitive help in the code editor.

Mode: work with source code


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

richtextfx. code completion .

java- main() , .

:


, , . . .. — .

. :





, «Java », .

? - ? . ( ) .

.

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


All Articles