09 февраля

Не так страшен Python, как его малюют: к чему готовиться перед приходом на курс будущим разработчикам?

Python входит в число самых популярных языков программирования и не просто так. В интервью с Python-разработчиком ISsoft и ментором TeachMeSkills Сашей Варкаловым поговорили об особенностях изучения этого языка, сферах его применения, зарплатной вилке и собеседованиях.
Краткое досье Саши Варкалова:

  • + 4 года опыта коммерческой разработки;
  • На данный момент работает в компании ISsoft;
  • Закончил БГУ по специальности физик-инженер;
  • Окончил IT-курсы в 2016 году;
  • Профиль в LinkedIn - https://www.linkedin.com/in/alexander-varkalov/
Вопрос сразу в лоб: что нужно знать перед приходом на курсы по направлению «Python-разработчик»?

В рамках задач, которые мы ставим перед собой и пытаемся решить при помощи Python, встречаются и такие, которые непосредственно связаны с математикой. Вывод напрашивается сам собой – знание хотя бы школьной математики не помешает. Желателен и английский – не обязательно быть нэйтив спикер, будет достаточно и навыка восприятия английского текста, поскольку синтаксис Python схож с инглишом.

На самом деле вопрос даже не в том, с чем приходят люди в плане знаний, а в том, с чем они приходят в плане мотивации и вообще, на что они готовы, чтобы войти в профессию. Если человек надеется, что без личных усилий из него сделают разработчика, то вряд ли у него что-то получится.

Такой язык программирования, как Python может осилить любой человек, имея 9 классов образования и мотивацию изучать что-то новое вне зависимости от его специальности (и гуманитарию под силу войти в айти).
С какими трудностями придется столкнуться в процессе изучения языка?

Если подходить к процессу образования с толком и придерживаться того плана, который предоставляет школа и который поддерживает преподаватель, проблем быть не должно. Я имею в виду, что человек посещает все занятия, делает все домашки и не стесняется задавать вопросы. Потому что если у человека затык, а он не задал вопрос, то надеяться, что все разрулится не стоит.

В самом начале обучения объясняются азы, потом с началом ООП (объектно-ориентированное программирование) все становится сложнее – это такие вещи, которые нужно осознавать концептуально. Как по мне, это не сложно сделать, поскольку вся концепция направлена на окружающий мир.

Из сложных тем в программе я бы выделил функциональное программирование (ФП), вот на этом моменте действительно нужен определенный сдвиг мыслительного процесса. Это та вещь, которая используется разработчиками не так часто (в основном ФП применяют на практике специалисты с +2 года опыта). Python – это мультипарадигименный язык, поэтому нужно понимать все его парадигмы, которые он обслуживает.

Еще один аспект в обучении – веб-разработка. Здесь боятся нечего, поскольку Django (фреймворк) очень дружелюбен, он изначально «задает рельсы», по которым нужно двигаться и писать приложения. Есть занятие, когда мы рассказываем про базы данных, но даем ту информацию, которая необходима на уровне понимания. Мы не пытаемся сделать из ребят спецов по базам данных, а даем только то, что необходимо знать при работе с Python и только то, что спросят на всевозможных собеседованиях.
Сколько времени (обязательный минимум) нужно уделять на изучение Python помимо лекций с ментором, чтобы результат был хорошим?

Успешное обучение стоит на трех китах – домашка, общение с ментором и любопытство. Если на каждую домашку уходит 1,5-2 часа, то на общение с ментором + любопытство (самостоятельное изучение интересных плюшек) ограничений нет – все зависит только от вас самих. Ну и будьте готовы к концу курса покорпеть над дипломным проектом.


Расскажи о плюсах и минусах Python, по твоему мнению.

Плюсы:

· Низкий порог вхождения в IT (самое большое преимущество); это значит, что технический бэкграунд за плечами для работы с Python не обязателен;

· Взаимодействие с памятью компьютера. Минимальная единица любой программы – переменная. В отличие от других языков, в Python есть сборщик мусора, которые зачищает уже ненужные использованные переменные за вас. Это позволяет не забивать себе голову какими-то низкоуровневыми вещами – мы апеллируем на высоком уровне абстракции;

· Лаконичность и простота понимания синтаксиса.

Минусы:

· Python медленный. Как мы знаем, есть два класса языков – интерпретируемые и компилируемые. Разница в том, что на компилируемом языке (например Java) мы написали программу и нажали кнопку «запустить» – все, что мы написали, компилируется (т.е. переводится на машинный язык, чтобы компьютер нас понял). Интерпретируемые языки (как Python) действуют немного иначе: интерпретатор шагает построчно по всему документу и выполняет все инструкции, которые там прописаны. Естественно такой способ занимает гораздо больше времени.

· Динамическая типизация (одновременно и минус и плюс). Речь снова идет о переменных: если мы в начале кода присвоим переменной «А» число «25», мы спокойно можем в новой строчке присвоить этой же переменной текстовое значение «АЛЕКС». Языки со статической типизацией, такие как Java и С++ такого не позволят. Возможно, вам покажется это удобным, но за такой «комфорт» приходится расплачиваться производительностью.


Какие профессии и деньги сулит знание Python?


Те, кто владеет Python, могут работать по следующим специальностям:

1. Python-разработчик (пишет программы).
2. Тестировщик-автоматизатор на Python (пишет автоматизированные тесты для программ из пункта один).
3. DevOps инженер (пишет скрипты, чтобы взаимодействовать с серверами и т.п.)

*Девопсеры – сисадмины с расширенными обязанностями.
**В свою очередь, разработчики делятся на тех, кто занимается вебом, кто работает с искусственным интеллектом и Data Science, кто пишет приложения игры.

Теперь что касается заработка: в начале своей карьеры не считается зазорным какое-то время трудиться бесплатно – речь идет о стажировке, на которой предоставляют возможность поработать с реальными проектами. Младший разработчик может получать от 400$.

Но с самого начала помните о том, что процесс роста заработной платы в айти весьма прозрачный. Ты, как разработчик, имеющий определенные компетенции и профессиональные навыки, в процессе работы самосовершенствуешься, повышая свой профессиональный уровень. Растет уровень – растет и заработок. Поэтому практически во всех IT-компаниях есть проф-ревью (пересмотр зарплаты сотрудника) – на стартовых позициях пересмотр, как правило, происходит раз в полгода, затем – раз в год.

Везде есть информация о том, как рынок градирует разработчиков. К примеру, специалисту до года опыта по нашему направлению 1000$ можно получать, от года до трех лет – можно дойти до трех тысяч. Дальше все индивидуально: сеньор может быть просто сеньором, может быть еще и ментором, а может и архитектором или тимлидом – все зависит от тех компетенций и обязательств, которые готов взять на себя разработчик. 6 тысяч – это средний потолок, но далеко не предел. Повторюсь, самый большой плюс даже не в размере зарплат, а в прозрачности выплат и карьерного роста. Компании всегда заинтересованы в твоем росте, он предоставляют и обсуждают план твоего развития на ближайшие полгода-год.
Расскажи о своем опыте прохождения собеседования и дай советы подрастающему поколению.

Если говорить про мой опыт, то на первом собесе меня не сильно гоняли по Python, но спрашивали про Django. Сейчас я даже не вспомню, как я к нему готовился, поскольку это было сразу после курсов, знания по «джанге» у меня были свежие + я самостоятельно поднимал очень много информации в интернете.

Во-первых, не нужно бояться провалить собес. Во-вторых, у всех компаний разные требования (вы просто можете им не соответствовать). В-третьих, все компании полны надежд взять человека со знаниями сеньора, но зарплатой джуна. Так что если вы получили отказ, то не отчаивайтесь и пробуйте дальше. Лично я на технических собеседованиях спрашиваю джунов по программе TeachMeSkills, потому что она содержит все необходимые для молодого разработчика компетенции. Т.е. если перед вами человек, усвоивший подобную программу, то из него можно слепить что-то достойное.


С хардскиллами на собесе все понятно: ты соответствуешь требованиям в вакансии, значит подходишь. С софтскиллами дело обстоит сложнее. Какую поведенческую тактику выбрать, чтобы быть интересным?

Для меня софтскиллы – это больше про коммуникацию между людьми. На собеседовании всегда есть два человека – техспециалист и HR – они смотрят, как человек реагирует на те или иные раздражители, какой он дает фидбэк на вопросы, как ведет себя, если не знает ответ и т.д. Потому что если ты задаешь человеку вопрос, на который он не знает ответ и вместо конструктивного диалога замыкается в себе, то это тоже характеризует человека определенным образом. Конечно, собеседующие стараются вытащить человека обратно, чтобы собес не накрылся, но галочки будут проставлены. Исходя из того, как человек отвечает и как себя позиционирует, уверенно ли он отвечает или лепечет, мы делаем вывод о степени его заинтересованности в работе.

На собеседование нужно идти, понимая, что тебе могут отказать и относиться к этому не как к трагедии, а как к полезному опыту, ведь в будущем предстоит посещать собеседования разработчику любого уровня. Я тоже их в свое время посещал, чтобы понять, что рынок требует от разработчика, каких компетенций мне не хватает, чтобы быть конкурентоспособным.

Лайфхак для проходящих собеседование:

На собесах задают не только вопросы, но и проговаривают ответы. + на каждом новом собеседовании будет 2-3 вопроса с прошлого собеса. Пройдя от трех до пяти собесов, можно полностью подготовиться к собеседованию своей мечты и получить заветный оффер. Не раскисайте раньше времени.
Напутственные слова от Саши будущим студентам TMS:

В будущем IT-сектор будет еще больше расширяться, следовательно будут нужны новые специалисты. Люди, которые уже в IT будут стараться удешевлять чужой труд, заменяя и роботизируя его. Я это говорю к тому, что сейчас очень хороший момент, чтобы #войтивайти, потому что рынок еще оооочень нуждается в разработчиках. Еще один важный момент: сейчас очень сложно переманить мидлов (рабочих лошадок), поскольку многие из них неплохо так подкармливаются внутри своей «кормушки-компании». Так что популярность набирает стратегия взращивания, когда из джунов методом проб, ошибок и упорного труда мы получаем рабочий инструмент.

Если у вас есть мотивация, желание и понимание того, что вам интересно, то пробуйте, сейчас самое время. Вы себе точно не навредите, если выучите любой язык программирования, поскольку применение ему можно найти практически везде.
Интервью провела Маргарита Прохорчик
Смотри интервью с Сашей на нашем YouTube канале

Стань востребованным IT специалистом

Наша цель — дать тебе знания и опыт, достаточные для трудоустройства в крупнейшие IT компании.