Для того, чтобы проще было понять, о чем речь, вот ссылка на мою первую статью: Как я стал программистом в 33 года с гуманитарным образованием! Мой первый пост на Пикабу
Оговорюсь сразу, я программирую на Java (не JavaScript), так что все ниже будет касаться этого языка программирования. Но, как вариант, можете за основу взять просто модель обучения.
Моё самостоятельное обучение можно грубо разделить на 2 этапа:
1. Когда я учился неправильно
2. И, когда сделал выводы, и начал все делать правильно)))
Думаю, первый пункт описывать нет смысла. Я просто смело брался за все подряд, но получалось все г..но. Так что, не вижу смысла все это описывать. Пропускаем.
Для успешного прохождения собеседования на позицию Java junior необходим: Java Core (ядро языка) знать и понимать, в том числе, уже и стримы; Spring - иметь представление, что это за фреймворк, основные концепции (бины, DI и др…); Любая база данных (запросы, джойны и т.д.) и фрейморки для работы с ними (тут хотя бы понимать, как работают); Git – с этим столкнетесь сразу. Собственно, все. Уверен, в комментариях накидают всего, но мне хватило и этого, чтобы пройти 2 собеседования.
Итак, какая же система, какие книги, видео и прочие материалы дали результат. Что просто необходимо в обучении, на что делать акценты, а что можно и пропустить. Погнали!
Что первое:
Прежде всего, я рекомендую посмотреть курс https://www.youtube.com/watch?v=SW_UCzFO7X0&list=PLawfWY... Он бесплатный и переведен. Встречается реклама. Этот курс познакомит с основами информатики. Поможет сформировать необходимые абстракции. Лучше смотреть с английскими субтитрами – английский наше все!
Английский. Так как в свое время я знал английский на отличном уровне, мне приходилось просто большую часть вспоминать. Если у вас плохой английский, или вы вообще учили другой язык, у меня для вас отличная новость! Через полгода вы начнете его знать) Вам не надо записываться на курсы. Просто заводим свой собственный словарь, и стараемся в день учить по 10-20 слов. В программировании используется технический английский и словарь не такой уж и большой. Поверьте, через полгода будете достаточно спокойно читать техническую литературу. Самое главное, проверяйте произношение – когда глагол call (звучит “кол”, что означает позвать, вызвать), произносят как “кал”, это режет ухо…
Компьютер. Для обучения пойдет не самая мощная машина, но все же: 4 ядра, 4 Гига, видео все равно, память – около 100 Гб. Слабее – просто будете мучиться при компиляции. Интернет обязателен! Для настройки нужного софта смотрим первый и третий урок https://www.youtube.com/watch?v=uXMTq81jG7Y&list=PL786bPIlqEjRDXpAKYbzpdTaOYsWyjtCX&index=1&ab_channel=УрокиJava из этого канала. В целом, канал крутой, смотреть стоит, об этом чуть дальше. В итоге, на компе у вас должна стоять Intellij IDE + JDK минимум 8-ой версии. Дополнительный софт на ваше усмотрение. Может чуть позже я напишу, чем я пользуюсь
Что второе:
Мы начинаем учиться и писать код. Делаем это 50 на 50. К примеру, у вас есть 2 часа в день – значит в любом случает час уйдет на написание кода. Руку необходимо набивать. В самом начале, просто пишите то, что делают на видео (ссылки дальше). А час на теорию. И тут важно! Мы смотрим 2 разных видео по одной и той же теме + читаем главу из книги. Такая вот 3D модель.
Как делаем:
Берем книгу "Java. Руководство для начинающих", Герберт Шилдт. Её можно скачать бесплатно. Читаем первую главу, потом смотрим разных видео по этой главе. И так последовательно читаем всю книгу. Самое важное, все понять. Если что-то непонятно – гуглите! Откуда берем видео:
https://www.youtube.com/watch?v=uXMTq81jG7Y&list=PL786bPIlqEjRDXpAKYbzpdTaOYsWyjtCX&index=1&ab_channel=УрокиJava (415 уроков)
https://www.youtube.com/watch?v=ziOQ8wkmnSE&list=PLAma_m...
К примеру, вторая глава называется: Знакомство с типами данных. Смотрим параллельно видео с типами данных. И так далее
Отдельно хочу сказать про курс Головача:
https://habr.com/ru/company/golovachcourses/blog/215275/ - берем из раздела GolovachCourses.
Сразу скажи, может показаться непростым, но его освоить стоит. В иерархии я думаю разберетесь. Курс очень крутой! До сих пор порой пересматриваю.
По Spring читаем Spring in Action. Так же смотрите разного рода ролики, гуглятся легко. Этой книги вам будет достаточно.
Git начинаем осваивать сразу! Статей и видео очень много, в том числе, в ссылках, которые я указал. Стараемся научиться пользоваться гитом как из консоли, так и средствами среды разработки (которая IntelliJ IDE)
С базами данных проходим уроки https://www.sql-ex.ru/ Курс бесплатный, если пройдёте все уроки –представление о работе с базами получите. Больше даже читать не вижу смысла. Просто отдельно выделите неделю на это.
И самое главное! ПИШЕМ ПОСТОЯННО КОД:
Прописываем каждый пример из книги, из видео, что показывают. Через пару недель можете начать писать что-то интересное:
https://www.youtube.com/c/letsCodeDru/playlists например взять отсюда уроки по Spring boot MVC (Sweater) – напишите прикольное приложение! Автор очень крут.
По этой ссылке список книг по Java, которые можно взять как альтернативу https://proglib.io/p/java-books-2019 Хорошо будет, если вы прочитаете хотя бы три из списка.
Стоит немного познакомится с паттернами проектирования. Часто спросят написать какой-нибудь, но, если не справитесь – ничего страшного. Но, знать, что это и для чего нужны, стоит! https://refactoring.guru/ru/design-patterns - по этой ссылке сможете найти толковое объяснение в очень доходчивой форме. Так же можно посмотреть и по видео
Будет круто, если в конце освоите книгу https://www.academia.edu/36538272/_JAVA_OCA_Oracle_Certified... Но читать рекомендую только под конец обучения. Тем более, что она на английском. Но если вы её освоите – значит вы освоили Java!
И самое главное! https://jsehelper.blogspot.com/2016/01/blog-post_59.html - проверяем себя по списку вопросов ) На все вопросы у вас должны быть не заученные, а осмысленные ответы. Как только с вопросами покончите – сразу по собеседованиям!
Собеседования:
Я не зря написал это слово во множественном числе. Чем больше пройдете собеседований – тем лучше. К ним вы будете готовиться, все повторять, вспоминать, в итоге качество знаний только возрастет. Если что-то сказали неправильно на собеседовании, спросите верный ответ. Если отказали, спросите почему. В резюме ничего приписывать не стоит. Пишите, как есть. Поверьте, много компаний берут джунов с последующим дополнительным обучением или адаптацией. У я уверен, свою работу вы найдете!
Итог:
Все, что я указал выше – является бесплатным! Именно так учился я сам. Если есть желание и возможность получить платные курсы – выбор ваш. Уверен, в них есть свои плюсы: вас будут проверять, есть у кого спросить и т.д. Какие курсы выбрать я не знаю, тут только на свой страх и риск.
Первым делом учим Java core. Базы, паттерны, Spring – все постарайтесь сместить в конец обучения. Так будет проще.
Постарайтесь найти среди знакомых кого-нибудь, кто работает программистом. Это будет большое подспорье!
Если что-то не получается, и работа программы завершается с ошибкой – гуглим! В 99% случаев сама программа в консоли вам напишет в чем проблема. Смело смотрим англоязычный сайт https://stackoverflow.com/ - пользуемся переводчиком. И у вас все заработает!
Если что еще придет в голову – напишу.