Java как изучить: почему стоит и где начать / Хабр

Содержание

Хотите быстро выучить Java? Сожгите все книги

Пытаетесь выучить Java? Ускорьте процесс! Сравниваем правильный и ошибочный подходы. Подборка лучших ресурсов для овладения этим языком.

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

Преимущества разработки на нём практически не знают границ. Поскольку Java занимает место в списке самых популярных и востребованных языков в мире, вы не останетесь без работы, когда выучите его!

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

И это проблема…

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

Неправильный подход к изучению Java

Вероятно, когда вы впервые ввели в Google «как выучить Java», вверху появился результат «полное руководство по Java». Затем щёлкнули и немедленно удивились порции теоретической околёсицы или громоздкой книге, которая вернула в старшую школу. Вы предпринимали попытки прочитать это, и ещё не домучили первую часть, а растерялись сильнее, чем когда начинали.

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

И обучение практическим навыкам в теории не срабатывает.

Почему?

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

Во-вторых, теория замедляет изучение. За то время, что потратили на чтение громоздких пособий, вы добились бы больших успехов с освоением через практику. Избегайте ужасных ошибок, которые делают студенты. Я сталкиваюсь с этим всё время. На неделе с таким вопросом обратились учащиеся. И доверились мне как эксперту и наставнику по Java: раскрыли разочарования, с которыми столкнулись при овладении Java. Они покаялись, что изучали Java год, но так и не понимают, как работает код. Серьёзно?

Да, это смешно. Но, эй, многих студентов постигает та же участь. И причина проста: они выбрали неправильную дорогу – только теорию!

Итак, какой подход работает лучше всего при изучении Java?

Практика в корне меняет дело. Преимущества стремятся к бесконечности:

  • Практика ведёт к профессионализму. Я стал опытным преподавателем Java из-за постоянной, повторяющейся практики. Безусловно, это главный фактор успеха профессиональных разработчиков. Вам нужно запрограммировать всё!
  • Помогает учиться. Применение знаний на случаях настоящей жизни повышает мастерство.
  • Чем чаще практикуетесь, тем больше постигаете, включая вещи, о которых даже не подозревали.
  • Помогает писать код вручную. Это гораздо сильнее развивает навыки, чем модные инструменты и фреймворки. Вы глубже поймёте логику программирования.
  • Помогает решить практические проблемы. С практикой сможете лучше оценить сложности, понять их динамику и предложить соответствующие решения.

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

Какие интернет-источники использовать, чтобы выучить Java?

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

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

CodeGym

CodeGym.cc интегрируется с IntelliJ IDEA с помощью плагина

CodeGym назвали подходящим образом. Это место, где вы отшлифуете навыки разработки на Java. Учебный процесс на платформе практический на 80%. Это позволит заниматься порядком быстрее обычного. Вы будете программировать, программировать, а затем программировать ещё капельку! И это предоставляет платформа.

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

Java Revisited

Эта платформа предлагает слегка другой подход к освоению Java. Вы получаете доступ к тоннам практических учебных пособий и садитесь за код. Они натаскивают программировать на Java и направляют. Так что это скорее смесь теории и практики. Вы читаете теорию, а затем применяете её.

Тест: насколько хорошо вы знаете Java

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

Полезные советы при изучении Java

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

  • Не бойтесь спрашивать людей. Проясним положение: вы вряд ли добьётесь успеха, обучаясь в изоляции. Это ужасный подход. Важно уделять чрезвычайное внимание изучению, но также убедитесь, что вы обращаетесь к остальным при необходимости. Кое-какие проблемы, с которыми столкнётесь, решаются при обсуждении с другим человеком. Почём знать, он встречал и разбирал аналогичную проблему.
  • Применяйте опыт наставников. В блоге часто задают вопрос, что делает моих учеников такими преуспевающими. Я улыбаюсь и говорю: «Ну, я заставляю повторять мой собственный опыт». У великого наставника богатейший опыт, потому используйте его, чтобы накопить личные знания. Учитесь на этом.
  • Присоединяйтесь к форумам и сообществам для программирования. Разработчики найдут массу подходящего. Вступайте в оживлённые, потому что так освоите кучу вещей. Вы будете учиться на опыте других, задавать вопросы, а также обсуждать и искать решения возникающих проблем. Некоторые из них включают в себя Java Forum, Java World, CodeGym Help и подфорумы программирования на Reddit (например, learnjava и learnprogramming).

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

Как построить результативный план для самообучения

Освоение Java требует планирования и дисциплины в соблюдении расписания. Это секрет процветающих профессиональных программистов. Как вы такого добьётесь?

  • Составьте график образования и найдите способы минимизировать отвлекающие факторы. Дисциплинируйте себя: чётко следуйте расписанию.
  • Задавайте правильные вопросы. Не каждый вопрос необходим и требует ответа. Только относящиеся к делу приводят к отысканию полезных решений.
  • Начните с основ. Если вы новичок, сперва осваивайте основы Java. Не прыгайте на другой уровень, каким бы лёгким он ни казался.
  • Пишите код каждый день. Практика ведёт к совершенствованию. Нужно постоянно упражняться. Сделайте программирование ежедневной привычкой. Например:
  • Создавайте мини-приложения.
  • Не уклоняйтесь от написания более продвинутых программ с использованием Java API, когда закончите с основами.
  • Попробуйте создать хотя бы одно веб-приложение и одно настольное.
  • Используйте большинство блогов и форумов, посвящённых Java и языкам программирования. Это поможет совершенствоваться.
  • Применяйте принцип 80% практики и 20% теории.
  • Продолжайте учиться каждый день, даже после достижения успеха.

Подведение итогов

Хватит собирать книги по Java. Учебники не принесут вам пользы. По правде говоря, чтобы продемонстрировать серьёзность в овладении Java, подожгите свои лучшие книги по Java.

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

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

С какой книги начнёте сожжение? 🙂

Реально ли выучить Java с нуля и стать серьезным программистом?

Реально ли выучить Java онлайн и стать серьезным программистом с нуля, если у вас нет никакого опыта в кодинге и других ИТ-специальностях, вы ничего не знаете о классах, методах и объектно-ориентированном программировании, и вообще всю жизнь думали, что Java — это остров в далекой Индонезии? Этим вопросом задаются очень и очень многие, в том числе и на просторах сайта JavaRush.

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

Внимание, спойлер:

да, это вполне реально!

Java: учить

или не учить?

Вот несколько цитат об изучении Java от обычных программистов, которые делятся своим мнением на популярном сайте вопросов и ответов Quora. “Смотрите на изучение языка программирования так же, как смотрели бы на изучение обычного иностранного языка, например, французского. Нет универсальных требований, после выполнения которых ты будешь знать этот язык. Можно выучить простые слова вроде “привет” и “спасибо.” Но это не значит, что ты можешь говорить на французском. Я, в свою очередь, — носитель английского языка. Я бегло говорю на нем, но я не знаю абсолютно все слова, которые есть в английском. И скорее всего никогда не узнаю. Поэтому мой совет: не смотрите на изучение языка программирования как на задачу, на которую можно выделить конкретный временной интервал, сделать ее и двигаться дальше.

Это всегда путешествие, и, как правило, это путешествие длиною в жизнь,” — сказал Стюарт МакЭвен (Stewart McEwen), программист из Австралии. “Java — это океан. А все что вы видите вначале, стоя на берегу, — это только прибрежные воды. И вы хотите знать, сколько вам придется грести на своей лодке, чтобы переплыть океан. Времени всегда будет недостаточно. Сами решайте, насколько глубоко вы хотите изучить Java. Но если вы готовы к плаванию, то ныряйте, не откладывая,” — такой красивой метафорой ответил на вечный вопрос Киран Камнур (Kiran Kumnoor), индийский Java-кодер.

Базовые советы

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

  1. Если вы решили учить Java, начните сразу, не откладывайте.

    Безусловно, следует понимать, что освоение новой профессии — дело непростое, на это придется потратить немало времени и энергии. Так что, прежде чем принять окончательное решение, стоит хорошенько подумать, изучить информацию в Сети, послушать и почитать, что говорят люди с опытом. Помимо обдумывания целесообразности изучения программирования в целом, безусловно имеет смысл потратить время и на выбор языка программирования, с которого вы начнете свой путь. Логично, что мы в JavaRush считаем Java лучшим языком для старта карьеры в программировании, и, надо заметить, можем аргументированно доказать, почему это так, и зачем учить Java. Но конечно на этот счет есть и другие мнения, а финальное решение принимать только вам.

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

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

  2. Не обращайте внимание на слова критиков.

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

  3. Не хватайтесь сразу за все обучающие материалы одновременно.

    Хорошим советом на базе собственного опыта поделился новичок в Java Питер Морган (Peter Morgan).

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

  4. Не фокусируйтесь на одной лишь теории, ключ к успеху — в практике.

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

  5. Но не забывайте и о теории.

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

Учим Java с нуля — короткий путеводитель для новичков

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

  1. Шаг 1-й. Начните изучать туториал или проходить онлайн-курс Java с практическими задачами.

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

  2. Шаг 2-й. Спрашивайте, спрашивайте и еще раз спрашивайте.

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

  3. Шаг 3-й. Если процесс обучения застопорился, почитайте книги.

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

  4. Шаг 4-й. Регулярно изучайте чужой код и учитесь на нем.

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

  5. Шаг 5-й. Начинайте отвечать на вопросы новичков.

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

  6. Шаг 6-й. Создайте собственный репозиторий на GitHub.

    Примерно на том же этапе можно создавать собственный GitHub репозиторий и начинать с ним работать. Это легче, чем может показаться на первый взгляд.

  7. Шаг 7-й. Начните свой проект на GitHub.

    Где-то месяца с четвертого или пятого, а для тех, кто быстро учится, может и месяца с третьего, когда вы уже достаточно освоитесь с основами программирования и синтаксисом Java, начинайте писать собственный проект и выложите его на GitHub.

Итог

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

  • Как старик-гуманитарий в IT ходил;
  • Никогда не поздно!;
  • Из армии в IT или как я стал С# разработчиком с помощью JavaRush.

Learn Java — Dev.java

Запуск вашего первого Java-приложения

  • Начало работы с Java

    Создание вашего первого приложения Java.

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

    Запуск однофайловых программ Java с исходным кодом с помощью средства запуска Java.

  • Jshell — инструмент оболочки Java

    . jshell интерактивно оценивает объявления, операторы и выражения языка программирования Java в цикле чтения-оценки-печати (REPL).

Будьте в курсе новых возможностей

Знакомство с языком

  • Объекты, классы, интерфейсы, пакеты и наследование

    Введение в объектно-ориентированное программирование.

  • Основы языка Java

    Знакомство с основами языка Java.

  • Использование записи для моделирования неизменяемых данных

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

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

    Определение собственных классов, объявление переменных-членов, методов и конструкторов.

  • Числа и строки

    Понимание чисел, символов и строк символов.

  • Наследие

    Использование наследования в приложениях Java.

  • Интерфейсы

    Создание и использование интерфейсов.

  • Generics

    Работа с параметризованными типами.

  • Лямбда-выражения

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

  • Аннотации

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

  • Пакеты

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

  • Использование сопоставления с образцом

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

  • Исключения

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

Освоение API

  • Структура коллекций

    Знакомство с платформой коллекций для хранения и извлечения данных в коллекциях и хэш-картах.

  • Stream API

    Обрабатывайте данные в памяти с помощью потоков и сборщиков Java. Обрабатывайте их быстрее с параллельными потоками.

  • Регулярные выражения

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

  • API Date Time

    Охватывает API Date Time, добавленный в JDK 8, включая основные концепции и классы.

Организация вашего приложения

  • Модули

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

  • Создание образов среды выполнения и приложений с помощью JLink

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

Знакомство с JVM

  • Основные инструменты JDK

    Узнайте об инструментах, которые JDK предоставляет вам для компиляции, запуска, анализа и мониторинга вашего кода.

  • Инструменты мониторинга

    Узнайте об инструментах, которые JDK предоставляет вам для мониторинга вашего приложения.

  • JPackage

    Упаковка вашего приложения для создания собственного установщика.

  • Инструменты безопасности

    Установка политик безопасности с помощью инструментов и команд JDK.

  • Средства устранения неполадок

    Узнайте об инструментах, которые JDK предоставляет вам для устранения неполадок приложений Java и виртуальной машины Java (JVM).

  • Сборка мусора в Java Обзор

    Понимание ключевых аспектов того, как работает сборка мусора в Java и как настроить сборку мусора.

  • Совместное использование данных классов и совместное использование данных классов приложений в Hotspot

    Понимание того, как использовать совместное использование данных классов в HotSpot для повышения производительности JVM.

Ссылки на последнюю версию

  • Документация по Java
  • Документация по Java API
  • Примечания к выпуску Java
  • Спецификации языка Java и виртуальной машины
  • Руководство по безопасному кодированию

Схема обучения Java | Microsoft Узнайте

Редактировать

Твиттер LinkedIn Фейсбук Электронное письмо

  • Статья
  • 2 минуты на чтение

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

Основы Java

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

Язык

  • Базовая платформа — часть 1
  • Базовая платформа — Часть 2

Функции IDE

  • Основы IDE IntelliJ
  • Основы IDE Eclipse
  • Apache Maven: практическое введение

Жизненный цикл разработки программного обеспечения

  • JDBC и базы данных
  • Регистрация
  • Отладка и тестирование
  • Модульное тестирование Java с JUnit 5

Каркасы

  • Java EE
  • Спринг-фреймворк
  • Java EE против Spring
  • Java EE против Spring: точка зрения разработчиков

Обмен сообщениями

  • Служба сообщений Java (JMS)

Интернет

  • Основы Java для Интернета
  • Весеннее приложение MVC
  • Spring Boot — ваше первое приложение
  • Современные веб-приложения с Spring Boot 2.0

Микросервисы

  • Микросервисы Spring Cloud
  • Освоение микросервисов с помощью Spring

Java advanced

В следующих разделах приведены ссылки на видеоролики, которые помогут вам изучить расширенные концепции Java на практике.

Оставить комментарий