Jacob Baytelman - Full stack developer, project manager, CTO

Как рано можно начинать учить детей программированию?


Я программирую уже более 25 лет. Это достаточно долго, чтобы сделать некоторые выводы. Я видел, как появляются новые языки программирования, новые среды разработки, новые фреймворки и платформы и как они умирают.

Лет 15 назад я работал в группе программистов над пакетом игрушек, мы их писали на C++ и уже были готовы к запуску, продукт практически готов, отлажен, прошел тестирование. И тут приходит продакт менеджер и показывает нам новую разработку конкурентов на Flash. И это было вау! Чудесные анимации, без необходимости устанавливать, заходи на сайт и играй. И мы оставили практически готовый продукт и переписали его заново на Flash, на что ушло порядка полугода.

А через несколько лет появился iPhone и iPad, которые благодаря решению Стива Джобса стали убийцами Flash. Вся стратегия нашей компании пошатнулась, т.к. мы теперь делали упор на веб-ориентированные Flash приложения, не требующие установки, но на iPhone и iPad они не работали, при этом все больше людей покупали именно iPhone и iPad и пользовались ими! На Ice - крупнейшей ежегодно тематической выстаке разработчиков игр - я подошел в павильону нашего крупнейшего конкурента и спросил, что они делали с Flash. Они ответили, что минимально поддерживают старые игры на Flash, а новые делают на HTML5. То есть всего несколько лет прошло, и новейшая перспективная платформа перешла в разряд умирающих.

Параллельно все начали разработку на "родных" языках - Objective C для iPhone / iPad и Java для Андроида - и переходить от веб-приложений к приложениям, устанавливаемым из "сторов" - AppStore и Google Play. Похоже, что эта модель зашла прочно и надолго, потому что за ней стоят механизмы монетизации и контроля со стороны Apple и Google, но и она не вечна. Полагаю, лет 10 до нового "переворота".

Но что такое 10 лет для сегодняшних школьников-пятиклассников? Это как раз срок, за который они закончат школу и колледж или университет. Поэтому возникает вопрос - какому прикладному программированию им учиться?

Учиться писать приложения под iOS и Андроид? Чтобы через 10 лет этот навык не имел практического применения, например как сегодня разработка на C или Pascal? То есть и сегодня есть работа на С и Delphi, но ее очень мало, там крайне высокая конкуренция, и "желторотые" юнцы не смогут тягаться с олдскульными "монстрами", которые имеют колоссальный опыт.

Есть мнение, и я его разделяю, о том, что хороший программист может писать на любом языке, переключиться с одного языка на другой - вопрос нескольких дней или максимум недель. Синтаксис разный, но принципы одинаковые. Это справедливо для случаев, когда у программиста есть определенный опыт и гибкость мышления, причем ГИБКОСТЬ куда более важна. Мы вернемся к этой самой гибкости позже.

А может, обучать школьников не самим языкам, а алгоритмам? Может быть, есть "классические" языки, типа латыни? Еще один вопрос - кто преподает? Продолжение следует уже последовало.

"Технический директор о стартапах":
Команда, Идея, Инвесторы, Минимальный продукт, Универсальный солдат (aka Мастер на все руки aka full stack developer)

J.Baytelman January, 2018