В августе eyeofhell, voldar и их коллеги по сообществу MoscowPython начали записывать подкаст Python Junior. Это — расшифровка избранных моментов одного из выпусков.



Валентин Домбровский: Ты ведешь Telegram-канал addmeto. Говоришь про всякое прекрасное будущее, технологии и так далее. Какую роль Python будет играть в этом всем, на твой взгляд?

Григорий Бакунов aka bobuk: Очевидно, куда двигается все программирование. Мы чем дальше, тем ближе к Lego.

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

И поэтому Python сейчас так и рванул.


Григорий Бакунов: Для него есть огромное количество библиотек, чтобы быстро, из кусков скомпоновать нужную программу. Это и есть будущее программирования. Ничего нам не говорит, что это поменяется. Куча готовых научных библиотек, библиотек, связанных с искусственным интеллектом.

Например, все, что касается распознавания образов – то, что называется Pattern matching, вычленение похожих паттернов в большом наборе признаков. Это очень большая тема, которая сейчас выглядит в основном как Сomputer vision. Но поверьте, в следующие 3 года нейроинтерфейсы будут на этом же строиться, ну и так далее.

Или все, что связано с темой искусственного интеллекта. Оно не ограничивается темой нейронных сетей, но конкретно – нейронные сети это одна из тем, которую человечество «продалбывало» последние много десятилетий.

Если вы посмотрите сейчас на то, что происходит, на всю эту революцию, это революция, которую делают не математики в среднем.

Это очень важно: чтобы совершить новый прорыв в области ИИ, нужно обладать умением программировать и желанием экспериментировать, в первую очередь.

“Ты не можешь заниматься программированием, если ты искренно не хочешь именно это”


Григорий Бакунов: Я прямо убежден, что какое бы образование у тебя ни было, сколько бы сил в тебя ни вкладывали, если ты не хочешь чем-то заниматься – ты не будешь этим заниматься.

Григорий Петров aka eyeofhell: О, ключевое слово – образование. У меня есть холиварный вопрос, которые я могу задать только тебе.

Григорий Бакунов: Давай.

Григорий Петров: Смотри, уже у же много лет я занимаюсь образованием и какими-то курсами, стараюсь помогать разработчикам. И моя позиция заключается в том, что с образованием в программировании сейчас очень-очень плохо из-за того, что область новая, фундаментальные дисциплины мы для нее еще не сделали, и фундаментального образования нету.

Рынок собрал всех самоучек, вообще всех, а поток новых программистов очень-очень маленький. И университеты, в целом, программистов готовить не могут.

Потому что для того, чтобы готовить программиста, чтобы построить такой Хогвартс и начать выпускать волшебников, тебе нужен хотя бы 1 волшебник, который это умеет. А этот волшебник сейчас сидит в Яндексе тимлидом. И даже если не брать во внимание зарплату, то у него тупо есть социальная ответственность перед своей командой: «Ну, я же не брошу ребят, поэтому подождите лет 30, пока я на пенсию выйду».

Вот с твоей точки зрения, у нас действительно все так плохо с образованием? Или есть какие-то улучшения, и вообще мы уже можем готовить программистов, если можем?

Григорий Бакунов: Ты говоришь «у нас», имея в виду индустрию, в целом?

Григорий Петров: Индустрию, в целом.

Григорий Бакунов: Очень плохо с образованием. Причем вот что важно. Все плохо не с системой образования, а именно с образованием, в целом.

Программистом ты работаешь круглосуточно. И мало научить этому, нужно этим заразить. И вот этого не хватает чудовищно.

Причем прямо не хватает в каких-то самых базовых основах. Вот типа еще в школе заразить идеей, что программировать – это не просто заработок, а еще и дело всей жизни. Этого нет, этого не хватает. А потом уже поверх этого нужна система образования.

Про миграции на Python 3


Михаил Корнеев aka Voldar: Гриша, lifecycle Python 2.7 года через полтора заканчивается. На вас это как-то влияет? Или вы собираетесь сами как-то жить?

Григорий Бакунов: Во-первых, еще 2 года. Это во-первых. А во-вторых, вы же понимаете, что скорее всего, будет стабильная 2.8-я ветка, которую будет тащить кто-нибудь. Потому что количество legacy совершенно чудовищно.

Григорий Петров: Да, для этого есть хорошие кандидаты, всякие enterprise friendly.

Григорий Бакунов: Да.

Но на самом деле, я уверен, что все потихоньку мигрируют в сторону 3-его Питона или других языков.

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

Григорий Петров: Он долго держался.

Григорий Бакунов: Они, правда, по-прежнему говорят: «Мы запускаемся и под 2-ым, и под 3-м пайтоном». И это для них, наверное, правильный путь.

У нас в Яндексе есть несколько разных корпоративных, внутренних культур разработки.

В части 3-ий Python, на который начали переходить довольно активно. В части был только 2-ой. В центральной поисковой части, которая связана с порталами, со всем таким, в какой-то момент закрепилась политика о том, что пока только 2.7: поисковая история живет в прекрасной, но очень хитрой с точки зрения сборки, deployment и всего такого, среде.

Поэтом когда-то нужно было выбрать один Python. Естественно, выбрали тот, на котором огромное количество legacy, который прям сходу не переписать. И долгое время был только 2-ой Python. Но сейчас такой проблемы уже нет, поддерживается и 2-ой, и 3-ий, и я даже вижу довольно прикольный процесс миграции на 3-ий.

Про джунов


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

Григорий Петров: В какие стороны им стараться?

Григорий Бакунов: Прямо скажу, я не могу за весь Яндекс сказать. На мой взгляд, самое важное, как ни странно, — это не алгоритмы, не столько супер глубокое знание библиотек, и не столько умение хорошо программировать, сколько знание, как работает система контроля версий, как стоит взаимодействовать с другими людьми в процессе code review, понимание, что зачастую продокументировать кусок кода не менее важно, чем его написать и т.д.

Нужно научится пользоваться инструментарием в достаточно широкой мере. То есть, это же такие базовые вещи.

И как ни странно, среди джуниоров, которые приходят на стажировки или просто выходят на работу, тех, которые этим уже владеют – их практически нет.

Михаил Корнеев: Мы своих заставляем, объединяем их в команды, но это идет очень тяжело, потому что половина говорит: «Я не хочу в команде». А без команды,… Понимаешь, да? Они в одиночку чего-то с git-ом поработали…

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

“Оказавшись перед Гвидо, что ты ему скажешь?” (с)


Григорий Бакунов: В этот раз я хотел бы задать очень важный вопрос: “Ну вот и как это?”

Он ведь сделал вид, что он больше не у дел.

Но я знаю, что он глобально никуда не ушел. И мне очень интересно, как это. Вот он 20 лет был бессменным диктатором. И тут он как бы убрал руки. Что он чувствует сейчас? Как он заставляет себя не висеть постоянно в Bugzill-е? Что он делает? Он бьет себя по рукам? Как это происходит?

Валентин Домбровский: Это тебе для личного, так сказать, опыта?

Григорий Бакунов: Конечно. Это самое интересное, потому что его профессиональная деятельность, как у нас всех, хорошо видна в сети. Мы все видим, что он делает. Мы все видим его код. Мы все видим, как он работает с комьюнити. Об этой его части можно посудить по его делам. А вот как он умудряется держать себя в руках и не лезть в дела ребенка, которого растил 20 лет, – это большой вопрос.

Метод, как выбирать, куда развиваться


Григорий Бакунов: Либо вы выбираете широкую область и говорите: «Класс, я буду вкладываться в, например, умение работать с генетическими алгоритмами, потому что за ними тоже явно какое-то будущее, это явно недооцененная область».

Это такие широкие мазки. Либо ты говоришь: «Я буду развиваться как...» — и дальше называешь какую-то область. Например, как человек, который хорошо понимает highload.

Но на самом деле, что точно нужно делать, – это просто постоянно развиваться.

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

Михаил Корнеев: Когда собеседуем себе людей, я сейчас заметил (может быть, у меня выборка небольшая, но видно) следующее: люди, которые вроде джуны, сейчас пошли в data science, они просто для себя делают какие-то прикольные штуки.

Вот буквально из последних – один анализировал статистику по Counter Strike, другой распознавал комиксы про Dilbert-а: кто там босс и так далее.

Григорий Бакунов: Класс.

Михаил Корнеев: Видно, что он делает это для себя, по приколу. Это не какое-нибудь стандартное упражнение – давайте котиков от собачек отделять. А видно, что человек по фану для себя что-то делал.

Это очень круто: показатель того, что на этого человека как минимум стоит пристально посмотреть.

Валентин Домбровский: Да, это как раз то, о чем говорил Григорий: если тебя жжет, ты делаешь это для себя, по фану, у тебя есть мотивация этим заниматься, ты в этом развиваешься, и об этом мы говорим в будущем выпуске.

***

Только что вы домотали до конца расшифровку избранных моментов выпуска Python Junior с Григорием Бакуновым. Полная версия эпизода доступна в видео- и аудио-версиях:

UPD. RSS по просьбам прочитавших — learnpython.podbean.com/feed.xml



Скачать аудиоверсию подкаста (mp3, 55 Мб)

Спасибо, что прочитали, послушали или посмотрели.

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


  1. slonopotamus
    02.10.2018 20:27

    довольно прикольный процесс миграции на 3-ий

    Пришли такие программисты к сисадмину со словами "тут надо продакшен смигрировать, вот скрипт, будет довольно прикольно", а он им и говорит: [redacted]


    1. shpaker
      03.10.2018 18:34

      Пришли такие программисты к сисадмину, а его уже года три как не существует ))


      1. slonopotamus
        03.10.2018 19:53

        Не верю.


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


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


  1. Detrous
    02.10.2018 20:35
    +2

    Григориев и правда много не бывает)
    Молодцы, давно ждал что-нибудь подобного в русском комьюнити


    1. eyeofhell
      03.10.2018 07:17

      Спасибо! Во всей этой подкаст активности можно участвовать с любым уровнем вовлеченности. Например, делиться вопросами, которые стоит обсудить в следующих выпусках :)


  1. glader
    03.10.2018 08:24

    Вас не затруднит именовать файлы выпусков единообразно? Скачал все, чтобы послушать в дороге, пришлось переименовывать.


    1. spasibo_kep Автор
      03.10.2018 09:32

      Михаил, спасибо за подсказку — да, конечно


      1. shpaker
        03.10.2018 18:35

        В статье сильно не хватает ссылки на тунца/RSS, чтоб сразу подписаться


        1. spasibo_kep Автор
          03.10.2018 20:18

          Спасибо, добавил. Ну и на случай — чтоб вам не искать в статье, наша лента learnpython.podbean.com/feed.xml


          1. shpaker
            04.10.2018 15:30
            +1

            Два лайка от нашего столика — статье и в профиль ;)


  1. Golovanoff
    03.10.2018 10:10
    +1

    Знакомые всё лица :) С Бобуком в далеком начале 2000 сидели в IRCах, трындели про всякое, yum допиливали (вернее, он допиливал, а я трындел про всякое :)


  1. VIkrom
    03.10.2018 10:10

    Вот типа еще в школе заразить идеей, что программировать – это не просто заработок, а еще и дело всей жизни. Этого нет, этого не хватает. А потом уже поверх этого нужна система образования.

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


    1. eyeofhell
      03.10.2018 10:23

      Про эти несколько часов и идет речь. С 9 до 18 без изучения нового не получится.


      1. VIkrom
        03.10.2018 10:28

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


        1. eyeofhell
          03.10.2018 10:29

          Есть такая штука, как «стиль речи». Фразы, до которы нельзя [вырезано цензурой] уместны в суде, но не в подкасте.


          1. VIkrom
            03.10.2018 10:36

            Да ладно, мысль, что «настоящие» программисты это красноглазики 24/7 в расшифровке явно обозначена ) Может быть так порезали для текста.

            Программистом ты работаешь круглосуточно.

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


            1. spasibo_kep Автор
              03.10.2018 20:24

              Может быть так порезали для текста.

              Смотрите, действительно убрал ответвление про древность, кузницы и ремесла, вот цитата целиком (она есть на видео). Я не думаю, что речь о красноглазиках, про о том, что дело должно переть и нравиться.


              Григорий Бакунов: Очень плохо с образованием. Причем вот что важно, (все плохо) не с системой образования, а именно с образованием, в целом. Дело в том, что, давайте по-честному, программирование…

              Честно, я делю всех программистов на 2 очень большие группы: есть люди, которые занимаются искусством, и, скорее всего, их учить – только портить. А есть огромный поток людей, который занимаются ремеслом. И не надо
              считать, что это плохое слово (ремесло).

              Валентин Домбровский: Хорошее слово.

              Григорий Бакунов: Если вам хочется прям в древность ударится, как я обычно говорю, представьте себе человека, который режет наличники – это ремесло такое. Или человека, который кует – это ремесло такое. Оно классное.
              Чтобы всем было понятно, полтора года своей жизни я занимался ковкой – я ковал. И, конечно, это просто классное ремесло. Так вот программированию можно научить. Другое дело, что в отличие от работы кузнеца – ты можешь работать кузнецом там с 10 до 18, а программистом ты работаешь круглосуточно. И мало научить этому, нужно этим заразить. И вот этого не хватает чудовищно.

              Причем прямо не хватает в каких-то самых базовых основах. Вот типа
              человек закончил школу или еще в школе, заразить его идеей, что программировать – это не просто заработок, а еще и дело всей жизни, этого нет, этого не хватает. А потом уже поверх этого нужна система образования, потому что люди…

              Григорий Петров: Ну, окей. Мы с курсами делаем правильные вещи. Валентин, какой следующий вопрос?


    1. hashtet
      03.10.2018 11:39
      +1

      Извините, а можете немного пояснить про что речь? :)

      Не вижу ничего зазорного, если у человека любимое занятие — программирование, и он хочет тратить на него свободное время, или речь про что-то другое?

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


      1. VIkrom
        03.10.2018 12:01

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


        1. JC_IIB
          03.10.2018 12:59
          +1

          Что, на мой взгляд, не правильно.


          Поддерживаю. Кроме кодинга, полно других интересов в жизни. Нет, пописать в охотку какой-нибудь кот в свободное время это хорошо, вопросов нет. Но «нет 100500 проектов на гитхабе = не программист» или «не долбишь каждую свободную минутку какой-нибудь новый зомг нодежс фреймворк = не программист» — это дискриминация.


  1. VIkrom
    03.10.2018 12:00

    Промахнулся веткой.


  1. TyVik
    03.10.2018 22:24

    Забавно — рядом статья как Facebook на python3 переходил. https://habr.com/company/otus/blog/425233/


  1. zesetup
    04.10.2018 23:08

    У корпораций нет проблем с деплоем (Бобук). Зато у простых смертных с этим Python, Ruby, PHP полно проблем с деплоем. И Docker-образ надо правильно "сварить" для этих дел.
    Потом все это еще обновлять с плясками.


    После всего этого жутко нравиться Java, где есть только одна зависимость — JVM, и это прекрасно. Понятно, что системы часто еще требуют и БД, которые часто не-Java, но все же.