Зачем учиться программировать

Советы от преподавателя курса Фоксфорда: почему программирование — это новая азбука, с чего начать обучение и как в этом помогут видеоигры

Зачем учиться программировать
Денис Быструев
Денис Быструев
преподаватель, руководитель образовательных программ «Эпла» 2011–2017

Чем полезно программирование

Я всем советую научиться программировать, потому что это удобно. Представьте, что вам нужно сгенерировать письма из таблицы, в которой 800 человек. При этом к каждому имени и отчеству надо подставить слово «уважаемая» или «уважаемый», но пол адресата не указан. Для этого гораздо быстрее написать небольшой алгоритм, чем искать имена вручную. В результате у вас останется примерно пять имён, которые машина не распознает.

Не так давно мне понадобилось собрать информацию обо всех вузах страны. На сайте Министерства образования их не оказалось. Списки вузов России на edu.ru представлены на страницах регионов, а не на общей. Я написал короткую программу, которая заходит на страницу, скачивает данные, а затем преобразовывает их в нужный формат. В итоге я получил готовый список за считаные минуты.

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

Как я начал программировать

В 1985 году из журнала «Наука и жизнь» я узнал о программируемых микрокалькуляторах. Они представляли собой довольно примитивные устройства — запоминали 98 шагов алгоритма, а программы для них писали на бумаге и публиковали в журналах. Можно было запрограммировать, например, посадку на Луну. Причём результаты вычислений — координаты корабля — отображались в виде цифр, а ты сам воображал, насколько это далеко от поверхности.

Я уговорил родителей, и мне подарили микрокалькулятор «Электроника БЗ-34». Так в 12 лет я стал писать программы не только в тетради. В то время начали появляться кружки, и по выходным мы со сверстниками работали на настоящих ЭВМ.

В выпускном классе я стал одним из победителей Всесоюзной олимпиады по программированию. С дипломом победителя я без экзаменов поступил на Факультет вычислительной математики и кибернетики МГУ. С тех пор я всем школьникам советую обязательно участвовать в олимпиадах.

Поработать программистом мне довелось уже на втором курсе. Одноклассник из полиграфического института рассказал, что нужно написать библиотеки для обработки графических файлов формата PCX. Документация на него была, поэтому работа оказалась несложной, и я сильно удивился, когда мне дали зарплату. До этого я даже не думал, что за программирование можно брать деньги. Казалось, это сродни искусству, а заниматься программированием — наслаждение. Но если тебе ещё и платят, то это работа мечты.

Каким будет интернет в мире кодеров

К 2020 году дефицит программистов во всём мире составит 1 млн человек. Никакие вузы, школы и курсы не способны покрыть этот недостаток.

По мнению экспертов, программирование сегодня становится новой азбукой. Когда большинство людей будут уметь кодить, произойдёт такой же прорыв, какой случился после распространения чтения и письма.


В мире будущего необязательно быть профессиональным кодером — достаточно понимать принципы работы компьютера и уметь составить алгоритм.


В дополнение к привычным сайтам будут появляться API (Application Programming Interface) — текстовые данные в формате, понятном для машин. Интерфейс API уже сейчас предоставляет компьютерам информацию от источника данных через интернет. Например, прогноз погоды или курс валют для мобильного приложения.

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

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

Когда живой человек ищет информацию в интернете, владельцы сайтов показывают ему рекламу и таким образом зарабатывают деньги. Если запросы будет выполнять машина, компаниям-агрегаторам будет невыгодно предоставлять контент бесплатно по API. Так что готовой универсальной бизнес-модели для интернета будущего пока нет.

Как научиться программировать

С чего начать

В любом деле главное — мотивация. Чтобы почувствовать вкус программирования и с первых шагов получить результат, важно взяться за интересную и в меру трудную задачу.

Если вы считаете программирование слишком сложным, и даже если у вас нет айпада, обязательно примите участие в конкурсе Фоксфорда для начинающих кодеров. Задания построены на первых уроках курса в среде Swift Playgrounds. Я перевёл их на русский и адаптировал под формат сайта, чтобы задания мог выполнять любой школьник.

Пример задания с онлайн-конкурса Фоксфорда по программированию

Курс на языке Swift — это эпловский курс на айпадах, где персонажи ходят по лабиринту, собирают камни и включают переключатели. Вначале ученики следуют правилам игры, но вскоре узнают, что могут сами управлять объектами. В результате за 12 занятий школьник создаёт собственную головоломку и пишет программу, которая её решает.

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

Как заниматься

Если вы хотите развиваться в этом направлении, будут полезны все формы обучения: и курсы, и книги, и практика. При этом для обмена опытом особенно эффективно работать в группе. Для взрослых слушателей моего онлайн-курса я создал телеграм-канал. Учащиеся сами отвечают на вопросы друг друга, обмениваются тестовыми заданиями потенциальных работодателей. Заниматься в группе веселее, чем одному: здесь энергетика и поддержка, благодаря которым слушатели вовлекаются в процесс.

Школьники, которые раньше не занимались программированием, могут пройти мой базовый курс на языке Swift. Хорошие программисты получаются из тех ребят, которые долго играли в видеоигры. Достаточно один раз испытать «чувство бога», спроектировать собственную вселенную, чтобы перестать играть и начать создавать свои приложения. Неважно, игра это или что-то другое — вы будете устанавливать правила для других.

Тем, кто хочет всерьёз изучать программирование, я советую прочесть классический труд Дональда Кнута «Искусство программирования». Когда вы усвоите базовые понятия и получите первый опыт создания кода, переходите к реальной практике.

Сколько времени это займёт

В произведениях Кира Булычёва дети занимаются серьёзными научными исследованиями наряду со взрослыми. Главная героиня и её товарищи проводят смелые эксперименты в биологическом кружке и публикуют статьи в серьёзных журналах. Я думаю, мы действительно к этому идём, и программирование — одна из первых областей, где школьники выступают наравне со взрослыми.

Я согласен с теорией «10 000 часов»: если вы на протяжении трёх лет будете заниматься любимым делом, то достигнете профессионального мастерства. Дело в том, что подростки не всегда готовы быстро определиться. До программирования я перепробовал много разных занятий: учился в музыкальной школе, играл в шахматы, посещал секции плавания, дзюдо, ходил на лыжах. Молодым людям интересно многое, они должны попробовать всё — это совершенно нормально.

Программисты тринадцати лет — явление уникальное, а вот старшие школьники делают коммерчески успешные проекты. Например, выпускник Филипп Захарченко три раза подряд получал стипендию для участия в международной конференции «Эпла» для разработчиков.

Как стать профессиональным кодером

Поскольку самое полезное обучение — это практика, зарегистрируйтесь на крупнейшем сервисе фриланса upwork.com. Подпишитесь на интересующую вас тему, например, AR (augmented reality). Выполняйте проекты по следующему алгоритму:

1. Прочитайте, чего хочет заказчик

2. Отметьте, что из этого вам по силам

3. Решите задачу так хорошо и быстро, как сможете

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

Первое время вы будете постоянно отставать. Возможно, сделаете десять приложений без толку, но рано или поздно вам предложат работу.

На upwork.com вы будете решать не отвлечённые, придуманные профессорами задачи, а создавать реальные вещи, которые нужны настоящим заказчикам. В числе моих первых проектов были ресторан в Бразилии, бюро путешествий в Италии и AR-анимация в Китае. При этом от вас потребуется самодисциплина и способность работать в реальных дедлайнах.

👉

Хотите получать новые статьи во «ВКонтакте»? Подпишитесь на рассылку полезных статей