Решение дополнить JPoint 2016 «молодёжным» днём (с возрастным ограничением в 25 лет) могло вызывать вопрос «зачем вообще это нужно». То, что основная «взрослая» часть прошла с размахом, неудивительно: на ней специалисты рассказывают о нюансах, которые не нагуглишь за три минуты. Но начинающих разработчиков, до этих нюансов ещё не дошедших, интересуют куда более базовые вещи, многие из которых были уже тысячу раз описаны. Зачем вообще тогда мероприятие, если можно дома пользоваться Stack Overflow? Что оно откроет людям, которые и так получают профильное образование? И что может дать один день тем, кому требуются ещё многие месяцы практики? Под катом — подробный рассказ о том, как прошёл Student Day, отвечающий на эти вопросы.





На Student Day собралось около 300 зрителей — куда меньше, чем 1000 на «основной» части JPoint, но цель «переплюнуть взрослых» и не ставилась. То, что на этом мероприятии новички, обнаруживало себя даже в деталях: на «большой» конференции, стоит утром распахнуться дверям главного зала, как толпа устремляется смотреть открытие, но ещё не привыкшие к таким мероприятиям посетители продолжали общаться в фойе с роботом Федей.



В ходе открытия программный директор Андрей real_ales Дмитриев сам поставил вопрос «зачем вообще нужно это мероприятие». Как он прямо признал, оно не сделает из собравшихся за один день продвинутых специалистов, за которыми гоняются работодатели. Но намерения впихнуть в зрителя за день миллион конкретных фактов и не было. Вместо этого Student Day призван работать на более общем уровне и помочь пришедшим лучше понять, в каких направлениях им стоит развиваться: разбираясь только с конкретными примерами кода, легко упустить важное в общей картине.



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

Следом по вступительной части «Недостающее звено в обучении программиста», проведённой совместными силами Баруха Садогурского (JFrog), Романа Елизарова (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, не подходит для бездумного копипейста: тут, чтобы извлечь пользу, надо начинать думать самостоятельно и делать собственные выводы.

А в программировании это очень нужное качество — и если конференция помогла кому-то задуматься, это более важный результат, чем если бы она завалила всех с головой конкретными пошаговыми инструкциями.

Поделиться с друзьями
-->

Комментарии (19)


  1. lany
    25.05.2016 19:32

    А где-то можно увидеть видеоролик, который Роман Елизаров показывал на открытии? Где был перекрёсток с машинами.


    1. phillennium
      25.05.2016 21:46

      Попробую уточнить)



  1. 3dcryx
    25.05.2016 21:47
    +1

    Не считаю, что на «взрослой» версии прямо уж информация недоступная для понимая студентам. Она может быть несколько сложной для совсем новичков, не более. Например, Александ Маторин вел курс по JAVA в прошлом семестре в универе. На каждой лекции было как на порядочном таком докладе «взрослой» ее версии.


  1. baratynskiy
    25.05.2016 22:12

    Глухих, все-таки, Михаил, а не Дмитрий.


    1. phillennium
      25.05.2016 22:14

      Упс, да, конечно. Кажется, я сбился из-за того, что на «взрослой» части конференции про Kotlin рассказывал Дмитрий Жемеров :) Исправлено, спасибо.


  1. andybelo
    26.05.2016 12:23
    -3

    "… если можно дома пользоваться Stack Overflow" — Там можно найти ответы только на те вопросы, которые пропустят модераторы, то есть никакие. Например, пытался найти ответ на вопрос, почему разработчики ограничиваются 64 разрядами в процессорах, то есть «целыми числами и вещественными»? Там сказали, что вопрос не по теме сайта, Елизаров тоже отморозился. Вот на конфе ему пришлось бы отвечать, что бы не опозорится.


    1. 23derevo
      26.05.2016 12:31
      +1

      64 разрядами в процессорах, то есть «целыми числами и вещественными»

      как битность связана с «целостью» и «вещественностью»?


      1. andybelo
        26.05.2016 17:46
        -1

        64 разряда достаточно для любых «бухгалтерских» расчётов с целыми и вещественными числами. НО вот для расшифровки закодированного х86 медленный будет


        1. 23derevo
          26.05.2016 22:02
          +2

          во, нашел комментарий :)

          Длинные регистры, насколько я понимаю, просто дорого делать.

          ну а когда очень надо — для шифрования есть специальные блоки в процессорах, они аппаратно шифруют без интов и лонгов. Рантаймы для этого используют интринсики. А для арифметики есть SIMD.


          1. andybelo
            27.05.2016 07:18
            -1

            Уважаемый Алексей, а как решать задачу лягушки, то есть поймать муху языком? Моя мечта — робот, который отловит всех тараканов. Для этого надо быстро-быстро найти муху. И DSP для этого не подходит. Например, для этого надо как можно быстрее найти максимум в кадре, или движение мухи в кадре, быстрее чем за один такт не выйдет. Вот я и спросил Елизарова, какой алгоритм сойдёт для этого. Насколько помню, он ответил что нужен спецпроцессор. А я и говорю, что это и будет CPU, а нынешние CPU всего лишь арифмометры. Теперь о длине регистров. Вот как раз для того, что бы за такт найти максимум в массиве кадра и нужны регистры длиной в кадр. Однако организованы разряды должны быть не в линию, а в прямоугольник. Вобщем для этого нужна статья, которую прочтут разработчики, которые недоступны.


            1. 23derevo
              27.05.2016 08:14
              +1

              Для задач типа «про максимум в массиве кадра» можно использовать FPGA. Но еще надо думать о том, где этот массив хранится и кто его будет загружать на регистр.


              1. andybelo
                27.05.2016 09:10
                -1

                Я так понял, что студентам не надо конференцию по процессорам, пишите ребята на джаве и не рыпайтесь, не вашего ума дело. Вы пытаетесь на ходу решить теоретические вопросы, ну это наивно. Очевидно же, что разделение, что решается на железе, а что программно, вопрос открытый. Ещё стало очевидно, что многоядерность — тупик, за 16 лет 21 века это уже даже я знаю. Поиски замены кремния чем то иным, то же провалились. Не выходит цветок. Да, FPGA-FPGA, это просто поиск, а не решение.
                Так всё таки, почему разработчики упёрлись в 64 разряда? Конкретика нужна. Обычно люди просто говорят, мол это никому не нужно. Но ведь у лягушки приблизительно 10 Мп в глазах. Если посчитать, сколько будет длится ловля мухи при архитектуре х86, так муха то улетит. Очевидно же, что мозг не 64 разрядная машина, а гораздо больше. Увеличив разрядность в два раза, можно уменьшить частоту работы процессора в теже два раза, без потери производительности. А такие вопросы FPGA не решит.


                1. 23derevo
                  27.05.2016 09:57
                  +1

                  Я думаю, что те, кто говорит, что «это никому не нужно» — не очень далеки от истины. Есть спрос, есть предложение, есть монополии гигантов типа Intel, есть рынок, есть проблема с портированием кучи всего написанного на новые платформы.

                  Что касается размеров байта — тут тоже присутствует некоторая фикция, потому что в реальности физического байта практически нет. Есть кэш-линия, которая в современных мэйнстримовых процах — не менее 64 байт, то есть, размером с SIMD-регистр. Получается такое эффективное 64-байтовое целое, если хотите :)

                  При этом софтверно особых ограничений нет. Например, насколько я помню, LLVM умеет работать с целыми любой битности.

                  По поводу конференции по процессорам и железу — я очень хочу такую сделать, честно. Мне очень нравится изучать, как все это работает.


                  1. andybelo
                    27.05.2016 10:44
                    -1

                    «есть проблема с портированием кучи всего написанного на новые платформы.» — Вот именно, поэтому у Intel, а следовательно и у всех программистов x86 приближается время Ч, когда почти вся эта куча пойдёт на мусор. Это уже проходили, но не надо преувеличивать. Автоматическая перекомпиляция значительно упростит этот переход. Например Гугл-диск резко сузил область применения HTML:) Прогресс вам не остановить. Ford T победит коня с телегой. По поводу конференции могу только статью написать. Я ж всего навсего пенсионер.


    1. andybelo
      02.06.2016 13:24
      -1

      Да ладно, ладно, теперь буду хвалить и Stack Overflow и Елизарова, только карму не валите.


  1. XaveScor
    26.05.2016 20:12

    А можно будет получить видео, которое было открытии конфы? Уж очень оно захватывает.


    1. 23derevo
      27.05.2016 09:58

      Да, конечно


  1. pjBooms
    27.05.2016 21:06
    +3

    Сотрудник Oracle, непосредственно работающий над JVM — уже куда более впечатляюще, чем человек со стороны. А здесь компанию ему ещё и составлял один из инициаторов альтернативной имплементации Java SE.


    В общем-то одна из идей доклада было донести до слушателей, что JVM!=HotSpot. По этому фраза выше не совсем корректна: мы с Владимиром оба непосредственно работаем над JVM, но над разными :).