May 17, 2020
Интервью с Python-программистом
Привет, ребят! Python это пожалуй самый активно развивающийся и "хайпующий" язык программирования последних лет. Поэтому я решил взять интервью у опытного Python девелопера.
- Привет Максим, расскажи кто ты и чем занимаешься?
- Меня зовут Максим Кольцов, мне 31. Я из Нижнего Новгорода, 5 лет живу в Москве. Работаю в основном над своими проектами, но иногда беру заказы на фриланс биржах. Занимаюсь разработкой игр и мобильных приложений, включая их бэкенд. Для души веду PyWay – образовательный канал про Python в Телеграм.
- Как ты пришел к программированию? Чем оно тебя зацепило?
- Я из семьи инженеров. Мой отец занимался электроникой и программированием, чем в последствии заразил и меня. Уже в садике я рисовал на песке схемы по памяти. А с первого класса мы с папой паяли и налаживали устройства.Родители подарили мне первый компьютер в 1998 году, папа почти сразу принес дискету с QBasic, а в домашней библиотеке нашлись книги по Ассемблеру и Бэйсику 80-х годов. Учился в основном самостоятельно. А когда вырос, понял и философский аспект: когда пишешь программу или собираешь схему – вдыхаешь в жизнь в набор безжизненных компонент подобно творцу. Это очень вдохновляет.
- Ты заканчивал высшее учебное заведение? На какую специальность?
- Закончил ННГУ, на специальность радиофизика. Диплом был по лазерам. Затем учился 3 года в аспирантуре в Политехническом, исследовал распространение волн в геометрически-сложных системах.
- То есть твоя специальность не связана с тем, чем ты занимаешься на данный момент?
- Нет, не связана. Но опыт, полученный во время учебы, и математический аппарат мне сейчас очень помогают.
- На сколько важен диплом в жизни программиста?
- Говорят, что важен при приеме на работу. Но меня о дипломе особо никогда не спрашивали, разве что как формальность при оформлении. Я считаю, если человек может доказать свои способности иным способом: показав знания, навыки или готовые проекты – это значительно весомее, чем корочки. Государственные компании, конечно, могут потребовать диплом, но если ты создаешь свой проект или стартап, то в корочке не будет никакой необходимости.
- Расскажи о Python, что можно на нем писать?
- На Python можно писать практически все, что угодно. Энтузиасты портировали его даже на микроконтроллеры. Конечно, низкоуровневые вещи на Python не очень хорошо получаются из-за его динамической природы (большие накладные расходы по производительности и памяти). Python отлично подойдет для бэкенда, машинного обучения и искусственного интеллекта, научных расчетов, а также для написания вспомогательных скриптов. Я считаю, что Python – отличный выбор для начала обучения программированию.
- Почему ты выбрал Python? Писал ли ты на других языках?
- Да, за свою жизнь испробовал десятка два языков, из которых около 5 использую по сей день. C Python познакомился году в 2012, когда увидел его на экране у одного из коллег. Сперва код показался мне отталкивающим и малопонятным из-за отсутствия скобок. Слухи о низкой производительности тоже внесли свою лепту. Однако, спустя пару лет я заинтересовался нейронными сетями в рамках одного из моих мобильных проектов, и понял, что это царство Python. На удивление знакомство с языком пошло гладко и быстро. Конструкции на Python читаются словно предложения на английском, и вскоре взгляд перестает искать скобки. Программы на Python пишутся очень легко и непринужденно. Обширная библиотека модулей всегда под рукой. Скорый результат подстегивает мотивацию работать дальше. Вот так через негатив я пришел к любви.
- Перечисли топ 5 библиотек для питона, которые ты используешь.
- Tensorflow, Keras, NumPy и MatPlotLib посчитаем за одну. Это отличный набор для машинного обучения.
OpenCV-Python – обработка изображений и алгоритмы компьютерного зрения.
TQDM – не знаю, как бы я жил без этой полоски прогресса.
Flask – когда нужно быстро организовать web-сервер.
Pygame – для несложных игрушек и развлечений. - Если не Python, на чем бы писал код?
- В свое время приглянулся Erlang, но у меня с ним ничего не вышло. Нравится язык Go, но некоторые простые привычные вещи на нем достигаются сложными путями. Гипотетически я бы мог заняться еще Ruby, по мне это брат-близнец Python. До плотного знакомства с Python я их даже путал.
- Что ты думаешь о будущем Python? Сколько еще времени он будет на хайпе?
- Python занял свое прочное место в мировом IT. Когда хайп кончится, он так и останется надежным проверенным инструментом с большой кодовой базой. Еще очень долго будут нужны специалисты по Python, и я вижу его будущее светлым. Конечно, на сцену будут выходить новые конкуренты, привнося свежие возможности и улучшения. Например, язык Julia последнее время начал стремительно расти. Но не стоит бояться, что освоение Python станет зря потраченным временем, потому что кончился хайп.
- Понятно, а как ты относишься к чтению технической литературы?
- Положительно, люблю читать. Если начинаю изучать что-то с нуля, всегда стараюсь купить именно бумажную книгу. Однако, тут есть одна ловушка: когда ты новичок в вопросе, ты не в состоянии оценить качество материала. Сейчас много авторов, все хотят написать книгу или создать курс, не у всех получается хорошо. Часто учат плохому или спустя рукава. Поэтому я делаю больший упор на статьи в интернете, где можно найти самые актуальные сведения по конкретным вопросам. Книга же не может охватить все ответы и не может сама по себе обновиться. Кроме того под статьей в комментариях опытные разработчики по полочкам разложат, если автор ошибся в вопросе или допустил неточность. А еще я люблю читать код, просто открывать хорошие проекты на GitHub и читать их как книгу. Для меня примеры – лучшая литература.
- Можешь посоветовать какие-то книги?
«Совершенный код. Мастер-класс», Стив Макконнелл – нужно всем.
Книги Таненбаума «Архитектура компьютера», «Компьютерные сети», «Современные операционные системы» – чтобы шарить, как вообще работают компьютерные системы.
«Мифический человеко-месяц», Фредерик Брукс – для тех, кто делает серьезные вещи в команде.
«Искусство программирования», Дональд Кнут – классика алгоритмов.
Эти книги содержат фундаментальные знания, которые не испортятся через пару месяцев.
А вот по Python книг советовать не буду, сам не прочитал ни одной. Все по примерам, статьям и документации. Единственное: посоветую в книгах сверяться с версией Python. Python 2 уже совсем не актуален. - Если я не ошибаюсь, то ветвь развития Python 2 окончательно «умерла», как ты к этому относишься?
- Да, поддержка официально прекращена. Где-то остался старый код, и его нужно еще держать наплаву. Весь новый код рекомендовано писать на Python 3. В свое время этот разрыв версий вносил большую путаницу. Представляешь реакцию новичка, у которого "Привет, мир!" из книги не запускается из-за недостающих скобок у print. Какое разочарование! Я рад, что это время закончилось.
- Факт того что python 2 и python 3 развивались одновременно. Напоминает ситуацию с .Net Core и .Net Framework :D
Насколько джунам в питоне сложно? - Порог входа в Python низкий, но не значит, что будет совсем легко. Скорее всего, будущий работодатель потребует знание фреймворков, одним синтаксисом тут не отделаешься. У тех, кто думает: "Выучу быстренько, что полегче, чтобы зашибать серьезные деньги". Вряд ли сработает этот план. Главное – огонь в глазах и желание развиваться. Очень хорошо, если джуниор создаст свой проект, пускай это будет даже копия, но своя и работающая.
- Расскажи почему ты решил создать телеграмм канал?
- Во-первых, это мотивация учиться самому. Каждый раз, подготавливая новый пост, стараюсь детально разобраться в вопросе, проверить весь код, учесть все нюансы, чтобы не подвести читателей.
Во-вторых, просто хочется делиться знаниями, быть полезным миру и людям. Я уже много лет пытаюсь вести блоги, сайты и тому подобное. Мне это просто нравится.
В-третьих, это мой актив. Могу показать его будущему работодателю или партнеру по проекту, если возникнет потребность. Плюсик в резюме. - Будешь менять контент на канале в этом году?
- Да, давно зреет идея для видео-уроков. Есть даже уже один сценарий и куплен микрофон, но все никак не решусь записать. А так старая концепция сохранится, большой список тем ждет своей реализации. Хочу также больше писать о машинном обучении и анализе данных.
- Ну тогда будем ждать твои новые статьи!
Спасибо, что согласился дать интервью - Спасибо тебе. Был рад!
Большое спасибо Максиму за то, что согласился пообщаться. Надеюсь вам было так же интересно и полезно как и мне.
А вот ссылка на телеграмм канал Максима - https://tlgg.ru/pyway
А если вам было интересно читать это интервью, то можете подписаться на мой телеграмм канал - https://tlgg.ru/from0toCsharp
Удачи, программисты!