
Sooner or later, each of us thinks whether it makes sense to pass on our experience to children. Today we can say that the project, which we started more than two years ago, has taken place and looks good. Once the result is positive, we decided, why not share it with a respected audience.
It's time! ... The horses were already flying over the roofs ... (c) Mikhail Bulgakov
I, like a groomed father, decided to transfer the programming experience to my son for 14 years. By this time, he had a good experience in developing his own programs for robots like Lego-MindStorms and the summer club Id-tech, which they wrote in C.
')
The very day when I still took up my studies, I remember quite vaguely. I woke up in the morning and decided: “It's time!” - like Bulgakov. He sat down at the computer and approached this case kondovo on the principle of "do as I do." The approach was not new. At first you discuss what is supposed to be done, then you pronounce the most interesting moments, what is to be done, and then you’re doing to the extent of the stipulated and other considerations for the development campaign. The first thing that was discussed and decided that the project will be some well-known toy. Especially not wise took from the ceiling - tic-tac-toe.
I opened the eclipse and started writing and telling what I was doing. The son, I must say, was sitting next to him, remembering how to launch something there. A week later, two sparodic sessions turned out to write the usual program on the command line, which was already difficult to beat. After that, he offered his younger brothers to play with the program at one dollar rate. I had to intervene in the house tote and stop the experience of monetization at an early stage of the project.
At this point, it became clear that the development of programs seems to be like a child, but clearly to move forward requires a solid knowledge and understanding of the Java language.
They began with a swoop - they began to solve stupidly puzzles how to minimize, factorial or fibonachi to calculate. But it did not give the expected result. It became clear that the son should seriously study Java.
We bought a couple of textbooks ... In general, it took six months for textbooks. By the summer holidays last year it went more and more seriously, over the summer the son developed the UI and wrote a desktop application that communicated with the player in such a responsible manner. I was busy at work, the time to look was only on the weekends, that there wasn’t much time in the development process itself. The son of the campaign began to write another dynamic toy, something like Tenis from the category of desktop jumpers.
But, thank God, brought the crosses toe to the logical end.

How much faith and the forest is overthrown! (c) Vladimir Vysotsky
There was a question how to fix the result and arrange it in a technological trend. Here, in general, there was no doubt:
Say thanks to the California comprehensive school. There were no problems with the first point, today I said - tomorrow the article has already been written. With github, too, it wasn't quick to fill in the code.
With the development of the project, I don’t remember who first came up with the idea of ​​how to make all the music under Android. Actually, I had not programmed under Android before and it was essential that neither I nor my son had any experience with the new framework. In my opinion, it is one thing to tell and show what you can do, another thing to look for a solution together and show how you use your previous experience to find a solution.
When the first stage of the development of a new framework for us was completed, the matter went more fun for me - I already gave more advice and did general guidance on how best to record there and general considerations from best practice.
Fundamental strategy research in tic-tac-toe
At some point, the son discovered that tic-tac-toe had three basic strategies that lead to the “fork” of one of the players, if not counted two moves ahead. The strategies look quite entertaining.
Triangle
Arrow
Environment
I quietly went nuts and only could offer to issue the result with another blog article.After that, we began to shock the code by closing the discovered strategic holes.

Result
Last month, the son was taken with the design and design:

Tic-tac-toe were modified in "Cats vs Dogs". Added imputed messages and some common interface.
In my opinion, the approach to make some finished project itself was fully justified, since my son really had to learn not only basic things, but also to achieve a good understanding at the project design level.
The source code of the project in githab . I would be glad if someone would be interested to look at and maybe repeat the epic. Do not count on an easy result. Be patient.
Good luck.