Материал доступен также в качестве видео:
Так уж получилось, что помимо многих лет профессионального программирования, я еще какое-то время обучал ему, на курсах при МГТУ им.Баумана.
Причем, как взрослых, так и детей - угораздило же; просто деньги были очень нужны.
С тех пор прошло достаточно времени, но есть кое-что, заставившее задуматься об этой теме.
Дело в том, что сын моего родственника сейчас заканчивает школу и он обратился ко мне на предмет помочь с идеей стать программистом.
Допустим, со взрослыми все более-менее понятно, уже есть какая-то мотивация, есть опыт работы, какая-то производственная среда, знания, образование, и т.д.
Про это читайте отдельный выпуск.
Но давайте также рассмотрим, каково это в целом, учиться программированию, если ты ребенок школьного возраста.
На данном этапе, к сожалению, очень легко угробить будущее ребенка, направив его не по той дорожке.
Поступить его не в тот вуз, не на ту специальность, с тем чтобы он вылетел на середине учебы, или еще хуже, отучился 5 лет на платном, пустив деньги родителей во ветру, а потом пошел работать продавцом.
Из нашей группы, кстати, в Айти работает процентов 5-10%, да и то не все программистами.
И чуть позже я расскажу, какие специализации еще есть в Айти, и почему не надо зацикливаться именно на программировании.
Есть ВУЗы, где до 5 курса тянуть никого не будут, и выгонят в армию, что может быть как к лучшему, так и к худшему.
Давайте же поймем, что может помешать маленькому человеку успешно войти в профессию и начать с нее кормиться.
Основная проблема, которая возникает в детстве, это то, что тебе сложно концентрировать внимание на вещах, которые не сильно тебе интересны.
И этого не понимают многие родители.
Они пытаются промотивировать ребенка каким-то примитивным образом, например, психологическим давлением.
Таким способом, действительно можно привести его к некоторой дисциплине, например, да - ребенок может прийти на занятия во время.
Но это тот случай, как в восточной пословице - "можно подвести ишака в воде, но пить его не заставит даже шайтан.
Понимать ее следует иносказательно, потому что некоторые мамочки сразу сделают вывод, что я назвал их ребенка ишаком, а лично их - шайтаном, хотя шайтан мужского рода.
Я говорю о том, что даже если ребенок отсидит занятие, но не будет прилагать усилия к предлагаемым упражнениям, толку от этого будет мало.
А если ребенок не видит пользы от того, чему его учит, с какой стати ему проявлять интерес?
Дело в том, что у ребенка нет большинства потребностей взрослого, он не беспокоится о том, что поесть, что попить, где найти крышу над головой.
Деньги для ребенка - это очень абстрактная вещь, которые вроде бы нужны, но вообще-то они и так есть, просто глупые родители не очень правильно ими распоряжаются.
На занятиях, к примеру, один из детей невзначай спросил, а можно ли работая программистом, купить автомобиль.
Примерно это в голове у некоторых детей, хотя они вообще не близки к тому чтоб начать зарабатывать и обеспечивать себя.
А ведь были периоды в начале моей карьеры, когда было не до автомобиля, а как платить за квартиру в Москве, и что поесть, и как-то знаете ли не до автомобиля.
Допустим, местами дела получше, но правда, любой ли программист может позволить себе автомобиль?
Давайте посмотрим на распределение зарплат программистов на по языкам и пока отложим в сторону.
Много кто может купить автомобиль, капитан, летчик, юрист, экономист.
Судя по дорожной обстановке в Москве, так вообще любое быдло с 3 классами церковно-приходской школы может купить автомобиль, на сдачу купить права, и резвиться на нем на дороге, не видя окружающих.
Ну, возьмем как прошлое мерило успеха, допустим, профессию юрист.
Вы же не пытаетесь сделать из ребенка юриста в 5 классе, а вот мы начинали именно с такого возраста, и по-моему это правильно.
Если говорить о том, что математически оптимально для человека, по соотношению усилия/результат, то внезапно мы приходим к выводу, что оптимальной стратегией будет студенческое иждивенчество на как можно более длинном периоде.
В самом деле, на какого-нибудь юриста можно учиться лет 6, плюс еще есть аспирантура, зачастую платная, а еще есть опция доучивания в училище МВД или ФСБ.
Все это время можно фактически сидеть на шее у родителей.
Кстати говоря, в ИТ есть опция изучения все новых и новых языков, или специализаций, и студент тоже может потратить немало времени и родительских денег.
Я же говорю то, что не понравится таким вот вечным нахлебником - работать в ИТ надо начинать как можно раньше, курса со второго.
Отбрасывая денежный вопрос в сторону, для мотивации ребенка к обучению программированию есть буквально пара инструментов - любопытство, и тяга к творчеству.
Допустим, ваш ребенок любопытен и ему хочется понять, как все устроено.
Конкретные примеры, где он может столкнуться с информационными технологиями.
Игры, приложения в телефоне, компьютерная графика в кино, ну и модные производственные фишки - 3Д принтеры, конструкторы с электронными частями.
Первое - игры.
Опаснейшая вещь, если отпустить на самотек.
Если играть, а не создавать игры, они займут все свободное время, и приучат мозг к получению удовольствия от крайне примитивных и зачастую тупых, в общем-то, действий.
Мало кто из детей увлекается глубокими стратегиями, да и стратегии имеют мало общего с программированием, за редким исключением.
Обычно, детям приятны аркады, стрелялки, и игры с большим открытым миром, который красочнее обычного.
Это неплохо, да мне самому бывают интересны проекта класса ААА, туда неспроста вложены миллионы долларов, это как голливудский блокбастер, отличный аттракцион, но что они развивают?
Это тренировка моторных навыков, реакции. В какой профессии нужна реакция? Водителя, ну может быть пилота.
Раньше были хардкорные квесты, где надо было вот прямо искать решение, думать, соображать.
По смыслу это наиболее близко к образу жизни программиста, но опять, мало какого чемпиона по кроссвордам зовут в дипломаты.
Анализируя причины своего относительного успеха в индустрии, я прихожу в выводу, что ключевым был факт, что у меня не было компьютера, а я компьютерами очень интересовался.
Компьютерное бомжевание привело меня на внеклассные занятия в школе, а также на станцию юных техников, где играть разрешалось очень дозировано.
Мало этого, чем раньше относительно других детей мы писали программу, тем раньше можно было перейти к игре, а другие тебе завидовали, и кусали локти от своей тупизны.
Ушла эпоха, и теперь таким способом мало кого промотивируешь - они пойдут домой и будут играть там.
Тем не менее, каким-то детям крайне интересно, что внутри той или иной игрушки, и поэтому они их ломают.
В компьютерных играх интересно то, что можно отредактировать некоторые файлы, и изменить игру.
В журнале Хакер даже был специальный раздел для детей, как взломать и изменить какие-то игры.
В наше же времена было еще интереснее - так как игры были на английском, по возможности их нужно было ловко русифицировать, и одновременно самовыразиться.
А какое самовыражение без мата и казарменного юмора? Иногда получалось довольно весело.
Детское стремление к вандализму тоже было в какой-то мере стимулом.
Некоторым, в том числе мне, в детстве хотелось написать какой-то гениальный вирус, который бы взломал что-то в интернете, уж если не пентагон, то хотя ларек со жвачками.
Это умело эксплуатировали хитрые взрослые, продавая вышеупомянутый журнал Хакер, который знали, наверное, все из подростковой компьютерной тусовки. Ирония в том, что способы взлома, которые были в основном полной ерундой, предлагались под операционную систему Linux, которая при установке могла загубить Windows на домашних компьютерах, а сама на тот момент, совершенно не подходила для каких-то повседневных задач.
В общем, желание детей знать как что-то устроено органично перетекает в тягу к творчеству, и в желание это прекрасное создавать.
На самом деле, это очень наивное желание, но вот лично у меня оно возникает регулярно.
Например, увижу в кино какой-то шикарный спецэффект, и думаю - вот бы мне так!
Это активно эксплуатировали в школе - программирование буквально со второй строчки начиналось с рисования.
Линии, круги, более сложные фигуры, комбинации.
У программистов, кстати, существуют соревнования по спецэффектам, так называемая демо сцена.
Желание писать игры, конечно, тоже никто не отменял.
Хотя с играми все стало намного сложнее чем раньше. Вакансий мало, требования высокие, а кроме того, произошло разделение на собственно программистов, а также художников, дизайнеров. Кстати, это тоже неплохие профессии, если ваш ребенок не потянул именно программирование, стоит задуматься. Всяко лучше мануал тестировщиков.
Тем не менее, есть простенькие проекты игр на планшетах, есть так называемые инди - независимые игры, которые делают несколько, или вообще 1 человек, а не большая компания.
В общем, вполне возможно, что какой-то упорный ребенок, затратив тысячу часов, сделает прикольную игрушку, а у него ее купят, и/или позовут работать в серьезную фирму, есть.
Но скорее всего, ему потребуется и знание английского, и умение на нем общаться.
Куда реальнее, заниматься интернет сайтами.
Рынок в данной сфере велик и разнообразен.
Какие-то крупные корпорации, могут заказать себе портал (а портал это просто сайт с более солидным названием), и он будет со множеством функций, с движком, который прикручен к системе SAP, которая стоит несколько миллионов долларов.
А портал, обойдется пропорционально этой системе, допустим в несколько сотен тысяч долларов, и их реально кому-то заплатят, хотя можно было сэкономить и заплатить на порядки меньше за почти то же самое, но такова утвержденная архитектура. Конечно, человеку, который будет его делать, достанется малая часть пирога, но с этого все равно можно неплохо кормиться.
Правда удовольствие от этой работы так себе и учиться довольно долго.
А вот клепать простые статичные сайтики одно удовольствие - и начать заниматься этим ребенок может совершенно не зная программирования.
Поначалу за это не будут платить много денег, но как входной билет в индустрию это вполне себе.
Опять-таки, поначалу, ремесло разделилось на веб-программистов и веб-дизайнеров, но это внутри фирм.
А у фрилансеров, по-прежнему, все в одном человеке - сайты на заказ от двух тысяч рублей.
Дело в том, что для салона маникюра не нужен какой-то особо крутой сайт, а фактически хватит вордовского документа, с несколькими фото, сохраненный в формате веб-сайтов.
Допустим вы - мать одиночка и вам тяжело обеспечивать семью, тогда берите такие заказы, и эксплуатируйте ребенка, пусть он их делает, как сможет, своими короткими и пока что кривыми руками - ну а что, дети должны помогать родителям.
А клиентам говорите, да косо, да аляповато, но что вы хотели за эти деньги, я художник я так вижу.
Это все равно будет легче чем то, чем мы занимались в 90е, когда в дачных кооперативах не подавали воду, и приходилось таскать ее ведрами на детях как на вьючных животных.
А в школе на отработке мы на жаре дергали сорняки на клумбах, согнувшись в три погибели.
В общем, в гробу я видел это сельскохозяйственное рабство.
Я бы с удовольствием верстал вместо этого какие-нибудь примитивные сайты, а большинству заказчиков больше и не надо!
Но у меня не было компьютера и интернета, а у вас-то сейчас есть, надеюсь?
Но вообще, по степени сложности, профессиональное веб-программирование сейчас находится на довольно высокой отметке.
Язык, который используется в интернет-браузерах, JavaScript, отвратителен, и преподавать его детям я бы не решился - это как вирус, он разъедает мозг. А его одного и не хватит, так как еще надо учить какой-то фреймворк, в которых черт ногу сломит, плюс они меняются от проекта к проекту. То есть, вы вывернулись на изнанку, потратили время изучая angular, устраиваетесь куда-то, а в проекте внезапно react, и ваши знания ни к месту.
Мало этого, как правило, на серверной стороне распространен другой язык, например, php и он тоже отвратителен, хотя и чуть получше JavaScript, но думать одновременно на двух языках сложно, поэтому рождается еще одна специальность - бэкенд разработчик. То есть в типичной команде по сайтам уже куча народу: художник, верстальщик, фронтенд программист, бэкенд программист, тестировщик, и руководитель проекта, и всяческие побочные люди типа seo оптимизатора, администратора, контент-менеджера, копирайтера. Все они как-то кормятся, пока имеется излишек денег и мода на регулярную переделку сайтов (хотя в последнее время их так называемое устаревание уже высасывают из пальца - 90% сайтов достаточно хороши и переделка мало что им даст). Но в прошлый кризис дот-комов всех их уволили.
Какие же еще перспективные специализации есть для детей?
Вы слышали про машинное обучение, искусственный интеллект и прочее такое.
Категорически не стоит посылать туда ребенка, если он не склонен к математике, поскольку она там везде.
Без базы, не понимая графиков, он просто ничего не поймет.
Давайте рассмотрим языки, которые остались.
В школах, например, в мои годы был распространен бейсик.
Он в целом не плох, но в нашей программе обучение все было на условных переходах с метками.
Это дает общее понимание о том, как работает компьютер, так как в низкоуровневом языке программирования, ассемблере, все работает именно так.
Но дело в том, что такой подход порождает ошибки, и от него давно отказались, в пользу циклов.
С циклами, дела обстояли повеселее в паскале.
Недавно я решил проверить что с ним, и оказалось он жив, а среду разработки Delphi выкупила некая фирма, и выпускает ее в комплекте с С++ Билдером.
О этой самой дельфи у меня светлые воспоминания, в вот почему.
Дело в том, что это был самый короткий путь построения настоящего оконного приложения в стиле Windows, и кнопками, всплывающими диалогами и т.д.
То есть, создал проект, ни строчки кода ни написал, но сразу можешь запустить пиложение с пустым окошком, код добавился сам.
Для ребенка это очень кстати.
Возвращаясь к нашему графику зарплат, дельфи там хоть и живет, но находится в самом хвосте.
Тем не менее, у него есть брат близнец, это С++ билдер, который намного проще MS Visual Studio, но начать изучение С++ можно именно отсюда.
Не сказал бы, что С++ очень прост для освоения, но большинство программ в мире написано именно на С++ и на чистом С без плюсов, мало этого, исходный код ОС Linux открыт - и он тоже на 98% на С/С++.
Если говорить о российском рынке программистов, огромную его часть занимает 1С программирование, и у фирмы 1С есть курсы, мероприятия для детей. Рекомендую с ними ознакомиться.
1С это система для учета, причем не только бухгалтерского, и обучение программам и программированию на 1С:Предприятие - это без шуток то, что даст ребенку понимание проблематики реального мира, сбросит его розовые очки так сказать.
Зачем вообще вести учет, что придумали люди чтоб считать деньги и товары со времен итальянских купцов и мореплавателей, как это работает на современных базах данных.
Если ребенку интересна сфера денег все это будет очень полезно.
Иронично то, что кроме 1С:Предприятия фирма 1С продвигает обучение детей Java - а это как раз тот язык, который вместе с другими, базирующими на той же Java машине захватывает мир.
Таким образом, она во-первых, плодит конкурентов своей платформе (та построена не на Java машине, хотя это была бы просто мечта – 1С с возможностью писать на Scala, ммм).
Во-вторых, поощряет отток молодежи за рубеж, хотя я думаю, что большая часть, так или иначе вернется (предчувствие у меня такое).
Это самые высокие строчки из нашего зарплатного графика, но о том, как заинтересовать детей Java, в другой раз.