Я разработчик и уже много лет в данной профессии. Как таковой я 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)


  1. bromzh
    26.12.2023 10:48
    +24

    Джун: выбирает язык по сфере применимости, по быстродействию, системе типизации, инфраструктуре и прочим ненужным вещам

    Сеньёр:

    • наличие {}, а не отступы

    • более новый ЯП


    1. kimisa Автор
      26.12.2023 10:48
      -5

      Сеньор это уже все знает. И при желании он в любой момент может уйти на другой ЯП.

      И питом и гоу нормальные языки. Хотя гоу - это функциональщина. Это как бы для меня минус. Но там есть структуры и интерфейсы. Так что это по сути недо ООП.


      1. panzerfaust
        26.12.2023 10:48
        +5

        Хотя гоу - это функциональщина

        Такая же "функциональщина" как питон или джава. Функторы и функции высшего порядка сейчас почти везде есть. Это не делает ЯП автоматически "функциональным" и не лишает вас возможности писать в махровом императивном стиле как 30 лет назад.


        1. kimisa Автор
          26.12.2023 10:48
          -2

          Это по сути функциональщина. Я могу в любом файле в пределах пакета дописать метод. В нормальном ООП это делается внутри класса.


          1. panzerfaust
            26.12.2023 10:48
            +6

            ФП это, мягко говоря, не про то, есть ли в языке функции-расширения (если вы о них).


          1. GospodinKolhoznik
            26.12.2023 10:48

            Если вы можете написать метод, это не функциональный язык. В функциональных языках нет методов, только функции.


          1. Solopov
            26.12.2023 10:48
            +4

            Может вы путаете "фунциональщину" с "процедурщеной" ? Функциональное программирование - это когда функции используются в математическом понимании.


            1. LeetCode_Monkey
              26.12.2023 10:48

              Может вы путаете "фунциональщину" с "процедурщеной" ?

              Скорее с полиморфизмом.


          1. ef_end_y
            26.12.2023 10:48

            Можете и за пределами пакета - манкипатчинг. Это каким-то образом ликвидирует ООП?


  1. IgorAlentyev
    26.12.2023 10:48
    +1

    Имхо, потратить чуть больше времени на изучение, сделать какой то пет проект и заходить хотя бы как миддл было бы удобнее и не было бы такого даунгрейда по деньгам.

    Конечно это в случае если вы действительно сеньер с большим опытом и понимаете что за месяц разберётесь с боевыми задачами за счёт опыта на другом стеке.


    1. kimisa Автор
      26.12.2023 10:48
      +1

      У меня был опыт начала работы без никого. Я была одна. Год был потрачен впустую.

      Плюс для hr вы как были Джуном, так и остались. У вас не будет опыта работы. Или нужно врать в резюме, что ты 2 года работал на гоу


      1. GospodinKolhoznik
        26.12.2023 10:48
        +2

        Я была одна. Год был потрачен впустую.

        Почему вы так думаете? Мы же про программирование говорим?)) Мне кажется, если бы у меня была сейчас возможность целый год работать в соло, я бы от этого только прокачался в техническом плане. Софт скилы бы наверное пострадали, да и чёрт с ними.

        Ну и как hr узнает, что на самом деле вы не работали последние 2 года на go? И ещё - даже если вы будете врать hr, то не переживайте, они вам будут врать на порядки больше.


        1. kimisa Автор
          26.12.2023 10:48
          +2

          Почему вы так думаете? Мы же про программирование говорим?

          Это было когда я только начинала работать и была нулевая.

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


  1. Gaspachito
    26.12.2023 10:48
    +10

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

    Нет, потому что там есть скобочки, и более свежий язык)

    Вот поэтому никто не любит "переодетых" PHPшников. Учите не языки, а базу: Операционные системы, работу с многопоточностью, алгоритмы и структуры данных, шаблоны проектирования. Хотя бы более осмысленно будете следующий язык выбирать.


    1. kimisa Автор
      26.12.2023 10:48

      Это вы сейчас охаяли питон? Чем он так вам не понравился? Или гоу?


      1. ef_end_y
        26.12.2023 10:48

        Ахаха. У вас есть опыт споров на политических ресурсах? Там такой прием часто применяют


    1. bromzh
      26.12.2023 10:48
      +5

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


    1. scarab
      26.12.2023 10:48

      PHP сейчас всё ближе к джаве и у хороших пхп-шников всё в порядке и с шаблонами проектирования, и с пониманием SOLID, GRASP и DDD и со сложными структурами языка.


  1. RuSPanzer
    26.12.2023 10:48
    +2

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


    1. kimisa Автор
      26.12.2023 10:48
      +1

      В моем трайбе были шарписты, пхп и андроиды. На вакансии в другие трайбы подход такой же как и снаружи - джун или стажер. Это мне hr из своей конторы предлагал.

      Переучивают только 2 конторы - Озон и вроде Ламода. Собес у меня был с Озоном. Но там получился сумбур. На 2м этапе собеса про меня забыли и я с hr 30 минут ждала пока освободится лид. И в результате собес получился скомканный, т.к. у меня потом была своя работа. Ну а по другой вакансии у меня был уже оффер на руках.

      И я ни разу про переход с сеньора на сеньора не слышала. Не выше милда, т.к. не знаешь язык.


      1. RuSPanzer
        26.12.2023 10:48

        Авито тоже предлагает свап, ну и, собственно, samokat.tech, куда я и пришел. у них целый проект был - нешкола go, по которой я и прошел. в конце ИС был собес чисто по гошке, очень подробный с углубленным разбором внутренней работы языка

        у озона, кстати, есть ещё варианты с route256


        1. kimisa Автор
          26.12.2023 10:48
          +1

          Отклики на их вакансии были. Отказ на уровне отклика на вакансию.


      1. Gorthauer87
        26.12.2023 10:48

        У меня немного хитрее, но я переходил с сеньора на C++ сразу на сеньора на Расте, хотя знал тогда его примерно на уровне мидла. Но очень быстро подтянул, на рабочих задачах это проще делать было.

        Потом к нам таким же методом скалисты приходили.


    1. Vedga
      26.12.2023 10:48

      В её представлении "сеньор" это тот, кто может самостоятельно составить SQL запрос и умеет разворачивать и настраивать среды.

      Упоминаний о проектировании схем БД, API, да хотя бы разбивки функционала на модули/сервисы в статье не заметил.

      Но да, вполне себе уверенный джун.


      1. kimisa Автор
        26.12.2023 10:48

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

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


  1. LucyM
    26.12.2023 10:48

    Какой язык посоветуете новичкам?)

    Вы правильно подметили != опыт заявленным требованиям… типо нанимаю 20летних с 20летним опытом!)

    Желаю Вам удачи.


    1. kimisa Автор
      26.12.2023 10:48

      Смотря какое направление вам интересно - бэк или фронт?


      1. LucyM
        26.12.2023 10:48

        Я про Бэк.


        1. kimisa Автор
          26.12.2023 10:48
          +1

          • C# сейчас не сильно популярен. Новые проекты на нем редко начинают. Встречала в основном в платежных системах и телефонии. Порог вхождения не простой.

          • Java - появилось второе дыхание у языка. Довольно много крупных проектов на нем пишется. Какой-то специфики по тематике нет. Порог вхождения так же не прост.

          • Python - хоть и сам язык старый, но сейчас очень популярен. Область приминения в основном бигдата и ИИ. Порог вхождения прост. Но нужно изучать теорию по бигдате или ИИ.

          • Go - самый новый из этой 4ки. Применим в микросервисах. Тут проекты либо с серверной архитектурой и бд, либо апи сервисы. Порог вхождения довольно прост.

            Понятно, что к этому автоматом идет знание БД, операционки, конфигурирования серверов, докера и кубера.

            Из этого всего самым простым является попасть на проект с Go и "перекладывать json". Это даст время на привыкание к языку.


          1. MVMmaksM
            26.12.2023 10:48

            C# вполне популярен сейчас, особенно на западе, майки каждый год выпускают новую версию языка с платформой в отличии от той же джавы. На джаве высока вероятность, особенно для джуна, попасть на жуткий легаси, а не на новый проект.

            А вот знание операционки, сетей, бд и т.д. обычно у джавистов/шарпистов есть, чем у тех же питонистов


            1. kimisa Автор
              26.12.2023 10:48
              +1

              C# вполне популярен сейчас, особенно на западе, майки каждый год выпускают новую версию языка с платформой в отличии от той же джавы.

              Вот именно - на западе. Я писала про РФ. Хотя согласна - нужно было уточнить страну.


            1. LucyM
              26.12.2023 10:48

              Мне показалось есть рост и спрос на джунов сишарп…но думаю, есть нюансы в России, если ли смысл сейчас изучать его?


              1. kimisa Автор
                26.12.2023 10:48

                По С# не могу ничего сказать. С какими проектами сталкивалась - были старые. Не слышала чтобы новые проекты начинали на этом ЯП. Но про это могу сказать только в пределах моей работы.


          1. LucyM
            26.12.2023 10:48

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


            1. kimisa Автор
              26.12.2023 10:48

              Совсем наоборот. В моей команде в основном разработчики начавшие свой путь с гоу.


  1. djamali
    26.12.2023 10:48

    Комменты- сексизм чистой воды. Мол , как это , баба горутины строчит, а не заполняет табличку в Экселе.... В принципе с чем я и согласен.


    1. o_f
      26.12.2023 10:48

      Ужас какой


    1. scarab
      26.12.2023 10:48
      -1

      Каков подход, таковы и комментарии. Выбор языка из-за моды и скобочек - чисто женский подход, отсюда и комментарии такие.


      1. kimisa Автор
        26.12.2023 10:48

        Это значит, что язык и тот и тот хорош. И нужно было сделать выбор.


      1. LeetCode_Monkey
        26.12.2023 10:48
        +1

        Выбирать язык из-за моды на современном рынке совершенно нормально. И чем раньше, тем лучше. Иначе есть риск остаться на говнолегаси с 3,5 вакансиями и зарплатой 50 тыщ. И уже без шансов выбраться. А ипотека сама себя не выплатит.


      1. bromzh
        26.12.2023 10:48

        Выбор языка из-за моды и скобочек - чисто женский подход

        Ага, то есть выбор по другим критериям - уже не типичный женский подход? Давайте ссылку на исследование, которое это подтверждает, а то пока это выглядит как самый настоящий сексизм.


      1. michael_v89
        26.12.2023 10:48

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


        1. scarab
          26.12.2023 10:48

          Ну вот критерий "нет нормальных классов" - он как раз здравый и абсолютно понятный.

          Востребованность на рынке, функциональность, область применения - да. А скобочки - ну такое...


  1. Vedga
    26.12.2023 10:48

    А у нас при проведении технических собесов, требующих написания кода, говорят: "пишите на том языке программирования, который вам ближе". И - нормально, оценить ход решения задачи вполне себе можно, даже не зная самого языка.


    1. RuSPanzer
      26.12.2023 10:48

      авито или озон?)


      1. Vedga
        26.12.2023 10:48

        Да, один из них.


  1. farrow
    26.12.2023 10:48
    +1

    У меня с последних собесов обратная картина: компании дают нормальные офферы для senior php на позиции senior php+go. Помимо своего стека просят показать знание общей базы, даже если она не представлена в php-стеке.
    Лиды на собесах жаловались, что даже на приличные бюджеты сложно искать людей, потому что приходит senior php и не знает что такое асинхронный запрос, треды, какую работу делает ОС, как работает БД, отладку ниже уровня xdebug не видел, а самым большим недостатком php называет "ну, там функции названы неконсистентно". И тут нанимающие понимают, что соискателю и без go еще пахать прилично.

    Если же речь о переходе с php на чистую go-позицию (т.е. go без php), то не понимаю зачем. Хватает же компаний со смесью технологий, где можно переходить постепенно, без потери грейда и денег.


    1. kimisa Автор
      26.12.2023 10:48

      Я уже писала - такой переход мне предложил лишь Озон. От остальных - отлуп на уровне отклика. Но тут может быть дело и в возрасте.


  1. Roger99887795
    26.12.2023 10:48

    К сожалению всё так как вы описали. ХР работают по сути как баш скрипты и при несовпадении символов в списке технологий считается что знания у вас абсолютно непереносимые. Я вообще не видел где-либо чтобы брали с на другой язык, тем более с переучиванием. Но у меня больше опыт зарубежных контор.


  1. pavelblossom
    26.12.2023 10:48

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

    А вы можете раскрыть в статье, насколько вы погрузились в идиому Go? Как быстро стали в параллельность/конкурентность? Какие сенсорные задачи у вас сейчас? Вы уже видите код человека пришедшего из других языков? С PHP, например?


    1. kimisa Автор
      26.12.2023 10:48
      +1

      Как и писала выше - погружение шло 3 месяца. Но полноценно работать я смогла через 5. Т.е. тогда, когда смогла обсуждать слабые и сильные места архитектуры проекта.

      Плюс погружения в существующий проект с командой, что всегда можно задать вопросы - а почему тут так и а как принято. Когда тебе отвечают и вы обсуждаете моменты, то всё изучается на много быстрее.

      А по качеству - моей первой задачей на проекте было написать новый микросервис с примерно похожей на другие сервисы архитектурой, а также в параллель изучить монгу.