Java

ОБЪЯВЛЕНИЯ

Занятия по ВС в 15:00

Мой ресурс

Все конспекты, записи и презентации я буду вести в Notion. Присоединяйтесь, исправляйте и пишите в случае затруднений (нажмите на картинку слева для перехода на сайт)

Почему Java?

Java не сходит с топов языков программирования под десяток лет. На этом языке пишут веб разработку, Android разработку, банковские системы, промышленные программы. Одним из преимуществ Java является его масштабируемость, поэтому работая на этом языке, Вы чаще всего будет писать код для крупных и комплексных приложений. Java создавался как более дружелюбный для новичков язык, в сравнении с C/C++; тем, кто работал с этими языками будет намного проще адептироваться.

Чем мы будем заниматься?

В курсе мы изучим основы Java, после чего приступим к backend (Java EE) разработке. В течение курса будем стараться использовать и изучать стандартные библиотеки, не прибегая к помощи популярных фреймворков (для самостоятельного изучения Spring+Hibernate, ссылка в конце), параллельно затрагивая такие темы, как git, SQL, maven и др. К концу у нас должен получиться полноценный проект с регистрацией/авторизацией пользователей на локальном сервере (ссылка с инструкцией для публикации и хостинга в конце)

Для кого предназначен данный курс?

Данный курс предназначен для тех, кто хочет изучить Java. В этом курсе, в конце мы будем разбирать Enterprise или веб разработку, однако те, кто не заинтересован в этом(к примеру, Android разработчики), могут прислать свой собственный небольшой проект.

Как проводится курс?

Курс рассчитан на 10 пар в конференции Zoom (записи будут). После каждой пары публикуется конспект в Notion. В течение курса будут небольшие домашние задания и в конце сдаётся проект. Описание проекта и подробного плана обучения см. ниже.

Подробный план

Введение:

  • История и назначение Java

  • Области использования

  • Термины JVM, JDK, JRE

  • Устройство и работа JVM

  • Особенности (exceptions, annotations, etc.)

  • Collections (очень поверхностно)

  • Тесты (junit)

  • Настройка вспомогательных систем (Intellij IDEA, maven, git)

ООП:

  • Классы и Объекты

  • Суть ООП

  • Конструкторы

  • Парадигмы

  • Abstract, final classes; interfaces

Back-end:

  • http/https протокол

  • Spring Boot (пишем простое CRUD приложение)

  • ORM (hibernte)

  • html/css + JS (совсем базовый)

В конце рассмотрим детальный план для дальнейшего профессионального развития (на основе вакансий на hh.ru). Если останется время, остановимся на основе чего работают все фреймворки - Reflection API

Сдача проекта

В конце последует сдача проектов: в течение курса предлагается написать небольшое приложение, работающее по протоколу http/https и корреткно отвечающее на get и post запросы (см. тему с протоколами). Традиционно пишут сервис с регистрацией/авторизацией, где после успешного входа перенаправляют на домашнюю страницу. Однако реализация собственных идей только приветствуется.

Ссылки и ресурсы

Снизу привожу множество ресурсов, которые сам частенько использую. Для удобства разместил в двух форматах: строгий (текстовый) и с иллюстрациями (при нажатии на картинку, перекидывает на сам ресурс)

Ссылка и литература (текстово)

Дополнения к основам курса:

  • Несложная книга для изучения ООП (упражнения из книги устарели/не особо полезны, но суть ООП объясняется прекрасно): Head First Java

  • Java Vision. Структурированная информация в плейлистах: https://www.youtube.com/channel/UChs3Aql8iq3MD1UD303_bMg/playlists?view=1&sort=dd&shelf_id=2

  • Глубокий Java SE (тратить больше месяца на это не стоит): https://javarush.ru/

  • Сервисы для укрепления своих алгоритмических навыков: a) https://www.codewars.com/ б)https://www.hackerrank.com/

  • Упражнения, проверенные годами, для усвоения SQL команд: https://www.sql-ex.ru/

Люди:

  • Сергей Немчинский. Опытный программист с огромным стажем, отвечает на многие вопросы в своих коротких видео (также выпустил несколько плейлистов с лекциями, из них советую clean code). Очень полезно при изучении рынка: https://www.youtube.com/user/pro100fox2

  • Winderton. Качественный канал программиста, что начал свой путь с Java и постепенно становился Computer Science специалистом: https://www.youtube.com/watch?v=8kmXmGvc9SA&list=PLR4wcBxrUGPClY1DtRFx6xM3RXe208RL6&index=8

  • Егор Толстой: TeamLead в компании Jetbrains, свежий блог, подкасты, касающиеся многих тем: https://etolstoy.com/

После курса:

Аналоги курсу

Java Vision

Структурированная информация с Live кодом по плэйлистам.

JavaRush

Помогает полным новичкам плавно войти в Java (рекомендую тратить не больше месяца)

Ресурс Платный (~2 тыс/мес)

Марсель Сидиков (КФУ)

Цикл из 7-8 лекций. Рекомендую пройти после курса части с Spring + HIbernate

Ветераны в мире Java (и не только)

Сергей Немчинский

Самый популярный ветеран среди русскоязычных джаверов. Прекрасно рассказывает о рынке (также есть циклы лекций, рекомендую clean code)

Winderton

Начинал с Java, позиционирует себя инженером на С. Много расскажет о внутренном устройстве разных языков (о Computer Science)

Егор Толстой

Teamlead в компании JetBrains. Свежий блог, подкасты и краткий разбор разных технологий. Приятно читать на досуге

Важные доп ресурсы

Head First Java.

Лучше всего объясняется ООП. Американский юмор, неофициальная подача - распологает ленивых программистов

Hacker Rank.

Алгоритмы, структуры данных - всё, что приписывают настоящим программистам!

SQL exercises.

Java программисты очень много работают с базами данных. Рекомендую прокачивать этот навык здесь

Статья с Книгами.

Тем, кто никогда не сдаётся и может плыть против течениия. Многие из этих книг довольно тяжёлые для большинства, но не для Вас :)

Мои контакты