После поста о моём уходе из Salesforce, мне написал товарищ, который идёт тем же путём с единственной разницей: он решил учить питон. И попросил советов и лайфхаков. Поэтому опишу, как я подошёл к смене стека.
TL;DR, список советов:
Как я и говорил, о смене стека я задумался давно. В начале 2020 я даже ходил на собеседование по NodeJS, но тогда мне не хватило знаний об устройстве ноды, да и мой пока ещё нынешний работодатель сделал интересное предложение. Несмотря на то, что тогда я остался в Salesforce, я решил начать компенсировать по-тихоньку пробелы в знаниях. А потому первый совет: готовьтесь к смене стека заранее, даже если вы сейчас не планируете его менять. Проще говоря, постоянно изучайте новые для себя технологии
.
Я разобрался в некоторых принципах работы NodeJS, а затем по подсказке знакомого решил потыкать Go. Как раз примерно тогда мы запускали канал Salesforce RU Careers. Поначалу мы оформляли вакансии руками, но мне это быстро надоело, поэтому я решил сделать бота. И взял как раз Go, потому что лучший способ изучить — попробовать на практике
. Честно говоря, тот бот написан не лучшим образом, но для первого знакомства сойдёт.
После первого опыта, я, на самом деле, подзабил на Go. И вернулся к нему только спустя полтора года, решив попробовать сделать аналог Livegram. Получилось так себе, код этого бота я не открывал, но обозначились векторы изучения — многопоточность и обработка ошибок
. Насчёт многопоточности в Salesforce можно было особо не париться, а управление памятью сводилось фактически к “не допустить переполнения кучи”, поэтому здесь я узнал-таки много интересного.
После этого, я попросил товарища, работающего с Go, пособеседовать меня (Саша, ещё раз спасибо 🙂 ). Он накинул мне материалов к изучению, а также провёл пробное собеседование, где я подчерпнул кое-что. То есть следующий совет: найдите опытного ментора
. При изучении новой области, всегда стоит поискать человека, который много знает и готов этими знаниями делиться. И с подачи товарища я отправился изучать ещё и управление памятью
в Go в подробностях.
Кроме, собственно, языка, с которым я собирался работать, мне надо было подтянуть работу с БД
. Последний раз с SQL БД я сталкивался году этак в 2015-16, потому успел всё подзабыть. На помощь пришёл Leetcode: там есть отличные модули по SQL, которые напомнят основные конструкции, которых не было в SOQL.
Сколько изучение занимает по времени? Я бы сказал, что параллельно с работой у меня это дело заняло пару месяцев. При этом первый месяц вялотекуще, второй месяц интенсивно. И на исходе второго месяца я решил-таки отправить резюме. Резюме отправил в 5 компаний и фактически в каждую через реферальную программу
. В одной пришёл отказ на инженерную позицию в связи с “отсутствием коммерческого опыта”, что, честно говоря, вызывает вопросы к HR. В другой пришёл отказ, поскольку нужен был ТимЛид, и там уже опыт со стеком, конечно, обязателен, не поспоришь. Ещё с одними товарищами мы пообщались, но им не нужны были гошники. И ещё в одной только начинали проект, и нужен был архитектор, чем я также не готов занимать из-за отсутствия практического опыта. В последней компании, тем не менее, всё сложилось удачно — 4 этапа собеседования и оффер на мидла по верхней планке. Сказали, что до сеньора не дотянул из-за пробелов в архитектуре.
Но 4 этапа собеседования — дело небыстрое. Поэтому после отправки резюме я отправился опять-таки на Leetcode, поскольку многие компании любят давать на собеседованиях алгоритмические задачи
. Решал я их, естественно, на Go, поскольку это лишний шанс закрепить синтаксис в голове. И эта практика очень пригодилась, поскольку на собеседованиях попались задачи, очень близкие к тому, что я решал.
Как я уже упомянул: чего мне не хватило, так это знаний по архитектуре. Была задачка на проектирование приложения, с котоорой я справился средне. Но тут мне ещё подкинули почитать паттерны микросервисной архитектуры.
В итоге я получил оффер, пусть и на меньшую зарплату, но тоже вполне достойную. При учёте масштаба смены стека, я бы назвал это вполне успешным завершением. Всем, кто так же задумывается о смене стека — это не так сложно, как может казаться! Пробуйте и удачи вам!
А вот кратенький список, что почитать по Go: