Говорят, людям без технического образования в программировании не место. Пугают, что после 30 лет и думать нечего о смене профессии. Но что, если только в 30 стало понятно, что весь предыдущий багаж знаний и опыт привели "не туда"?

На самом деле все не так страшно. Программистом может стать кто угодно и в любом возрасте. Вот история нашего студента (PielsLie) из Санкт-Петербурга, который учился на гуманитарном и 10 лет проработал в менеджменте и продажах.

На момент написания истории успеха ему было 32. Примерно за 5 месяцев он дошел до 35 уровня на JavaRush, 2-3 месяца ушло на самообразование и написание проектов, еще несколько — на поиск работы, прежде чем он получил хороший оффер и устроился разработчиком. Оригинал истории — по ссылке, а здесь — самое важное из нее.

ЭТАП 1. Обучение

К основному источнику обучения выдвигались четкие требования: структурное изложение материала по Java Core, много практики и большое комьюнити:

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

JavaRush подошел по всем пунктам как главная площадка для обучения, а усиливаться выпускник советует чтением книг: "тот же Шилдт лучше всего заходит "внахлёст" на изучаемую тему, и зачастую раскрывает некоторые моменты".

Советы для тех, кто заходит в изучение Java с чистого листа

  1. Всем с нуля тяжело, до конца курса доходит не такой уж большой процент студентов. Ваша задача — попасть в их число.
  2. Наибольший интерес появляется через месяц-два, когда задания становятся посложнее и поинтереснее. Перетерпите.
  3. Главное — еженедельный прогресс. После двух недель отдыха возвращаться уже сложно, а писать каждый день несколько месяцев подряд не каждый сможет.

Дайте себе норму в часах на неделю: например, 15. Вы можете кодить по 1.5 часа каждый будний день и еще 3-4 часа на обоих выходных, или можете отдохнуть пару вечеров, но "выходная норма" увеличится. Таким образом, график получится гибким, но регулярным. Конечно, потом можно будет мерить работу задачами и проектами, но на уровне синтаксиса и ядра сойдут и часы.

В целом на прохождение курса (до доступа к стажировке) ушло около 5 месяцев, включая отпуски и краткие перерывы, и это при стандартной пятидневке, которая оставляла свободными только выходные и будние вечера с 22 до 00.

Так что при более свободном графике или более жёстком учебном режиме можно справиться существенно раньше.

ЭТАП 2. Cамообразование

Достигнув 35 уровня, несколько месяцев самостоятельно разбирался со Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, РСУБД, осваивал SQL и собирал всё это в единое целое. Через полгода у студента были проекты, на которых он получил практический опыт использования "взрослых" фреймворков и профиль на Github, который можно было показывать по запросу потенциального работодателя.

Как составить индивидуальный план развития

  1. Пробежаться по вакансиям Junior/Middle Java Developer (или другого интересующего направления) и посмотреть, какие именно технологии и фреймворки указывают чаще всего.
  2. Выписать, придумать под них ТЗ, поставить себе сроки на реализацию.

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

ЭТАП 3. Поиск работы

Этот этап был самым долгим и не таким гладким, как два предыдущие.

Честная отправка резюме новичка

За 2-3 месяца после выполнения домашних проектов студент отправил около 30 откликов на Junior/Trainee вакансии (через HH, LinkedIn, кадровые агентства), указав в резюме знакомый стек технологий, некоторые софт скиллы и поскромничав с опытом.

Итог — два звонка, один из которых сразу закончился на pre-intermediate английском (так что учите и английский тоже). Еще 2 компании прислали ТЗ, "встреча" была одна, с результатом "мы вам позвоним".

Попытка попасть на стажировку

Возможно, опыт удастся получить на неоплачиваемых или условно-оплачиваемых стажировках и как-то закрепиться в большой IT-компании? Это хороший способ, но, как оказалось, не для всех. Автор нашей истории сделал ТЗ, но не прошёл дальше финального собеседования.

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

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

Знакомый дал пару рекомендаций (в каком-то смысле, немного "читерских", как считает автор):

  1. Любым способом обеспечь себе в резюме 6+ месяцев коммерческого опыта: стажировки, выпускные проекты, фриланс, удалёнка — всё, что угодно. Это сильно поможет на этапе первичного отсева резюме HR-ом;
  2. Убрать из резюме слово Junior и ожидаемую зарплату; оставить просто Java Developer, зарплату обсуждать индивидуально с каждой компанией;
  3. Стараться, чтобы HR называла "вилку" предлагаемой ЗП раньше, чем вы назовете свои ожидания. Если компания предлагает 1-1.5 тысячи долларов, а вы со старта готовы идти на 500, часть подборщиков будет относиться к вам пренебрежительно.
  4. Откликаться на все вакансии, подходящие по стеку, даже если требуется коммерческий опыт 1-3 года.

И все получилось.

Первый оффер

После того, как автор истории последовал рекомендациям, ситуация с поиском значительно улучшилась.

Во-первых, из примерно 12 новых откликов половина почти сразу закончилась либо встречей, либо интервью по скайпу, либо выдачей ТЗ.

Во-вторых, HR-ы начали писать по собственной инициативе — в мессенджеры, в почту, в линкедин.

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

Как итог — одно предложение на джуна, одно — на миддла с испытательным сроком. Всего поиски заняли два месяца.

Нельзя много-много писать на Java, потом долго-долго искать работу, и в итоге ни к чему не прийти

Вода камень точит.Как пишет автор истории, "если уж 30-летний гуманитарий вытянул, у вас тоже получится. Главное — не бояться первых звонков, ТЗ и интервью. Каждый "провал" может стать шансом узнать что-то новое о себе и подтянуть недостающие знания. И с каждым разом чувствовать себя увереннее".