14-летний киевский школьник Илья Ковалевский вошел в двадцатку призеров ежегодного международного конкурса Google Code-In для 13-18-летних программистов. В апреле 2013-го Илья вместе с мамой поедет в Калифорнию на четыре дня, чтобы посетить штаб-квартиру Google в Маунтин-Вью. Юный гений имеет серьезные взгляды на жизнь, собственную страницу в LinkedIn и планирует решать проблемы «лабиринтов». Контракты поговорили с Ильей о программировании, конкурсе и его увлечениях.
Как настроение?
Илья Ковалевский: Настроение классное.
Ты узнал о победе чуть раньше, чем огласили официальные результаты. Представители Google просили тебя не публиковать информацию до 5 февраля?
Илья Ковалевский: Результаты оглашены вечером 4 февраля. Но я узнал о них за неделю до этого. Неделя выдалась напряженной, потому что нельзя было никому рассказывать о победе, а очень хотелось. Все равно было радостно. А когда всем рассказал, стало еще радостнее.
Участвовал в конкурсе спонтанно?
Илья Ковалевский: Я вообще о нем не знал. О Google Code-In мне рассказал в сети знакомый из России. Конкурс уже длился два дня. Я принял участие ради футболки, которая давалась за три выполненных задания. Но все хорошо пошло, и в итоге выполнил 63 задания из 2 тысяч.
Ты рассчитывал получить только футболку, потому что недооценил свои силы?
Илья Ковалевский: Я был уверен, что смогу справиться, но возникло ощущение, что другие участники меня опередили, и я не успею их догнать, поскольку начал участвовать на два дня позже, чем остальные конкурсанты. Потом посмотрел и увидел, что за это время никто не показал особо выдающихся результатов. Тогда решил принимать участие дальше и бороться за победу.
Расскажи о самом сложном и самом легком заданиях?
Илья Ковалевский: Было задание, которое решил за 20-30 минут. Есть приложение Marble, виртуальный глобус, в котором использовались стандартные и не очень красивые цвета. А есть цвета более мягких тонов, входящих в группу Oxygen. Надо было поменять стандартную расцветку на Oxygen. Я сделал это за полчаса, а задание было рассчитано на два дня. В самом сложном задании нужно было поменять программную архитектуру в том же приложении Marble, которое разработано в 2005 году и с тех пор его не трогали. Оно было не в лучшем виде, для нынешнего времени просто неприемлемым. Приложение надо было исправить, на это у меня ушло два дня.
Сколько времени потратил на все задания, которые выполнил?
Илья Ковалевский: В целом 7 недель. Чуть менее 10 заданий в неделю.
Когда решал задания?
Илья Ковалевский: После уроков приходил и занимался до ночи.
Основные задания заключались в том, что надо было доработать код?
Илья Ковалевский: Да. В основном были несложные задания, но были и сложные. Надо было исправить, настроить, портировать, локализировать приложения.
В конкурсе можно было выбрать задания из нескольких категорий. Почему ты остановился на кодинге?
Илья Ковалевский: Мне было скучно работать с документацией. Я сделал всего одно задание из данной тематики. Некоторые задания по кодингу пересекались с заданиями на UI (пользовательский интерфейс – ред.), и наоборот. То есть я не делал таких заданий, в которых не надо было вообще писать код. Некоторые задание касались тестирования.
Несколько лет назад Google за три задания давал приз в $100. Почему денежное вознаграждение отменили?
Илья Ковалевский: Да, раньше за три задания давали деньги, и лимит был $500. В основном все выполняли 15 заданий, потому что не было смысла делать больше. Сейчас они отменили денежное вознаграждение. Это обдуманный шаг. Считаю, Google хотел, чтобы участники больше работали, показывали себя. А если они выполняли 15 заданий, затем отдыхали, то это не совсем то, что хотел Google. Поэтому они ввели вместо этого категорию гранд-призеров и ребят с футболками.
Как отбирали призеров?
Илья Ковалевский: Их выбирали по трем параметрам. Тщательность, креативность и объем работы. Играло роль не только количество заданий, а и то, насколько хорошо и креативно ты их выполнил. Работу проверяла организация и сообщала в Google, кого выбрала. Google проверяла участников, чтобы ничего не было подтасовано, и оглашала результаты.
Задания ты выполнял за домашним компьютером? Не было представлений и презентаций, как в Microsoft Imagine Cup?
Илья Ковалевский: В основном да, дома. Microsoft Imagine Cup в этом отношении масштабнее.
Можно ли было отслеживать конкурентов?
Илья Ковалевский: Можно. Потому что была таблица со списком несделанных и сделанных заданий. Их можно было смотреть, отсортировать по участникам и увидеть, кто сделал больше, а кто меньше. Я смотрел ее регулярно. Было пару человек, которые меня беспокоили. Из Индии. Из СНГ не было, по-моему, никого.
Возраст участников Google Code-In ограничивался 13-18 годами. Было тяжело соревноваться с 18-летними ребятами?
Илья Ковалевский: Я не знал возраст оппонентов, только знал, что они были в программировании достаточно хороши. И победить в конкурсе было непросто.
Тебе работу еще не предлагали?
Илья Ковалевский: Нет, еще не успели.
Ты программируешь с 11 лет, как за три года смог выйти на такой уровень? Что повлияло на решение стать программистом?
Илья Ковалевский: Спонтанные вещи определили мое будущее. Например, в четыре года отец посадил меня за компьютер, и я потом прятал от родителей папки с «Масяней». Это был первый случай знакомства с компьютером, который я запомнил. В программирование меня привела учительница по информатике Наталья Богомолова из лицея «Лидер». Она определила мое будущее, я так думаю.
Кто твой кумир?
Илья Ковалевский: У меня кумира нет. Но мне нравится мировоззрение Сергея Брина (один из основателей Google – ред.). Я бы хотел работать в Google. Еще мне нравится физик Лев Ландау. Его работа и его мировоззрение. Он жил в 20 веке.
Какие предметы тебе нравятся?
Илья Ковалевский: Физику и информатику люблю даже больше, чем математику.
Кем себя видишь в будущем?
Илья Ковалевский: Программистом, конечно же. Сейчас я увлекаюсь био-информатикой. Я не могу ничего сказать подробно, потому что эти проекты не для разглашения. Я участвую в одном конкурсе, и он еще не закончился.
Много ли времени отнимает программирование?
Илья Ковалевский: Да. Часто приходится недосыпать, потому что не хочется оставлять недоделанную работу на потом. Ложусь спать в два-три часа.
Ты общаешься с другими программистами?
Илья Ковалевский: В реальной жизни? В основном нет. Мне в этом плане хватает интернета.
Состоишь ли ты в сообществах?
Илья Ковалевский: Активно дискутирую на Хабре. Ходил на встречи программистов в Киеве.
Что тебе нравится кроме программирования?
Илья Ковалевский: Картинг, пинбол, настольный теннис и шахматы. В настольный теннис играю на переменах в школе. Картинг по выходным. Пинбол – раз в 1-2 месяца, если повезет.
Как отреагировали родители на твою победу в Code-In?
Илья Ковалевский: Обрадовались. Они меня во всем поддерживали.
Играешь ли ты компьютерные игры?
Илья Ковалевский: Редко играю.
Как выглядит твой день?
Илья Ковалевский: Иду в школу, затем в какой-то кружок, затем иду домой и делаю уроки, а затем программирую.
Какие языки программирования тебе нравятся?
Илья Ковалевский: Хорошо разбираюсь в С++. Сейчас изучаю Python, правда пока безуспешно. Я еще не прошел весь обучающий курс, потому опыта не имею. И знаю JavaScript, хотя на самом деле это не совсем язык программирования.
Как находил учебную литературу?
Илья Ковалевский: Я ее по сути не читал. Мне кажется, что книги по программированию – это абсурд. Одно из самых ужасных изобретений человечества. Они ужасно глупые, описывают шаблонные вещи. Книга сама по себе не может эволюционировать, потому что это бумага. А в интернете информация постоянно обновляется. Конечно, самые фундаментальные вещи можно почитать в книге, но они также или даже лучше описаны в интернете.
Что ожидаешь от своей поездки в офис Google?
Илья Ковалевский: Чего-то exciting. Думаю, там будет очень классно.
Хватало ли тебе знаний английского, когда принимал участие в конкурсе?
Илья Ковалевский: Да, дискомфорта не чувствовал. Я свободно переписывался с менторами. Сейчас буду готовиться по программе English-by-Phone, улучшать разговорный английский в общении с американцами. Разговорный английский я еще не практиковал.
Какие книги тебе нравятся?
Илья Ковалевский: К сожалению, почти не читаю художественную литературу. Когда-то читал в оригинале «Алису в Стране чудес», но до конца не дочитал, потому что после первой главы у меня были такие ощущения как после часового ликбеза по биологии. С литературой в целом не сложилось. Но я читаю увлекательные книги по физике и информатике.
Просил ли Google подписать бумаги о неразглашении?
Илья Ковалевский: Да, что-то мы подписывали. Какие-то бумажки.
Тяжело ли было получить письменное разрешение родителей на участие в конкурсе?
Илья Ковалевский: У меня на это ушло почти минут сорок. Я распечатал бумаги, дал маме подписать, она поставила подпись, я их отсканировал и отправил по почте.
К каким конкурсам ты готовишься еще?
Илья Ковалевский: Сейчас я участвую в конкурсе по научным исследованиям Google Science Fair. Он масштабнее и раз в десять круче, чем Code-In.
Тебе нравится ОС Android?
Илья Ковалевский: Ее необходимо улучшать. Android классная и прикольная, но мне кажется, пользователю дано слишком много свободы. Если iOS слишком простая, то в Android надо совершать много ненужных телодвижений. Если бы смогли создать настройку для упрощения, было бы классно. Например, можно создать волшебную кнопку внутри, которая внезапно делает его проще.
Какие задачи тебе интересно решать в программировании?
Илья Ковалевский: Люблю алгоритмы, которые решают проблемы. Которые ищут самые эффективные и короткие пути. Классика: поиск самого короткого пути в лабиринте. Это элементарная вещь, пишется очень легко, но подобные вещи, только раз в пятьдесят сложнее, меня интересуют.
Есть ли у тебя время на отдых?
Илья Ковалевский: По выходным гуляю с друзьями.
Какие любимые мультфильмы, сериалы?
Илья Ковалевский: Очень нравится мультфильм Transformers Prime. Это чудо современной мультипликации. Он намного лучше фильма. Из сериалов нравится фантастический «Доктор Кто».
Тебе нравится ходить в школу?
Илья Ковалевский: Я бы ходил только на те предметы, которые люблю. Лучше бы ученикам давали возможность выбирать предметы. Мне бы хотелось больше ходить на алгебру, и меньше – на историю.