Один из самых популярных вопросов среди тех, кто начинает учить Java — “За какое время можно научиться программировать?” Дать однозначный ответ на этот вопрос сложно. Сроки обучения зависят от многих факторов: предыдущего опыта работы и образования, интенсивности занятий, целей обучения, прочего. Но мы решили приблизиться к тому, чтобы определить оптимальный отрезок времени на обучение. Для этого в марте мы провели опрос среди наших студентов с минимум 30-м уровнем на JavaRush и спросили, как они изучали программирование на Java и сколько времени для этого понадобилось.

1. Портрет студента: стартовый уровень знаний, сфера деятельности

В Java-программирование можно прийти практически из любой сферы: это подтверждают результаты опроса. Для начала мы решили узнать, чем наши выпускники занимались до изучения Java. Практически 40% пользователей, которые начали обучение на JavaRush, изучали программирование в ВУЗе. Вдвое меньше — знали по крайней мере один язык программирования (не Java), еще меньше — были знакомы с основами Java. Конечно, это хорошая основа для старта. Но не обязательная. Примерно треть студентов осваивали Java с чистого листа. Среди студентов с техническим бэкграундом больше всего сисадминов, программистов 1С, веб-разработчиков, инженеров. Среди “свитчеров” разбег большой — от преподавателей до специалистов по продажам, маркетингу, экономистов, спортсменов. Давайте посмотрим теперь, сколько времени в среднем может понадобиться на обучение и поиск работы Java-джуном.

2. Время на обучение и поиск работы

Минимум — 3 месяца, максимум — несколько лет уходит на изучение программирования на Java. Интересно, что даже те, кто в общей сложности потратил больше 2 лет (2,5, 3 или 4 года) отметили, что справились бы вдвое быстрее, если бы не “растягивали” обучение. В среднем на поиск работы уходит от месяца до трех. Минимум — неделя. Максимум — год.

3. Планирование обучения

В обучении всегда работает простая зависимость: чем выше интенсивность занятий и меньше количество перерывов и “пропусков”, тем быстрее можно освоить предмет. В особенности это касается программирования, где практика играет большую роль, чем теоретические занятия. Мы спросили у выпускников JavaRush, сколько времени они выделяли на обучение, и узнали, что в среднем они занимались по 1-3 часа в день, часто совмещая обучение с основной работой. При этом почти треть выпускников обучалась без перерывов, а остальные делали одну или несколько пауз на значительное время. Само собой, чем больше времени уделять учебе и чем меньше «привалов» устраивать, тем больше шансов освоить Java-программирование и найти работу в течение 6-12 месяцев. А если очень постараться, то и в течение 3-6 месяцев. Как ответил один из участников опроса: «С самого начала у меня был какой-то план, и я его не придерживался». Нужно планировать свое обучение или нет? Большинство считает, что да. План обычно включает в себя список тем и инструментов, которые необходимо освоить, примерные сроки обучения и список ресурсов (онлайн-курсов, книг, другое), которые нужны для этих целей. 73% ответили, что у них был предварительный план. Из тех, кто планировал обучение, две трети выпускников обучались на нескольких ресурсах, почти треть — только на JavaRush.

4. Источники обучения

Что учить, как учить, а еще — где учить? В идеале, нужно комбинировать несколько источников. Ниже — список обучающих источников в порядке упоминаемости нашими выпускниками. Учить программирование только по книгам — бессмысленно. Но совсем без них — тоже не получится :) Они хорошо дополнят практику программирования. Среди лучших книг для новичков студенты и выпускники JavaRush назвали:
  • Head First Java
  • Effective Java
  • Философия Java
  • Структуры данных и алгоритмы в Java
  • Чистый код
  • Java 8. Руководство для начинающих
  • Паттерны проектирования
  • Java. Библиотека профессионала

Мини-итог по планированию обучения

Чтобы обучение было эффективным, выпускники и опытные программисты рекомендуют:
  • проходить JavaRush
  • смотреть видеокурсы (Головач и другие)
  • читать туториалы (Tutorialspoint, Baeldung, Oracle)
  • проходить сертификацию Oracle (Associate, Professional — OCA, OCP)
  • практиковаться на Github
  • читать Stackoverflow, Хабр и другие ресурсы
  • проходить стажировку JavaRush, местных IT-компаний
Тем, кто только начинает обучение, будет кстати этот план: Как начать программировать

5. Рекомендации тем, кто ищет работу в сфере Java-программирования

Пожалуй, самая популярная фраза в советах от тех, кто уже закончил обучение и нашел работу — «не сдаваться». Легко ли учиться? Далеко не всегда. Но это точно стоит потраченных усилий :)

Топ рекомендаций от опытных программистов

Есть несколько навыков, которые вам точно пригодятся, когда вы устроитесь на работу. Поэтому если вы приближаетесь к этому моменту, рекомендуют:
  • внимательно смотреть на предупреждения и советы InteliJ IDEA: гуглить ошибки, проблемы и задачи
  • уделить внимание базам данных, алгоритмам и структурам данных
  • изучить паттерны проектирования
  • попробовать с нуля написать сложную программу: например, почтовый клиент, чат-бот или игру
Немного позднее — освоить основные инструменты (Git, Maven), а также основы Unit Testing, Spring, Spring Boot, Hibernate.

6. Мотивационные советы напоследок

«Главное держать темп, не делать больших перерывов и никогда не стоять на месте. Каждый день нужно совершать хотя бы маленький шажок к своей цели». «Если кажется, что решение слишком простое, скорее всего, это правильное решение. Не нужно усложнять». «Ведите дневник, заведите проект свой, не делайте больших перерывов, учите инглиш, приготовьтесь к чувству, что вы самый тупой человек на земле. Для меня это было больно, долго, унизительно. И думаю, потому немногие доходят до конца и потом получают человеческие деньги». «Если это девушка: не выходить замуж и не рожать детей: очень мешает учебе и работе :))» «Не бояться показывать код и адекватно воспринимать критику.» «Даже если вы чувствуете, что программирование — это не ваше, все равно постарайтесь дойти своими силами до 30 уровня на JavaRush: это научит вас думать».

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

Упорство и мотивация — то, без чего точно не обойтись. Если идти по поставленному плану, соблюдать баланс теории и практики, заниматься ежедневно минимум 1-3 часа, реально изучить Java-программирование до уровня, который позволит найти работу, за 6-12 месяцев. Также важно оставаться частью комьюнити и следить за требованиями компаний, в которых вам бы хотелось работать. Редакция JavaRush говорит огромное «спасибо» всем, кто поучаствовал в опросе. Если у вас есть другие темы, о которых вам было бы интересно почитать или узнать мнение большинства — пишите в комментариях :) Сделаем.
Что еще почитать:

Что учить, где учить, как учить?

5 советов, как повысить свои шансы найти работу

Как начать программировать