Поддержим наших школьников

Помните свою первую программу? Наверняка она была написана на каком-нибудь Pascal или Basic в школьные годы. А потом завертелось: новые языки, алгоритмы, фреймворки… и вот мы здесь.

Прямо сейчас в России очень много талантливых ребят идут по нашим стопам. К счастью, у нынешнего поколения есть и умные IDE, и высокоскоростной интернет, и огромное количество учебных материалов под рукой. В результате, ученики намного раньше начинают заниматься серьезными проектами. Например, школьник 11-го класса сделал систему распределенных вычислений на основе браузеров посетителей сайта:

Система распределенных вычислений на основе браузеров посетителей сайта
(об этом проекте я расскажу чуть подробнее под катом)

Это лишь один из множества школьных исследовательских проектов. Лучшие из них будут представлены в Питере 3-го февраля 2016 в 14:00 на Балтийском научно-инженерном конкурсе.
Приглашаю всех прийти, посмотреть и пообщаться с юными изобретателями. Ведь молодому программисту, который в первый раз в жизни что-то создал с нуля, ОЧЕНЬ важно услышать оценку своего труда от настоящих IT-специалистов.

ba43afa228de469aa7dab6ef4656aa2c.jpg

Я обещал рассказать историю одного школьного проекта


Однажды петербургский школьник по имени Саша задумался о том, что большую часть времени за компом он проводит исключительно в браузере. При этом стоящий внутри компа core i7, по сути, 80% времени простаивает без дела. А ведь таких, как он — сотни миллионов людей… Саша задумался: «А нельзя ли как-то использовать мощь моего компьютера для чего-то полезного?» Вскоре он узнал про «добровольные вычисления» и BOINC.

Как и полагается инженеру, Саша отметил недостатки существующих на рынке систем добровольных распределенных вычислений:

  1. Конечному пользователю нужно устанавливать дополнительное ПО на свой комп, что очень замедляет и ограничивает рост GRID сети.
  2. А условному ученому, которому для решения задачи требуются существенные мощности, нельзя так просто взять и «добавить в свой код распределенные вычисления в облаке». Нужно подстраиваться под жесткие правила и, по сути, писать отдельную программу.

Саша решил сделать систему распределенных вычислений, в которой эти проблемы решены. С одной стороны — сделать удобную java-библиотеку для распределенных вычислений, которую можно было бы легко подключить к коду своего приложения, написав пару строк кода. С другой стороны — сделать скрипт для сайта, который при вставке на страницу превращает «бесполезных» пользователей, просматривающих фото кошечек, в «полезных» пользователей, которые без вреда для скорости работы браузера незаметно помогают своими core i7 диагностировать рак или предсказывать погоду. Для того, чтобы построить такую систему, школьник за год изучил десятки новых технологий: от серверной Java до компиляции C++ кода в javascript и особенностей работы javascript в браузере.

Результатом стала работающая система. Можно посмотреть код сервера на Tomcat, подключаемой Java-библиотеки и тестового приложения, подбирающего пароль по хешу md5 в облаке с помощью библиотеки. Не обошлось и без экспериментов: опыты показали, что уже 13 браузеров с javascript обгоняют одно нативное C++ приложение (а если у пользователей Chrome, то браузерные вычисления по скорости обгоняют C++ уже на пяти браузерах).

Саша успешно успешно представил проект на Балтийском научно-инженерном конкурсе в Питере, занял 1-е место и выиграл поездку в Штаты на Intel ISEF. Там как раз и был представлен стенд из начала статьи:
Система распределенных вычислений на основе браузеров посетителей сайта
(кликните, чтобы увеличить картинку)
После поездки в Штаты Саша поступил в ИТМО и буквально с первого курса присоединился к команде серверной разработки одного из известных питерских стартапов, где в свободное от учёбы время помогает строить «новый Google/Facebook/SpaceX».

Это отнюдь не единственный успешный проект. На Балтийском конкурсе каждый год представляют более 150 проектов на совершенно разные темы, например:

  • Использование Android-телефона в качестве HID-мышки
  • Экономичный 3D сканер стоимостью 3000 рублей
  • Аналог RSA-криптосистемы в квадратичных Евклидовых кольцах
  • Использование билинейных преобразований для реализации алгоритмов «варпинга» и «морфинга» в реальном времени
  • Back-In-Time Debugger: отладчик под Linux с возможностью восстановления предыдущего состояния отлаживаемой программы

Почему поддерживать исследовательские IT-проекты школьников так важно?

Во-первых, участие в исследовательском проекте существенно помогает школьнику еще до поступления в ВУЗ очень хорошо понять «кем я буду когда вырасту?» Минимизируются риск поступить не в тот ВУЗ и потратить кучу времени не на то.

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

В-третьих, любые новые знания усваиваются в молодости с большей эффективностью.

Можно спросить:, а при чем тут исследовательские проекты? Есть же десятки других соревнований как для школьников, так и для студентов. Олимпиады по программированию мы выигрываем уже который год.
Важно понять ключевое отличие исследовательского проекта от олимпиады. В олимпиаде задача — как можно быстрее решить уже решенную до этого задачу. Исследовательский проект делается год и довольно часто решает задачу, которую до тебя никто еще не решал. Даже на таком базовом сравнении уже становится понятно, что исследовательский проект — это активность, которая гораздо более похожа на построение условного «next Google».

ОК, как я могу помочь?

1. Приходить лично на конкурсы для школьников и давать фидбек по IT-проектам


Повторю ровно то, с чего начал. Молодому программисту, который в первый раз в жизни с нуля что-то создал, ОЧЕНЬ важно услышать оценку своего труда от настоящих IT-специалистов. Ближайшая такая возможность предоставится в Питере 3-го февраля 2016 в 14:00 (регистрация).

2. Привлекать свои компании к участию в конкурсах для школьников


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

3. Раз в год инвестировать хотя бы 1000 руб. в поддержку конкурсов IT-проектов школьников


В Штатах крупнейший подобный конкурс Intel ISEF активнейшим образом спонсируется (сюрприз!) крупнейшими IT-компаниями.
У нас, к сожалению, пока не все так гладко. В 2014-м году, например, активность бизнес-спонсоров была довольно низкой, и конкурсу пришлось собирать средства через краудфандинг, чтобы мероприятие могло оставаться бесплатным для школьников. В этом году картина не сильно улучшилась: в связи с известным закрытием фонда «Династия», который поддерживал ранее Балтийский конкурс, конкурсу вновь требуется поддержка рядовых участников IT-сообщества, осознавших, в том числе, и свою ответственность за общее будущее. Здесь я скромно оставлю ссылку на краудфандинговую кампанию на сайте planeta.ru, на которой каждый может помочь устоять на ногах ближайшему конкурсу для школьников в Питере. (по ссылке средства собираются через фонд поддержки молодых ученых «Время науки», созданный организаторами Балтийского конкурса)

P.S.
Когда рассказываю знакомым про всю эту тему, очень часто слышу печальнейший комментарий: «Все равно потом эти школьники уедут из страны. Все бесполезно…».
Здесь нет никаких иллюзий: в современном мире талантливые специалисты нередко уезжают в те страны, в которых они могут максимально реализовать свой потенциал без лишних неоправданных рисков.
Однако я уверен, что лет через 10–15 в нашей стране многое изменится. Будет создана комфортная среда для создания и развития сотен «новых Google/Facebook/SpaceX». Когда это произойдет, я уверен, что даже те участники конкурса, которые решат уехать из России, в итоге вернутся сюда, чтобы строить такие глобальные лидирующие IT-компании.
Они обязательно вернутся, если будут помнить, как в свое время мы с вами поддержали их начинания на конкурсе. Поддержим?

© Habrahabr.ru