Меня буквально каждый день по нескольку раз спрашивают про то, а лучше куда развиваться-то? Когда вроде бы научился делать условный проект на тысячу строк, а что дальше, что изучать, куда двигать, непонятно. Как стать счастливым программистом с отличной зарплатой, который занимается увлекательными проектами?
Ок, вот я сделал ответ-шаблон.
Сермяга в том, что сперва придётся хотя бы один-два года пройти через боль и страдания на вакансии джуниора :) В начале карьеры вы не будете особо счастливым, и зп будет очень даже так себе, и проекты будут скучные и унылые. Точнее, не проекты, а ваша роль в них. Проект может быть очень интересным по искусственному интеллекту, но вы будете заниматься скорее всего какой-нибудь рутиной ETL — фильтрацией сырых данных в этом ужасном json-е, не поддерживающем типизацию, и выгрузкой в базу. При этом конечно не раз накосячите, какую-нибудь фигню в базу загоните, или кривым комитом прод уроните. И начальник будет микроменеджер, и коллеги странные и занудные, но это всё нормально.
===
Самая первая цель — это устроиться на постоянную работу программистом. Не зарплата, не интересный проект, а только попасть на официальную работу, и норм вписаться в коллектив, чтоб через полмесяца не выгнали.
2) Проработать на этой работе два-три года и развиться на ней по максимуму. Изучить и освоить по возможности всё, с чем придётся встретиться.
3) Честно для себя решить, можно ли продолжать развиваться на текущей работе: уже в плане как профессионального роста, так и зарплаты. Если можно, то возвращаемся к п. 2.
4) Если нет, то меняем работу на новую. При этом подыскиваем её и уже по более лучшим финансовым условиям, и по интересности и перспективности проектов, в каком-то индивидуальном сочетании. И на п.2.
Это всё. Это план на всю вашу текущую жизнь ))) С 9 до 18, две недели отпуска в год и так до 65 лет.
Чем больше и разностороннее вы будете развиваться в профессии, тем больше у вас будет возможностей и для выбора более интересных проектов, и для выбора более доходных вакансий. Я например в последние лет 5-7 занимался тем, что на 80% прежде всего было мне интересно. А сейчас исключительно 100% интересным.
Когда вы джун, выбора у вас в этих измерениях почти нету, а когда вы сеньор, выборов у вас будет множество.
Главная проблема в том, что почти никто не хочет тяжело трудиться в течение 10 лет до сеньора, а все хочут веселья и розовых единорогов прямо сейчас :) Вот именно в этом иллюзорном неисполнимом желании и есть корень страданий, всех мучений выбора.
===
Самый первый шаг, конечно, достаточно труден. Он наверное самый трудный из всех, поэтому я исключил из него дополнительные усложнения, связанные с зарплатой и интересом.
Причём трудность тут отнюдь не в самом устройстве на работу джуном с нуля. Я предлагаю целостную систему карьеры программиста, в которой подробно разбираются и способы попадания на первую работу, и удержания в коллективе, и переговоров по зарплате, и карьерного роста, и баланса работа-жизнь, и многого всего другого. Это синтез нескольких американских курсов и книг консультантов по ИТ-карьере, в которых собран очень большой опыт в этой сфере: как выживать в безжалостном и циничном мире капитала, где никому до тебя нету никакого дела, и царит тотальная эксплуатация человека человеком во имя золотого тельца )))
Это просто технология — делаешь правильные шаги, и получаешь результат. Что удивительно, вроде бы советы довольно очевидные когда с ними познакомишься, но контринтуитивные. Я никогда не встречал их в статьях ни в книгах на русском, и очень жалею, что сам познакомился с этим всем слишком поздно. Иначе сейчас бы у меня было бы больше на сотню тысяч долларов, которые я прошляпил за 40 лет работы программистом, из скромности всегда принимая первое же предложение по зп... Не надо так.
Трудность на первом шаге прежде всего в выборе сферы деятельности. Когда непонятно, что будет завтра, и что лучше изучать сегодня. Но вы не сможете по большому счёту ничего выбирать, пока ваш профессиональный уровень не доберётся хотя бы до хорошего миддла.
Поэтому я советую начинать с самых быстрых путей в профессию. Только мэйнстрим. Только Java, C# или Pytnon. Только веб-фреймворки, бэкенд или мобильная разработка. Ну и JavaScript и SQL как отдельный мастхэв к этому всему без исключения. Можете выбрать тут просто случайную сферу деятельности, вы всё равно не угадаете, что сработает в вашем конкретном случае. Начнёте джангу — рядом будут пролетать вкусные вакансии по спрингу. Перепрыгнете на спринг — издевательски полезут богатые вакансии по нет кору, и т. д.
Тут тоже несколько разных начальных путей, например более прагматичные курсы у коллег, когда достаточно глубоко изучаем один конкретный стек/язык/фреймворк в прикладном аспекте, тоже очень хорошо работают в плане попадания в профессию. Я закладываюсь всё же на более фундаментальный и более долгий, в чём-то даже академический, университетский подход -- стратегический. Начинаем с выработки хорошего универсального навыка программирования, чтобы потом можно было легко и быстро переходить между разными языками и платформами разработки.