Какую версию java учить
Перейти к содержимому

Какую версию java учить

  • автор:

На какой версий Java писать?

Здравствуйте, ребята, я тут столкнулся с проблемой, какую версию Java изучать? Есть ли различие в моддинге Java 7 или Java 8? Какая разница?

tox1cozZ

Абсолютно никакой разницы нет, я же сказал. Основы можешь хоть на 5 джаве учить. Бери и не парься)

Kotikstar

Администрация, извините что не в тему, не знал куда писать.

tox1cozZ
aka Agravaine

8,454 598 2,890
Конечно же восьмую. А вообще, разницы нет никакой в синтаксисе.

Kotikstar

Конечно же восьмую. А вообще, разницы нет никакой в синтаксисе.

А для написания модов/плагинов? Просто книгу по 8 не просто будет достать в моём городе,а по Java 7 имеется.

tox1cozZ
aka Agravaine

8,454 598 2,890
Абсолютно никакой разницы нет, я же сказал. Основы можешь хоть на 5 джаве учить. Бери и не парься)

Kotikstar

Абсолютно никакой разницы нет, я же сказал. Основы можешь хоть на 5 джаве учить. Бери и не парься)
Спасибо! А я ещё слышал что какой то форж чиста на Java 8 перешёл,нет?

tox1cozZ
aka Agravaine

8,454 598 2,890
На 1.7+ можно спокойно на 8-й джаве писать. Вот на 1.6.4 и ниже проблемы были вроде.

hohserg

7,099 324 1,509
Как это никакой? А лямбды? А стримы?
Новая рандомная ава топовая)

Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code

tox1cozZ
aka Agravaine

8,454 598 2,890

Это нужно новичку, который вообще может в программирование? Без этого можно обойтись и начать юзать когда будешь хоть немного соображать.

hohserg

7,099 324 1,509

Так ведь когда продвинется, то не придется переустанавливать. И, кажется, щас jdk 7 нельзя скачать свободно

Новая рандомная ава топовая)

Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code

WantaSanchez
Опоздун

633 17 150
И, кажется, щас jdk 7 нельзя скачать свободно

Да сейчас как-бы и для скачивания любого JDK нужна учётная запись в Oracle. Не известно что натворили обновили лицензию, но делов наворотили. Неудобно как-то. Если скачал поставил ладно, а новеньким это минус время.

Java как чашечка кофе после трудного дня.

tox1cozZ
aka Agravaine

8,454 598 2,890

Так ведь когда продвинется, то не придется переустанавливать. И, кажется, щас jdk 7 нельзя скачать свободно

Зачем ее качать? Я же не говорю на ней писать, наоборот советую на восьмой сразу кодить.
Я имел ввиду что если он будет учится по учебнику в котором рассказывается о 7-й версии, то он спокойно сможет писать на 8-й.

какой jdk устанавливать 8 или 11?

В 11ой не все пакеты есть, например если Вы захотите использовать javaFX его нужно подключать отдельно, а в 8ке все есть, но в целом можно и 11 версию использовать. Я лично поставила себе пока 8ку, все равно все задания здесь расчитанны на нее.

14 мая 2020, 15:09
Поделитесь пожалуйста ссылкой, откуда скачали?
14 мая 2020, 17:55
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
15 мая 2020, 11:17
Спасибо большое, но тут он просит регистрироваться, без регистрации качать не дает.
15 мая 2020, 11:39 полезный

В этом не вижу проблемы, регистрация занимает 1-2 минуты, и вы можете не писать свой настоящий адрес и телефон и т. д., только почту свою напишите, она нужна для подтверждения.

Роман Java Developer в Luxoft
13 мая 2020, 19:56

Разница между 8 и 11 в jvm и изменении политики Oracle на разделение OpenJDK и OracleJDK. На практике используется JDK 8, но постепенно компании переходят уже на 9 или на 11 версию. Качай jdk 8: https://jdk.java.net/java-se-ri/8-MR3 И почитай что нового в 8 версии: https://vertex-academy.com/tutorials/ru/java-8-uchebnik/ И рекомендую еще к просмотру: https://youtu.be/hFX1IY3_iRQ

Уровень 41
13 мая 2020, 19:59
8 уже с той же политикой, что и 11. Тоже платная лицензия для предприятий
Роман Java Developer в Luxoft
13 мая 2020, 20:15
Знаю! Я рассказал про разницу!
14 мая 2020, 15:04
По вашей ссылке скачать не получилось, на официальном сайте требуется регистрация, это обязательно?
Роман Java Developer в Luxoft
14 мая 2020, 20:34
Добавляйся в друзья!
Wladyslaw Java Developer Master
14 мая 2020, 20:39

регистрацию то требует, но при регистрации принимает мыло типа темп-майл. То есть аккаунт типа Василий Пупкин им подходит

Роман Java Developer в Luxoft
14 мая 2020, 20:45
Если не для коммерческой реализации, то сойдет)
Уровень 41
13 мая 2020, 19:53

Из этих 11й — новее. Вообще с Idea 11 по умолчанию был, отдельно не ставил. JavaRush вообще использует 7 или 8

13 мая 2020, 19:53
По теме,в задании пишут установить JDK8.

  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
  • Задачи-игры

Сообщество

JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.

Руководство по возможностям языка Java версий 8-19

Руководство по возможностям языка Java версий 8-19

2023-03-01 в 16:09, admin , рубрики: java, JDK, LTS

Вы можете использовать это руководство для получения практической информации о том, как найти и установить последнюю версию Java, понять различия между дистрибутивами Java (Adoptium, AdoptOpenJdk, OpenJDK, OracleJDK и т. д.), а также получить обзор функций языка Java, включая версии 8-19.

Примечание переводчика: 11 апреля 2021 г. был опубликован перевод Руководство по возможностям Java версий 8-16.

Вашему вниманию предлагается обновленная версия руководства от 28 октября 2022 г.

Практическая информация

Для начала давайте рассмотрим некоторые распространенные практические вопросы, которые возникают у людей при попытке выбрать правильную версию Java для своего проекта.

TL; DR Мне нужна только ссылка для скачивания, и я знаю обо всем остальном. Куда мне следует идти?

Перейдите на сайт Adoptium, выберите последнюю версию Java, загрузите и установите ее. Затем вернитесь к этому руководству, чтобы, возможно, еще кое-что узнать о версиях Java.

TL;DR (англ. too long; didn’t read — слишком длинно, не читал)

Какая последняя версия Java?

По состоянию на сентябрь 2022 года Java 19 является последней выпущенной версией Java.

В марте 2023 года за ней последует Java 20. Последней версией Java с долгосрочной поддержкой (LTS) является Java 17, выпущенная в сентябре 2021 года.

Какую версию Java следует использовать?

Руководство по возможностям языка Java версий 8-19 - 1

Новые версии Java теперь выходят каждые 6 месяцев. Таким образом, Java 20 запланирована на март 2023 года, Java 21 — на сентябрь 2023 года и так далее. В прошлом циклы выпуска Java были намного длиннее, до 3-5 лет. Данный график демонстрирует, это:

С таким количеством выходящих новых версий имеются следующие основные сценарии использования:

  • Унаследованные проекты в компаниях часто застряли на использовании Java 8 (см. раздел «Почему компании все еще застряли на Java 8?» ниже). Следовательно, вы также будете вынуждены использовать Java 8.
  • Некоторые устаревшие проекты даже застряли на Java 1.5 (выпущен в 2004 г.) или 1.6 (выпущен в 2006 г.) — извините, друзья, я вам сочувствую!
  • Если вы следите за тем, чтобы использовать самые последние IDE, фреймворки и инструменты сборки и начинаете новый проект, вы можете без колебаний использовать Java 17 (LTS) или даже последнюю версию Java 19.
  • Есть особая область разработки Android, где версия Java в основном застряла на Java 7 с определенным набором возможностей Java 8. Или вы переходите на использование языка программирования Kotlin.

Почему компании все еще застряли на Java 8?

  • Инструменты сборки (Maven, Gradle и т. д.) и некоторые библиотеки изначально содержали ошибки с версиями Java > 8 и нуждались в обновлениях. Например, некоторые инструменты сборки, такие как Maven, выводили предупреждения об «рефлективном доступе» при сборке Java-проектов, которые просто «кажутся не готовыми», даже если сборки в порядке.
  • Вплоть до Java 8 вы в практически использовали сборки Oracle JDK, и вам не нужно было заботиться о лицензировании. Однако в 2019 году Oracle изменила схему лицензирования, что привело к тому, что Интернет сошел с ума от множества статей, в которых говорилось, что «Java больше не является бесплатной», — и последовала изрядная путаница. Однако на самом деле это не является проблемой, о которой вы узнаете в разделе «Дистрибутивы Java» этого руководства.
  • Некоторые компании придерживаются политики использования только LTS-версий и полагаются на поставщиков своих ОС, которые должны предоставить им эти сборки, что требует времени.

Подводя итог: у вас есть сочетание практических вопросов (обновление ваших инструментов, библиотек, фреймворков) и политических проблем.

Почему некоторые версии Java, например 8, также называются 1.8?

В версиях Java до 9 просто была другая схема именования. Так, Java 8 также может называться 1.8, Java 5 может называться 1.5 и т. д. Когда вы вводили команду java -version, с этими версиями вы получали следующий результат:

c:Program FilesJavajdk1.8.0_191bin>java -version java version "1.8.0_191" (1) Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

Это просто означает Java 8. С переходом к основанным на времени выпускам с Java 9 схема именования также изменилась, и версии Java больше не имеют префикса 1.x. Теперь номер версии выглядит следующим образом:

c:Program FilesJavajdk11bin>java -version openjdk version "11" 2018-09-25 (1) OpenJDK Runtime Environment 18.9 (build 11+28) OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

В чем разница между версиями Java? Должен ли я изучать какую-то конкретную версию?

Придя из других языков программирования с большими перерывами между выпусками, как, например, Python 2–3, вы можете задаться вопросом, применимо ли то же самое к Java.

В этом отношении Java является особенной, поскольку она имеет полную обратную совместимость. Это означает, что ваша программа на Java 5 или 8 гарантированно будет работать на виртуальной машине Java 8–19 — за некоторыми исключениями, о которых вам пока не нужно беспокоиться.

Очевидно, что это не работает, наоборот, скажем, ваша программа полагается на функции Java 19, которые просто недоступны в Java 8 JVM.

Это означает несколько вещей:

  • Вы не просто «выучите» конкретную версию Java, например 12.
  • Скорее, вы получите хорошую основу для всех языковых функций вплоть до Java 8. Это послужит хорошей базой.
  • А затем, из такого руководства, как это, вы можете узнать, какие дополнительные возможности появились в Java 9–19, и будете использовать их всегда, когда это возможно.

Каковы примеры этих новых возможностей новых версий Java?

Посмотрите раздел «Возможности Java 8-19» ниже.

Но, как правило: старые, более длинные циклы выпуска (3–5 лет, вплоть до Java 8) означали большое количество новых функций в каждом выпуске.

Шестимесячный цикл выпуска означает гораздо меньшее количество функций на один выпуск, поэтому вы можете быстро освоить языковые возможности Java 9–19.

В чем разница между JRE и JDK?

До сих пор мы говорили только о «Java». Но что именно означает «Java»?

Во-первых, необходимо различать JRE (Java Runtime Environment) и JDK (Java Development Kit).

Исторически сложилось так, что вы загружали только JRE, если вас интересовал только запуск программ на Java. JRE включает, помимо прочего, виртуальную машину Java (JVM) и инструмент командной строки «java».

Для разработки новых программ на Java необходимо было загрузить JDK. JDK включает в себя все, что есть в JRE, а также компилятор javac и несколько других инструментов, таких как javadoc (генератор документации Java) и jdb (отладчик Java).

Теперь, почему я говорю в прошедшем времени?

Вплоть до Java 8 веб-сайт Oracle предлагал JRE и JDK в качестве отдельных файлов загрузки, хотя JDK также всегда включал JRE в отдельной папке. В Java 9 это различие практически исчезло, и вы всегда загружаете JDK. Структура каталогов JDK также изменилась, так как в ней больше не было явной папки JRE.

Поэтому, несмотря на то что некоторые дистрибутивы (см. Раздел «Дистрибутивы Java») по-прежнему предлагают отдельную загрузку JRE, похоже, наметилась тенденция предлагать только JDK. Следовательно, с этого момента мы будем использовать Java и JDK как взаимозаменяемые понятия.

Как установить Java или JDK?

Пока не обращайте внимания на образы Java-Docker, оболочки .msi или пакеты для конкретной платформы. В конце концов, Java — это просто ZIP-файл, ни больше, ни меньше.

Поэтому все, что вам нужно сделать, чтобы установить Java на свой компьютер, — это разархивировать файл jdk-.zip. Для этого даже не нужны права администратора.

Ваш распакованный файл Java будет выглядеть следующим образом:

Directory C:devjdk-11 12.11.2019 19:24 . 12.11.2019 19:24 .. 12.11.2019 19:23 bin 12.11.2019 19:23 conf 12.11.2019 19:24 include 12.11.2019 19:24 jmods 22.08.2018 19:18 legal 12.11.2019 19:24 lib 12.11.2019 19:23 1.238 release

Магия происходит в каталоге /bin, который в Windows выглядит следующим образом:

Directory C:devjdk-11bin . 12.11.2019 19:23 272.736 java.exe . 12.11.2019 19:23 20.832 javac.exe . 

Поэтому все, что вам нужно сделать, это разархивировать этот файл и поместить каталог /bin в переменную PATH, чтобы вы могли вызывать команду java из любого места.

Если вам интересно, установщики с графическим интерфейсом, такие как Oracle или Adoptium, выполняет для вас распаковку и изменение переменной PATH, вот и все.

Чтобы убедиться, что вы правильно установили Java, вы можете просто выполнить команду java -version. Если результат выглядит так, как показано ниже, вы готовы начать разработку.

openjdk version "11" 2018-09-25 OpenJDK Runtime Environment 18.9 (build 11+28) OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

Теперь остался один вопрос: откуда вам взять этот ZIP-файл с Java? Что подводит нас к теме дистрибутивов.

Дистрибутивы Java

Есть множество сайтов, предлагающих скачать Java (читай: JDK), и непонятно, «кто что предлагает и с какой лицензией». Этот раздел прольет на это некоторый свет.

Проект OpenJDK

Что касается исходного кода Java (читайте: исходного кода для вашего JRE / JDK), существует только один, находящийся на сайте проекта OpenJDK.

Однако это всего лишь исходный код, а не распространяемая сборка (представьте: ваш файл .zip со скомпилированной командой java для вашей конкретной операционной системы). Теоретически мы с вами могли бы создать сборку из этого исходного кода, назвать ее, скажем, MarcoJDK и начать ее распространять. Но нашему дистрибутиву не хватило бы сертификации, чтобы легально называть этот дистрибутив совместимым с Java SE.

Вот почему на практике есть несколько поставщиков, которые действительно создают эти сборки, получают их сертификацию (см. TCK) и затем распространяют их.

И хотя поставщики не могут, скажем, удалить метод из класса String до выпуска новой сборки Java, они могут добавить брэндинг (ура!) или добавить некоторые другие утилиты (например, CLI), которые они считают полезными. Но в остальном исходный код одинаков для всех дистрибутивов Java.

Сборки OpenJDK (от Oracle) и OracleJDK

Одним из производителей, который собирает Java из исходников, является Oracle. Это приводит к появлению двух разных дистрибутивов Java, что поначалу может казаться очень запутанными.

  1. Сборки OpenJDK от Oracle (!). Эти сборки бесплатны и не брендированы, но Oracle не будет выпускать обновления для более старых версий, скажем, Java 15, как только выйдет Java 16.
  2. OracleJDK, которая является фирменной, коммерческой сборкой, выпускаемая начиная с изменения лицензии в 2019 году. Это означает, что ее можно использовать бесплатно во время разработки, но вам придется заплатить Oracle при ее использовании в производственной среде. За это вы получаете более длительную поддержку, то есть все обновления дистрибутива и номер телефона, по которому можно позвонить, если с вашей JVM будут проблемы.

Исторически (до появления Java 8) между сборками OpenJDK и OracleJDK существовали фактические различия в исходных текстах, и можно было сказать, что OracleJDK был «лучше». Но на сегодняшний день обе версии практически одинаковы, с небольшими отличиями.

Впрочем все сводится к тому, требуется ли вам платная коммерческая поддержка (номер телефона) для используемой версии Java.

Eclipse Temurin от Adoptium (ранее AdoptOpenJDK)

В 2017 году группа членов Java User Group, разработчиков и поставщиков (Amazon, Microsoft, Pivotal, Redhat и другие) основала сообщество под названием AdoptOpenJDK. С августа 2021 года проект AdoptOpenJDK переехал в новый дом и теперь называется проектом Eclipse Adoptium.

Adoptium предоставляет бесплатные, надежные сборки OpenJDK, называемые Eclipse Temurin с более длительной доступностью/обновлениями для различных операционных систем, архитектур и версий.

Настоятельно рекомендую ее, если вы хотите установить Java.

Azul Zulu, Amazon Corretto, SAPMachine

Полный список сборок OpenJDK можно найти на сайте OpenJDK Wikipedia. Среди них Azul Zulu, Amazon Corretto, а также SapMachine и это лишь некоторые из имеющих. Проще говоря, различия сводятся к тому, что у вас есть различные варианты поддержки/ гарантии обслуживания.

Тем не менее, если вы, например, работаете на AWS, имеет смысл просто использовать их сборки Amazon Corretto OpenJDK, если они предлагают версию, которую вы хотите использовать.

Полный обзор дистрибутива OpenJDK

Рафаэль Винтерхальтер (Rafael Winterhalter) составил отличный список всех доступных сборок OpenJDK, включая их описания: ОС, архитектуру, лицензирование, окна поддержки и обслуживания.

Рекомендация

Повторим с еще раз, что в 2022 и 2023 годах, если у вас нет специфических требований, возьмите файл jdk.zip (.tar.gz/.msi/.pkg) с сайта https://adoptium.net (под названием Eclipse Temurin) или выберите пакет, предоставленный вашим поставщиком ОС/облака.

Возможности Java 8–19

Как уже упоминалось в самом начале этого руководства: практически все (не придирайтесь) функции языка Java 8 работают в Java 19. То же самое относится и ко всем другим версиям Java между ними.

Что в свою очередь означает, что знание всех языковых возможностей Java 8 служит очень хорошей базой в изучении Java, а все остальные версии (Java 9–19) в значительной степени дают дополнительные функции поверх этого базового уровня.

Вот краткий обзор того, что могут предложить конкретные версии:

— Java 8 —

Java 8 была массовым релизом, и вы можете найти список всех функций на веб-сайте Oracle. Однако здесь я хотел бы упомянуть два основных набора функций:

Возможности языка: лямбды и т. д.

До Java 8 всякий раз, когда вы хотели создать экземпляр, например, нового Runnable, вам приходилось писать анонимный внутренний класс следующим образом:

 Runnable runnable = new Runnable() < @Override public void run()< System.out.println("Hello world !"); >>;

С лямбда-выражениями тот же код выглядит так:

Runnable runnable = () -> System.out.println("Hello world two!");

Вы также получили ссылки на методы, повторяющиеся аннотации, методы по умолчанию для интерфейсов и некоторые другие возможности языка.

Коллекции и потоки

В Java 8 вы также получили функциональный стиль операций для коллекций, также известный как Stream API. Быстрый пример:

List list = Arrays.asList("franz", "ferdinand", "fiel", "vom", "pferd");

До появления Java 8, вам приходилось писать циклы for, чтобы что-то сделать с этим списком.

С помощью API Streams вы можете сделать следующее:

list.stream() .filter(name -> name.startsWith("f")) .map(String::toUpperCase) .sorted() .forEach(System.out::println);

Если вы хотите больше практики на Java 8

Очевидно, что в рамках данного руководства я могу только дать лишь краткий обзор каждого недавно добавленного метода Stream, Lambda или Optional в Java 8.

Если вам нужен более детальный, подробный основательный обзор, включая упражнения, вы можете ознакомиться с моим курсом по основным функциям Java 8.

— Java 9 —

Java 9 также была довольно большой версией, с несколькими дополнениями:

Коллекции

Коллекции получили несколько новых вспомогательных методов для простого создания списков, наборов и карт.

List list = List.of("one", "two", "three"); Set set = Set.of("one", "two", "three"); Map map = Map.of("foo", "one", "bar", "two");

Streams

Потоки получили несколько дополнений в виде методов takeWhile, dropWhile и iterate.

Stream stream = Stream.iterate("", s -> s + "s") .takeWhile(s -> s.length() < 10);

Optionals

Optionals получили метод ifPresentOrElse, которого очень не хватало.

user.ifPresentOrElse(this::displayAccount, this::displayLogin);

Интерфейсы

Интерфейсы получили private методы:

public interface MyInterface < private static void myPrivateMethod()< System.out.println("Yay, I am private!"); >>

Другие возможности языка

И пара других улучшений, таких как улучшенный оператор try-with-resources или расширения diamond оператора.

JShell

Наконец, в Java появилась оболочка, в которой вы можете опробовать простые команды и получить немедленные результаты.

% jshell | Welcome to JShell -- Version 9 | For an introduction type: /help intro jshell> int x = 10 x ==> 10

HTTPClient

В Java 9 появилась начальная предварительная версия нового HttpClient. До этого встроенная поддержка Http в Java была довольно низкоуровневой, и вам приходилось прибегать к использованию сторонних библиотек, таких как Apache HttpClient или OkHttp (кстати, отличные библиотеки!).

В Java 9 у Java появился собственный современный клиент, хотя и в режиме превью, что означает возможность его изменения в более поздних версиях Java.

Project Jigsaw: Модули Java и мультирелизные JAR-файлы

В Java 9 появилась система модулей Jigsaw, которая чем-то напоминает старую добрую спецификацию OSGI. В задачи данного руководства не входит подробное описание Jigsaw — посмотрите предыдущие ссылки, чтобы узнать больше.

Мультирелизные JAR-файлы позволили создать один файл .jar, который содержит различные классы для различных версий JVM. Таким образом, ваша программа может вести себя по-разному / использовать разные классы, например, при запуске на Java 8 и Java 10.

Если вам нужно больше практики в Java 9

Опять же, это всего лишь краткий обзор возможностей Java 9, и если вы хотите получить более подробные объяснения и упражнения, посмотрите курс основных функций Java 9.

- Java 10 -

В Java 10 было внесено несколько изменений, таких как сборка мусора и т. д. Но единственное реальное изменение, которое вы, как разработчик, скорее всего заметите, — это введение ключевого слова «var», также называемого выводом типа локальной переменной.

Вывод типа локальной переменной: ключевое слово var

// Pre-Java 10 String myName = "Marco"; // With Java 10 var myName = "Marco"

Похоже на Javascript, не так ли? Тем не менее, Java все еще строго типизирован и var применяется только к переменным внутри методов (спасибо, dpash, за то, что снова указали на это).

- Java 11 -

Java 11 также была несколько меньшей версией с точки зрения разработчика.

Строки и файлы

Строки и файлы получили несколько новых методов (здесь перечислены не все):

"Marco".isBlank(); "Marnco".lines(); "Marco ".strip(); Path path = Files.writeString(Files.createTempFile("helloworld", ".txt"), "Hi, my name is!"); String s = Files.readString(path);

Запуск исходных файлов

Начиная с Java 10, вы можете запускать исходные файлы Java без предварительной их компиляции. Это шаг к созданию сценариев.

ubuntu@DESKTOP-168M0IF:~$ java MyScript.java

Вывод типа локальной переменной (var) для лямбда-параметров

Заголовок говорит сам за себя:

(var firstName, var lastName) -> firstName + lastName

HttpClient

HttpClient из Java 9 в его окончательной, не предварительной версии.

Прочее

Flight Recorder (Регистратор полетов), сборщик мусора No-Op, Nashorn-Javascript-Engine объявлен deprecated (устаревшим) и т.д.

- Java 12 -

В Java 12 появилось несколько новых функций и исправлений, но единственные, о которых стоит упомянуть здесь, это поддержка Unicode 11 и предварительный просмотр нового выражения switch, о котором вы узнаете в следующем разделе.

- Java 13 -

Полный список возможностей можно найти здесь, но в основном вы получаете поддержку Unicode 12.1, а также две новые или улучшенные превью функции (могут быть изменены в будущем):

Switch выражение (Preview — предварительная версия)

Switch выражения теперь могут возвращать значение. И вы можете использовать синтаксис в стиле лямбда для своих выражений, без проблем с ошибками:

Старые операторы switch выглядели следующим образом:

switch(status) < case SUBSCRIBER: // code block break; case FREE_TRIAL: // code block break; default: // code block >

В то время как в Java 13 операторы switch могут выглядеть следующим образом:

boolean result = switch (status) < case SUBSCRIBER ->true; case FREE_TRIAL -> false; default -> throw new IllegalArgumentException("something is murky!"); >;

Многострочные строки (предварительная версия)

Наконец-то, вы можете сделать это на Java:

String htmlBeforeJava13 = "n" + " n" + " 

Hello, world

n" + " n" + "n"; String htmlWithJava13 = """

Hello, world

""";

- Java 14 -

Switch выражения (стандарт)

Switch выражения, которые были превью функцией в версиях 12 и 13, теперь стандартизированы.

int numLetters = switch (day) < case MONDAY, FRIDAY, SUNDAY ->6; case TUESDAY -> 7; default -> < String s = day.toString(); int result = s.length(); yield result; >>;

Records (Записи - превью)

Теперь существуют классы Records (записей), которые помогают упростить задачу написания большого количества шаблонного кода на Java.

Посмотрите на этот класс до Java 14, который содержит только данные, (потенциально) геттеры/сеттеры, equals / hashcode, toString.

final class Point < public final int x; public final int y; public Point(int x, int y) < this.x = x; this.y = y; >> // реализация equals, hashCode, toString на основе состояния // ничего больше

С записями теперь это может быть записано следующим образом:

record Point(int x, int y)

Опять же, это предварительная версия, которая может быть изменена в будущих выпусках.

Полезные исключения NullPointerExceptions

Наконец, исключения NullPointerExceptions описывают, какая именно переменная имела значение NULL.

author.age = 35; --- Exception in thread "main" java.lang.NullPointerException: Cannot assign field "age" because "author" is null

Сопоставление с образцом для InstanceOf (предварительная версия)

Раньше вам приходилось приводить ваши объекты (выполнять cast) внутри instanceof, как это показано ниже:

if (obj instanceof String) < String s = (String) obj; // использование s >

Теперь вы можете сделать это, фактически отказавшись от приведения.

if (obj instanceof String s)

Инструмент упаковки (инкубатор)

Существует инструмент jpackage (инкубатор), который позволяет упаковать ваше Java-приложение в пакеты для конкретной платформы, включая все необходимые зависимости.

  • Linux: deb и rpm
  • macOS: pkg и dmg
  • Windows: msi и exe

Сборщики мусора

Сборщик мусора Concurrent Mark Sweep (CMS) был удален, и был добавлен экспериментальный сборщик мусора Z.

- Java 15 -

Текстовые блоки / многострочные строки

Представленные в качестве экспериментальной функции в Java 13 (см. выше), многострочные тексты теперь готовы к использованию.

String text = """ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. """;

Запечатанные (sealed) классы - превью

Если вы когда-либо хотели иметь еще более жесткий контроль над тем, кому разрешено создавать подклассы ваших классов, теперь есть функция sealed .

public abstract sealed class Shape permits Circle, Rectangle, Square

Это означает, что хотя класс является public , единственными классами, которым разрешено создавать подклассы, Shape , являются Circle , Rectangle и Square .

Записи и сопоставление с образцом

Функции Records и Pattern Matching из Java 14 (см. выше) все еще находятся на стадии предварительной версии и еще не доработаны.

Nashorn Javascript Engine

После того, как движок Nashorn Javascript Engine был объявлен устаревшим в Java 11, он был окончательно удален в JDK 15.

ZGC: готов к продакшн

Z Garbage Collector больше не обозначен как экспериментальный. Теперь он готов к использованию в продакшн.

- Java 16 -

Сопоставление шаблонов для instanceof
Вместо:

if (obj instanceof String) < String s = (String) obj; // например, s.substring(1) >

Теперь вы можете сделать следующее:

if (obj instanceof String s) < // Пусть сопоставление шаблонов сделает свою работу! // . s.substring(1) >

Каналы сокетов Unix-домена

Теперь вы можете подключаться к сокетам Unix-домена (также поддерживаются macOS и Windows (10+).

 socket.connect(UnixDomainSocketAddress.of( "/var/run/postgresql/.s.PGSQL.5432"));

API стороннего компоновщика - превью

Планируемая замена JNI (Java Native Interface), позволяющая выполнять компоновку с нативными библиотеками (например, с библиотеками языка C).

Записи и сопоставление с образцом

Обе функции теперь готовы к продакшн и больше не отмечены in preview .

Запечатанные классы

Запечатанные классы (начиная с Java 15, см. выше) все еще находятся в предварительной версии.

- Java 17 -

Java 17 — это новая версия Java с долгосрочной поддержкой (LTS) после Java 11.

Сопоставление шаблонов для switch (предварительная версия)

Уже доступно на многих других языках:

public String test(Object obj) < return switch(obj) < case Integer i ->"An integer"; case String s -> "A string"; case Cat c -> "A Cat"; default -> "I don't know what it is"; >; >

Теперь вы можете передавать объекты в функции переключателя и проверять наличие определенного типа.

Запечатанные классы (завершена)
Функция, которая была представлена ​​в Java 15 в качестве предварительной версии, теперь завершена.

Резюме: если вы когда-либо хотели иметь еще более жесткий контроль над тем, кому разрешено создавать подклассы ваших классов, теперь у вас есть функция sealed .

public abstract sealed class Shape permits Circle, Rectangle, Square

Это означает, что хотя класс Shape является публичным, единственными классами, которым разрешено создавать его подклассы являются Circle , Rectangle и Square .

API внешних функций и памяти (инкубатор)

Замена нативного интерфейса Java (JNI). Позволяет вызывать нативные функции и обращаться к памяти за пределами JVM. Пока это вызовы на C, но в будущем планируется поддержка дополнительных языков (таких как C++, Fortran).

Прекращение поддержки диспетчера безопасности

Начиная с Java 1.0, существовал менеджер безопасности. Теперь он устарел и будет удален в одной из будущих версий.

- Ява 18 -

UTF-8 по умолчанию

Если вы пытались, например, читать файлы без явного указания окончания символов, то в предыдущих версиях Java использовалась кодировка операционной системы (например, UTF-8 в Linux и macOS и Windows-1252 в Windows). В Java 18 она изменилась на UTF-8 по умолчанию.

Простой веб-сервер

Java 18 теперь поставляется с простейшим HTTP-сервером, с которого вы можете начать:

jwebserver

Подробнее о его возможностях можно узнать здесь .

Другие не столь захватывающие вещи/инкубационные возможности

Полный список и обзор смотрите в этой статье .

- Ява 19 -

В Java 19 добавлено несколько интересных функций, таких как Virtual Threads и новый Foreign Function & Memory API , а также структурированный параллелизм и Vector API , но все они находятся в режиме предварительного просмотра, поэтому могут быть изменены в следующих релизах.

Если вы хотите узнать об этих функциях и о том, что будет дальше, ознакомьтесь с этой статьей .

Заключение

К настоящему моменту у вас должно быть довольно хорошее представление о нескольких вещах:

  • Как установить Java, какую версию получить и где ее получить (подсказка: Adoptium).
  • Что такое дистрибутив Java, какие из них существуют и чем они отличаются.
  • В чем разница между конкретными версиями Java.

Обратная связь, исправления и ваш вклад всегда приветствуются! Просто оставьте комментарий внизу.

Спасибо за прочтение!

Благодарности

Стивену Колеборну, который написал фантастическую статью о различных доступных дистрибутивах Java.

Какую версию java учить

Книга выпущена на английском языке, необходимый для чтения уровень владения им – примерно Intermediate. Более старые версии были переведены на русский язык, но ранее материал был разбит на два тома.

Если предыдущее издание покажется вам слишком сложным или скучным, можно начать с книги « Изучаем Java » , Бэйтс Берт, Сьерра Кэти

Изучаем Java

Эта книга переведена на русский язык. Она не только учебная, но и развлекательная, правда есть одна проблема – материал немного устарел. Некоторые языковые конструкции актуальных версий Java в книге не охвачены, однако она поможет понять необходимые концепции когда не у кого спросить.

��☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»

Курсы для самостоятельного прохождения

Для любителей просмотра видео есть недорогой курс Заура Трегулова « Java (Джава) для начинающих: с нуля до сертификата Oracle » на Udemy

Курс на русском языке. Автор последовательно проходится по базовым темам, необходимым любому джуниору.

Java курс на Udemy

Важно для тех, кто на Udemy впервые: курсы на этой платформе никогда не стоят дороже $10 – 15. Если купон на скидку автоматически не применился в корзине, поищите свежий на сайте Retail-me-Not или в другом агрегаторе купонов.

Практика

Читать книги и смотреть курсы недостаточно.

Программирование – практический навык. Вам нужно несколько раз повторить (придумать и напечатать) код, чтобы понять, как он работает. Для тренировки удобно использовать платформу Javarush. Здесь веселое объяснение теории с картинками в духе Футурамы дополняется сотнями упражнений для тренировки.

Обучение последовательное, организованное в виде квестов – тематических курсов. Проверка решений автоматическая. Вам нужно будет установить среду разработки и плагин для проверки задач. На сайте также опубликованы сотни статей в жанре «как это сделать». Для изучения основного джуниорского минимума нужно пройти Квесты Java Syntax и Java Core.

JavaRush – Состав базового квеста

Стоимость без скидок – ₽1800 в месяц, но не спешите покупать подписку. Зарегистрируйтесь на сайте и начинайте смотреть бесплатные материалы. По праздникам платформа делает приятные скидки на годовые подписки, причем цена не особенно меняется последние пару лет.

JavaRush – Стоимость подписок по скидкам

Еще одним подспорьем в практике может стать англоязычный ресурс HackerRank . Платформа имеет большой бесплатный раздел с задачами на Java и других языках, которые организованы по нарастанию сложности. Английский нужен минимально, чтобы добраться до упражнений. Проверка решений задач автоматическая.

HackerRank – ресурс для тренировки навыков

Длительность

Скорость обучения зависит от количества свободного времени, которое вы можете уделять процессу, однако вряд ли получится учиться больше 4 часов в день. Если заниматься без перерыва два-три часа, перестает «варить» голова, да еще, к тому же, иногда нужно «переспать» с проблемой, чтобы материал отложился.

Самый оптимистичный вариант самостоятельного изучения Java – полгода. Обычно обучение растягивается на срок от 6 месяцев до 1,5 лет.

Плюсы и минусы

Безусловным плюсом самостоятельного обучения является его дешевизна, а также возможность управлять своим временем: никто не требует от вас быть перед монитором по расписанию. Также самостоятельно выбирается темп обучения и количество повторов какой-либо из тем.

Минус у самостоятельного обучения довольно существенный – некого спросить. Иногда чтение разных ресурсов и выполнение задач не дает понимания, вот здесь бывает полезно обратиться к специалисту.

Задать вопрос можно на различных форумах, однако адекватный ответ не гарантирован. Также нужны серьезные усилия по самоорганизации, не у всех эта функция встроенная.

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

Кирилл Бубнов, менеджер по закупкам, изучает Java в качестве хобби.

2. Обучение с ментором

Как учиться?

Если вам требуется поддержка или вы хотите повысить интенсивность, обучение с ментором будет хорошим вариантом.

Наставничество – один из основных вариантов обучения программированию. Зачастую это помощь друга в институте или коллеги на первой работе. Суть обучения состоит в том, что ученик выполняет задачи с конкретной целью, время от времени обращаясь к знающему человеку.

Важно отличать ментора от тренера. Ментор обычно не читает лекций. Наставник задает направление, помогает в решении конкретной задачи, разбирает затруднения, подсказывает материалы. Ожидается, что разбираться ученик будет в первую очередь сам, а уж если не вышло, тогда придет к ментору за помощью и дальнейшими рекомендациями.

Когда джуниор приходит на первую работу, его в лучшем случае ждет именно такой наставник.

В некоторых случаях ментор может быть и коучем-мотиватором, но этот формат не особенно популярен. Предполагается, что ученик достаточно мотивирован сам. Раздача волшебных пенделей – это уже из области психологии, а не программирования.

Планирование

Важно понимать, что планирование обучения в задачи ментора не входит. Вы можете попросить список тем, однако что и в каком темпе делать, решаете только вы. Наиболее эффективный формат: самостоятельное обучение в течение недели или двух, далее встреча с ментором для проверки заданий, разбора непонятных моментов и выбора источников. Ментор не будет вас подгонять, это не коуч, но если появляется чувство ответственности перед человеком, который дает задание, шансы на завершение обучения повышаются.

Материалы

Сейчас не нужно искать менторов по друзьям друзей и форумам программистов, для этого есть специальные платформы.

Консультант сайта https://solvery.io поможет выбрать ментора по запросу и ценовому диапазону. Есть бесплатная короткая встреча перед тем, как будет проведено первое занятие для определения целей. Далее ученик и ментор встречаются в zoom и ведут переписку в Telegram. Преподаватель может разъяснить конкретную тему, посмотреть код или составить полный план обучения языку.

solvery.io – платформа для поиска ментора

Украинская платформа foxminded.ua также предоставляет Java-менторов. У ребят «человечный» инстаграм. Можно почитать там полезное и обсудить сомнения. Обучение идет по классической схеме, когда ментор направляет ученика, а не делает всю работу за него.

foxminded.ua – украинская платформа для поиска метора

К ментору может обратиться как новичок, так и опытный программист, работающий над новой задачей. Консультация будет иметь прикладной характер, направленный на решение боевой проблемы: выбор методов, оптимизация, ревью кода и т.д.

Стоимость часа работы ментора варьируется от ₽ 2000 до ₽ 4000, более дорогие варианты для обучения новичков уже нерациональны.

Длительность

Темп задает ученик, однако обучение с наставником может быть эффективнее за счет направлений от ментора, разобранных с ним задач и подсказанных материалов.

Ученик меньше блуждает, поскольку ментор обрисовывает ему путь.

☕ Сравниваем 3 формата изучения Java, актуальных в 2021 году

Обучение обычно организовывается так, что ученик работает самостоятельно 1 – 2 недели над какой-то темой, а потом результаты разбираются с ментором и выбирается следующая тема. Некоторые менторы также проводят тренировочные собеседования, что помогает ученику скорее получить новую работу.

При всех улучшениях срок обучения – от полугода, так как материала меньше не становится.

Плюсы и минусы

Несомненным плюсом формата является поддержка специалиста. При затруднениях можно назначить встречу, обсудить проблему, не возникает подвисания на пару недель в поисках решения в интернете. Ментор рассказывает, как задача решается в рабочем режиме, а не в тренировочном. Те же задачи на Javarush зачастую решаются иначе.

Я обращалась к менторам дважды за последний год. В первый раз мне потребовалось решить новую для меня задачу. Не хотелось кодить «на коленке», а гугление не дало ответа, как эта задача решается в промышленном варианте. Ментор посоветовал мне литературу, показал на своем коде пример такого решения.

Второй раз я начала руководить командой, которая писала код на неизвестном мне фреймворке. Времени разбираться не было. Ментор рассказал в общих чертах о процессе разработки, стало понятно, что и как делается.

Автор этой статьи, тимлид.

Создатель платформы foxminded.ua Сергей Немчинский подробно описывает процесс обучения с ментором на своем канале. Заодно Сергей рассказывает, когда менторинг «не сработает».

3. Обучение на курсах

Курсы программирования на Java сейчас доступны на всех популярных образовательных платформах. Некоторые из них менторскую поддержку, некоторые предназначены для самостоятельного обучения. Конечно, больший уровень поддержки ученика автоматом поднимает цену курса.

Бесплатные курсы

Многие бесплатные курсы по Java опубликованы в youtube. Их авторы, как правило, имеют платные, обновляемые варианты курсов на Udemy.

  • Александр Чуев youtube канал follow the white rabbit. Курс записан в 2016 году, однако по нему вполне можно обучиться базе программирования. Некоторые разделы обновлены.
  • Александр Петров, youtube канал Уроки Java. Курс записан в 2017 году, у автора множество курсов-продолжений на Udemy.
  • Наиль Алишев, youtube канал alishev. Курс записывался в 2015 году, но периодически обновляется. Полная версия, как обычно, на Udemy.

Эти курсы позволят без вложения средств:

  • понять, программирование – это ваше или нет.
  • узнать, нравится ли вам программировать на Java.
  • получить базовые знания, которые вы сможете развивать самостоятельно.

У лекций на YouTube есть один недостаток – никто не проверит ваше домашнее задание. Однако, если вам понравился учитель, можно продолжить на Udemy, где предусмотрены практические разделы, а учителя отвечают на вопросы.

Более продвинутые версии бесплатных курсов есть на Stepik:

  • Петр Михалевский «Легкий старт в Java. Вводный курс для чайников». Здесь есть и теоретические материалы и практические примеры.

К сожалению, курс довольно короткий, однако введение в программирование он дает хорошо (и бесплатно).

Stepik – платформа с курсами разного уровня

  • Алексей Владыкин «Java. Базовый курс». Курс дает много информации даже сложного уровня, однако содержит мало примеров по сравнению с платными аналогами.

Недорогие курсы

Платформа Udemy лидирует по количеству вариантов и соотношению цена/качество. Курсы здесь представлены на русском и на английском языках.

Средняя цена курса $10 – 15. При входе на сайт отображаются полные цены, но в агрегаторах всегда есть купоны на скидки.

С Udemy есть следующая проблема – преподаватели (преимущественно иностранные) разбивают курс на короткие видео, чтобы увеличить его важность количеством лекций или записывают какую-то лишнюю информацию, чтобы указать большую продолжительность. К счастью, платформа честно указывает рейтинг курсов, на который можно ориентироваться.

Рекомендации по авторам можно посмотреть в разделах Самообучение и Бесплатные курсы. Заодно можно заранее послушать авторов на их youtube-каналах и понять, подходит ли вам конкретный преподаватель.

Курсы по подпискам

На первый взгляд кажутся недорогими, но это может быть иллюзией.

Например, относительно недорогой курс «Введение в Java» представлен на hexlet.io, однако сайт предоставляет доступ по подписке, так что при неторопливом обучении накапает приличная сумма.

Для знающих английский язык уважаемые университеты мира ведут курсы по Java на Coursera.

Модель оплаты также помесячная, д а и Javarush не дешев, если растягивать удовольствие.

Крупные платформы

Каждая крупная образовательная платформа имеет курс по Java в своем портфолио. Как правило, «серьезные» курсы длятся около года, и в каждом будут доступны: план обучения, видеолекции, практические задания с проверкой, поддержка преподавателя и иногда live-встречи.

базовому перечню тем , обозначенному вендором, но это не всегда можно сказать по опубликованной на сайте программе.

Планируя дорогостоящее обучение, обязательно посетите бесплатные мастер-классы разных образовательных платформ. После мастер-класса не спешите с покупкой, обратитесь в организацию и получите полный перечень тем. Уточните, какие документы об образовании вы получите. Ряд платформ выдают документы о повышении квалификации, это может быть полезно джуниору.

Для девушек

Прогресс не стоит на месте, и после курсов вождения специально для дам появились курсы программирования для девушек.

Пионером в сфере курсов Java для девушек выступает Programiss

Programiss – красивая и добрая платформа для девушек

Платформа создана для женщин, желающих получить навыки программирования, в безопасной обстановке. Автор курса по Java – девушка, что, возможно, придаст больше уверенности студенткам. На сайте так и указано, что автор «Обладает особым «мягким» стилем преподавания».

Не очевидно, с чем это связано, так как Java может обучаться человек любого пола. Чтобы быть уверенным в своем выборе, можно запросить демо-доступ и ознакомиться с первыми уроками.

Как учиться?

Все, что от вас требуется – просматривать видео, делать домашнее задание и подключаться к live-встречам. Если не пропускать уроки, не останавливать обучение надолго и делать домашку, результат будет.

Поддержка преподавателя предоставляется на большинстве курсов верхнего ценового диапазона, для более дешевых доступны форумы.

Длительность

Большинство полных курсов по Java рассчитаны на год или около того. Иногда платформы разбивают курсы на меньшие блоки по 4-6 месяцев.

Плюсы и минусы

Безусловный плюс любого курса – спланированная программа. Впрочем, это же и минус: бесплатные курсы часто слишком короткие, а платные содержат материалы общего характера, которые могут быть вам не нужны.

Для выбора дорогих курсов стоит ориентироваться на заявленный преподавательский состав. Возможно, именно эти люди будут вашими менторами при обучении, но здесь все не так просто, и ментором может отказаться свеженанятый сотрудник. Многие площадки оперативно ищут преподавателей, и требования не такие уж высокие.

Отзывы о различных образовательных платформах можно найти на сайте tutortop.ru

TutorTop – отзывы о курсах

Основная проблема дорогих курсов – это добавление для пущей важности модулей, которые вам могут быть совершенно не нужны, типа HTML/CSS бекендеру или Английский для ИТ. С одной стороны, больше лучше, чем меньше, а с другой вас подкупают этим большим количеством часов и «весомостью» образования.

Стоимость обучения часто сравнима с получением второго высшего образования или магистратурой, однако документы дорогих платформ все еще не очень интересуют работодателя.

Я начала изучать Java самостоятельно, будучи в декрете, и используя в качестве источников информации книги, Youtube, бесплатные курсы и примеры задач и решений в сети. Спустя несколько месяцев я поняла, что упираюсь в собственный потолок, преодолеть который самостоятельно, без наставничества, мне трудно. В качестве дальнейшего шага я выбрала 4-месячные курсы от официального учебного заведения и не пожалела, поскольку это позволило мне глубже освоить базу, а также приступить к изучению фреймворков и тут же применить знания на практике в первом командном проекте. Полученные знания помогли обрести уверенность в себе и найти первую работу через 1,5 месяца после курсов.

Ксения Ушакова, Junior Java Developer.

Сравнительная таблица форматов

Самостоятельно С ментором Бесплатные курсы Платные курсы
План обучения Нет, его надо составить Нет, но могут помочь составить Есть Есть
Поддержка учителя Нет Есть Нет Есть у дорогих
Практика Есть, ученик ищет сам Есть, дает ментор Есть, но не всегда Есть
Собственный темп обучения Да Да, но надо учитывать график ментора Да Не всегда, есть живые встречи и ограничения доступа по времени
Стоимость ₽₽ - ₽₽ – ₽₽₽
Полнота материала Любая по выбору учащегося Любая по выбору учащегося Не все есть или что-то есть ограниченно. Как правило, есть даже больше, чем нужно.

Ваш вариант

Каждый выбирает наиболее удобный для себя формат и чаще всего это микс.

Например, можно пойти таким путем:

  • Записаться на бесплатный интенсив любой платформы и узнать, что же это такое – Java-кодинг. Весь код будет писать тренер, так что можно запастись попкорном и пару часов посмотреть вебинар. Повторить код за тренером в формате интенсива сложновато или вообще невозможно.
  • Если увиденное в целом вас не пугает, можно взять какой-то из бесплатных курсов и просматривать лекции, обязательно выполняя задания. Первые несколько дней это будет боль и страдание, ничего не будет работать, ничего не будет получаться, но, если прорветесь, дальше процесс пойдет легче.
  • Если какая-то тема непонятна, можно обратиться к ментору, разобрать ее и двинуться дальше. Никто не обязывает вас ходить к ментору постоянно.
  • После окончания бесплатных курсов приходит понимание, что требуется дальше: либо свободное плавание самообучения, либо петчворк из курсов разных платформ, либо курс гигантов интернет-образования.

В любом случае:

  • Не надо учить язык абстрактно. Лучше найти пару вакансий с целевой работой и оттачивать навыки под них.
  • Невозможно научиться программировать, просматривая записи даже самого прекрасного лектора без практики. Чтобы научиться кодить, нужно кодить (ваш Кэп Очевидность).
  • Возможно, вы задаетесь вопросом, как программист из головы печатает код, не пользуясь Google. Все просто: работа требует многократного повторения одних и тех же конструкций. Руки помнят.

Я работал в разных сферах, долгое время работал с клиентами в банках, пробовал себя в продажах и интернет-маркетинге. При этом везде мне было интересно систематизировать процессы, упрощать и автоматизировать их. Например, сделать рассчет оборудования на сайте через калькулятор или ускорить процесс ежедневной финотчетности.
Хотелось больше логической работы. Так я увлекся программированием на Java, решил стать разработчиком, и за 11 месяцев у меня получилось это сделать.

Для меня самым действенным способом оказалась работа с ментором: задания на алгоритмы, внутренне устройство структур данных и написание тестов с последующим детальным ревью от ментора. Благодаря этому сложному, но очень продуктивному этапу, многие концепции стали гораздо понятнее. Кроме того, электронные курсы на javarush и stepik помогли втянуться на начальном этапе. Понятные статьи для начинающих с примерами есть на javarush и habr. На Youtube тоже много интересных материалов с конференций и видеолекций успешных разработчиков.

Также я считаю, мне повезло попасть на 3х-месячную стажировку, где под присмотром преподавателя мы поработали с самыми актуальными enterprise технологиями на тот момент. В настоящий момент я работаю в финтех секторе на позиции Middle-разработчика.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *