С чего начать обучение java
Перейти к содержимому

С чего начать обучение java

  • автор:

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

Добрый день и вечер!
Я совсем из другой среды, не связанной с программированием, но увы так бывает любимая работа приносит только напряжение.
Месяц назад меня очень заинтересовал язык Java, я начала искать курсы. По совету и наводки друзей начала изучать его на Javarush. Но чувствую, что не все понимаю. К своему сожалению.
Прошу посоветуйте как сделать первые шаги в изучение этого языка и как сделать свое увлечение настоящей профессией?
Мне интересно кто начинал самостоятельное обучение, где, как и сколько времени у вас это заняло?
Так же очень хотелось бы получить советы, что можно поизучать в математике, чтобы программировать было легче и проще?

  • Вопрос задан более трёх лет назад
  • 1341 просмотр

1 комментарий

Простой 1 комментарий

bitniks

C «Hello, world!»
Решения вопроса 0
Ответы на вопрос 5
Сергей Горностаев @sergey-gornostaev Куратор тега Java
Седой и строгий
Кэти Сиерра, Берт Бейтс — Изучаем Java
Ответ написан более трёх лет назад
Нравится 5 5 комментариев
Illia Nezhyhai, формат изложения не всем подходит, мне например
DigitalViking @DigitalViking
формат изложения просто ужасный
Может быть, из онлайн-курсов подскажете что-то годное? Тоже очень интересует данный вопрос
Сергей Горностаев @sergey-gornostaev Куратор тега Java

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

Сергей Горностаев @sergey-gornostaev Куратор тега Java
DigitalViking, тогда читайте Эккеля.

Яков Файн «Программирование на Java для детей, род. для новичков самое то — все разжевано, не скучно, примеры, задания все есть.

Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать

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

Ответ написан более трёх лет назад
spaceatmoon @spaceatmoon

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

Как учиться на JavaRush: гайд по курсу

Java-университет

Как учиться на JavaRush: гайд по курсу - 1

Итак, вы решили стать Java-программистом. Сразу же возникает резонный вопрос: “С чего начать?” В этой статье мы расскажем о том, как изучать программирование с нуля вместе с JavaRush. Какие особенности есть у курса, на какие этапы разбито обучение и какими разделами сайта пользоваться, чтобы сделать обучение максимально эффективным.

JavaRush: Java tutorial с акцентом на практику

1. Обучение в формате игры

Курс JavaRush чем-то похож на компьютерную игру. Он разбит на четыре квеста , у каждого из которых есть общая идея. Например, Java Syntax — первый квест: на нем изучают основной синтаксис языка. В начале обучения пользователь может выбрать, по какому сценарию будет проходить квест. Для любителей обучения в игровом формате подойдет литературный (сюжетный) или геймифицированный сценарии, для тех, кто предпочитает минимум воды, — классический. В свою очередь, каждый квест состоит из десяти уровней (кроме начального квеста: в нем от 10 до 21 уровней (зависит от выбранного пользователем сценария и от стартового уровня знаний, но они короче, чем последующие). Их нужно проходить последовательно. Уровни наполнены лекциями и задачами разной сложности. Чтобы перейти на следующий уровень, нужно решить большинство задач на текущем уровне, ведь успешное решение дает вам определенное количество «темной материи». С ее помощью можно открывать следующие лекции и задачи.

2. Практика программирования с первых уроков

  • Часть задач — на закрепление теоретического материала из идущей перед ними лекции;
  • Еще одна часть направлена на повторение ранее пройденной теории с более ранних уровней;
  • Третьи задачи — это » задачи из будущего «: они даются по материалам следующего одного-двух-трех уровней. Да-да, вам не показалось. Это сделано намеренно. Хотите решить задачу сейчас, но вам не хватает знаний? Гуглите! Это чрезвычайно полезный навык для программиста. Ну а если вы хотите двигаться последовательно, просто отложите задачу и вернитесь к ней через пару уровней, когда дойдете до необходимой теории.
  • Набор кода — задания для начинающих. Иногда будущему программисту нужно просто набить руку и почувствовать код. Для этого вы просто “списываете” с образца;
  • Разбор чужого кода и поиск ошибок. Ну, вы поняли. Такие задания тоже есть;
  • Написание своего кода для выполнения списка условий в задаче;
  • Бонусные задачи. Эти задания повышенной сложности для самостоятельного обучения и на развитие алгоритмического мышления;
  • Мини-проекты. Это задачи, разбитые на несколько подзадач, в результате постепенного решения которых вы создадите относительно сложные и большие программы. Например, игру «Сокобан» или онлайн-чат. Такие задачи появятся примерно в середине курса;
  • Видеоролики. Иногда полезно переключиться на другую деятельность. На JavaRush такой деятельностью служит просмотр видеороликов об айтишниках.

3. Мгновенная проверка результата и инструменты по улучшению вашего кода

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

4. Помощь в решении задач

Обучение программированию не должно напоминать одиночное плавание на плоту посреди океана. Вам нужно общаться. Для этого на JavaRush в первую очередь есть раздел «Помощь». Если вы надолго застряли на какой-то задаче из курса или не можете понять сложную тему, задавайте вопрос в специальном разделе. Вам обязательно поможет кто-то из студентов, разработчиков или администрации ресурса. А ещё, когда почувствуете в себе силы, будет очень полезно заходить в раздел «Помощь» для того, чтобы помочь кому-то с учебой. Тут вам придется разбираться в чужом коде. Для тех, кому нужен «волшебный пендель», чтобы регулярно учиться, на JavaRush придумали график пинков. Кик-менеджер можно собственноручно настроить на нужные дни учебы — он напомнит, когда это будет необходимо: в мобильном приложении JavaRush придет push-уведомление. В график пинков изначально заложена опция напоминалок на каждый день и выходные дни. Есть еще и кнопка «Забить на учебу», которая нужна, если вы решили себе устроить мини-отпуск.

По завершению курса студент получает 300-500 часов реального опыта программирования! Также этот курс — отличный инструмент для тех, кто уже изучил программирование для начинающих, но с чего начать поиск работы не знает. Помимо практики в ходе прохождения JavaRush, вы сможете разобрать главные вопросы, на которые придется отвечать на собеседовании, а также составить грамотное резюме.

Платформы для обучения: сайт и мобильное приложение

У вас есть два варианта, как освоить основы Java-программирования с JavaRush: в мобильном Android-приложении или в веб-версии. Подробнее обо всем рассказываем в этом материале.

Этапы прохождения курса

JavaRush — самый полный Java tutorial на русском. Основной курс даст полное представление о Java Core, а последующая практика поможет научиться работе с более продвинутыми технологиями. Так что обучение на JavaRush можно разделить на две основные части.

Этап 1: прохождение четырех квестов курса

  • Короткие, насыщенные живыми примерами теоретические лекции;
  • Задачи, мини-проекты;
  • Мотивационные лекции (открывают уровень) и видео, которые помогут вам сохранить «заряд» на то, чтобы пройти курс до конца;
  • Опросы по пройденному материалу (начальные уровни).

Этап 2: онлайн-стажировка

На протяжении нескольких месяцев студенты изучают важные для будущего Java-разработчика принципы и технологии под присмотром опытного ментора. Во время стажировки вы напишете 8 крутых проектов для вашего портфолио: от игор до приложений, например, to-do list и доска для работы с задачами по типу Jira. По этим проектам вы получите отзыв от ментора и сможете добавить их в свое GitHub портфолио. Еще один бонус онлайн-стажировки с JavaRush — помощь от нашего карьерного центра в подготовке и поиске первой работы. Вы получите рекомендации от карьерных экспертов по тому, как составить резюме, сопроводительные письма, как проходить собеседования и что делать, чтобы получить хороший оффер. Набор на стажировку проводится раз в месяц.

Платформы для прохождения курса

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

Полезные разделы JavaRush

Обучающий курс — самое главное! Пройдете весь — станете крутым Java-программистом! Задачи — 1200 практических задач. Их можно открыть отдельно от курса, но доступными для решения будут только те из них, до которых вы уже дошли. Развернутую информацию о разделе «Задачи» можно найти в этом видео. Помощь — коллективный разум студентов и специалистов JavaRush. Просто задайте свой вопрос по теории или практической задаче, и вам обязательно помогут. С самыми крутыми возможностями раздела «Помощь» можно ознакомиться тут. Статьи — раздел, объединяющий посты из разных групп по интересам и городам. Они созданы для обсуждения проекта и всего, что связано с учёбой — теории, задач, вопросов к собеседованиям. Присоединяйтесь к интересующим группам, читайте статьи выпускников, учеников и редакторов JavaRush, и публикуйте собственные, если вам есть, что сказать! Истории успеха — особенная группа, в которой студенты и выпускники JavaRush рассказывают о том, как им удалось покорить Java и устроиться на работу. Игры — это раздел с проектами по написанию простых, но увлекательных игр: «Змейки», «2048», гонок с препятствиями, космических шутеров. Все проекты разделены на подзадачи. Выполняя их пошагово, вы напишете свою версию. Проекты разделены по сложности. Есть те, которые под силу студентам, прошедшим 5 уровней курса, а есть те, для которых понадобится уровень 10+.

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

Где общаться с командой JavaRush

  • Фейсбук
  • Телеграм

20+ полезных источников для изучения Java

маркетинг-координатор Алена Рожко

— Язык программирования Java был создан в начале 90-х годов командой Green под руководством Джеймса Гослинга из компании Sun Microsystems, — рассказывает Алена, — Java был изобретен случайно. Гослинг и его команда разрабатывали телевизионную консоль. Они начали разработку с «доработки» C++, а в результате получили новый язык.

Первоначально язык назвали «Дуб» в честь дерева, которое росло рядом с офисом Sun. Но очень скоро они узнали, что это название уже было зарегистрировано какой-то компьютерной компанией. Поэтому они переименовали язык в «Green», а затем — в «Java». Свое окончательное название язык получил в честь марки кофе Java. Именно поэтому на логотипе изображена чашка горячего кофе.

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

— Язык Java стал настолько популярен, что существует множество ресурсов для его изучения. Даже чересчур много, — считает Алена, — Если вы решили изучать Java, то заблудиться в огромном количестве материалов легко. Мои коллеги из EPAM собрали список полезных материалов, которыми мы рады поделиться.

Полезные ссылки

Документация

  • docs.oracle.com/javase/tutorial — здесь вы найдете все Java-«заповеди».
  • stackoverflow.com/questions/tagged/java — здесь собраны ответы на вопросы, которые могут возникнуть при просмотре документации.

Сайты

  • java.com — здесь можно найти и скачать бесплатно последнюю версию языка.
  • baeldung.com — все про Spring portal — универсальный фреймворк со свободно доступным исходным кодом для Java-платформы.
  • javaworld.com — все от обучающих программ до последних новостей из мира Java.
  • mkyong.com — обширная библиотека руководств: от ядра Java до различных фреймворков и инструментов.
  • javacodegeeks.com — сайт с полезными советами, примерами и библиотеками.
  • jcip.net — ресурс, который поможет в изучении документации по коду.

Blogs

  • martinfowler.com — блог Мартина Фаулера, автора книг и статей об архитектуре, объектно-ориентированном анализе и разработке.
  • shipilev.net — блог Алексея Шипилева, технического представителя Oracle в Standard Performance Evaluation Corporation.

Книги

  • OCP Oracle Certified Professional Java SE 11 Developer Complete Study Guide, Jeanne Boyarsky and Scott Selikoff.
  • Java Puzzlers, Joshua Block.
  • Clean Code, Robert C. Martin.

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

Twitter

  • twitter.com/mreinhold — страница Марка Рейнхолда, главного архитектора Java Platform Group, Oracle.
  • twitter.com/BrianGoetz — страница Брайана Гетца, архитектора языка Java в Oracle.
  • twitter.com/martinfowler — страница Мартина Фаулера, автора книг и статей об архитектуре программного обеспечения, объектно-ориентированном анализе и разработке.
  • twitter.com/joshbloch — страница Джошуа Блоха, инженера-программиста и писателя, бывшего сотрудника Sun Microsystems и Google.
  • twitter.com/jcp_org — страница JCP (Java Community Process).
  • twitter.com/virtualJUG — страница VirtualJUG (vJUG), одного из крупнейших Java-сообществ в мире.
  • twitter.com/OpenJDK — страница OpenJDK, проекта по созданию полностью совместимого Java Development Kit, который содержит только свободно доступный исходный код.

YouTube

  • Java — официальный канал Java.
  • Jeeconf — видеозаписи с конференций JEEConf.

Еще больше источников по Java можно найти в статье 8 полезных источников для изучения JavaScript.

Java. План действий

Java-университет

Сегодня в Java-проектах чаще всего используют такие инструменты как Maven и Gradle. Не обязательно изучать их досконально, но будет полезно разобраться, чем они отличаются друг от друга, на чём основаны, что такое task’и (в Gradle) и фазы с целями в Maven. Будет достаточно почитать о системах и развернуть на них пару-тройку небольших проектов. Сделать это довольно просто, а с подробностями разберётесь уже в условиях реальной работы.

Системы контроля версий и сервисы онлайн-хостинга

Java. План действий - 2

Система контроля версий — это то, что помогает программистам работать в команде над общим проектом, не “поломав” его, синхронизировать разрозненные куски кода, сделанные разными людьми, откатывать неудачные обновления и добавлять новые. Наиболее распространены две системы контроля версий. Одна из них — распределённая и называется Git, вторая — централизованная, по имени SVN (она же — Subversion). На сегодняшний день стандартом де-факто является Git. Работать с этой системой удобнее и легче, она поддерживается всеми IDE (впрочем, как и SVN). Работу с Git можно опробовать быстро и просто, благо, в сети на эту тему — масса информации. Например, доступный на русском интерактивный учебник GitHowTo (проходится очень быстро). Начинающему разработчику очень важно освоить сервисы онлайн-хостинга для систем контроля версий. Чаще всего они базируются на Git и их называют Git-платформами (хотя некоторые из них умеют работать с разными системами контроля версий). Самая популярная из них — GitHub. Также довольно распространены BitBucket и GitLab. Эти системы помогают хранить и извлекать код, а ещё — делать то, что умеет Git, только не через командную строку, а через интерфейс. Также GitHub позволяет проверять код, предлагать решения проблем непосредственно на сайте. Там же можно найти какой-нибудь чужой открытый проект и попробовать предложить свои решения по его улучшению. По сути, GitHub — своеобразная социальная сеть для разработчиков. Так что если вы ещё этого не сделали, обязательно создайте аккаунт на GitHub и размещайте там свои проекты. Также почитайте о GitLab и BitBucket, а если будет время — можно и опробовать, у них есть бесплатные версии. К слову, все эти платформы полностью интегрированы с современными IDE.

2. JDK API

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

Java Collection Framework — один из важнейших API языка Java, его должен знать каждый разработчик. Он представляет собой иерархию интерфейсов и реализаций стандартных структур данных в Java, таких как список, связанный список, множество, стек, очередь, хэш-таблица и многих других. Разработчик должен хорошо разбираться в классах ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet и прочих, знать об их свойствах. В частности, нужно понимать, какие затраты по времени и памяти у той или иной коллекции идут на стандартные операции (индекс, поиск, вставка, удаление) и исходя из этого правильно применять их в своих проектах. Коллекции в Java реализованы очень хорошо, но если есть необходимость разработчик может предложить собственную реализацию. Программист, который отлично разбирается в коллекциях, может расширить или переопределить логику в уже написанных классах или же реализовать всё с нуля.

Java Concurrency API

Java изначально разработана с поддержкой параллельного программирования, а начиная с версии 5.0, язык включает высокоуровневые API для параллельных потоков. Так что грамотный Java-разработчик просто обязан хорошо разбираться в многопоточности и иметь представление об основных API из пакетов java.util.concurrent.*. Как минимум, нужно знать и чётко осознавать, что такое Thread, Runnable, блокировка объектов и синхронизация. Обязательно разберитесь в концепциях deadlock, livelock, состоянии гонки и что со всем этим делать. Чтобы чувствовать себя уверенно, изучите синхронизаторы из java.util.concurrent.*, например, Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger, CompleteableFuture и так далее. А ещё — интерфейсы Callable и Future.

Java I/O API

  • Ввод-вывод в Java. Классы FileInputStream, FileOutputStream, BufferedInputStream
  • Считывание с клавиатуры — ридеры

Устройство класса Object

3. Новые возможности Java 8

  • Java 8 docs
  • Java 8 Tutorial
  • Популярно о лямбда-выражениях с примерами и задачами

4. SQL, базы данных, JDBC

  • Java JDBC API
  • JDBC или с чего всё начинается
  • Часть 1. Введение в SQL

5. Фреймворки

Среди требований к Junior Java Developer сегодня всё чаще можно встретить “знание Spring, Hibernate, Spring Boot”. Изучить эти технологии самостоятельно — задача очень непростая, но, тем не менее, это возможно, особенно на поверхностном уровне. Более глубокое понимание придёт во время работы. Итак.

Этот фреймворк обеспечивает разработку приложения согласно паттерну Model — View — Controller, применяя слабо связанные готовые компоненты. Изучите этот паттерн (о паттернах проектирования речь идёт чуть ниже) и логику работы Spring MVC. На практике его используют довольно часто.

6. Библиотеки и фреймворки для тестирования

  • JUnit docs
  • О JUnit, часть 1

7. Сервисные библиотеки

В Java есть огромное количество сервисных библиотек, которые помогают решить практически любые задачи, стоящие перед разработчиком. Изучить их все невозможно, да и смысла особого в этом нет. А вот ориентироваться в них — отличная идея. Здесь выделим лишь несколько из тех, которые очень часто используются на практике.

Библиотеки для логирования

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

Библиотеки для JSON

Google Guava

Guava — проект с основными библиотеками для Java, разработанными Google. Здесь можно найти новые типы коллекций (multimap, multiset и другие), неизменяемые коллекции, графы, функциональные, утилиты для параллелизма, ввода/вывода, хэширования, обработки строк и многое другое.

Apache Commons

Commons — огромный проект, содержащий множество полезных Java-утилит самого разного предназначения. Так, библиотеки Apache Commons лежат в основе Tomcat, Hibernate и ряда других крупных проектов. Библиотек в Apache Commons очень много. Упомянём Commons IO, которая упрощает выполнения операций ввода-вывода, Commons CSV для работы с csv-файлами, Commons Math для работы со сложными математическими и статистическими операциями и вычислениями, Commons CLI для анализа аргументов командной строки.

8. API-клиенты

9. Паттерны проектирования

  • Паттерны проектирования в Java
  • Паттерны проектирования, часть 2
  • Паттерны проектирования: Singleton
  • Паттерны проектирования: FactoryMethod
  • Паттерны проектирования: AbstractFactory
  • Паттерн проектирования “Стратегия”

10. Дополнительные знания

Алгоритмы и структуры данных

“Алгоритмы и структуры данных” — это название целого курса, читаемого в технических вузах. В нём раскрываются теоретические основы построения разных структур данных. А на практических занятиях с ними учатся работать — класть и извлекать данные, искать и сортировать их. Собственно, под “Алгоритмами” в таком словосочетании понимают именно сортировку и поиск. За долгие годы специалисты в области Computer Science разработали множество алгоритмов. Некоторые из них носят учебный характер, так как при относительной простоте реализации они не слишком эффективны в работе. Например, работают медленно, что может быть ощутимо на больших пулах данных. Или же потребляют много памяти. Другие алгоритмы оказались очень эффективны. Настолько, что их внесли в официальные библиотеки большинства языков программирования. Соответственно, сегодня не обязательно разрабатывать такие алгоритмы самостоятельно. Достаточно знать, где они лежат.

Сервлеты

HTML и CSS

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

XML

JavaScript

Опросы разработчиков показывают, что даже те из них, кто не имеет абсолютно никакого отношения к фронтенд-разработке, время от времени писали скрипты на JavaScript. Знание основ этого языка можно считать правилом хорошего тона, поэтому не поленитесь, почитайте о нём и создайте десяток-другой скриптов. Лишним не будет.

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

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