JPoint Student Day: зачем конференции «студенческий день»?
Решение дополнить JPoint 2016 «молодёжным» днём (с возрастным ограничением в 25 лет) могло вызывать вопрос «зачем вообще это нужно». То, что основная «взрослая» часть прошла с размахом, неудивительно: на ней специалисты рассказывают о нюансах, которые не нагуглишь за три минуты. Но начинающих разработчиков, до этих нюансов ещё не дошедших, интересуют куда более базовые вещи, многие из которых были уже тысячу раз описаны. Зачем вообще тогда мероприятие, если можно дома пользоваться Stack Overflow? Что оно откроет людям, которые и так получают профильное образование? И что может дать один день тем, кому требуются ещё многие месяцы практики? Под катом — подробный рассказ о том, как прошёл Student Day, отвечающий на эти вопросы.
На Student Day собралось около 300 зрителей — куда меньше, чем 1000 на «основной» части JPoint, но цель «переплюнуть взрослых» и не ставилась. То, что на этом мероприятии новички, обнаруживало себя даже в деталях: на «большой» конференции, стоит утром распахнуться дверям главного зала, как толпа устремляется смотреть открытие, но ещё не привыкшие к таким мероприятиям посетители продолжали общаться в фойе с роботом Федей.
В ходе открытия программный директор Андрей real_ales Дмитриев сам поставил вопрос «зачем вообще нужно это мероприятие». Как он прямо признал, оно не сделает из собравшихся за один день продвинутых специалистов, за которыми гоняются работодатели. Но намерения впихнуть в зрителя за день миллион конкретных фактов и не было. Вместо этого Student Day призван работать на более общем уровне и помочь пришедшим лучше понять, в каких направлениях им стоит развиваться: разбираясь только с конкретными примерами кода, легко упустить важное в общей картине.
На сцену во время открытия поднимались и спонсоры, и они в данном случае особенно важны. Для амбициозных новичков, ещё не успевших зарекомендовать себя, очень актуален вопрос трудоустройства. А спонсировавшие конференцию «Одноклассники» и «Сбербанк-Технологии» ищут не только матёрых бойцов, но и готовы воспитывать специалистов, начиная от джуниоров. В итоге конференция давала двум сторонам возможность познакомиться.
Следом по вступительной части «Недостающее звено в обучении программиста», проведённой совместными силами Баруха Садогурского (JFrog), Евгения Борисова (Naya Technologies), Романа Елизарова (DevExperts) и Олега Анастасьева (Одноклассники), можно было понять, почему профильное образование, вроде как призванное дать ответы на все «общие» вопросы, недостаточно хорошо справляется со своей задачей. Академический подход не вполне отражает потребности реального мира — и, например, в случае с многопоточным программированием, по мнению Елизарова, попросту упускает часть важных вещей.
Поэтому после вступления, когда все разошлись по разным трекам, в главном зале тот же Елизаров перешёл к докладу о многопоточности, чтобы исправить ситуацию. Тем временем во втором зале Егор Бугаенко (Teamed.io) воспользовался тем, что зрители собрались ещё до начала доклада, чтобы расспросить их и узнать побольше о племени младом, незнакомом. Для него это было тем интереснее, что он основную часть жизни проводит в Пало Альто. Ему было любопытно, например, на каком языке аудитория предпочитает читать о программировании (появилось ли поколение российских разработчиков, которые с английским чувствуют себя лучше русского?) — зрители отвечали «на каком придётся», не отдавая предпочтение ни одному из двух. Обратил он внимание и на то, что в аудитории доля женщин была выше, чем на «взрослой» JPoint — похоже, гендерный перекос в программировании постепенно выравнивается.
После вопроса зрителям о том, где они хотят находиться через десять лет, выяснилось, что большинство хотело бы покинуть Россию. Однако главная причина оказалась не финансовой или политической: собравшиеся критиковали «бардак в российских компаниях» и говорили о желании работать там, где культура программирования на высоте. И тут их ждал сюрприз: Бугаенко сказал, что по его опыту, на Западе ситуация как раз печальнее, потому что там «программист» уже стало из чего-то манящего рядовой профессией, и вместо энтузиастов, стремящихся достичь совершенства, в индустрию хлынули люди, желающие просто отработать зарплату. С его позицией наверняка кто-то поспорил бы, но начинающим разработчикам в любом случае полезно узнать такую точку зрения от человека из Долины — для кого-то это может сказаться на важнейшем жизненном выборе.
Затем спикер перешёл непосредственно к своему докладу «Объектно-ориентированное враньё» — и в нём тоже принялся решительно рвать собравшимся шаблоны. Он с порога заявил, что зачастую человечество совершенно неправильно подходит к Java, вроде бы используя объектно-ориентированный язык, но не научившись объектно мыслить, и в итоге уничтожая то, чем ООП хорошо. Его доклад переходил от отвлечённых философских категорий («если мы представляем объект как живое существо, то мы должны доверять ему и не должны его предавать») к конкретному перечислению тому, что не надо использовать: «геттеры разрушают идею инкапсуляции, а Spring и Hibernate написаны с неправильным подходом».
Доклад смело можно назвать спорным и холиворным. Как сам Бугаенко признал, накануне на «взрослой» конференции его доклад, в котором также критиковалось использование Hibernate, вызвал много возражений от специалистов. В книге Дэвида Уэста «Object Thinking», во многом вдохновившей его, автор тоже прямо во вступлении признаётся, что текст получился «controversial». Поэтому с позицией Бугаенко легко можно не соглашаться. Но в любом случае полезно узнать, что она существует, осмыслить её и тогда уже возражать —, а не просто слепо использовать те же технологии, что и окружающие, не задумываясь о них глубоко. И задаться такими вопросами лучше поможет один подобный доклад, чем множество текстов о конкретных практических вопросах.
Следом в главном зале Владимир Иванов (Oracle) и Никита Липский (Excelsior) совместно разбирали, что находится внутри JVM. Безусловно, эту тему можно и просто гуглить, но здесь ситуацию делал уникальной набор спикеров. Сотрудник Oracle, непосредственно работающий над JVM — уже куда более впечатляюще, чем человек со стороны. А здесь компанию ему ещё и составлял один из инициаторов альтернативной имплементации Java SE. Кому, как не им вместе, знать тему лучше всех?
Барух Садогурский и Кирилл Толкачёв устроили «студенческую» версию баттла инструментов для сборки: идея была аналогична тому, что прошло ранее на основной конференции, но инструментов было меньше (Maven и Gradle, без SBT), а ликбеза для малознакомых с темой — больше. Одновременно с этим Антон Архипов в другом зале лез в байткод, и это показательный момент для конференции. Теоретически можно писать на Java, вообще ничего не зная о байткоде, и если изучать язык по пособиям вида «стань великим программистом за 24 часа», так и получится. Но осознавать, что именно происходит «под капотом», полезно, и конференция позволила собравшимся бегло туда заглянуть. За один доклад, разумеется, невозможно понять о байткоде всё, зато этого вполне достаточно, чтобы открыть новую важную для себя тему и дальше изучать её уже самостоятельно.
Доклад Александра Маторина «Неадекватное Java-интервью» отчасти напоминал «Java 8 puzzlers» с «взрослой» части конференции: здесь тоже необходимо было решать, какой из вариантов правильный в той или иной ситуации. Но у Маторина вместо простого метода «поднимите руки» был использован веб-интерфейс: собравшиеся выбирали вариант на ноутбуках и смартфонах, после чего на экране выводилась статистика распределения голосом между вариантами. Это не только информативно, но и должно хорошо подходить психологически для начинающих разработчиков, смущающихся пробелов в своих знаниях: если не тянешь руку, а нажимаешь кнопку, никто не увидит, что ты ответил неправильно.
Затем Дмитрий Глухих (JetBrains) рассказывал про Kotlin. Доклад о нём был и на «взрослой» конференции, но здесь получалось особенно актуально: молодые разработчики слушали про молодой язык. Возможно, среди них найдётся кто-то, пока что писавший только «для себя», у кого самый первый профессиональный проект окажется сразу на Kotlin?
Наконец, в последнем слоте Александр Круглов (T-Systems) рассказывал про работу с базами данных. Речь заходила об использовании Hibernate, и возникал резкий контраст с докладом Егора Бугаенко, критикующего использование Hibernate.
То есть два доклада конференции чуть ли не спорили друг с другом. А это значит, что Student Day, в отличие от Stack Overflow, не подходит для бездумного копипейста: тут, чтобы извлечь пользу, надо начинать думать самостоятельно и делать собственные выводы.
А в программировании это очень нужное качество — и если конференция помогла кому-то задуматься, это более важный результат, чем если бы она завалила всех с головой конкретными пошаговыми инструкциями.