UNIT.City — місце, де люди працюють... КРАЩЕ! Обирай свій простір просто зараз 👉
Вікторія ГорбікРабота
31 мая 2024, 09:00
2024-05-31
SmallTalk with Senior. Опытный Python-разработчик о том, как достичь уровня сеньор и не тратить лишнее время на изобретение велосипеда
Кто-то говорит, что Python — один из самых легких языков программирования, другие — об его универсальности, когда его можно использовать вместе с другими популярными языками программирования, в частности, Java и C#. Отдельная ценность Phyton состоит в том, что это лучший язык для программирования искусственного интеллекта, машинного и глубокого обучения. О том, что должен знать Senior Python Developer, как достичь этого уровня и на что стоит обратить внимание, рассказал Александр Ветер, разработчик Python уровня сеньор в SoftServe.
Вашему вниманию очередной материал из цикла SmallTalk with Senior на dev.ua, где все, кто хочет достичь этого уровня, могут воспользоваться советами бывалых.
Кто-то говорит, что Python — один из самых легких языков программирования, другие — об его универсальности, когда его можно использовать вместе с другими популярными языками программирования, в частности, Java и C#. Отдельная ценность Phyton состоит в том, что это лучший язык для программирования искусственного интеллекта, машинного и глубокого обучения. О том, что должен знать Senior Python Developer, как достичь этого уровня и на что стоит обратить внимание, рассказал Александр Ветер, разработчик Python уровня сеньор в SoftServe.
Вашему вниманию очередной материал из цикла SmallTalk with Senior на dev.ua, где все, кто хочет достичь этого уровня, могут воспользоваться советами бывалых.
Если вы — сеньор и хотите поделиться своим опытом — пишите на почту [email protected]
От «материального» к программированию
Меня зовут Александр Ветер, и я работаю на позиции Senior Python Developer в SoftServe с 2021 года. Мне 33 года, из которых последние шесть живу в Одессе, но до этого почти всю жизнь провел в Николаеве. Там я сначала учился в обычной школе, потом в экономическом лицее, а дальше в НУК (Национальный университет кораблестроения имени адмирала Макарова).
Карьерный путь не был прямолинейным, как у многих моих коллег. В школьные годы мне не очень нравилась информатика, потому что не очень повезло с преподавателем, зато я обожал алгебру, геометрию и физику, так что мечтал стать инженером в каком-нибудь «материальном» направлении, а не в программировании. В конце концов, так и произошло — я получил степень магистра по специальности «Технологии судебного машиностроения» и после университета с 2014 года почти четыре года проработал в Николаеве на заводе по производству газотурбинных двигателей для кораблей.
Можно сказать, что мне повезло с первым местом работы, ведь я попал в отдел, который занимался написанием программ для станков с ЧПУ (числовое программное управление). То есть, хотя и занимал позицию инженера формально, но фактически где-то 80% моей работы уже тогда было связано с программированием. Университетские знания хоть и помогли и были хорошей базой, но все равно большинству реальных знаний и навыков пришлось учиться уже непосредственно на рабочем месте.
К сожалению, пообщавшись с более опытными коллегами, некоторые из которых работали на заводе по 30–40 лет, я понял, что эта сфера в Украине имеет почти нулевые карьерные и финансовые перспективы. Для того, чтобы обеспечить себе и своей семье более комфортный уровень жизни, в 2017 году я начал изучать разные языки программирования (JavaScript, Java, Python) и в конце концов остановился на последнем, как основном инструменте в своей карьере. Думаю основной причиной, почему я выбрал именно backend разработку, а не что-то другое (frontend, AQA, DevOps) было сходство backend разработки на том, чем я занимался как инженер-программист на заводе. Так что фактически нужно было только выучить синтаксис нового языка, а все базовые понятия и принципы я и так уже понимал. Первую работу, как Junior Python Developer, я получил в 2018 году, примерно через год после того, как начал изучать язык.
Больше всего мне помогли такие ресурсы, как:
Sololearn — сайт и мобильное приложение, это можно изучать практически любой язык программирования. Мне понравился темп подачи в материале — от простого к сложному с плавным нарастанием сложности и интересные практические задачи.
Codingame — сайт, где программисты со всего мира соревнуются, сочиняя код «ботов» для разных игр, разрабатываемых авторами этого проекта. Очень круто развивает алгоритмическое мышление и оптимизировать собственные алгоритмы.
CheckIO — сайт с задачами для изучающих Python и JS. Кстати, я тоже там работал определенное время как автор задач и статей, уже после того, как успел побыть «учеником» на их сайте.
Путь сеньора
На то, чтобы стать сеньором, у меня ушло семь лет, из которых первые четыре я работал на заводе с разными не очень популярными технологиями, например G-codes. Затем три года — именно как Python Developer. Это был непростой путь, я часто чувствовал, что мне не хватает фундаментальных знаний из Computer Science, у которых есть люди, которые изучали это все в университете. Вдобавок к овладению практическими навыками мне приходилось выделять время после работы, когда я уже работал на позиции Junior Python Developer, для закрытия пробелов в теоретических знаниях. В среднем у людей путь к сеньору в Python занимает пять лет, поэтому у меня он был немного длиннее.
В 2020 и 2021, когда я еще был медли, но психологически уже был готов к следующему шагу, я преподавал программирование в компьютерной школе Hillel. Это очень сильно развило софт скилы и менторские навыки, что в результате сильно помогло при прохождении собеседований на позицию сениора. Итак, относительно сложности становления сеньором был период в карьере, когда приходилось параллельно работать на 2 работах: на основной с понедельника по пятницу и преподавателем — на выходных.
Что по деньгам
Когда я начинал свою карьеру, то доллар еще был по 8 (золотые были времена), поэтому в долларовом эквиваленте моя зарплата сеньора в 14 раз больше первой зарплаты. А если сравнивать гривневые суммы тогда и сейчас, то сеньорская зарплата в 67 раз больше, чем была оплата инженера-программиста без опыта 10 лет назад.
Скрин DOU
Не смотря на то, что финансово я уже достиг серьезного уровня, зарплата продолжает расти в среднем раз в год. Максимум, который я лично видел в вакансиях, которые мне посылали рекрутеры, был в районе 6500$ в месяц, но я еще не достиг такого уровня. От некоторых людей слышал, что в Украине реально зарабатывать и $7000-8000 как Senior Python Developer, но таких вакансий я не видел. Суммы в украинских и зарубежных (европейских) компаниях отличаются незначительно, возможно на 10-20%. Американские компании готовы платить еще больше, некоторые даже больше $10 000 в месяц, однако такие вакансии нужно активно искать и самому на них подаваться, не дожидаясь, пока рекрутеры тебя найдут и сами предложат.
Также следует учитывать, что многие компании могут не захотеть сотрудничать с человеком, живущим в стране в состоянии войны, поэтому они могут попросить переехать в более безопасную страну (если есть такая возможность) и получить другое налоговое резидентство, что значительно повлияет на размер чистого дохода. , ведь во многих странах размер налогов может составлять 30-45%, а не украинские 5-6.5%
Что должен знать каждый синьор
Я бы выделил следующие ключевые моменты:
Базовые знания по Computer Science. Имея эту базу, даже освоенную самостоятельно, а не в университете, гораздо проще разбираться с новыми технологиями, другими языками программирования и многими другими профессиональными инструментами. Без этого разработчику карьерно и профессионально расти очень и очень сложно. Причем не обязательно все время держать в памяти, например все алгоритмы сортировок или все возможные операции со связанными списками или бинарными деревьями. Достаточно просто иметь представление об их существовании (а также остальных базовых вещах) и тех ситуациях, когда их следует использовать. Это, во-первых, позволит не тратить лишнее время на изобретение велосипеда, а во-вторых — писать эффективные программы без мысли «пусть пользователи покупают более мощные девайсы».
Софт скилы. Многие джуны и медли игнорируют этот пункт, считая, что хард скилы это 90% успеха. Но на самом деле, чем выше по иерархии вы поднимаетесь, тем более важными становятся софт скилы. Иногда даже доходит до ситуаций, когда сеньором может стать менее технически квалифицированный специалист, но с лучше развитыми софт скиллами, а его коллега мидл без хорошо развитых софт скилл — так и останется медлей еще на долгие годы, даже имея лучшую техническую экспертизу.
Английский язык. Чем выше позиция человека в цепочке джуниор — мидл — сениор, тем обычно становится меньше кодинга и больше общения: с заказчиками, с другими командами, менторинг джунов и т. д. Некоторые даже ведут собственный ютуб канал или пишет статьи или выступают на конференциях. Так вот, международный язык общения в ИТ, как и в бизнесе, науке и многих других сферах — это английский. Желательно знать ее хотя бы на уровне В2 — это открывает более широкие возможности, чем более низкие уровни владения.
Понимание потребностей бизнеса. Пожалуй одна из ключевых точек, где сеньор кардинально отличается от медла. Если мидл просто берет очередную задачу и делает то, что там написано, без лишних мыслей, то сеньор имеет более комплексное видение и понимание бизнеса клиента, что помогает выдвигать идеи для улучшения проекта или понимать, как изменения со стороны нашей команды могут повлиять на другие команды. в положительном или отрицательном смысле. В конце концов нам платят хорошие деньги не за то, что мы такие классные алгоритмы пишем, а за то business value, которое мы создаем.
Последний пункт будет немного циничным и не очень лояльным — если вы еще не сениор, то не засиживайтесь слишком долго на одном месте. Во-первых, я видел много ситуаций, когда пройти внутреннюю аттестацию у компании на более высокую позицию гораздо сложнее, чем пройти собеседование в другую компанию. То есть джун может надолго застрять на позиции джуна, а мидл — на позиции медла в рамках одной компании, хотя они могли бы подняться на +1 карьерную строчку, если бы попытались устроиться в другую компанию. Во-вторых, для сеньора важны не только годы опыта, но и качество этих лет. Поэтому важно поработать на нескольких проектах за пять лет, которые вы будете идти до уровня сеньор. Не все компании имеют такую возможность переводить человека с проекта на проект каждые 1-2 года. А если застрять только на одном проекте на все пять лет начала своей карьеры, то не разовьется достаточно широкий кругозор, который нужен сениору.
Что может быть дальше
Я большой поклонник FIRE (Financial Independence, Retire Early — финансовая независимость, ранний выход на пенсию), поэтому почти всю карьеру, начиная с «джуновства», откладывал так много денег, как только мог. Учитывая размер зарплаты сеньора и стоимость жизни в Украине, у меня выходит откладывать около 80%, а жить всего на 20%. Поэтому в планах на будущее — продолжать работать сеньором еще лет 10, а потом, по моим расчетам, сохраненных денег должно хватить, чтобы инвестировать их и жить обычной жизнью на дивиденды.
Если план по FIRE сработает — то по моим расчетам я смогу выйти на пенсию уже в 45 лет, причем это будет пенсия, которую «выплачиваешь сам себе», а не зависим от милости государства. План Б, если вдруг план А провалится по тем или иным причинам, работать до 60-65 лет, как и большинство обычных людей.
Возможно, в процессе у меня появятся какие-то бизнес-идеи, которые я захочу реализовать — тогда попробую себя в роли бизнесмена или в роли СТО в собственном стартапе. Но я недостаточно экстраверта для того, чтобы быть менеджером в чужой компании или СЕО собственного стартапа. Итак, рассматриваю для себя исключительно технические должности.
Существует ли компания мечты?
Не знаю точных названий занимающихся такими компаниями, но меня очень привлекает сфера робототехники в полноценном смысле слова — создание антропоморфных роботов с полноценным искусственным интеллектом. Насколько я вижу сейчас — многие компании работают разрозненно над разными направлениями этой сферы, но еще никто не объединил это все под одной крышей: чтобы и тела роботов собирать, и создавать их ум, и давать им голос и другие способности — и все в в пределах одной компании или хотя бы группы совместных компаний.
Второе интересное направление — похоже на компанию Neuralink Илона Маска, где чип считывает электрические импульсы мозга. Я хотел бы работать в компании, которая занимается цифровизацией человеческого сознания и (в перспективе) — созданием цифрового бессмертия. То есть, чтобы живого человека оцифровали при жизни, а после биологической смерти, за определенную сумму, ему создали новое синтетическое тело и загрузили его цифровое сознание туда, чтобы он продолжал жить дальше. Человечество уже частично идет к этому, к пониманию, что «человек» — это его сознание, а не его тело. Например, многие потеряли конечности на войне или при несчастных случаях. Но ведь от этого эти люди не перестали быть собой. Так же, на мой взгляд, и полная потеря тела не должна быть помехой тому, чтобы жить дальше, просто не в биологической форме, а в кибернетической.
Что, если бы не IT?
У меня много увлечений, хобби, интересов, так что есть из чего выбрать. Во-первых, у меня есть второе высшее образование, по которому я экономист. Так что, если бы не ИТ, пожалуй, основной альтернативой была бы экономика. Кстати, частично эти знания мне помогли быстро разобраться с торговлей криптовалютами, но, к сожалению, пока этот инвестиционный мини-проект не показал существенных доходов.
Также мне нравится научно-фантастическая литература и фэнтези, и время от времени я пишу статьи на разные темы, так что возможно попробовал бы себя в качестве писателя.
Еще я люблю работать руками с деревом и металлом, и у меня есть разряд токаря, фрезеровщика, полученные еще в студенческие годы, так что еще одна альтернатива — кто-то с обычной рабочей профессией.
В общем, я люблю пробовать новое и открытое к новому опыту, поэтому возможно даже попытался бы овладеть профессией, о которой раньше и не задумывался.
Почему сеньору сейчас сложно найти работу?
На мой взгляд, Python — довольно популярный язык программирования, потому что используется и в веб-разработке, и в АИ, и в аналитике данных, а также учеными из других сфер для моделирования процессов. Поэтому я бы сказал, что особых сложностей с поиском работы нет, хотя из-за войны и глобального кризиса количество предложений уменьшилось, но их все равно еще много. Главное — быть хорошим специалистом и проблем с поиском работы не будет.
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Не всегда есть доступ к любимой IDE или время на ее запуск. Но когда нужно быстро проверить какой-то простой функционал или воплотить новую идею, пригодится онлайн-компилятор.
Мануал для джуна. Python Developer: вопросы на собеседовании, практические задания и советы для начинающих
Джунов, которые ищут работу, проходят кучу собеседований и получают отказы вместо оффера, во время войны стало больше. А все потому, что к собеседованиям необходимо тщательно готовиться.
dev.ua продолжает серию материалов о том, что нужно знать джунам для прохождения собеседования и получения вожделенного оффера от первого работодателя.
Александр Ковтунов, Python Software engineer компании Ajax Systems, который также проводит собеседования для junior- и middle-специалистов, рассказал о профессии Python Developer и дал советы, как начинающим присоединиться к профессии.
Хочу стать программистом. С чего начать и как выбрать между Java Script, PHP, Python и другими
Диана Смеликова, операционный директор Wezom Academy, в своем блоге на DOU объяснила, с чего начать изучать программирование и каким языкам стоит отдать предпочтение на начальном этапе. Вот 5 важных советов от нее.