“Опинившись перед Гвідо, що ти йому скажеш” або діалоги про Python Бобуком

У серпні eyeofhell, voldar і їх колеги по співтовариству MoscowPython почали записувати подкаст Python Junior. Це — розшифровка вибраних моментів одного з випусків.

Валентин Домбровський: Ти ведеш Telegram-канал addmeto. Говориш про всяке прекрасне майбутнє, технології і так далі. Яку роль Python буде грати в цьому всьому, на твій погляд?

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

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

Григорій Бакунов: Для нього є величезна кількість бібліотек, щоб швидко, з шматків скомпонувати потрібну програму. Це і є майбутнє програмування. Нічого нам не говорить, що це зміниться. Купа готових наукових бібліотек, бібліотек, пов’язаних з штучним інтелектом.

Наприклад, все, що стосується розпізнавання образів – те, що називається Pattern matching, вичленення схожих патернів у великому наборі ознак. Це дуже велика тема, яка зараз виглядає в основному як Computer 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 і всього такого, середовищі.

Читайте також  Застосування методології OWASP Mobile TOP 10 для тестування Android додатків

Поетом коли потрібно було вибрати один Python. Природно, вибрали той, на якому величезна кількість legacy, який прям одразу не переписати. І довгий час був лише 2-ой Python. Але зараз такої проблеми вже немає, підтримується і 2-ий і 3-ий, і я навіть бачу досить прикольний процес міграції на 3-ій.

Про джунов

Михайло Корнєєв: Просто нас завжди про це запитують. Що вміти, знати. Це питання, на який, напевно, складно відповісти добре, тому що відповідь буде, напевно, дуже загальний. Може в тебе вийде?

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

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

Потрібно навчиться користуватися інструментарієм в досить широкій мірі. Тобто, це ж такі базові речі.
І як не дивно, серед джуніорів, які приходять на стажування або просто виходять на роботу, тих, які цим вже володіють – їх практично немає.

Михайло Корнєєв: Ми своїх змушуємо, об’єднуємо їх в команди, але це йде дуже важко, тому що половина каже: «Я не хочу в команді». А без команди,… Розумієш, так? Вони поодинці чогось з git-му попрацювали…

Григорій Бакунов: Це популярна історія про те, що працювати поодинці завжди швидше і здається, що якісніше. Але як тільки тобі потрібно опрацювати півроку, ти розумієш, навіщо збираються колективи.

“Опинившись перед Гвідо, що ти йому скажеш?” (с)

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

Адже він зробив вигляд, що він більше не у справ.
Але я знаю, що він глобально нікуди не пішов. І мені дуже цікаво, як це. Ось він 20 років був беззмінним диктатором. І тут він як би прибрав руки. Що він відчуває зараз? Як він примушує себе не висіти постійно в Bugzill-е? Що він робить? Він б’є себе по руках? Як це відбувається?

Читайте також  Як скинути фотографії з комп'ютера на Айфон

Валентин Домбровський: Це тобі для особистого, так би мовити, досвіду?

Григорій Бакунов: Звичайно. Це найцікавіше, тому що його професійна діяльність, як у нас всіх, добре видно в мережі. Ми всі бачимо, що він робить. Ми всі бачимо його код. Ми всі бачимо, як він працює з ком’юніті. Про цієї його частини можна поміркувати по його справах. А ось як він примудряється тримати себе в руках і не лізти в справи дитини, якого виростив 20 років, – це велике питання.

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

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

Це такі широкі мазки. Або ти говориш: «Я буду розвиватися як…» — і далі називаєш якусь область. Наприклад, як людина, яка добре розуміє highload.

Але насправді, що точно потрібно робити, – це просто постійно розвиватися.
І тоді область, в якій вам потрібно розвиватися, випливе сама собою. Треба займатися областю, яка тебе природно пече. От якщо тебе пече, треба туди йти, навіть якщо ти в цей момент йдеш проти течії. Такі справи.

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

Ось буквально з останніх – один аналізував статистику по Counter Strike, інший розпізнавав комікси про Dilbert-а: хто там бос і так далі.

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

Михайло Корнєєв: Видно, що він робить це для себе, по приколу. Це не якесь стандартне вправу – давайте котиків від собачок відокремлювати. А видно, що людина по фану для себе щось робив.

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

***

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

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *