Как выучить Java, если вам уже за 30…

Артем Панасюк

40 уровень,

Досье

  • Кто: Артем Панасюк
  • Кем работал: безработный, ранее — системный администратор и руководитель отдела эксплуатации городской интернет-сети
  • Место жительства: Ульяновск, Россия
  • Возраст на момент старта обучения Java: 35
  • Первая работа программистом: Через 9 месяцев после старта учёбы
  • Оригинал истории успеха

Цель поставлена

Я поставил себе цель выучить Java за 1 год. Сложность выполнения этой задачи усугублялась наличием двух детей (0.5 года и 4 года), отсутствием работы на тот момент, и, возрастом. На тот момент мне было 35, и это казалось мне главной проблемой.

Для максимально правдивой картины скажу, что были и плюсы — бекграунд в виде диплома физика, опыт работы сисадмином, опыт создания сайтов (HTML+CSS), а также 5 лет работы в крупной телекоммуникационной компании (руководитель отдела эксплуатации городской интернет-сети). Тем не менее непосредственно опыта программирования, кроме Basic в школе и TurboPascal в университете, по сути не было.

Учёба и собеседование

Вдохновился я, во-первых, потерей работы, во-вторых — блогом одного «коллеги по несчастью». Примерно в конце января 2015 набрел на JavaRush — и понеслось…

Когда начал заниматься, купил «Философия Java» Брюса Эккеля. К апрелю я прошёл первые 10 уровней и решил почти все задачи. Мне повезло: как раз тогда на JavaRush началась акция, и я купил подписку.

К августу я прошёл примерно 23-25 уровней лекций и где-то 20 уровней задач. На две недели я ушёл в отпуск и получил приглашение на собеседование в единственную крупную компанию в моем регионе.

Примерный список вопросов я проработал заранее, и это принесло плоды: техническое собеседование я прошел нормально. Это заняло примерно 40 минут общения по Skype.

Вторым этапом было написание тестового задания. Один только список технологий, которые мне нужно было использовать, поверг меня в ужас: JSF + Primefaces, Hibernate, Java7, PostgreSQL, Glassfish… А среди дополнительных, вроде как «необязательных», технологий числились JUnit и Maven. Мне нужно было написать типичное CRUD веб-приложение «Онлайн-библиотека» с возможностью авторизации и управления ролями пользователей.

На тот момент у меня не было внятного представления о Java EE, но не отступать же в последний момент! За 2 недели я таки соорудил нечто, как мне казалось, вполне отвечающее поставленным требованием (кроме юнит-тестов). К моему удивлению, практически в тот же день, как я отослал задание на проверку, мне перезвонили и сделали предложение по работе. Так я стал Java Junior Developer.

Год спустя

На данный момент (март 2016 года) испытательный срок уже позади, как и множество волнений и сомнений. Но сейчас, спустя год, могу уверенно сказать, что ни разу не пожалел ни потраченных денег, ни времени, ни усилий. Чего и вам желаю!

И еще почти год спустя  : )

Моя история освоения высот Java продолжается и сегодня (декабрь 2016 года) продолжается. Вот что я сделал за год:

Я успешно прошёл три месяца испытательного срока к началу 2016 года. На самом деле это был ежедневный ужас, особенно после затирания чьего-то чужого коммита или внезапных конфликтов при ребайзе в Git.

  1. Я получил место Java-разработчика в компании «Симбирсофт» (www.simbirsoft.com). Компания разрабатывает ПО на заказ и помогает в подборе команды для разработки. Для моего первого проекта были нужны Java 8, JavaEE, SSO, Hibernate, JSF, PrimeFaces, Liquibase, Postgres, Maven. В качестве сервера приложений использовали Wildfly9. После пары месяцев перешел на следующий проект.
  2. В течение 4-5 месяцев был единственным разработчиком backend-части микросервиса. На основе пула технологий, которые я перечислил выше, «запилил» с нуля новое приложение. Его особенность в том, что написанный Frontend-разработчиком (AngularJs) виджет «общался» с Backend по технологии REST.
  3. В октябре 2016 года я успешно сдал экзамен Oracle Java 8 OCA.
  4. После интенсивной подготовки к интервью получил место разработчика на внешнем проекте. Стек примерно такой: Java 6, Spring, Hibernate, JSP, Liquibase, OracleDB, Maven. Здесь я сейчас и работаю.
  5. Спектр задач довольно широкий — от написания скрипта по обновлению структуры БД (Oracle) и изменения верстки JSP для отображения новых полей, до создания новых сущностей и создания DTO для «протаскивания» новых полей на отображение со слоя DAO.

Послесловие

Хочу поблагодарить команду проекта за то, что помогла заложить основательный практический фундамент для моей карьеры. Этот фундамент помог мне в короткие сроки пройти сложный и извилистый путь от «джуниора» до «просто» разработчика.

И в пути от одной точки до другой я неоднократно возвращался к курсу, чтобы еще раз пролистать ту или иную тему.

В освоении технологий помогло то, что во второй половине курса было много лекций, в которых постоянно вдалбливалось, что нужно пользоваться Google и любыми источниками информации (книгами, видеоуроками). Умение «выжимать» информацию —ключевой навык, чтобы профессионально расти в сфере разработки ПО.

P.S.: Несмотря на то, что сам устроился работать после 20 с чем-то уровней курса, если у вас есть такая возможность — не делайте этого! Ибо 3 месяца испытательного срока оказались для меня одним большим стрессом.

Первым делом пришлось выучить Git за пару выходных, и постоянно приходилось ликвидировать пробелы в знаниях. В связи с этим проходить курс JavaRush продолжал до победного. Так что пройти курс полностью, а потом устроиться на работу — идея куда более здравая. Но мой путь был более извилистым.