Рубрики
Без рубрики

Переход От “Привет, Мир” к многопоточности: Сколько времени требуется для изучения Java?

Короче говоря, для достижения относительного или абсолютного уровня владения Java требуется от 6 месяцев до десятилетий. Почему существует такая разница? Давайте подробнее рассмотрим, каково это-свободно владеть Java.

Автор оригинала: John Selawsky.

Java считается одним из самых удобных для начинающих языков для изучения благодаря своей “объектно-ориентированности”, безопасности типов и общей прямолинейности. По сравнению с C или C++, где понимания указателей достаточно, чтобы свести разработчиков с ума, “получение” Java кажется прогулкой в парке.

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

Короче говоря, для достижения относительного или абсолютного уровня владения Java требуется от 6 месяцев до десятилетий. Почему существует такая разница? Давайте подробнее рассмотрим, каково это-свободно владеть Java.

Что означает “освоение Java”?

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

Я оцениваю свои навыки в любом языке программирования следующим образом:

  • Привет, мир — возможность решать базовые практические задачи в учебнике по программированию 101.
  • Мастерство — программист может писать функциональные программы, но ему необходимо изучить функции и технологии, прежде чем выполнять задание.
  • Беглость — вам не нужно много ориентиров для написания сложных решений.
  • Оригинальность — создаваемый вами код неотличим от кода другого носителя языка, вы можете свободно использовать весь набор инструментов Java и не нуждаетесь в ссылках для создания передовых решений.

Есть еще один способ оценить ваше владение Java — это позволяет ли ваш уровень владения языком выполнять повседневные задачи по программированию. Вот примеры того, как “изучение Java” может варьироваться среди программистов:

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

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

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

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

Каков наилучший способ изучения Java?

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

Начинающих программистов часто обескураживает такое разнообразие инструментов обучения. Если вам интересно “Должен ли я прочитать книгу по Java или это слишком прошлый век” или “Являются ли онлайн-курсы лучшим способом изучения языка”, взгляните на это сравнение самых популярных инструментов обучения Java, их плюсов, минусов и количества времени, необходимого для завершения процесса обучения.

Интерактивные платформы

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

Плюсы:

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

Аферы:

  • Требуется теоретическое понимание принципов Java.
  • Не стоит так сильно разбираться в теории, как это делают книги.
  • Для завершения требуется больше времени, чем для других инструментов обучения.

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

Лучшие Платформы Для Обучения Java

  • Codegym.cc — углубленная платформа для учащихся начального уровня, изучающих Java. Созданная как увлекательная многоуровневая игра, она использует шутки и игровых персонажей, чтобы сделать обучение программированию увлекательным. Присмотревшись повнимательнее к игровой обложке платформы, вы поймете, что Code Gym-это один из самых передовых инструментов обучения, охватывающий все, от Java Core до SQL, Hibernate и JSP.

  • CodinGame — эта платформа представляет собой набор практических проблем и задач, которые вам необходимо решить с помощью программирования. Игра для кодирования поддерживает более 25 языков, включая Java. Креативное повествование и современная графика-вот что выделяет CodinGame среди других интерактивных платформ.

  • Поиск кода . Хотя этот учебник не предлагает плана обучения, он определенно является надежным инструментом для отработки навыков Java. В процессе поиска кода учащиеся должны сравнить два фрагмента кода и выбрать рабочий. Существует таблица лидеров, которая поддерживает вашу мотивацию и желание совершенствоваться.

Книги

Плюсы:

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

Аферы:

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

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

Лучшие книги для изучающих Java:

  • Java: Руководство для начинающих — это руководство в стиле учебника по ядру Java. Помимо использования привлекательных нетехнических метафор, которые помогут вам понять концепции программирования, Герберт Шильдт добавляет в каждый раздел викторины и практические задачи. Обязательно заполните их, чтобы улучшить хранение знаний.
  • Эффективная Java . Эта книга обязательна для чтения программистам, обладающим знаниями Java до среднего уровня”. Эффективная Java”-это список из 78 практик, которые изменят ваш подход к решению проблем, добавят элегантности и изящества вашему коду и сделают конечный продукт более родным.
  • Параллелизм Java на практике . Несмотря на то, что эта книга довольно устарела (книга охватывает Java 5.0), она представляет собой отличное краткое изложение концепций параллелизма и многопоточности. Параллелизм Java на практике — это нелегкое чтение, но, как только вы пройдете через него, решение любой проблемы, связанной с параллелизмом, на рабочем месте будет проще простого.
  • Производительность Java: Окончательное руководство . Это отличное чтение для вас, если вы не разбираетесь в JVM, настройке производительности или сборке мусора. Книга охватывает широкий спектр тем производительности Java — от настройки приложений баз данных до API JAVA SE и EE.

Онлайн-Курсы

Плюсы:

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

Аферы:

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

Лучшие Курсы По Изучению Java

  • LinkedIn Изучает Учебные пособия по Java — это краткий и приятный курс по основам Java. После завершения всей серии учебных пособий вы получите четкое представление о методах, синтаксисе и потоках, которые Java-программисты обычно используют в реальном мире.
  • Полный мастер — класс Java на Udemy – это один из самых известных онлайн-курсов Java, на котором обучается более 207 000 студентов. Конечно, если вы решите придерживаться мастер — класса, вам нужно взять на себя обязательство изучать Java-есть 72 часа учебного контента, а также викторины и практические задачи. Курс охватывает Java 8 и 9, многопоточность, Модульное тестирование, базы данных, Сетевые технологии и многие другие концепции. Этот курс Udemy стоит изучить.
  • Углубленное изучение Java . Это еще один углубленный онлайн-курс, который редко встречается в программировании на Java. Мне понравилось количество деталей и относительная легкость, с которой инструктор излагает концепции программирования на Java. Конечно, существует не так много примеров или практических проблем, однако, как краткое изложение основных концепций языка, углубленное изучение Java отлично справляется с этой задачей.
  • Java-Программа для Начинающих в 250 Шагов . Несмотря на то, что курс хорошо структурирован и углублен, он также является бесплатным. Весь учебный контент структурирован в виде модулей — текстовые учебные пособия и слайды знакомят начинающих программистов с концепциями Java.

С чего начать изучение Java?

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

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

Уровень 1. Изучение ядра Java

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

Вот что означает изучение Java Core:

  • Лицом к синтаксису . Сначала разработчику необходимо узнать, что такое объекты, классы и методы, знать, как работать с операторами if-else, использовать циклы, массивы и простейшие операторы.
  • Понимание объектно-ориентированного программирования . Поскольку ООП используется на нескольких языках, вам следует уделить этому много внимания. Абстракция и инкапсуляция данных, представление классов, наследование и полиморфизм-вот некоторые из понятий, которые вам необходимо четко понимать.
  • Обработка коллекций Java и исключений Java — разработчик должен быть уверенным пользователем интерфейсов Java Collection и Map. Кроме того, каждый студент CS должен изучать java.lang. Исключение и уметь идентифицировать классы исключений.
  • Алгоритмы Java — знание того, как выбрать и применить правильный алгоритм для решения данной проблемы, сэкономит вам много времени при работе с рабочими проектами.
  • Многопоточность Java — это одна из самых сложных тем Java, которая знаменует ваш переход от начинающего разработчика Java к среднему уровню.
  • Модульное тестирование — как разработчику, вам будет предложено написать модульные тесты, поэтому выделите некоторое время для изучения того, как это правильно делать.
  • Лямбда — это относительно новая концепция, однако, поскольку большинство людей используют Java 8 или более поздние версии, вам нужно будет хорошо владеть лямбда.

Уровень 2. Фреймворки и дополнения

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

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

  • SQL — технология, используемая для обработки баз данных и управления системой управления реляционными базами данных.
  • JavaScript — занимая самую высокую позицию в списке лучших языков программирования StackOverflow, JS-это технология, которую вам, возможно, придется использовать чаще, чем стандартную Java. Конечно, JavaScript очень сложен, поэтому иногда кажется, что вы осваиваете новый язык с нуля, но путешествие не будет чрезвычайно сложным, если вы в хороших отношениях с Java.
  • Git — инструмент номер один для управления вашим кодом.

Итак, сколько времени мне нужно, чтобы освоить Java?

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

В среднем, чтобы стать уверенным Java-программистом, требуется около 1-2 лет, учитывая, что вы тратите 2-3 часа в день на практику программирования. Знакомство с языком до такой степени, что вы сможете редактировать чужой код или писать базовые приложения, может занять всего четыре месяца.

Что касается учебного контента, я бы предложил использовать сочетание книг, онлайн-курсов и платформ или игр, основанных на практике, — каждый из них полезен и уникален. Имейте в виду, что изучение Java — это долгий путь, но, в конце концов, изучение любого языка ООП после Java будет намного проще, а освоение JS также станет легко достижимой целью.

Оригинал: “https://www.codementor.io/@johnselawsky/going-from-hello-world-to-multithreading-how-much-time-does-it-take-to-learn-java-16p1lq7jsj”