“Оказавшись перед Гвидо, что ты ему скажешь” или диалоги о Python с Бобуком

    В августе 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 Мб)

    Спасибо, что прочитали, послушали или посмотрели.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 23

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

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

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

          Не верю.


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


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

        +3
        Григориев и правда много не бывает)
        Молодцы, давно ждал что-нибудь подобного в русском комьюнити
          +1
          Спасибо! Во всей этой подкаст активности можно участвовать с любым уровнем вовлеченности. Например, делиться вопросами, которые стоит обсудить в следующих выпусках :)
          0
          Вас не затруднит именовать файлы выпусков единообразно? Скачал все, чтобы послушать в дороге, пришлось переименовывать.
            0

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

              0
              В статье сильно не хватает ссылки на тунца/RSS, чтоб сразу подписаться
                +1
                Спасибо, добавил. Ну и на случай — чтоб вам не искать в статье, наша лента learnpython.podbean.com/feed.xml
                  +1
                  Два лайка от нашего столика — статье и в профиль ;)
            +2
            Знакомые всё лица :) С Бобуком в далеком начале 2000 сидели в IRCах, трындели про всякое, yum допиливали (вернее, он допиливал, а я трындел про всякое :)
              0
              Вот типа еще в школе заразить идеей, что программировать – это не просто заработок, а еще и дело всей жизни. Этого нет, этого не хватает. А потом уже поверх этого нужна система образования.

              Снова это сектантство.
              В программировании, как и большинстве профессий, можно быть профессионалом «с 9 до 18». Ну и да, тратить пару-тройку личных часов в неделю на знакомство с новыми технологиями, если текущий работодатель на это времени совсем не дает.
                0
                Про эти несколько часов и идет речь. С 9 до 18 без изучения нового не получится.
                  0
                  Согласитесь, есть разница между парой часов на выходных и делом всей жизни.
                  Причем, повторюсь, немало работодателей, которые одобряют «прокачку» разрабов на рабочем месте.
                    0
                    Есть такая штука, как «стиль речи». Фразы, до которы нельзя [вырезано цензурой] уместны в суде, но не в подкасте.
                      0
                      Да ладно, мысль, что «настоящие» программисты это красноглазики 24/7 в расшифровке явно обозначена ) Может быть так порезали для текста.

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

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

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


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

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

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

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

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

                        Григорий Петров: Ну, окей. Мы с курсами делаем правильные вещи. Валентин, какой следующий вопрос?
                  +1
                  Извините, а можете немного пояснить про что речь? :)

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

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


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

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

                      0

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


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

                      Only users with full accounts can post comments. Log in, please.