15 марта 2021

☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»

Пишу об IT и на Python. kungurov.net
Изучить Java с нуля и пройти путь от джуна до высококлассного разработчика – задача непростая, но герою интервью это удалось. О сложностях в освоении профессии нашему корреспонденту рассказал тимлид компании DINS Андрей Кирдеев.
☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»

Какой ВУЗ вы окончили?

В 2012 г. я получил диплом университета ИТМО. Учился на естественнонаучном факультете по специальности «Прикладная математика и информатика».

Какие языки программирования и технологии вы изучали в вузе?

В вузе мы изучали C# и SQL. Также давали 3ds max и Haskell.

Фундаментальное образование помогло вам в работе?

Я просмотрел тысячи резюме, провел более трехсот собеседований и пришел к выводу, что профильное образование – не самое главное, хотя HR со мной не согласны. Несомненно, оно помогает развить мышление, а диплом может пригодиться за границей. Там, где я работал, на вуз и специальность смотрели только в каких-то исключительных ситуациях.

☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»

Почему вы выбрали Java как основной язык программирования?

Работу на Haskell найти почти нереально: требовались программисты с опытом, поэтому Haskell я не рассматривал. Пробовал устроиться в несколько компаний по .NET, но не подошел по знаниям. Так получилось, что в университет со стажировкой пришла компания EMC: они давали задания на полгода-год, которые требовали знания языка Java. В нашей команде было три человека и перед нами стояла задача написать сервис для работы с разработанной ими базой данных. Java в общем похож на .NET (тоже ООП), к тому же мне подсказывали уже знавшие язык коллеги, поэтому было не трудно. Также вместе с коллегами из ИТМО я попал на трехмесячный курс в школу Exigen Services, после которого лучших студентов собеседовали и брали на работу. Таким образом я более основательно изучил Java и меня взяли джуниором в Exigen Services.

☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»

Есть мнение, будто Java устарел. Вы с этим согласны?

Устарел язык или нет – субъективное мнение. Java – один из самых популярных языков программирования. Долго ли с него будут слезать? Даже если появится что-то новое, чтобы переписать все сервисы на Java потребуется десяток лет. Так просто на новый язык не переходят и в любом случае будет запас времени, чтобы изучить и освоить его. Такого, что ты знал Java и теперь никому не нужен и идешь на улицу – не будет. Если появится такой язык, скорее всего я буду переписывать на него текущие сервисы.

Почему крупные компании выбирают Java?

Популярность. Джавистов проще найти. Например, программистов С++ меньше, стоят они дороже и соответственно дорожает проект. Сам язык Java проще, плюс он кроссплатформенный.

Расскажите о своем первом месте работы. Оно оправдало ваши ожидания?

Без опыта работы устроиться было трудно. На позиции по .NET меня не брали. До сих пор считаю огромным везением, что я попал в Java-школу, но попасть туда сложно: большая конкуренция и ограниченное количество мест. После меня взяли в аутсорс-компанию Exigen Services в проект Deutsche Bank. Для банка я разрабатывал бэкенд на Java 1.4. Было интересно: на мой взгляд это ключевое для начинающего разработчика – быть заинтересованным. Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа.

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

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

☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»

Сколько потребовалось времени, чтобы дорасти до мидла? Это было сложно?

Стать мидлом сложно, так как нужно не только писать на Java, но и иметь напрямую не связанные с технологиями софт-скилы: например, по коммуникации с заказчиком и коллегами или по точности решений. Мой тимлид сказал, что я делаю задачи быстро, но некачественно, поэтому меня не повышают. Скорость выполнения задачи всех устраивала, но по факту приходилось тратить ресурсы других сотрудников, чтобы «посмотреть-исправить» и так несколько итераций. В итоге я стал больше задавать вопросов и тщательнее проверять код – через полтора года после джуниора стал мидлом.

🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»

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

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

Я пропагандирую Agile и Scrum, поэтому склоняюсь к тому, что тимлид – больше менеджер чем кодер. Важно понимать, что тимлид – не тот, кто имеет главное слово по умолчанию. Репутацию и уважение нужно заработать.

На самом деле не каждый разработчик хочет стать тимлидом, так как это более менеджерская позиция. Как я стал тимлидом? Я всегда проявлял активное участие в жизни проекта, хорошо в нем разбирался и всегда подсказывал, что сделать будет невозможно или очень дорого, или нужно сделать по-другому. Однажды у нас сменился тимлид, но он оказался непрофессиональным: нам просто давали задания без обсуждений. Этот тимлид не прижился в команде и мне предложили занять его место, потому что я всегда занимал активную позицию. По началу это была неформальная должность, а потом уже официальная. В итоге путь от мидл-специалиста до тимлида занял три года.

Сейчас вам больше приходится писать код или руководить командой? Можно снова начать программировать после перерыва?

Сейчас я тимлид в компании DINS, которая разрабатывает сервисы для Ring Central: предоставление телефонии в виде сервиса. Если есть бизнес и нужно запустить контакт-, колл-центр или организовать общение между сотрудниками компании, то необязательно тянуть провода к АТС – достаточно поставить софт и с помощью интернета делать то же самое. Я работаю в департаменте, отвечающем за API, с помощью которого заказчик может реализовать сервисы (совершать звонки, отправлять смс, создавать контакты и так далее) своими силами.

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

Может ли стать тимлидом хороший управленец, но посредственный кодер?

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

☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»

Каковы у тимлида перспективы карьерного роста?

Самое очевидное – рост до руководителей департаментов и отделов. Это все более менеджерская работа без написания кода. Тимлид может переквалифицироваться в архитектора. Несколько моих знакомых вернулись в программисты.

Вы применяете гибкие методологии?

Я приверженец Scrum и в свое время сертифицировался на Scrum-мастера. Во всех своих командах стараюсь построить Scrum-подобный процесс.

Какой технологический стек вы используете?

В моей команде используется Java 8 (скоро перейдем на Java 11, так как она LTS), Hibernate и Amazon Aurora. Как тимлид я часто использую Jira, нашу внутреннюю Wiki и онлайн-сервисы по планированию.

Что нужно уметь джуну, чтобы попасть в вашу команду?

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

Расскажу, как проходит отбор в мою команду QA и джавистов: мы выкладываем на Хедхантер описание вакансии, прикладываем тестовое задание (написать сервис), которое на сто процентов не сможет сделать даже самый классный специалист. Если все хорошо, проводим собеседование, обсуждаем тестовое задание, чтобы понять, сам ли кандидат выполнил его, как он мыслит, какие улучшения по тестовому заданию предлагает и как готов исправить, найденные нами ошибки. Иногда даем логические задачи. Алгоритмы не спрашиваем.

Каков средний возраст сотрудников в вашей команде? Можно ли освоить программирование, если вам за 30?

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

Что самое сложное в профессии?

Для меня самое сложное – конфликты внутри команды. К счастью, мне не приходилось из-за конфликтов кого-то увольнять. Увольнять людей сложно, но не смертельно. Всего я уволил двух человек.

Вы программируете в свободное время?

Лет до 30 я программировал для себя. Сейчас я почти не программирую в свободное время: возможно не хватает времени и сил или я просто постарел. Я понимаю, что неплохо бы программировать и контрибьютить куда-то, участвовать в развитии открытых проектов, но я этим не занимаюсь.

Как вам удалось избежать модного в наше время профессионального выгорания?

В мои обязанности входит помогать членам команды не выгорать, мониторить ситуацию и помогать ее исправить. Возможно поэтому я еще не перегорел: потому что знаком с симптомами и знаю, как их лечить. Я не перегораю, поскольку как тимлид всегда имею возможность повлиять на процесс работы и изменить то, что мне не нравится. Разработчикам сложнее: они могут только поделиться проблемой с руководителем, но не все тимлиды готовы или умеют помогать. Может вообще нет возможности повлиять на то, что не нравится конкретному специалисту в команде. Чтобы не отказываться от профессии, стоит сменить область: перейти из банкинга в телефонию, либо писать порталы и т. п. Если чувствуете, что устаете и вам надоедает работа, обратитесь к специалисту – вашему руководителю.

Можно ли самостоятельно выучиться на программиста?

Да, я уверен, что многие так и делают, тем более сейчас много обучающих порталов.

Школьник хочет стать программистом. Что вы ему посоветуете?

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

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ