Я разработчик и уже много лет в данной профессии. Как таковой я fullstack, но с уклоном в backend. Для меня в кайф возиться с SQL запросом, нежели верстать.
Успела я и TeamLead поработать с командой из 9 разработчиков (фронт и бэк) и еще 2мя тестировщиками (ручник и автотестер). В общем квалификации вполне достаточно.
В один прекрасный момент я решила сменить ЯП. До этого писала на PHP/JS. Про смену ЯП стала задумываться еще года 3 назад, но было как-то страшновато. Но в последнее время PHP во многих компаниях он стал deprecated. И тут как бы был дополнительный толчок для изменений.
Выбор был из 2х ЯП - Python и Go. Выбрала Go по 2м причинам:
наличие {}, а не отступы (может и банально, но мне всегда заходили лучше скобки)
более новый ЯП
Села, просмотрела видеокурсы по Go и стала искать работу.
По опыту могу точно сказать, что нет никакого смыла сидеть по полгода/году и что-то пытаться изучать и кодить. Полноценный опыт вы сможете получить только работая в команде. Только тогда вы увидите реальный код и архитектуру. Ну и понятно, что вход в новый ЯП пройдет быстрее.
Ну так вот, в результате поисков я выяснила - что я теперь джун, и даже хуже - стажер (по мнению HR). Я конечно же была в шоке от такого подхода. Ведь ты имеешь навыки работы с базами и можешь разворачивать и настраивать среды. Умеешь аналитить задачи и искать тонкие места в логике работы проекта. Но это никого не волнует...
Выбора как говорится нет - либо ты остаешься на старом ЯП, либо ты становишься джуном. Так, после 2х недель просмотра видео и кодинга после работы я стала джуном.
Что могу сказать, адаптация к новому ЯП полностью приходит через 3 месяца. Через 5 месяцев я уже могла решать задачи на уровне сеньора. Только вот минус один и он существенный - работаешь ты по сути сеньором, а вот получаешь как джун.
И есть еще минус - к тебе изначально не относятся как к джуну. Тебе сразу сходу дают серьезные задачи. Поэтому для меня первый месяц был очень жесткий. Приходилось въезжать в бизнес-логику, архитектуру и плюс еще сам язык.
Мне бы очень хотелось бы, чтобы Лиды прочитали эту статью и задумались над требованиями в резюме, которые они пишут. Чтобы убрали такие не вменяемые требования - от 2-3 лет. Понятно, что это пишут чтобы отсеять начинающих. Но разработчик с 2мя годами разработки на GO != разработчику от 5-6 лет разработки на другом ЯП (учитываем, что разработка идет не где-то в мелких компаниях на заказ).
P.S. В смене ЯП нет ничего страшного. Теперь у меня есть опыт смены и я не боюсь добавить себе в копилку еще какой ЯП. Но это сознательный выбор, а не просто что-то изучить. Я не выбираю легких путей :)
Комментарии (51)
IgorAlentyev
26.12.2023 10:48+1Имхо, потратить чуть больше времени на изучение, сделать какой то пет проект и заходить хотя бы как миддл было бы удобнее и не было бы такого даунгрейда по деньгам.
Конечно это в случае если вы действительно сеньер с большим опытом и понимаете что за месяц разберётесь с боевыми задачами за счёт опыта на другом стеке.
kimisa Автор
26.12.2023 10:48+1У меня был опыт начала работы без никого. Я была одна. Год был потрачен впустую.
Плюс для hr вы как были Джуном, так и остались. У вас не будет опыта работы. Или нужно врать в резюме, что ты 2 года работал на гоу
GospodinKolhoznik
26.12.2023 10:48+2Я была одна. Год был потрачен впустую.
Почему вы так думаете? Мы же про программирование говорим?)) Мне кажется, если бы у меня была сейчас возможность целый год работать в соло, я бы от этого только прокачался в техническом плане. Софт скилы бы наверное пострадали, да и чёрт с ними.
Ну и как hr узнает, что на самом деле вы не работали последние 2 года на go? И ещё - даже если вы будете врать hr, то не переживайте, они вам будут врать на порядки больше.
kimisa Автор
26.12.2023 10:48+2Почему вы так думаете? Мы же про программирование говорим?
Это было когда я только начинала работать и была нулевая.
А так - новое осваивается очень быстро, если перед глазами есть готовый проект и есть люди, у которых можно спросить.
Gaspachito
26.12.2023 10:48+10То есть, го выбирают не потому, что там прекрасная реализация горутин, не потому что он кросс компилится двумя флагами под все основные архитектуры и ОС, не потому, что на нем можно написать практически любого вида ПО, от бизнес логики, до работы с BLE антенной.
Нет, потому что там есть скобочки, и более свежий язык)
Вот поэтому никто не любит "переодетых" PHPшников. Учите не языки, а базу: Операционные системы, работу с многопоточностью, алгоритмы и структуры данных, шаблоны проектирования. Хотя бы более осмысленно будете следующий язык выбирать.
bromzh
26.12.2023 10:48+5Ну вообще я прекрасно понимаю автора. Изучать язык, который не нравится в том числе и эстетически - путь либо к выгоранию, либо к заьрасыванию этой затеи. Мне вот ни го ни пхп не нравятся самим дизайном, писать на них каждый день я бы не смог. Раст и хаскель со скалой выглядят намного лучше для меня, учу их потихоньку как дополнение к основному
scarab
26.12.2023 10:48PHP сейчас всё ближе к джаве и у хороших пхп-шников всё в порядке и с шаблонами проектирования, и с пониманием SOLID, GRASP и DDD и со сложными структурами языка.
RuSPanzer
26.12.2023 10:48+2очень странные выводы. я чуть меньше года назад сделал переход из сеньера пхп в сеньера гошника с приличным повышением зп. куча компаний сейчас предлагает свап с переобучением, потому что если вы толковый специалист, сеньер, то вы в первую очередь толковый специалист и сеньер, а знание ЯП, особенно go - дело нескольких месяцев изучения и практики. компании инвестируют и нанимают инженера, специалиста, а не пхпшников/гошников/свойвариант
kimisa Автор
26.12.2023 10:48+1В моем трайбе были шарписты, пхп и андроиды. На вакансии в другие трайбы подход такой же как и снаружи - джун или стажер. Это мне hr из своей конторы предлагал.
Переучивают только 2 конторы - Озон и вроде Ламода. Собес у меня был с Озоном. Но там получился сумбур. На 2м этапе собеса про меня забыли и я с hr 30 минут ждала пока освободится лид. И в результате собес получился скомканный, т.к. у меня потом была своя работа. Ну а по другой вакансии у меня был уже оффер на руках.
И я ни разу про переход с сеньора на сеньора не слышала. Не выше милда, т.к. не знаешь язык.
RuSPanzer
26.12.2023 10:48Авито тоже предлагает свап, ну и, собственно, samokat.tech, куда я и пришел. у них целый проект был - нешкола go, по которой я и прошел. в конце ИС был собес чисто по гошке, очень подробный с углубленным разбором внутренней работы языка
у озона, кстати, есть ещё варианты с route256
Gorthauer87
26.12.2023 10:48У меня немного хитрее, но я переходил с сеньора на C++ сразу на сеньора на Расте, хотя знал тогда его примерно на уровне мидла. Но очень быстро подтянул, на рабочих задачах это проще делать было.
Потом к нам таким же методом скалисты приходили.
Vedga
26.12.2023 10:48В её представлении "сеньор" это тот, кто может самостоятельно составить SQL запрос и умеет разворачивать и настраивать среды.
Упоминаний о проектировании схем БД, API, да хотя бы разбивки функционала на модули/сервисы в статье не заметил.
Но да, вполне себе уверенный джун.
kimisa Автор
26.12.2023 10:48Как я поняла вы из маленькой конторы. В крупных конторах проектированием базы, апи запросов и тд занимается архитектор с аналитиком. Вы можете обсудить свое мнение, но решающее слово всегда за ними.
Я писала всего лишь о своей ежедневной работе. И плюс, для меня проектирование БД и архитектуры на уровне микросервиса - это работа сеньора по умолчанию. Но этим увы не занимаешься ежедневно.
LucyM
26.12.2023 10:48Какой язык посоветуете новичкам?)
Вы правильно подметили != опыт заявленным требованиям… типо нанимаю 20летних с 20летним опытом!)
Желаю Вам удачи.
kimisa Автор
26.12.2023 10:48Смотря какое направление вам интересно - бэк или фронт?
LucyM
26.12.2023 10:48Я про Бэк.
kimisa Автор
26.12.2023 10:48+1C# сейчас не сильно популярен. Новые проекты на нем редко начинают. Встречала в основном в платежных системах и телефонии. Порог вхождения не простой.
Java - появилось второе дыхание у языка. Довольно много крупных проектов на нем пишется. Какой-то специфики по тематике нет. Порог вхождения так же не прост.
Python - хоть и сам язык старый, но сейчас очень популярен. Область приминения в основном бигдата и ИИ. Порог вхождения прост. Но нужно изучать теорию по бигдате или ИИ.
-
Go - самый новый из этой 4ки. Применим в микросервисах. Тут проекты либо с серверной архитектурой и бд, либо апи сервисы. Порог вхождения довольно прост.
Понятно, что к этому автоматом идет знание БД, операционки, конфигурирования серверов, докера и кубера.
Из этого всего самым простым является попасть на проект с Go и "перекладывать json". Это даст время на привыкание к языку.
MVMmaksM
26.12.2023 10:48C# вполне популярен сейчас, особенно на западе, майки каждый год выпускают новую версию языка с платформой в отличии от той же джавы. На джаве высока вероятность, особенно для джуна, попасть на жуткий легаси, а не на новый проект.
А вот знание операционки, сетей, бд и т.д. обычно у джавистов/шарпистов есть, чем у тех же питонистов
kimisa Автор
26.12.2023 10:48+1C# вполне популярен сейчас, особенно на западе, майки каждый год выпускают новую версию языка с платформой в отличии от той же джавы.
Вот именно - на западе. Я писала про РФ. Хотя согласна - нужно было уточнить страну.
LucyM
26.12.2023 10:48Мне показалось есть рост и спрос на джунов сишарп…но думаю, есть нюансы в России, если ли смысл сейчас изучать его?
kimisa Автор
26.12.2023 10:48По С# не могу ничего сказать. С какими проектами сталкивалась - были старые. Не слышала чтобы новые проекты начинали на этом ЯП. Но про это могу сказать только в пределах моей работы.
djamali
26.12.2023 10:48Комменты- сексизм чистой воды. Мол , как это , баба горутины строчит, а не заполняет табличку в Экселе.... В принципе с чем я и согласен.
scarab
26.12.2023 10:48-1Каков подход, таковы и комментарии. Выбор языка из-за моды и скобочек - чисто женский подход, отсюда и комментарии такие.
LeetCode_Monkey
26.12.2023 10:48+1Выбирать язык из-за моды на современном рынке совершенно нормально. И чем раньше, тем лучше. Иначе есть риск остаться на говнолегаси с 3,5 вакансиями и зарплатой 50 тыщ. И уже без шансов выбраться. А ипотека сама себя не выплатит.
bromzh
26.12.2023 10:48Выбор языка из-за моды и скобочек - чисто женский подход
Ага, то есть выбор по другим критериям - уже не типичный женский подход? Давайте ссылку на исследование, которое это подтверждает, а то пока это выглядит как самый настоящий сексизм.
michael_v89
26.12.2023 10:48Я бы тоже выбирал из-за моды и скобочек. Именно потому что принципы везде одинаковые, и языки в среднем отличаются модой и скобочками. Например, я бы не хотел переходить на язык, где нет нормальных классов.
scarab
26.12.2023 10:48Ну вот критерий "нет нормальных классов" - он как раз здравый и абсолютно понятный.
Востребованность на рынке, функциональность, область применения - да. А скобочки - ну такое...
Vedga
26.12.2023 10:48А у нас при проведении технических собесов, требующих написания кода, говорят: "пишите на том языке программирования, который вам ближе". И - нормально, оценить ход решения задачи вполне себе можно, даже не зная самого языка.
farrow
26.12.2023 10:48+1У меня с последних собесов обратная картина: компании дают нормальные офферы для senior php на позиции senior php+go. Помимо своего стека просят показать знание общей базы, даже если она не представлена в php-стеке.
Лиды на собесах жаловались, что даже на приличные бюджеты сложно искать людей, потому что приходит senior php и не знает что такое асинхронный запрос, треды, какую работу делает ОС, как работает БД, отладку ниже уровня xdebug не видел, а самым большим недостатком php называет "ну, там функции названы неконсистентно". И тут нанимающие понимают, что соискателю и без go еще пахать прилично.Если же речь о переходе с php на чистую go-позицию (т.е. go без php), то не понимаю зачем. Хватает же компаний со смесью технологий, где можно переходить постепенно, без потери грейда и денег.
kimisa Автор
26.12.2023 10:48Я уже писала - такой переход мне предложил лишь Озон. От остальных - отлуп на уровне отклика. Но тут может быть дело и в возрасте.
Roger99887795
26.12.2023 10:48К сожалению всё так как вы описали. ХР работают по сути как баш скрипты и при несовпадении символов в списке технологий считается что знания у вас абсолютно непереносимые. Я вообще не видел где-либо чтобы брали с на другой язык, тем более с переучиванием. Но у меня больше опыт зарубежных контор.
pavelblossom
26.12.2023 10:48На мой взгяд, в статье не раскрыто качество перехода. Пока я видел, что за 3 месяца человек только научался поддерживать написанное на Go.
А вы можете раскрыть в статье, насколько вы погрузились в идиому Go? Как быстро стали в параллельность/конкурентность? Какие сенсорные задачи у вас сейчас? Вы уже видите код человека пришедшего из других языков? С PHP, например?
kimisa Автор
26.12.2023 10:48+1Как и писала выше - погружение шло 3 месяца. Но полноценно работать я смогла через 5. Т.е. тогда, когда смогла обсуждать слабые и сильные места архитектуры проекта.
Плюс погружения в существующий проект с командой, что всегда можно задать вопросы - а почему тут так и а как принято. Когда тебе отвечают и вы обсуждаете моменты, то всё изучается на много быстрее.
А по качеству - моей первой задачей на проекте было написать новый микросервис с примерно похожей на другие сервисы архитектурой, а также в параллель изучить монгу.
bromzh
Джун: выбирает язык по сфере применимости, по быстродействию, системе типизации, инфраструктуре и прочим ненужным вещам
Сеньёр:
kimisa Автор
Сеньор это уже все знает. И при желании он в любой момент может уйти на другой ЯП.
И питом и гоу нормальные языки. Хотя гоу - это функциональщина. Это как бы для меня минус. Но там есть структуры и интерфейсы. Так что это по сути недо ООП.
panzerfaust
Такая же "функциональщина" как питон или джава. Функторы и функции высшего порядка сейчас почти везде есть. Это не делает ЯП автоматически "функциональным" и не лишает вас возможности писать в махровом императивном стиле как 30 лет назад.
kimisa Автор
Это по сути функциональщина. Я могу в любом файле в пределах пакета дописать метод. В нормальном ООП это делается внутри класса.
panzerfaust
ФП это, мягко говоря, не про то, есть ли в языке функции-расширения (если вы о них).
GospodinKolhoznik
Если вы можете написать метод, это не функциональный язык. В функциональных языках нет методов, только функции.
Solopov
Может вы путаете "фунциональщину" с "процедурщеной" ? Функциональное программирование - это когда функции используются в математическом понимании.
LeetCode_Monkey
Скорее с полиморфизмом.
ef_end_y
Можете и за пределами пакета - манкипатчинг. Это каким-то образом ликвидирует ООП?