История о том, как я сменил инженерную специальность на IT.
Порядка двух лет назад, я принял решение поменять специализацию и стать программистом. До этого работал инженером в сфере никак не связанной с IT. Из опыта программирования был только Paskal в далеком школьном прошлом. Хорошим стартовым преимуществом было знание английского на достаточно высоком уровне. По совету одного знакомого, выбор языка программирования сразу пал на Java, как на наиболее востребованный на рынке на тот момент. Начал я с чтения книг и просмотра туториалов на Ютубе. Потом случайно наткнулся на проект Javarush и порядка полгода (с перерывами) здесь занимался.
Паралельно с Javarush изучал прочие интересующие темы/технологии (типа SQL, HTML/CSS), на базовом уровне знакомился с синтаксисом С++/С#. За мои успехи на Javarush администрация JR даже предоставила мне возможность бесплатно поучавствовать в проекте (за что я им очень благодарен!), но, к сожалению, я не смог выдержать тот темп изучения, который задавал Хуберт, и вынужден был покинуть проект.
Чуть позже я поступил на курсы программирования, где проучился 5 месяцев. Там я познакомился с принципами построения Java EE приложений, базовым набором EE фрейморков и написал свой первый проект. Параллельно шлифовал знания по различным технологиям на разных ресурсах и периодически «возвращался» на Javarush.
Сразу после окончания курсов начал искать работу (на поиски ушло полгода, но это уже отдельная долгая история:)).
Мое ИМХО по поводу JavaRush:
Плюсы: главным плюсом для меня изначально было наличие задач – так как для начинающего программиста проблема всегда «на чем бы потренироваться». Причем качество задач довольно высокое в плане их технической разносторонности и разнообразия (это я как человек, занимавшийся на различных ресурсах, говорю). Также понравились лекции своей доступностью и содержательностью (была бы возможность - я бы лекции продолжал читать и сейчас). Понравилось, что сразу за теоретическим материалом идет закрепление на практике. Хорошая подборка дополнительных материалов, причем из различных источников, что очень круто для новичка – сразу открываешь для себя много полезных и содержательных ресурсов. Учиться было интересно, и в целом я доволен тем прогрессом, который получил здесь за проведенное время.
Минусы: не очень удобная система проверки задач без фидбека. Поначалу это было не особо заметно, но на более высоких уровнях стал ловить себя на мысли, что зачастую 90% времени решения задачи уходит не на составление алгоритма решения/изучение темы, а на топтание по кругу : «какой же тесткейс проваливает мое решение». Особенно сильно это стало заметно на больших задачах. С одной стороны, это вроде как и челенж, но потом все же понимаешь, что время можно потратить с большей пользой.
Еще не понравилось, что ближе к 30-му уровню для того, чтобы продолжать читать лекции, нужно решить практически все задачи ничего не пропуская (вкупе с предыдущей «проблемой» из-за этого процесс обучения сильно замедляется/останавливается).
Отдельно хотелось бы выделить реальный проект – обязательно поучаствуйте в нем, чем раньше – тем лучше. Изучения Java Core – это круто, но деньги программистам платят за знание Enterprise технологий. Если не хотите/не получается участвовать в проекте на JR, ищите другие возможности – курсы программирования или начинайте что-то простенькое писать сами (хотя самому без помощи поначалу будет трудновато).
Вот моя краткая история обучения, приятного всем кодинга :).

ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Т.е. что я имею ввиду, JavaRush дает очень неплохой старт, при должном уровне «вливания» в курс дела, от 4 до 5 месяцев, это если ты полный 0. Не бывает такого мне не дано, бывает недостаток мотивации. Потом после JavaRush, просто необходимы курсы для дальнейшего трудоустройства. Неважно какие SoftServe, Luxoft, Epam и т.д. В противном случае, чтобы сразу прийти на позицию Junior, это нужно чтобы компании просто здесь и сейчас нужен был программист, не важно лучший из лучших, худший из худших, просто нужен, и тебя берут, такое бывает не часто, но бывает. Но в таком случает это не Junior, а Student или Trainee.
Лично я докачался до 25 уровня, проблемы с лекциями с 26 по 38 решил благодаря людям, которые не читают кодекс чести JavaRush.
Сейчас осваиваю Swing и JDBC (в планах Servlet). Пишу приложение «Телефонная книга», на том же Swing, данные буду брать/получать/изменять из/в БД «MySQL» с помощью JDBC.
А вообще если коротко про трудоустройство: в какой-то степени это лотерея. Знаю людей с не очень глубокими начальными знаниями, которые устраивались быстро, а некоторые с хорошими знаниями искали работу реально долго. Там много факторов (я потому и не стал про трудоустройство писать, потому что двумя страницами боюсь не обойтись:)), хотя знания/опыт безусловно играют ключевую роль.
Удачи в написании приложения!:)
Можете попробовать свои силы в фиксе багов для Wildfly или Hibernate, это и open source и комерческий проект. Недавно вышла 9ая офицальная и 10ая бета сервера. Повылазило много багов за которые можно взятся.
Из плюсов если хорошо знаете JEE спецификации можете получить опыт работы и добавить в резюме работу для JBOSS. К тому же JBOSS довольно часто принимает в команду людей которые вносят в клад в развитие их продуктов.
Из минусов. Необходимо очень приличиное знание JEE EJB/CDI/JPA и Java Concurency как минимум. Непросто писать фиксы для багов если не работать каждый день с данным сервером.
Думаю большинству здесь не по силам править баги в hibernate.
Но если такое получится, это будет супер плюс в резюме.