Автор оригинала: Omkar Pathak.
Предисловие
Слово “Java” стало настолько распространенным, что в наши дни даже нетехнические люди, похоже, знают об этом. Благодаря огромной популярности языка программирования его рост в различных областях был беспрецедентным.
Основная причина успеха языка заключается в его независимом от платформы характере. Код Java, написанный на одной платформе, работает на других без каких-либо изменений. И он поддерживает большинство основных платформ, начиная от мобильных устройств и заканчивая фермами серверов облачных вычислений. Являясь основой операционной системы Android, Java имеет огромное преимущество перед своими аналогами как с точки зрения количества пользователей, так и участников.
Когда язык настолько распространен, его пользовательская база неизбежно будет расти с постоянной скоростью. И что может быть лучшим способом войти в экосистему Java, чем следовать хорошо зарекомендовавшему себя пути. Существует множество материалов для самообучения, доступных для Java, включая книги, учебные пособия на YouTube и онлайн-курсы.
В этой статье я расскажу об одном из лучших курсов, доступных на популярной онлайн-обучающей платформе Udemy . Полный мастер-класс по Java от Тима Бучалки и Горана Лохерта-отличный курс для учащихся, вступающих в мир Java, а также для тех, кто уже знаком с языком и хочет лучше понять новые версии.
Инструкторы
Тим Бучалка
Проработав инженером-программистом более 30 лет, мы не можем просить лучшего инструктора , чем Тим Бучалка , который является экспертом по Java, Android и Python. На данный момент он обучил более 335 тысяч студентов , что, несомненно, доказывает его педагогические навыки. Для очень технического человека не всегда характерно хорошо объяснять концепции другим, но он отлично справляется с тем, чтобы разбить вещи на базовый уровень для понимания новичками.
Тим использует Java уже более 15 лет, и его владение языком очевидно, поскольку он делает обучение более увлекательным, чем простое упражнение.
Некоторые другие курсы, предлагаемые Академией программирования Tim’s Learn, включают:
- Продвинутые алгоритмы на Java
- Мастер-класс по разработке игр для Android LibGDX
- Программирование на языке Си для начинающих
Горан Лохерт
Горан Лохерт более 11 лет занимается разработкой программного обеспечения, специализируясь на настольных, веб-и мобильных приложениях. Он является сертифицированным разработчиком Java, хорошо разбирается в различных инструментах и концепциях, связанных с языком, таких как Maven, Spring, Gradle и JavaFX.
Кроме того, Горан-заядлый разработчик игр с опытом работы в игровых движках и фреймворках. Он также вносит свой вклад в популярную игровую платформу под названием LibGDX.
Обзор
Этот курс охватывает 356 лекций, а его общая продолжительность составляет около 76 часов. Целевая аудитория включает студентов всех уровней, от начинающих до продвинутых. На момент написания этой статьи более 230 тысяч студентов прошли курс, что обеспечивает достоверность его содержания.
Полный мастер-класс Java был создан с учетом версий 8 и 9 сред разработки и выполнения Java, предоставляемых Oracle Corp. Курс также был обновлен, чтобы включить новую версию Java 10, но преподаватель по-прежнему уделяет особое внимание долгосрочным версиям поддержки, чтобы обеспечить стабильность содержания курса. Тем не менее, это по-прежнему относится к последней версии программного обеспечения.
Курс организован в таком формате, что с каждой темой связан исходный код, за которым следует задача, посвященная реальным сценариям. Эта задача заставляет учащихся применять только что изученные концепции для решения часто возникающих проблем при разработке программного обеспечения.
Качество контента отличное, и он представлен в профессиональной манере с использованием HD-видео и субтитров на различных языках, работающих на Google translate. Это увеличивает охват курса аудиториями в различных географических точках.
Содержание
Давайте взглянем на темы, которые рассматриваются в рамках этого курса:
Вступление
Тим начинает курс, представившись, а затем продолжает объяснять, как организовано содержание. Он также объясняет, как перемещаться по курсу и различные настройки, связанные с видео курса.
Установка
В этом разделе описано, как выбрать подходящую версию Java и настроить ее на компьютере пользователя. Тим перечисляет этапы установки для часто используемых платформ, таких как Windows, Linux и Mac. IDE, выбранная для курса, – это IntelliJ IDEA, и пользователи могут получить расширенную пробную версию для ее окончательной версии, если они заинтересованы.
Первые шаги
Как и большинство тренингов, курс помогает учащимся создать свое первое Java-приложение. Тим не торопится, чтобы новички освоились со средой выполнения Java, а затем знакомит их с интерфейсом IntelliJ IDEA, чтобы облегчить процесс обучения.
Переменные, Типы данных, Операторы
Следующие шаги-изучение основных строительных блоков языка и различных операций, которые Java позволяет выполнять с данными.
Выражения, Операторы, блоки кода, Методы и задачи кодирования
Этот раздел необходим для того, чтобы учащиеся шли в ногу с темпом курса, поскольку он охватывает большое количество концепций Java, а также первую задачу программирования. Учащиеся могут применять концепции, которые они усвоили в интегрированных упражнениях, и курс позволяет им проверить правильность своего решения.
Инструкции по управлению потоком
В этом разделе вы узнаете о различных способах управления потоком выполнения Java-программы, таких как циклы, конструкции переключателей и условные операторы, которые рассматриваются как часть этого раздела.
Концепции ООП
Поскольку Java является объектно-ориентированным языком программирования, Тим тратит значительное количество времени на разработку концепций ООП и их реализацию на Java. Первый раздел охватывает классы, конструкторы и наследование, в то время как второй охватывает композицию, инкапсуляцию и полиморфизм.
Понятия
В этом разделе представлены еще некоторые концепции Java, такие как массивы, списки, упаковка, распаковка, абстрактные классы и интерфейсы. Весь следующий раздел посвящен Java-генераторам . В последующих разделах Тим описывает особенности языка, такие как пакеты, область действия и ключевые слова static/final.
Коллекции
Довольно важный раздел с точки зрения понимания, где рассматривается множество полезных конструкций и их реализаций с использованием различных задач. Темы включают платформу сбора Java, поиск, компаратор, карты, наборы, наборы хэшей и т.д.
JavaFX
В этом разделе учащиеся переходят от приложений с интерфейсом командной строки к приложениям с графическим пользовательским интерфейсом. Они узнают об API, а также об обработчиках событий, ответственных за взаимодействие между пользователями приложения и интерфейсом. В этом разделе рассматривается еще одна важная концепция многопоточности, которая дает Java преимущество перед ее аналогами. Как позаботиться о параллелизме, когда требуется синхронизировать несколько потоков, объясняется в последующих разделах ниже.
Ввод-вывод, исключения и файловые системы
Git Essentials
Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!
Как и все другие языки, Java предоставляет пользователям функциональные возможности для выполнения операций ввода и вывода. Тим объясняет учащимся концепции ввода-вывода, файловых систем и обработки исключений в рамках этого раздела курса.
Лямбда-выражения
Лямбда-выражения, которые позволяют более компактно выражать экземпляры классов с одним методом, являются одной из выдающихся функций Java, предоставляющей пользователям функциональные возможности программирования. Следовательно, важно развить хорошее понимание того же самого.
Регулярные Выражения
Еще одной полезной функцией, которая помогает, особенно в области аналитики, являются регулярные выражения. С использованием классов сопоставления шаблонов регулярное выражение становится мощной функцией для любого языка.
Отладка и модульное тестирование
Программист никогда не стал бы недооценивать важность навыков отладки для устранения неполадок, возникающих при написании кода. Тим, будучи закоренелым программистом, хорошо это знает и знакомит учащихся с деталями отладки и модульного тестирования. Он подробно описывает использование контрольных точек для пошагового просмотра кода, чтобы понять его выполнение, и представляет набор JUnit, используемый для модульного тестирования, вместе с примерами assert.
Базы данных
В наши дни подключение к базе данных является обязательным для языков программирования, и Java не является исключением. Он имеет различные механизмы для доступа ко многим различным типам баз данных через множество библиотек, доступных для данного языка. Курс посвящен инструменту базы данных с открытым исходным кодом SQLite, использованию инструкций SQL для выполнения различных операций с базой данных и использованию API-интерфейсов подключения к базе данных Java для доступа к базе данных из кода Java.
Сетевое программирование
Популярный выбор для сетевых приложений, Java предлагает надежную платформу для разработки и реализации клиент-серверных приложений. В этом разделе объясняются различные интерфейсы, которые Java предоставляет для операций HTTP.
Модули Java 9
Относительно новая концепция, модули Java были представлены в версии 9 JDK. Как следует из названия, модули помогают в классификации функций, т. е. JPM. В этом разделе представлены типы модулей, способы их объявления и их фактическое использование.
Перенос проектов Java на версию 9
Важный раздел в конце курса помогает учащимся перенести проекты Java, написанные в более старой версии, в более новую версию 9. Эти шаги содержат рекомендации по модульной структуре проекта, классификации файлов конфигурации и разрешению зависимостей проекта. Важно учитывать функции, предлагаемые JDK 9, чтобы понять процесс переноса со старых версий на более новые.
Бонусный материал
Заключительный раздел включает список других курсов, предлагаемых Тимом в Академии программирования Learn, и список исходного кода, организованного в соответствии с разделами курса.
Список содержимого кажется довольно исчерпывающим, поскольку за несколько лет, прошедших с момента его появления, Java приобрела обширный характер. Тим, однако, проделал фантастическую работу, охватывающую большинство важных концепций за изрядное количество времени.
Особенности
Перечисление некоторых других функций курса здесь:
- Интерфейс, предоставляемый для задач кодирования, кажется интуитивно понятным для учащихся, поскольку в нем есть интегрированные решения, а также система тестирования. Это побуждает учащихся придумывать модульные тесты для своего кода.
- Преподаватель продолжает пересматривать концепции, изученные в предыдущих разделах, чтобы предоставить учащимся еще больше практики и более глубокое понимание.
- Тим не только обучает вас важным конструкциям Java, но также предоставляет вам расширенные советы и рекомендации по кодированию, используемые профессиональными программистами. Это особенно полезно для учащихся среднего/продвинутого уровня.
- Курс предоставляет сертификат об окончании и пожизненный доступ к материалам курса после его завершения. Поскольку содержание курса постоянно обновляется, это оказывается непрерывным процессом обучения для заинтересованных учащихся. Я бы назвал это причиной многих из тысяч 5-звездочных отзывов.
В целом, этот курс представляет собой полный пакет для учащихся, чтобы начать свое путешествие в великолепный мир программирования на Java!
Плюсы
Вот некоторые положительные стороны этого курса, которые выделялись:
Тим был одним из 10 лучших инструкторов на премии 2015 Udemy instructor awards, что красноречиво говорит о его авторитете и знании Java, а также о платформе онлайн-обучения.
Курс посвящен не только настольным платформам, но и приложениям для Android. Учащиеся могут использовать знания, полученные в ходе курса, для вхождения в быстро растущую экосистему мобильных устройств.
Содержание курса не ограничивается только Java, в нем также рассказывается об инструментах и методах, используемых разработчиками для повышения производительности в целом. Примером может служить хорошо известный инструмент, используемый разработчиками, DiffMerge.
Если учащиеся заинтересованы, они также могут помочь преподавателям в создании контента курса, при условии, что у них есть соответствующие навыки.
Аферы
Как и во всем остальном, в этом курсе есть некоторые области, которые нуждаются в улучшении:
Рассматривая проблемы, я почувствовал, что они больше сосредоточены на той части, которая рассматривается в этом разделе. Преподаватель часто пересматривает ранее рассмотренные темы в рамках лекций курса, и если то же самое будет сделано с проблемами, это поможет студентам понять вещи дальше.
Поскольку видео курса высокого качества, видеопоток иногда немного отстает. Производительность действительно улучшается при более низких разрешениях, однако при этом общий опыт снижается. Это может быть проблемой с пропускной способностью, но она наблюдалась на нескольких устройствах. Вероятно, это скорее жалоба на платформу, чем на сам курс, но все же стоит отметить.
Вывод
Подводя итог, можно сказать, что курс очень хорошо построен на основе большинства важных концепций Java и помогает учащимся понять предлагаемый контент с базового уровня. Тим проделывает похвальную работу, охватывая как глубину, так и широту необъятности Java, и в то же время он обновляет контент! Реальные проблемы мотивируют учащихся к самосовершенствованию и подготавливают их к профессиональному решению задач программирования. Я бы, конечно, рекомендовал Полный мастер-класс Java для энтузиастов изучать Java и изучать его у экспертов!