image

Рано или поздно каждый из нас задумывается, имеет ли смысл передать свой опыт детям. На сегодняшний день можно сказать, что проект, который мы начали более двух лет назад, состоялся и выглядит удачным. Раз результат положительный, мы решили, почему бы не поделится с уважаемой публикой.

Пора!… Кони уже неслись над крышами… (с) Михаил Булгаков


Я, как радеющий папаша, решил передать опыт программирования сыну 14 лет. К этому моменту у него был неплохой опыт разработки собственных программ для роботов типо Лего-MindStorms и летний клуб Id-tech чего там на С писали.

Сам день, когда все же взялся за обучение, помню довольно смутно. Проснулся с утра и решил: «Пора!» — как по Булгакову. Сел за компьютер и подошел к этому делу кондово по принципу «делай как я». Подход не отличался новизной. Сначала обсуждаешь, что предполагается делать, затем проговариваешь наиболее интересные моменты, чего предстоит сделать и дальше уже делаешь в меру оговоренного и прочих соображений походу разработки. Первое, что обсудили и решили, что проект будет какая-нибудь хорошо известная игрушка. Особо не мудрили взяли с потолка — крестики-нолики.

Я открыл эклипс и начал писать и рассказывать, что я делаю. Сын, надо сказать, сидел рядом, запоминал, как вообще чего там запустить. Через неделе две спародических сессий получилось написать обычную в командной строке программу, которую уже было сложно обыграть. После чего он предложил младшим братьям сыграть с программой по одному доллару ставка. Пришлось вмешаться в домашний тотализатор и прекратить опыт монетизации на ранней стадии проекта.

На этот момент стало понятно, что разработка программ вроде как дитю нравится, но явно для продвижения вперед требуется твердые знания и понимание языка Java.

Начали с наскока — стали тупо решать задачки как свернуть-развренуть, факториал или фибонначи подсчитать. Но ожидаемого для меня результата это не давало. Стало понятно, что сыну надо серьезно изучать Java.

Купили пару учебников… В общем, на учебники ушло полгода. К летним каникулам в прошлом году пошло все более серьезно, за лето сын разработал UI и написал десктопное приложение, которое вполне так вменяемо общалось с игроком. Я был занят на работе, время чтобы глянуть было только на выходных, что там да как в сам процесс разработки не лез. Сын походу начал писать еще одну динамическую игрушку, что-то навроде тениса из разряда десктоповых вшигонялок.

Но, слава богу, довел крестики нолики до логического конца.

image

Сколько веры и лесу повалено! (с) Владимир Высоцкий


Встал вопрос как закрепить результат и оформить его в технологическом тренде. Здесь в общем-то сомнений не было:

Скажем спасибо калифорнийской общеобразовательной школе. С первым пунктом проблем не было, сегодня сказал — завтра статья уже написана. С гитхабом тоже не было быстро залить код.

С развитием же проекта уже не помню кому первому пришла в голову идея, как всю музыку сделать под Андроидом. Собственно, я до этого под Андроидом не программировал и существенно было то, что ни у меня, ни у сына не было опыта с новым фреймоворком. На мой взгляд, одно дело рассказывать и показывать, что ты умеешь делать, другое дело искать вместе решение и показывать, как ты используешь свой предыдущий опыт для поиска решения.

Когда первый этап освоения нового для нас фреймворка был пройден, дело для меня пошло веселее — я уже больше давал советы и делал общее руководство, как лучше там чего зарефакторить и общие соображения из best practice.

Фундаментальное исследование стратегии в игре крестики-нолики


В какой-то момент сын обнаружил, что крестики-нолики имеют три базовые стратегии, которые приводят к «вилке» одного из игроков, если не просчитывать на два хода вперед. Стратегии выглядят довольно занятно.

Треугольник
image

Стрела
image

Окружение
image

Я тихо офигел и только и смог предложить оформить результат очередной статьей в блоге.

После чего мы ударно стали латать код закрывая обнаруженные стратегические дыры.

image

Результат


Последний месяц сын провозился с дизайном и оформлением:

image

Крестики-нолики были модифицированны в «Коты против Собак». Добавлены вменяемые сообщения и кой-какой общий интерфейс.

На мой взгляд, подход сделать какой-то законченный проект себя полностью оправдал, так как сыну пришлось реально выучить не только базовые вещи, но и достичь хорошего понимания на уровне дизайна проекта.

Исходный код проекта в гитхаб. Буду рад, если кому-то будет интересно глянуть и, может, повторить эпопею. На легкий результат не рассчитывайте. Наберитесь терпения.

Удачи.

Комментарии (11)


  1. petrovichtim
    04.08.2015 11:14
    -11

    Когда родители передают свою профессию детям из этого не всегда выходит толк. Таким образом часто воспитывают ремесленников а не творцов. Эта проблема очень хорошо освещена в данной лекции


    1. anmipo
      04.08.2015 12:43
      +3

      Контрпримеры: Актёрские династии, художественные династии.

      Искусство становится искусством, когда в достаточной мере овладел ремеслом.
      © adaptun


      1. petrovichtim
        04.08.2015 12:51
        -2

        Вы ещё династии кинорежиссеров приведите.


    1. Gorthauer87
      04.08.2015 15:31

      Так есть весьма большая вероятность, что ребенок будет по складу ума похож на родителей, да и ему самому будет интересно продолжать их дело. Только вот, не обязательно было его учить именно джаве, но думаю, что он потом сам найдет свою стезю.
      Но в целом, думаю, что нужно просто держать руку на пульсе, если с программированием не срастается, то нужно смириться с этим фактом и искать другие увлечения.


    1. Keyten
      04.08.2015 22:42

      Таким образом часто воспитывают ремесленников а не творцов

      А в чём разница? Вы хотите сказать, что если человек учится от родителей, то он почему-то перестаёт делать «с душой» или что-нибудь подобное? А почему?

      P.S. К теме топа. Лично я освоил html в 9-10 лет (примерно). В 12 уже писал на js, правда, слабо, начинал с onclick=«alert(...)», от тега script шарахался.
      К чему я… Не стоит недооценивать детей, при наличии практики можно и в 5 лет научить.


  1. Master_Dante
    04.08.2015 11:57
    -3

    Я мотивирую своих детей финансово. У них есть зарплата, за не послушание выписываю штрафы. Теперь они знают ценность денег. Вы мог ли бы замотивировать сына перспективой заработать денег. Например сделав аркаду для магазина андроида\ios. Я не помню как точно называется, крестики-нолики на неограниченном поле, там нужно 5 подряд поставить, что бы выиграть. Если он сделает игру и заработает, он уже не захочет быть кем то еще, и с другой стороны получит огромный стимул для развития. В процессе могут появиться новые идеи, которые так же могут выстрелить.


    1. Gorthauer87
      04.08.2015 15:33
      +4

      Вот мне интересно, когда мотивируешь финансово, то не получается так, что ребенок оказывается в плену у этих самых денег? По мне так, жить всю жизнь ради зарабатывания денег это весьма унылая судьба.
      Лучше уж его влечет что-то более общее, тяга к знаниям, открытиям, достижениям.


      1. Master_Dante
        06.08.2015 12:22
        -1

        Деньги это не цель, деньги это средство достижения целей. Тяга к знаниям и достижениям без денег, приведут разве что к алкоголизму. У каждого человека свои цели, он сними рождается. Мы не можем на это повлиять, мы можем лишь поддержать, сгладить острые углы, подстраховать. Удивитесь ли вы, если ваш сын станет балетмейстером или ракетчиком РВСН? :). Плен денег, это наверно частный случай любой одержимости. Но сами деньги лишь инструмент для целеустремленных, знающих меру, объективных людей.


        1. Gorthauer87
          06.08.2015 13:33
          +1

          Ну так и нужно давать деньги на достижение целей, а не мотивировать ими. Штрафы вообще, полнеший бред.


          1. Master_Dante
            07.08.2015 18:37
            +1

            Хотите всю жизнь быть давалкой? :) Вы наверно не правильно поняли мою позицию. Мои дети получают зарплату каждый месяц. Это позволило отсечь эти бесконечные купи то, купи это. Теперь у них есть деньги на которые они что хотят то и покупают. Но вот прикол в том. Что теперь они не покупают всякий хлам, а копят на что то стоящее. В целом такая расстановка учит их правильному отношению к деньгам. Они уже научились планировать свои траты. Что касается именно мотивации, я мотивирую доп. ден. вознаграждения за отличные годовые оценки. Как результат моя старшая дочь круглая отличница, а в этом году в школе на доске почета. Младшая пойдет во второй класс, и я планирую получить тот же результат. Штрафы воздействуют на детей лучше всяких давлений, ругательств и прочего. И что бы штрафы работали мы ввели свод семейных правил. Так что ваше заявление про бред, мало того что оно осталось без пояснения, так еще и полностью противоречит моему успешному опыту.


  1. artem_kovardin
    04.08.2015 14:09
    +1

    Но как же так… Тут нет ни одной картинки с джедаем!