Как научиться программировать на Java — полное руководство.

18.08.2019

От автора: на этом языке программирования работает примерно 3 миллиарда смартфонов, 125 миллионов телевизоров и все до единого Blu-Ray проигрыватели в мире. Этот язык регулярно занимает призовые места в рейтингах разработчиков ПО и является самым востребованным среди крупнейших IT-компаний. Он является техническим феноменом и работает абсолютно на любом устройстве, что соответствует его принципу «написал один раз - запускай везде» (WORA - «write once, run anywhere»). Кто догадался, поднимите руки! Конечно же, это язык Java. И сегодня я раскрою вам все карты и расскажу всю правду о том, как стать Java программистом с нуля! Устраивайтесь поудобнее!

Несколько фактов о Java

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

Java - это «модный» и кроссплатформенный язык программирования. Он работает на любом устройстве с любой операционкой. На нем написаны все Google и Android-приложения. Ни по одному другому языку вы не найдете столько информации и обучающих материалов;

официальная дата выпуска языка - 23 мая 1995 г. Изначально он задумывался для интерактивного кабельного телевидения, но «не срослось». Изобретателем Java является компания Sun Microsystems, которую в 2010 г. выкупила Oracle;

многие путают Java и JavaScript. Если вы хотите заниматься (веб-сайты, веб-приложения), то выбирайте второй вариант. Java - это back-end, т. е. разработка начинки приложений;

это объектно-ориентированный язык программирования, код которого выполняется специальной виртуальной java-машиной (JVM). В США примерно на 9 из 10 компьютеров установлена эта самая JVM;

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

Вы все еще здесь или побежали сделать себе чашку ароматного кофе? Тогда продолжим разговор о том, как стать Java программистом.

Установка программной среды

Как ни странно, у некоторых возникают проблемы уже на этапе установки программной среды Java. Для этого нужно перейти на официальный сайт компании-разработчика - Oracle. Ссылку на актуальную версию вы увидите в самом верху сайта. Вам нужны Java SE (Standard Edition) и Java Development Kit - набор инструментов для разработки. Обратите внимание, что существуют разные дистрибутивы под разные операционные системы.

Допустим, у нас Windows. Заходим в «Свойства системы» и смотрим, какая у нас система - 32-разрядная или 64-разрядная. Скачиваем файл, который подходит нам по разрядности. Если выберете неправильный дистрибутив, то при компиляции кода получите ошибку. После подтверждения Accept License Agreement нажимаем кнопку скачивания.

Каков инструментарий Java-разработчика?

Большую часть времени программист проводит в IDE (IntelliJ IDEA, Eclipse, WebStorm, NetBeans). IDE - это интегрированная среда разработки, специальный интерфейс для программирования. Он не только помогает при написании кода, но и упрощает использование других инструментов программирования. Некоторые советуют тем, кто хочет стать Java программистом с нуля, первые свои программы писать в обычном блокноте или Notepad++.

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

При командной работе, когда над одной программой работает сразу несколько человек, нужно обязательно использовать, так называемую, систему контроля версий (Perforce, Git, Subversion и т. д.). Впрочем, системы контроля версий очень удобны и при работе в одиночку.

Примерный алгоритм изучения Java

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

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

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого роста с нуля в сайтостроении

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

Как начать программировать?

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

class HelloWorld { public static void main(String args) { System.out.println("Hello World!"); } }

class HelloWorld {

public static void main (String args ) {

System . out . println ("Hello World!" ) ;

Сохраняем файл под именем HelloWorld.java. Обращаю ваше внимание, что Java чувствительна к регистру, поэтому слова «helloworld» и «HelloWorld» являются разными. Если названия файла и класса в коде будут отличаться, то программа попросту не запустится. Кроме этого, важно, чтобы кодировка была ANSI.

Теперь мы должны скомпилировать программу, используя компилятор javac из JDK. Пока мы не установили среду разработки, будем компилировать с помощью командной строки cmd, вызвав ее из меню «Пуск». В появившемся окне набираем cmd и жмем Enter.

Если мы сохранили HelloWorld.java в папку Progа на диске C, то вписываем команду:

cd C : \ Prog а

и нажимаем Enter. Таким образом, мы изменили каталог на тот, где расположена наша программа. Затем вводим.

Образование не должно быть священной коровой, мы в этом уверены! Его нужно и можно менять. Именно так мы поступили и разработали курс программирования JavaRush, который, смеем вас уверить, не похож ни на один другой онлайн-курс. В нём нет длинных видеолекций и списка заданий, которые непонятно кто и как будет проверять. Зато есть чётко поставленная цель, разработаны специальные средства для учёбы и установлен результат, которого нужно достичь.

Топ-12 особенностей уроков JavaRush

Обычно онлайн-курсы по программированию представляют собой учебники или видеоуроки. У нас всё не так. Мы сформировали цикл коротких уроков по Java, наполнили их практическими заданиями и предоставили «умные» инструменты для проверки правильности решения. И всё это в виде последовательного и цельного курса!

Прокачка вас как программиста. Это не просто Java уроки для начинающих - это возможность закрепить полученные знания на практике "здесь и сейчас". Вы читаете короткие лекции, затем там же решаете задачку и получаете за это вознаграждение. Это логично и понятно. Задачи вы будете решать самые разнообразные. Самые распространённые задания - написание кода для решения какой-то проблемы. Но кроме них, вам нужно будет учиться читать чужой код, исправлять в нём ошибки, улучшать его (рефакторинг), добавлять новые фичи.Иногда вас заставят смотреть интересные видео об айтишниках, а тем, кто учит , пригодятся задания по набору кода. Тех, кто продвинется достаточно далеко, ждут большие задачи, они же - мини-проекты: выполняя их, вы напишете несколько интересных программ посерьезнее (небольшие игрушки, онлайн-чат и так далее).

2. Уроки Java, ничего лишнего!

Java, да и любой другой язык программирования, можно учить ооочень долго. Чтобы не зарыться в дремучие дебри в самом начале пути, мы удалили из курса ненужные новичкам темы, которыми часто наполнены уроки программирования . На JavaRush осталось только самое необходимое. И это не пустые слова: это результат анализа сотен вакансий. Так что мы утверждаем, что в курс включены именно те темы, которые необходимо знать будущему Java Junior Developer, чтобы трудоустроиться. Процесс превращения в Java Junior займёт у вас от трёх месяцев до одного года в зависимости от того, сколько времени вы будете уделять учёбе.

3. 500 мини-лекций и 1200 + практических задач.

В этом курсе много практики. Очень-очень-очень много практики! Курс содержит 500 мини-лекций (это короткие уроки по Java) и более 1200 практических задач. В подавляющем большинстве задачки небольшие, но «тысячи их!». Решив их все, вы получите минимальный опыт, необходимый для того, чтобы набить руку и заниматься более серьезными проблемами. Кроме того, в курсе есть так называемые «большие задачи» (по сути, это мини-проекты) и полезные видео.

4. Четыре квеста, сорок уровней, тонны практических знаний.

Курс разбит на 4 квеста, каждый квест - это 10 уровней, которые нужно пройти. Первый квест содержит основы Java с нуля, синтаксис языка и огромное количество задач на эту тему. Среди задачек есть очень простые, на усвоение пройденного материала, есть задачи посложнее, а для решения которых придётся забежать наперёд и погуглить. Есть и задачи повышенной сложности для самых смелых. «Прыгнуть» на следующий уровень вы можете только при условии решения большинства задач текущего уровня. Если какие-то из них не поддаются, их можно смело отложить на потом. Таким образом, если вы дойдёте до конца, получите около 500 часов практического опыта программирования. Солидная такая заявка на успешную работу Java Junior!

Квест JavaSyntax Для начинающих. В этом квесте задачи и уроки по Java помогут усвоить основные языковые конструкции языка (переменные, условные операторы, циклы, методы, классы, основные сведения о коллекциях и объектах)
Квест Java Core В этом квесте вы изучите основы ООП, ознакомитесь с сериализацией и перегрузкой методов
Квест Java Multithreading Многопоточность - главное слово этого квеста. Но здесь речь пойдёт не только о ней, но также об устройстве классов Object и String и многом другом. Этот квест, а также следующий можно изучать одновременно.
Квест Collections Коллекции для Java-программиста, всё равно, что динамит для старателя. Их нужно знать, но важно понимать, как ими пользоваться. Также в этом квесте много информации о работе с JSON, Git, RMI, DynamicProxy и чуть-чуть о JavaScript

5. Онлайн-стажировка и подготовка к собеседованиям

Начиная с 35-го уровня JavaRush, а ещё лучше - после 40-го, студенты могут пройти специальную онлайн-стажировку, в ходе которой они получат полезные Java-уроки по передовым технологиям и сделают серьезный проект, который можно добавить в резюме. А ещё на этом этапе, ближе к концу обучения, наши специалисты помогут вам с составлением резюме. Также вам пригодятся различные статьи по трудоустройству и истории успеха тех, кто уже нашёл работу. Эти ребята часто пишут для нас интересные материалы и охотно делятся своим удачным и неудачным опытом с другими студентами.

6. Решение задач там, где удобно.

Решать задачи и отсылать их на проверку можно:
  • прямо на сайте. JavaRush - это не просто уроки Java для начинающих с заданиями. Это ещё и интерактивная среда для решения задач. Удобно: вы разбираете пример в лекции, и теперь вам нужно выполнить очень похожее задание. Такие маленькие задачки на закрепление материала можно делать прямо на сайте JavaRush: для этого мы разработали инструмент WebIDE;
  • для решения задач, которые требуют большего времени, рекомендуем использовать профессиональную среду разработки IntelliJ IDEA. Чтобы студентам JavaRush было удобно, мы создали функциональный плагин для этой популярной IDE. Плагин позволяет получить условие задачи в один клик и так же просто и быстро отправить решение на проверку;
  • после отправки на проверку, набранный вами код решений синхронизируется, если вы работаете с разных компьютеров/планшетов.

JavaRush и инструменты разработки Java

Образование не должно быть священной коровой, мы в этом уверены! Его нужно и можно менять. Именно так мы и поступили, и разработали курс программирования JavaRush, который, смеем вас уверить, не похож ни на один другой онлайн-курс.

Дата загрузки:2017-11-28T15:20:00


7. Мгновенная проверка решений.

Студенты не понаслышке знакомы с ситуацией: задача готова, а препод никак её не проверит. Именно так обстоят дела на очных курсах, где один преподаватель, который ведёт уроки программирования Java с нуля, занимается сразу с двумя десятками учеников (а то и больше) и ему попросту некогда проверять задания каждого из них. На JavaRush вы узнаёте о правильности/ошибочности решения мгновенно. Вы:
  • пишете решение на Java;
  • жмёте на кнопку «проверить»: ваше решение отправляется на сервер JavaRush!
  • секунда - и вы получаете информацию о правильности вашего решения и рекомендации в случае ошибок.
Новичку очень сложно вылавливать логические ошибки, которые не пропускает компилятор. Вы решаете задачу, но не знаете, правильное ли решение? Не беда: система рекомендаций JavaRush укажет, где скрыта ошибка в вашем решении.

9. Страница помощи.

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

10. Группы по интересам и городам.

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

11. Соцсети и JavaRush

Подписывайтесь на группы JavaRush в VK и Facebook. В них вы можете обсудить ИТ-новости, Java уроки программирования, поделиться достижениями с друзьями, посмотреть видео-уроки Java или попросить помощи. ВКонтакте: В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

Java для чайников. Урок 1. Программа Hello World!

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

Начнем с самых самых основ. Отдадим дань традиции и напишем простейшую программу, которая выводит на экран приветствие Hello World. Если у вас нет Java, то ее можно скачать с официального сайта http://www.java.com/ru. Затем установите его.

Если Java у вас установлен, то наберите в каком нибудь редакторе вот такой текст:

Public class HellowWorld {

Public static void main ( String args ) {

System . out . print ( "Hellow , world!" );

}

}

И обязательно сохраните его под именем HellowWorld. java - имя исполняемого класса должно совпадать с именем файла. Для компиляции используйте программу javac.exe, входящую в стандартный пакет Java. Вот как может выглядеть батник компиляции этого java файла:

"c:\Program Files\Java\jdk1.7.0\bin\javac" HellowWorld.java

pause

Если при компиляции никаких ошибок не выскочило:

то, скорее всего, компиляция прошла успешно и у вас в том же каталоге, где лежал HellowWorld. java появился еще и HellowWorld .class:

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

"c:\Program Files\Java\jdk1.7.0\bin\java" HellowWorld

pause

Если все сделано правильно, то у вас должен получиться вот такой результат:

Если вы его получили, то могу вас поздравить - вы написали свою первую программу на Java. В дальнейшем мы научимся писать Java- апплеты, и много другое. А сейчас несколько слов о самой программе. Как вы заметили, она начинается со слова public. Это модификатор, который обозначает, что мы объявляем что ли общедоступное: класс, метод класса или переменную. Бывают и другие модификаторы, например: private, protected, friendly, final, abstract, static. Некоторые из них можно комбинировать между собой. Например, private обозначает, что к переменная, которую мы хотим объявить, закрыта для других классов. Но до модификатор мы еще доберемся. А сейчас рассмотрим следующее ключевое слово class. Оно обозначает, что мы объявляем класс. В java все строиться на классах. Один из классов обязательно является базовым. И базовый класс обязательно должен быть public. В данном примере это класса HelloWord. Пока он у нас единственный.

Теперь попытаюсь объяснить простыми словами, что же такое класс и что такое объект .

Вспомним школьный курс зоологии. Как классифицируется живой мир? Сначала вводиться понятие «царство».

1. Царство одноклеточных,

2. Царство растения

3. Царство животные.

Возьмем животных. Их можно разделить по типам. Например:

1. Тип кишечнополостные.

2. Тип плоские черви.

3. Тип моллюски.

4. Тип хордовые.

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

В языке Java , можно, подобно классификации живого мира, классифицировать объекты (куски программы и данных). Для этого в нем есть классы.

Стоп стоп! – скажете Вы, - а зачем классифицировать эти объекты?

Представить себе, что Вы, подобно некому демиургу (творцу, богу), создаете жизнь на Земле. Сперва Вы разработали простейшие органические соединения. Так, ради эксперимента, что же получиться. Затем объединили их в сложные молекулы, из которых, как из кирпичиков, собрали простейшие микроорганизмы. Но Ваша конечная цель – создание разумной жизни. Поэтому вы не остановились на достигнутом, А сотворили многоклеточные организмы. Затем стали улучшать их, развивать. Некоторые виды оказались жизнеспособные, некоторые вымерли (динозавры). И вот наконец цель достигнута – появился Homo Sapiens – человек разумный.

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

А теперь представим, что атом – это простейшая команда программы или единица информации (что друг от друга, согласитесь, не отделимы, ибо программа работает с чем – правильно, с информацией).

Тогда молекула – это подпрограмма. Или объект.

Вот мы создали в своей программе кучу объектов. Надо же их как то классифицировать, что бы не запутаться. Вот для этого в Java и предусмотрены классы (class ). С помощью них мы описываем класс объектов (общее понятие, например птицы), а потом, имея описанный класс можем создать объект – экземпляр этого класса. То есть, класс – это само слово Птицы, а объект – это какая то конкретная птица, если продолжать нашу аналогию.

Далее, птицы бывают разных видов. Но все они имеют какие общие признаки, унаследованные от понятия «Птицы». Так и в Java , от класса можно создать другой класс, который наследует его свойства и методы (признаки). Это называется наследование.

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

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

Вот таким вот образом мы объявляем класс:

public class HellowWorld {

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

Базовый класс (HelloWorld )имеет базовый метод: main. Он у нас объявлен как public и static. Первый обозначает, что этот метод общедоступный. Если бы это было не так, то программа у нас просто не запустилась бы. Бывают еще и методы не общедоступные, но они мы поговорим в следующих уроках, пока просто запомните, что базовый метод (который у нас запускается при старте программы) должен быть public. И его имя должно быть main, что бы интерпретатор знал, с чего начать выполнения программы.

Теперь что такое static. Это модификатор, который показывает, что метод статический. Тоесть, он работает даже тогда, когда экземпляр класса (объект) не создан. Вообще, поля и методы с модификатором static являются общими для всех объектов класса. Об этом тоже поговорим в дальнейшем.

Каждый метод может иметь или не иметь возвращаемого значения. Если имеет, то это функция. Тип возвращаемого значения так же ставиться в объявлении метода. Если нет то ставиться void (как в нашем примере).

Обращение к полям и методам объекта идет через точку. Есть так же встроенные объекты, например, System, который мы и используем в нашем примере:

System . out . print ( "Hellow, world!" );

в данном случае мы обращаемся к полю out, которое тоже является объектом, предназначенным для вывода данных и вызываем его метод print, который выводить тектс на экран (как в старом добром Бэйсике команда PRINT).

(С) Шуравин Александр

По данным портала HeadHunter, спрос на Java-разработчиков в 2016 году вырос на 38%. И это не предел. Один только рынок мобильных приложений к 2020 году вырастет вдвое: валовый годовой доход перевалит за $100 млрд – прогнозируют аналитики App Annie.
Хотите стать частью Java-сообщества и влиять на то, каким будет софт для смартфонов и ПК в ближайшие 5 лет? Начните путь в профессию сейчас. Самое важное, что вам потребуется на первом этапе, мы собрали в интенсиве Джава-программирования для начинающих.

Как начать изучение Java с нуля?

Бесплатно

Платить за знакомство - неправильно. GeekBrains за такое денег не берет. Поэтому наши вводные онлайн-курсы по Java бесплатны.

Дистанционно

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

Кому подойдет интенсив «Основы программирования Java»?

Для чайников

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

Для школьников

Материал подается наглядно, на примерах. За пару часов вы видите основные возможности и особенности языка. Для школьников обучение Java на GeekBrains - это быстрый старт в игрострое. Уже на первом уроке вы создадите игру, которой приятно будет делиться с друзьями и в интернете.

Для всех желающих

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

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

Основные ресурсы для начального обучения

  • www.javable.com - сайт со статьями и tutorial"ом по Java. Все в основном на русском.
  • www.exampledepot.com - очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
  • java.sun.com - без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial"ов на все возможные темы.

Основные Java пакеты

Ниже приведён список Java пакетов, в которых программист должен свободно ориентироваться. Знакомиться с ними рекомендуется как по JavaDoc"ам , так и с помощью www.exampledepot.com . Все пакеты выстроены в рекомендуемом порядке для изучения. Итак:
  1. java.lang - основа основ. Каждый класс в этом пакете нуждается в отдельном внимании.
  2. java.io - ни одна программа не может обойтись без операций с вводом-выводом.
  3. java.util - пакет в основном содержит все необходимое для работы с коллекциями: Collection, Enumeration, Set, List, Map и т.д. и т.п.
  4. java.net - содержит основные классы для работы с сетью.
  5. java.text - все необходимое для форматирования текста
  6. java.lang.reflect - Java не была бы Java"ой если бы не Reflection. Reflection стирает грань между данными и кодом.
  7. javax.sql - все необходимое по работе с базами данных
  8. javax.xml.* , org.w3c.dom.* , org.xml.sax.* - без этих пакетов работа с XML просто немыслима

Ресурсы для расширения кругозора

  • onjava.com - рано или поздно все новости мира Java попадают сюда
  • www.javaspecialists.eu - ресурс полезен как новичкам, так и продвинутым программистам, так как содержит много статей о тонкостях работы с Java.
  • www.theserverside.com - рекомендуется подписаться на RSS, так как часто проскакивают весьма интересные вещи по Java.

Java Библитеки, которые должны знать все

Java не заканчивается знаниями лишь о возможностях JSDK. Чтобы чувствовать себя комфортно необходимо знать еще десятка два сторонних библиотек, используемых Java программистами повсеместно. Итак, начнем с основных:
  • Commons Lang - то что «забыли» включить в JDK
  • Commons Math - отличное дополнение для java.math
  • Commons Logging - логирование должно быть грамотным. За System.out.println для вывода логов начинающим программистам уже через неделю обучения следует отрубать руки.