Валентин Домбровский: Ты ведешь 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)
Detrous
02.10.2018 20:35+2Григориев и правда много не бывает)
Молодцы, давно ждал что-нибудь подобного в русском комьюнитиeyeofhell
03.10.2018 07:17Спасибо! Во всей этой подкаст активности можно участвовать с любым уровнем вовлеченности. Например, делиться вопросами, которые стоит обсудить в следующих выпусках :)
glader
03.10.2018 08:24Вас не затруднит именовать файлы выпусков единообразно? Скачал все, чтобы послушать в дороге, пришлось переименовывать.
spasibo_kep Автор
03.10.2018 09:32Михаил, спасибо за подсказку — да, конечно
shpaker
03.10.2018 18:35В статье сильно не хватает ссылки на тунца/RSS, чтоб сразу подписаться
spasibo_kep Автор
03.10.2018 20:18Спасибо, добавил. Ну и на случай — чтоб вам не искать в статье, наша лента learnpython.podbean.com/feed.xml
Golovanoff
03.10.2018 10:10+1Знакомые всё лица :) С Бобуком в далеком начале 2000 сидели в IRCах, трындели про всякое, yum допиливали (вернее, он допиливал, а я трындел про всякое :)
VIkrom
03.10.2018 10:10Вот типа еще в школе заразить идеей, что программировать – это не просто заработок, а еще и дело всей жизни. Этого нет, этого не хватает. А потом уже поверх этого нужна система образования.
Снова это сектантство.
В программировании, как и большинстве профессий, можно быть профессионалом «с 9 до 18». Ну и да, тратить пару-тройку личных часов в неделю на знакомство с новыми технологиями, если текущий работодатель на это времени совсем не дает.eyeofhell
03.10.2018 10:23Про эти несколько часов и идет речь. С 9 до 18 без изучения нового не получится.
VIkrom
03.10.2018 10:28Согласитесь, есть разница между парой часов на выходных и делом всей жизни.
Причем, повторюсь, немало работодателей, которые одобряют «прокачку» разрабов на рабочем месте.eyeofhell
03.10.2018 10:29Есть такая штука, как «стиль речи». Фразы, до которы нельзя [вырезано цензурой] уместны в суде, но не в подкасте.
VIkrom
03.10.2018 10:36Да ладно, мысль, что «настоящие» программисты это красноглазики 24/7 в расшифровке явно обозначена ) Может быть так порезали для текста.
Программистом ты работаешь круглосуточно.
И я не спорю, что такие люди приносят много пользы индустрии. Но ставить это в один ряд с образованием и делать нормой для профессии не нужно.spasibo_kep Автор
03.10.2018 20:24Может быть так порезали для текста.
Смотрите, действительно убрал ответвление про древность, кузницы и ремесла, вот цитата целиком (она есть на видео). Я не думаю, что речь о красноглазиках, про о том, что дело должно переть и нравиться.
Григорий Бакунов: Очень плохо с образованием. Причем вот что важно, (все плохо) не с системой образования, а именно с образованием, в целом. Дело в том, что, давайте по-честному, программирование…
Честно, я делю всех программистов на 2 очень большие группы: есть люди, которые занимаются искусством, и, скорее всего, их учить – только портить. А есть огромный поток людей, который занимаются ремеслом. И не надо
считать, что это плохое слово (ремесло).
Валентин Домбровский: Хорошее слово.
Григорий Бакунов: Если вам хочется прям в древность ударится, как я обычно говорю, представьте себе человека, который режет наличники – это ремесло такое. Или человека, который кует – это ремесло такое. Оно классное.
Чтобы всем было понятно, полтора года своей жизни я занимался ковкой – я ковал. И, конечно, это просто классное ремесло. Так вот программированию можно научить. Другое дело, что в отличие от работы кузнеца – ты можешь работать кузнецом там с 10 до 18, а программистом ты работаешь круглосуточно. И мало научить этому, нужно этим заразить. И вот этого не хватает чудовищно.
Причем прямо не хватает в каких-то самых базовых основах. Вот типа
человек закончил школу или еще в школе, заразить его идеей, что программировать – это не просто заработок, а еще и дело всей жизни, этого нет, этого не хватает. А потом уже поверх этого нужна система образования, потому что люди…
Григорий Петров: Ну, окей. Мы с курсами делаем правильные вещи. Валентин, какой следующий вопрос?
hashtet
03.10.2018 11:39+1Извините, а можете немного пояснить про что речь? :)
Не вижу ничего зазорного, если у человека любимое занятие — программирование, и он хочет тратить на него свободное время, или речь про что-то другое?
Я в статье этот абзац понял так, что бы детей учили думать, что программирование это не что-то чем надо заставлять себя заниматься, а что-то что может быть в кайф.VIkrom
03.10.2018 12:01Вы правы — абсолютно ничего зазорного. Просто периодически пытаются толковать в обратную сторону — если программист не программирует в личное время, не держит своих проектов на гитхабе, т.е. не «дышит» программированием — значит он не слишком хороший программист. Что, на мой взгляд, не правильно.
JC_IIB
03.10.2018 12:59+1Что, на мой взгляд, не правильно.
Поддерживаю. Кроме кодинга, полно других интересов в жизни. Нет, пописать в охотку какой-нибудь кот в свободное время это хорошо, вопросов нет. Но «нет 100500 проектов на гитхабе = не программист» или «не долбишь каждую свободную минутку какой-нибудь новый зомг нодежс фреймворк = не программист» — это дискриминация.
TyVik
03.10.2018 22:24Забавно — рядом статья как Facebook на python3 переходил. https://habr.com/company/otus/blog/425233/
zesetup
04.10.2018 23:08У корпораций нет проблем с деплоем (Бобук). Зато у простых смертных с этим Python, Ruby, PHP полно проблем с деплоем. И Docker-образ надо правильно "сварить" для этих дел.
Потом все это еще обновлять с плясками.
После всего этого жутко нравиться Java, где есть только одна зависимость — JVM, и это прекрасно. Понятно, что системы часто еще требуют и БД, которые часто не-Java, но все же.
slonopotamus
Пришли такие программисты к сисадмину со словами "тут надо продакшен смигрировать, вот скрипт, будет довольно прикольно", а он им и говорит: [redacted]
shpaker
Пришли такие программисты к сисадмину, а его уже года три как не существует ))
slonopotamus
Не верю.
Может сейчас это модно называть другим словом, но обязанности никуда не делись: реагировать на сообщения от мониторинга, общаться с хостером, закупать железо, проверять бэкапы, мониторить сеекьюрити-обновления, заходить на сервера через IPMI, выдавать и отнимать доступы на продакшен, конфигать туннели на циске и, главное, с позицией "работает-не-трожь", направленной на стабильность системы, выступать противодействующей силой к программистам, которые всегда хотят всё отрефакторить и улучшить, только в процессе сломать что-нибудь.
Не, конечно, можно и без всего этого, только потом в интернетах появляются статьи типа " упс, амазон продевал все наши данные, а бэкапы мы не делали".