Передача досвіду: Шлях Джедая

image

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

Пора!.. Коні вже неслися над дахами… © Михайло Булгаков


Я, як дбає татусь, вирішив передати досвід програмування синові 14 років. До цього моменту в нього був непоганий досвід розробки власних програм для роботів типо Лего-MindStorms і літній клуб Id-tech чого там на С писали.

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

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

На цей момент стало зрозуміло, що розробка програм ніби як дитині подобається, але явно для просування вперед потрібно тверді знання і розуміння мови Java.

Почали з наскоку — стали тупо вирішувати задачки як згорнути-развренуть, факторіал або фибонначи підрахувати. Але очікуваного для мене результату це не давало. Стало зрозуміло, що синові треба серйозно вивчати Java.

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

Але, слава богу, довів хрестики нулики до логічного кінця.

image

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

Постало питання як закріпити результат і оформити його у технологічному тренді. Тут взагалі-то сумнівів не було:
Скажімо спасибі каліфорнійської загальноосвітній школі. З першим пунктом проблем не було, сказав сьогодні — завтра стаття вже написана. З гитхабом теж не було швидко залити код.

З розвитком проекту вже не пам'ятаю, кому першому прийшла в голову ідея, як всю музику зробити під Андроїдом. Власне, я до цього під Андроїдом не програмував і суттєво було те, що ні в мене, ні у сина не було досвіду з новим фреймоворком. На мій погляд, одна справа розповідати і показувати, що ти вмієш робити, інша справа шукати разом рішення і показувати, як ти використовуєш свій попередній досвід для пошуку рішення.

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

Фундаментальне дослідження стратегії в грі " хрестики-нулики

У якийсь момент син виявив, що хрестики-нулики мають три базові стратегії, які призводять до «вилці» одного з гравців, якщо не прораховувати на два ходи вперед. Стратегії виглядають досить цікаво.

Трикутник
image

Стріла
image

Оточення
image

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

Після чого ми ударно почали латати код закриваючи виявлені стратегічні діри.

image

Результат

Останній місяць син провозився з дизайном і оформленням:

image

Хрестики-нулики були модифицированны в «Коти проти Собак». Додано осудні повідомлення і кой-який загальний інтерфейс.

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

Вихідний код проекту в гитхаб. Буду радий, якщо комусь буде цікаво глянути і, може, повторити епопею. На легкий результат не розраховуйте. Наберіться терпіння.

Удачі.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.