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

Удачи, программисты!