Всем привет! Меня зовут Дима. Это моя первая статья в IT, поэтому не судите строго. Она будет полезна тем, кто только начал вливаться в ряды программистов, но боится потеряться в этом необъятном море информации.

Предыстория

Представьте, что вам 26 лет, вас сократили в сотовой компании, а ваш генеральный директор сбежал в Европу, потому что его мошеннические действия вынуждают его жить за пределами страны. Вот таким было моё 31 декабря 2016 года. Я мог бы найти похожую работу в смежной области и даже были предложения, но... сделало бы это меня счастливым? Вы когда-нибудь спрашивали себя, для чего вы работаете? Кем действительно вы бы хотели стать? После сокращения я два месяца искал себя... и стал другим человеком. Я понял, что могу быть тем, кем захочу: я могу стать доктором, могу стать плотником, бизнесменом, что это всё вопрос времени, главное — делать больше, чем другие, и я всего достигну. В итоге я стал программистом! Уже год я успешно работаю в IT-компании, чему несказанно рад. Я люблю учиться, поэтому потратил тонны часов на изучение Java, web-технологий и подготовил выжимку того, что поможет вам быстро вникнуть в мир Java.

Первый этап: Просветление

Вам нужно понимать, что программирование — это нелегко. И то, что в первое время у вас ничего не получается — это нормально. На старте я два месяца изучал "Питон", и когда видел циклы, они казались мне дико сложной штукой. Самое важное — это основы, не разобравшись в них, вы не сможете быстро изучить новые технологии. Я говорю об условиях, циклах, работе с массивами, ООП и тд.

Второй этап: На чем кодить?

Вам понадобится среда разработки. В мире Java их существует три:
  1. IDEA (бесплатная и платная)
  2. NetBeans (бесплатная)
  3. Eclipse (бесплатная)
Я попробовал все три.
  1. NetBeans — древняя и некрасивая, сейчас вообще находится в инкубаторе apache, поэтому непонятно, будет ли новый релиз.
  2. Eclipse популярна за бугром, потому что она бесплатная и немного симпатичней Netbeans.
  3. IDEA — это доминирующая среда разработки, как минимум у нас в стране. Отличие платной версии от бесплатной только в работе с фреймворками (Spring), которые вам пока не нужны. Тем более делают ее русские ребята из Питера. Поддержим отечественного производителя!

Третий этап: С чего начать изучение?

Во-первых, по старинке, читая книги:
  1. Head First, "Изучаем Java"
  2. Г. Шилдт, "Java 8. Руководство для начинающих"
  3. Кей Хорстманн, "Java. Библиотека профессионала"
  4. Брюс Екел, "Философия Java"
Я их читал по такому принципу: не понял в одной книге — начал читать в другой, так как одну и ту же информацию авторы преподносят по-разному. Больше всего мне понравилась книга Head First "Изучаем Java": там много зарисовок, после каждой главы есть тестирование. Во-вторых, смотря видеоуроки на youtube:
  1. alishev
  2. Уроки java
  3. Гоша Дударь
Этот список мог бы быть в разы больше, но эти каналы самые информативные. Alishev — это лучший видеокурс на русском языке по картинке, тембру и материалу. Также у него есть платный курс на udemy, я его купил одним из первых. Уроки java — это очень содержательный курс, там уже роликов 500, но качество страдает. Такое ощущение, что парень, прочитав очередную главу книги, попрактиковался немного, а потом записал урок. Гоша Дударь — это галопом по Европе. Его нужно смотреть, если вы уже знаете другие языки и хотите просто ознакомиться с синтаксисом языка. Важное замечание: если вы посмотрели какой-то видеокурс и ничего не поняли, вам не нравится картинка, голос — бросайте это дело, не насилуйте себя: ищите что-то лучше, что подойдёт именно вам. В-третьих, практикуясь интерактивно:
  1. JavaRush
  2. Stepik
  3. Hackerranck
  4. CodeAcademy
Лучший вариант — это JavaRush. Я проходил его 2 раза. В первый раз ничего не понимал, подглядывал ответы. Во второй раз прорабатывал более осознанно, практикуя новые возможности языка. Полное понимание ООП, работы с массивами у меня пришли только после него. Stepik — это крутые курсы. Есть и видеообучение и интерактивчик. Все бесплатно, на чем живут, не понимаю=) Остальные — это интерактивные курсы на английском языке. Если язык знаешь, то можешь попробовать свои силы и там. По платным онлайн-курсам: Я посмотрел разные курсы, которые нашел на просторах интернета, и скажу честно, что уровень вебинаров хуже, чем стрим геймера на твиче. Картинка плохая, звук отвратительный, преподаватель скучный. В общем я понял, что у оратора должно быть призвание доносить информацию, а если его нет, то есть большая вероятность, что вы умрете от скуки. Я надеюсь данная информация поможет вам сэкономить время и силы. Если моя статья оказалась для вас полезной, пишите, могу продолжить. Темы могут быть такими:
  1. История: сколько я учился, как устроился на работу, через какие сложности прошел.
  2. С чего начать в веб-разработке в мире Java.
  3. Виды аутентификации, авторизации.