Когда-то я рассказывал как шел к Java-программированию и прошел мимо. Теперь расскажу почему вернулся, поднял, почистил и пользуюсь. Это не еще один восторженный опус про смену специальности. Скорее логическое продолжение первой статьи с наблюдениями, которые пригодились бы мне из прошлого. Может, пригодятся и тем, кто находится на перепутье сейчас. В предыдущей серии упоминалась такая бодрая цель: Нет, дом так и не купил — пока что обзавелся только квартирой, и не сказать чтобы в центре, и вообще скорее повезло. Когда перечитал те планы 4-летней давности, посмеялся и смахнул скупую слезу от "стабильности" окружающей локации. Планы-то теперь тоже поменялись, так что мой дом просто ждет меня где-то за пределами страны возможностей. 
… если вы понимаете о чем я Сейчас я вполне состоявшийся 35-летний middle Android-разработчик в крупном и вполне хипстерском финтехе. За плечами около 3 лет профильного опыта, работа в 4 компаниях и печальный скепсис к скрамам и аджайлам. И так вышло, что уже через пару лет я проводил технические собеседования, где лишний раз убедился в правильности выводов об устройстве индустрии. Нет, не те что обещают мешок денег через пару недель. Я говорю о серьезных проектах, занимающих вас по полной чуть ли не на год и дающих массу полезных сведений, не связанных напрямую с разработкой. Обойдемся без рекламы, вы и так всех основных игроков знаете. Нужно понимать что прохождение подобных курсов — это практически полноценная работа, которая отожмет вас досуха и до состояния "поспать лучше чем кино". При этом, вы по-прежнему будете хотеть кушать, хоть иногда отдыхать, и в целом вести плюс-минус привычный образ жизни. Все это означает параллельную работу по какой-то уже известной вам специальности. И тут надо смириться с тем, что частенько вы будете не дорабатывать там, где вам уже платят деньги. Эти недоработанные часы уйдут на прохождение курсов и самостоятельное обучения. Но карма потом возьмет свое, когда получите первую работу по новой специальности: платить будут мало, а работать будете как никогда в жизни. Всегда найдется десяток (если не сотня) конкурирующих джунов (Junior developer), полиставших на 20 мануалов больше вас, и добавивших еще десяток фреймворков просто для массовки. Потому что про них скорее всего не спросят, а резюме так выглядит "жирнее".  Кроме того, джуна нанимают из соображений получить в перспективе неплохого и супер-лояльного разработчика по цене сильно ниже рынка. Да, есть риск что ничего толкового не выйдет и компания просто потеряет на этом товарище время. Но на то есть риски и дополнительный дисконт к окладу. И ни один вменяемый тимлид или руководитель разработки не будет ожидать от вас устойчивых знаний по актуальным платформам и фреймворкам. Они ищут толковых людей с устойчивыми базовыми навыками разработки, огнем в глазах и шилом где положено. Поэтому лучше потратить время на прокачку навыка самопрезентации и полировку работы с базовыми SDK выбранной платформы (в моем случае это был Android SDK). Из двух джунов выберут не того, кто лучше помнит "алгоритмы и структуры данных", а того, кто больше запомнился и произвел лучшее личное впечатление. Но если что-то нас не убило, то точно сделало сильнее. Поэтому составляем список всего, что спрашивали на собесе, и планомерно читаем. Но важно не столько запомнить ответ, сколько увидеть причинно-следственные связи, и убедиться в их понимании на примере в коде. Ажиотаж на профессию привел к тому, что джунов на рынке можно грузить лопатой и нанимать килограммами. Соответственно, конкуренция во все более-менее нормальные компании просто огромна. Помножьте это на отсутствие работы в регионах и популяризацию удаленки. Любой, кто предлагает вам оффер после первого же собеса и без дополнительных проверок/условий скорее всего планирует закрыть джуном какую-то дыру. В лучшем случае, получите часть обещанной ЗП; в худшем — будете работать на домашнем ноутбуке, а вместо зарплаты получать "бесценный опыт". Первая работа Джуна должна быть все же работой, а не практикой студента. Поэтому важно добиваться максимально приятных условий и зарплаты, особенно если вы чувствуете взаимный интерес на собеседовании. Несмотря на популярную в HR-кругах теорию о том, что меняющий работу чаще чем раз в N лет ненадежен и нежелателен, в ИТ индустрии это норма. Более того, средняя продолжительность работы разработчика в организации — около 2 лет. Значит, что кто-то работает 4 года, а кто-то — 6 месяцев. Пруфы привести не могу — это комментарии знакомых HR-специалистов, подтверждающие собственные наблюдения.
У меня трудовая книжка уже с двумя вкладышами, так что будем считать такую позицию моей личной "деформацией". Однако, периодическая смена мест работы даст вам следующие преимущества в период прокачки себя как специалиста: В общем, я советовал бы не загоняться вопросом "нужно высидеть хотя бы год, иначе не получится следующий хоп".  По моим наблюдениям, 8 из 10 собеседующих получили ваше резюме за 10 мин до встречи. И да, им тоже лень всем этим заниматься, поэтому вас встретят списком найденных в сети вопросов по Java\Android\подставь_что_актуально. А значит, эти списки вы можете нагуглить самостоятельно и обстоятельно их разобрать. Это прибавит уверенности на встрече и поможет лучше сыграть свою партию.  Те самые 2 человека, которые поведут собеседование необычно, подготовятся к нему и захотят разобраться в ваших знаниях, встретятся вам уже ближе к уровню "middle". Поэтому, лучше идти на собеседование без завышенных ожиданий, и с повторенным конспектом наиболее популярных вопросов. Да, тут пригодятся студенческие навыки по конспектированию алгоритмов сортировки, нотации "большой О", и всего вот этого. Ни в коем случае не призываю воспринимать все на веру. Это лишь мои наблюдения, которые я хотел бы сам прочесть 4 года назад. Но любое утверждение можно проверить самостоятельно, а в наше короновирусное время — даже не выходя из дома. Что я точно не стал бы делать, так это слушать советы подождать "более лучшего момента, и вообще сейчас не время". Никогда не время, а через год много чего может случиться.
Точно известно только то, что вы не станете моложе. Реактивист-разработчик Android