№2. Ученик среднего уровня Java
Новые возможности Java
Что ж, никто не ожидает, что новичок в Java должен знать особенности новейших версий Java, таких как запечатанные классы, текстовые блоки, записи или скрытые классы. Тем не менее, я настоятельно рекомендую попробовать изучить некоторые из них или хотя бы прочитать о них, поскольку вы изучили большинство тем Core Java, перечисленных выше. В последнее время JDK обновляется раз в полгода, в марте и сентябре. JDK 16 появился 16 марта.
Итак, перейдите на веб-сайт OpenJDK , на котором перечислены все предложения по расширению JDK (JEP) из новых версий. Читайте дальше, экспериментируйте с настройками, действительно полезно! Даже если вы полный новичок, начните читать о них, чтобы быть в курсе тенденций.
Я также рекомендую подписаться на блоги новостей Java. Новичкам может быть намного проще прочитать анализ, сделанный опытными разработчиками, чем прочитать сухое перечисление JEP.
Однако под новыми функциями все еще часто понимают те, что появились в Java 8. Они стали настолько необычными и в некотором смысле изменили стиль программирования на Java, что некоторые разработчики по-прежнему предпочитают их не использовать. Это не совсем так. Ожидается, что новички и профессионалы Java в 2021 году будут знать:
- Лямбда-выражения
- Функциональные интерфейсы Java
- Stream API
- Ссылки на методы
Модульное тестирование
Согласно опросам CodeGym , модульное тестирование — одна из первых задач, которые получают Java-стажеры, когда им разрешается присоединяться к реальным проектам. Часто новичков просят протестировать код своих коллег, прежде чем разрешить им написать свой собственный модуль. Сделайте подарок себе и своему будущему работодателю, изучив JUnit Framework, а также мощную библиотеку Mockito. Более опытные разработчики также часто тестируют свой код с помощью этих библиотек. Так что эти знания будут полезны абсолютно всем Java-разработчикам.
Структуры данных и алгоритмы
Структуры данных необходимо изучить, но стоит ли это делать на уровне абстракции? В принципе, это возможно, особенно если вы уже успели немного поработать с некоторыми их реализациями на практике. Кроме того, очень часто в интервью требуются теоретические основы структур данных (как и насколько эффективно в них реализованы вставка, удаление и поиск).
Стоит ли детально изучать алгоритмы — тоже спорный вопрос. В данном случае под «алгоритмами» чаще всего понимают те, которые помогают искать, сортировать, удалять и добавлять данные из структур. Некоторые думают, что алгоритмы не нужны, поскольку все основные и наиболее эффективные алгоритмы уже написаны на языке. Однако, готовясь к собеседованию, лучше всего обращать на них внимание. К тому же они отлично развивают мышление программиста.
Экосистема Java
Когда вы начинаете изучать Java, часто первое, о чем вам говорят, это байт-код, виртуальная машина Java, JRE и JDK. Так, по сути, работает Java. Однако на первом этапе эти знания представляют собой довольно любопытную абстракцию. Я настоятельно рекомендую возвращаться к этой теме на разных этапах обучения и даже во время работы.
Понимание того, как работает экосистема Java, значительно повысит ваши навыки программирования. Например, изучение работы сборщика мусора (кстати, их несколько, и если вы будете следить за обновлениями Java, вы будете знать, какие из них актуальны) может помочь вам понять, почему Java редко используется в тройных версиях. Игровые проекты. В общем, разработчику очень важно понимать, как JVM распределяет память, что такое динамическое связывание, интерпретатор времени выполнения и так далее.
Дизайн и архитектурные шаблоны
Ожидается, что в 2021 году подготовленные специалисты будут знать шаблоны проектирования и уметь применять их на практике. Это одновременно и просто, и сложно. Сами шаблоны просты и логичны, но начинающему разработчику может быть очень сложно понять, где и какой шаблон следует применить. Поэтому, помимо изучения примеров, я рекомендую вам осознанно применять их на практике.
Нечто подобное можно сказать и о шаблонах архитектурного проектирования. Если вы создаете свой проект (а их лучше создать любому новичку, хотя бы для портфолио), подумайте над его архитектурой. Это непросто, и на первом этапе несколько тормозит человека… но чрезвычайно полезно!
Работа с данными
Вероятность того, что Java-программист в 2021 году никогда не будет использовать базы данных в своей работе, крайне мала. Поэтому каждый разработчик программного обеспечения должен иметь о них представление, а самое главное — закрепить его на практике.
Существует два основных класса баз данных: SQL (относительные) и NoSQL (не относительные). Относительные базы данных более популярны, поэтому первым делом нужно их изучить.
Во-первых, вы можете прочитать о базах данных и их структуре. Загрузите один из них (например, PostgreSQL , который является бесплатным и открытым исходным кодом), проект один или два.
Для первых шагов вы можете научиться взаимодействовать с базой данных SQL и научиться выполнять самые простые команды CRUD (что означает создание, чтение, обновление, удаление) SQL-команд для данных ваших первых приложений. Существует драйвер JDBC, независимый от платформы стандарт взаимодействия между приложениями Java и базами данных. JDBC реализован в виде пакета java.sql, включенного в Java SE (стандартная версия). Итак, сначала вы можете использовать его напрямую.
Позже, когда вы почувствуете себя более уверенно, вы скоро сможете еще больше адаптировать использование систем объектно-реляционного сопоставления (ORM): специальных программных библиотек, которые позволяют вам работать с данными в более естественном и удобочитаемом формате без написания SQL-запросов. явно. Несомненно, одна из самых популярных и широко используемых Java ORM — это Hibernate. Согласно опросу CodeGym 2020 года, 63,1% первокурсников Java Junior очень часто использовали Hibernate в свой первый год работы.
А как насчет noSQL? Если у вас есть время, вы можете попробовать MongoDB. Это может быть довольно интересный опыт.
Начало:
Продолжение: