Pull to refresh

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

Reading time6 min
Views15K
В августе @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 Мб)

Спасибо, что прочитали, послушали или посмотрели.
Tags:
Hubs:
Total votes 35: ↑30 and ↓5+25
Comments23

Articles