Добрый день. Вряд ли моя история похожа на остальные, везде есть свои нюансы. Пишу свой рассказ, поскольку отлично помню, как сильно меня мотивировали истории трудоустройства других людей. Надеюсь и Вам, мой дорогой читатель, поможет.
  • В образовании я продвинулся довольно далеко, закончил самый большой университет Санкт-Петербурга. Правда совершенно по другой специальности: механика деформируемого твердого тела. На момент начала прохождения JavaRush учился на 3-ем курсе аспирантуры РАН (специальность - численная механика).
  • Даже и не помню, почему я решил начать заниматься именно на JavaRush. Я давно хотел всерьез заняться разработкой, но чтение "талмудов" по языкам только отбивало охоту. Надо было найти принципиально другой подход, и я опробовал первые десять уровней курса. Видимо благодаря ним я и решился на незамедлительное приобретение безлимитной подписки с участием в реальном проекте.
  • Учеба шла довольно медленно, но я не переставая двигался вперед. Прошел 31 уровень с процентом решенных задач близким к 100. На это у меня ушел ровно один год.
  • Настало время стажировки. Тестовое задание я с треском провалил. Нужно было написать небольшое web-приложение, но сделать этого я не успел, поскольку на тот момент даже не знал слов типа "Spring", "Hibernate", "Tomcat" и т.п. Ждать следующего набора на стажировку мне не хотелось, и я самостоятельно написал 5-6 web-приложений аналогичных тестовому заданию. Их довольно много в сети, есть даже пошаговые видео-мануалы.
  • Отдельным и очень важным пунктом хотелось бы выделить рассылку резюме и прохождение собеседований. В первую очередь хочу сказать, что если Вы, дорогой читатель, рассылаете меньше, чем 10-15 резюме в день, то Вы - ленивая задница. Надеюсь с этим разобрались. Также надо быть готовым к тому, что Вам придется каждый раз напоминать о себе телефонным звонком в ту фирму, куда Вы выслали резюме. Что касается собеседований - то с вероятностью, близкой к 100 процентам, вы получите какой-нибудь хардкорный тест, аналогичный тем, которыми изобилует Quizful и прочие ресурсы. Я категорически рекомендую потренироваться на таких тестах. На поиск работы у меня ушло 3 недели. За это время я прошел четыре очных собеседования и два - по скайпу. Отказов были десятки. На последнем, заочном собеседовании, меня и взяли на работу.
  • Теперь немного о работе. Я попал в довольно крупную фирму (порядка 100-120 разработчиков). Очень широкий спектр задач и разнообразных проектов (в зависимости от заказчика), начиная от frontend'а и заканчивая суровым и беспощадным backend'ом и datamining'ом. Собственно, меня сразу задействовали в etl-проектах, и я занялся загрузкой и обработкой массивов данных для целого ряда зарубежных заказчиков. Платформа и все инструменты, которые я использую, являются opensource'ными. Почти все из них написаны на Java и Groovy (если кто-то не знаком с Groovy - замечательная штука, рекомендую). Конечно, периодически приходится копаться в исходниках, ибо все это дело очень тяжеловесное, и его нужно регулярно допиливать, оптимизировать и исправлять. Работаю я около месяца. За это время мне так интенсивно "ездили по мозгам", что я проглотил объем информации, на самостоятельное усвоение которой у меня ушло бы года 2-3 по меньшей мере.
  • И последнее. Этот пункт сэкономит Вам уйму времени, когда Вы будете готовиться. За время обучения я купил несколько книг: Философия Java (Брюс Эккель), Алгоритмы: построение и анализ (Кормен, Лейзерсон, Ривест, Штайн) и еще несколько по базам данных и архитектуре компьютера. Знаете что? Забейте. Я серьезно, забейте. Я не дочитал ни одной книги до конца. Чтение книг - очень полезное занятие, но не в этом случае. Я постараюсь объяснить свою точку зрения: в данный момент Ваша цель - устроиться работать программистом. Для этого не нужны глубокие знания в программировании, на развитие которых и нацелено прочтение книг. В данный момент Вам нужен вполне определенный набор практических навыков и умений. Выковыривать их из книг - занятие крайне неблагодарное и утомительное. Гораздо лучшими помощниками в этом деле будут JavaRush или, если есть возможность - участие в каком-нибудь opensource-проекте. Что-то полезное Вам вряд ли удастся сделать, но хотя бы послушаете умные разговоры коллег по проекту - может чего-нибудь нахватаетесь. Хотя участие в проектах вовсе не обязательно. А если потребуются глубокие знания в чем-нибудь, то вы спокойно найдете их в книге и сразу же используете для своих задач. При этом нет никакой нужды глотать всю книгу целиком.
Думаю, пора закругляться. Все, кто дочитал до конца - молодцы. Желаю всем сохранять позитивный настрой и уверенно двигаться к намеченным целям.
UPDATE (18.08.2017): По поводу последнего пункта я несколько изменил свое мнение. Правда не на противоположное, а на немного другое. Суть такова: на этапе подготовки к первому месту работы зарываться в книги категорически не нужно. Однако спустя некоторое время, уже после того как я поработал какое-то время, книги стали хорошими помощниками. И я естественным образом, постепенно проглотил почти все книги, которые купил, и даже парочку сверху. Это получилось само собой. К тому же это не потребовало таких уж больших усилий, поскольку опыта работы стало больше, и материал книг уже не показался таким сложным. На данный момент список такой: 1) Брюс Эккель "Философия Java" 2) Джошуа Блох "Effective Java" 3) Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. "Алгоритмы: построение и анализ" 4) Э. Таненбаум, Т. Остин, "Архитектура компьютера" 5) Хренова туча самых разнообразных статей, большинство - зарубежных авторов. Да и вообще, возьмите за привычку каждый день читать хотябы 2-3 статьи перед сном. Сгодится любая IT-тематика, даже не сильно связанная с разработкой. Не будьте круглым конем в вакууме, расширяйте кругозорчик. 6) Ну и конечно кучу всякой документации, в основном той, которая нужна для работы. С уважением Сергей Алещенко

Продолжение