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

  • 16.07.2019

Барри Берд «Java для чайников» Вильямс, 2013 , 5-е издание, 363 стр. (8,23 мб. djvu)

О Java.

Java для чайников, все равно, что сказать программирование . Звучит банально, но Java на сегодняшний день наиболее популярный язык программирования. На нем программируют больше чем на и C# вместе взятых. Начните изучать Java, если хотите изучить программирование и не прогадаете. Код написанный на этом языке программирования является кроссплатформенным. Он будет выполняться на любом устройстве и под управлением любой операционной системы, где установлена виртуальная машина Java (JRE) — «Написал раз, работает везде». Книга «Java для чайников», именно на них и рассчитана.

О книге.

Если вы никогда не изучали программирование и не знаете о ООП, не расстраивайтесь, Барри Берд умеет хорошо объяснять. Как минимум основные понятия объектно ориентированного программирования и базовые знания по языку Java вам гарантированы. При условии внимательного изучения материала книги и выполнения заданий в виде примеров кода. В руководстве автор расскажет о истории возникновения языка Java, его основных концепциях, достоинствах и недостатках, существующих версиях и их различиях, инструментарии необходимом для кодирования и выполнения готовых программ (JDK, JRE, Eclipse).

Изучите основы: грамматики (синтаксис) языка, понятие классов API (стандартные библиотеки), напишите свою первую программу. Для начального этапа изучения Java этой книги вполне достаточно. Если у вас хватило мужества дочитать ее и выполнить хотя бы часть заданий, то можете начинать изучать более объемные и . Путь к совершенству имеет начало, но не имеет конца.

Об авторе 13
Введение 15
Как работать с этой книгой 15
Соглашения, используемые в книге 15
Что можно не читать 16
Несколько предположений 17
Структура книги 18
Часть I. Основы Java 18
Часть II. Создание программы на Java 18
Часть III. Объектно-ориентированное программирование 18
Часть IV. Передовые методики программирования 19
Часть V. Великолепные десятки 19
Часть VI. Приложения 19
Пиктограммы, используемые в книге 19
Что дальше 20
Ждем ваших отзывов! 20

Часть I. Основы Java 21

Глава 1. Знакомство с Java 23
Что можно делать с помощью Java 24
Зачем писать программы 25
Немного истории 25
Объектно-ориентированное программирование 28
Объектно-ориентированные языки 28
Объекты и классы 30
Преимущества объектно-ориентированного подхода 31
Наглядное представление классов и объектов 32
Что дальше 33

Глава 2. Разработка программного обеспечения 35
Быстрое начало 35
Что должно быть установлено на компьютере 37
Что такое компилятор 38
Что такое виртуальная машина Java 40
Процесс разработки 45
Интегрированная среда разработки 46

Глава 3. Базовые компоненты Java 49
Поговорим на языке Java 49
Грамматика и общие имена 50
Слова в программе Java 51
Ваша первая программа на Java 53
Как работает ваша первая программа 54
Классы 54
Методы 55
Главный метод программы 57
Как приказать компьютеру выполнить нужную операцию 58
Фигурные скобки 60
Не говорите “Без комментариев… ” 62
Добавление комментариев в код 63
Не будьте слишком строги к старине Барри 66
Использование комментариев для экспериментов с кодом 66

Часть II. Создание программы на Java 69

Глава 4. Переменные и значения 71
Переменчивая переменная 71
Оператор присваивания 74
Типы значений и переменных 75
Отображение текста 77
Числа без десятичной точки 78
Инициализация при объявлении 79
Примитивные типы Java 80
Тип char 81
Тип boolean 82
Ссылочные типы 83
Объявление импорта 86
Создание новых значений с помощью операторов 87
Инициализировать можно раз, а присваивать - много раз 89
Операторы инкремента и декремента 89
Операторы присваивания 93

Глава 5. Управляющие инструкции 95
Принятие решения с помощью инструкции if 95
Угадайте число 96
Ввод текста с клавиатуры 96
Генерация случайных чисел 98
Инструкция if 98
Двойной знак равенства 100
Блоки 100
Отступы в инструкции if 101
Сломанная вилка (if без else) 101
Условия с операторами сравнения и логическими операторами 102
Сравнение чисел и символов 102
Сравнение объектов 103
Импортируем все за один раз 105
Логические операторы 106
Чем “нуль” отличается от “ничто” 108
Условия в скобках и скобки в условиях 109
Вложение инструкций if 111
Переключатель switch 113
Выбор варианта 113
Не забывайте вставлять break! 115
Строковый аргумент - новинка в Java 7 117

Глава 6. Циклы 119
Цикл while 119
Цикл for 122
Структура цикла for 124
Премьера хита “ Эл под дождем ” 125
Цикл do 126
Считывание одного символа с клавиатуры 129
Манипулирование файлами 130
Объявление переменной в блоке 130

Часть III. Объектно-ориентированное программирование 131

Глава 7. Классы и объекты 133
Определение класса 133
Открытый класс 135
Объявление переменных и создание объектов 135
Инициализация переменной 138
Одна программа - это много классов 139
Определение метода в классе 139
Счет, отображающий сам себя 140
Заголовок метода 141
Передача параметров методу и получение значения от метода 142
Передача значения в метод 144
Значение, возвращаемое методом 145
Как сделать, чтобы числа выглядели красиво 147
Модификаторы доступа 151
Правильный стиль программирования 152
Как сделать поле недоступным 154
Проверка правил с помощью методов доступа 156

Глава 8. Повторное использование кода 157
Определение класса 158
Класс, определяющий служащего 158
Правильное использование класса 159
Создание платежного чека 161
Работа с файлами (небольшое отступление) 162
Хранение данных в файле 162
Копирование и вставка кода 163
Чтение из файла 164
Куда подевался мой файл? 166
Добавление имен папок в имя файла 166
Построчное чтение 167
Наследование 169
Создание производного класса 171
Использование производных классов 174
Соответствие типов 175
Использование класса PartTimeEmployee 176
Переопределение существующих методов 177
Аннотации 179
Вызов методов базовых и производных классов 179

Глава 9. Конструкторы 181
Определение конструктора 181
Что такое температура 182
Что такое температурная шкала 182
Так что же такое температура? 183
Что можно сделать с температурой 185
Поиск нужного конструктора 186
Некоторые вещи никогда не изменяются 189
Конструктор базового класса в производном классе 190
Усовершенствованный класс температуры 190
Конструкторы производных классов 191
Использование усовершенствованного класса температуры 192
Конструктор, выполняемый по умолчанию 193
Конструктор может не только заполнять поля 194
Классы и методы Java AP 196
Аннотация @SuppressWarnings 198

Часть IV. Передовые методики программирования 199

Глава 10. Правильное применение переменных и методов 201
Определение класса 201
Еще один способ сделать числа красивыми 202
Использование класса Player 203
Девять вызовов конструктора 205
Графический интерфейс пользователя 205
Отфутболим исключение другому методу 207
Статические поля и методы 207
Зачем столько статики 209
Статическая инициализация 210
Отображение общей статистики команды 210
Статический импорт 212
Осторожно, статика! 213
Поэкспериментируем с переменными 214
Переменная на своем месте 215
Переменные в разных местах 217
Передача параметров 219
Передача по значению 219
Возвращение результата 221
Передача по ссылке 221
Возвращение объекта из метода 223
Эпилог 224

Глава 11. Массивы и коллекции 225
Как расположить предметы в ряд 225
Создание массива в два этапа 227
Сохранение значений 228
Табулостопы и другие специальные символы 230
Инициализация массива 230
Расширенный цикл for 231
Поиск 233
Массивы объектов 236
Использование класса Room 237
Еще один способ украшения чисел 240
Тернарный условный оператор 241
Аргументы командной строки 241
Использование аргументов командной строки в коде 242
Проверка количества аргументов командной строки 244
Коллекции 245
Классы коллекций 246
Класс ArrayList 247
Использование обобщенных типов 250
Проверка, есть ли еще данные 250

Глава 12. Как сохранить хорошую мину при плохой игре 253
Обработка исключений 254
Параметр блока catch 258
Типы исключений 259
Кто должен перехватить исключение 261
Блок catch с несколькими типами исключений 267
Не будем чрезмерно осторожничать 267
Восстановление работы программы после исключения 268
Наши друзья - хорошие исключения 269
Обработайте исключение или передайте его дальше 270
Блок finally 274
Закрытие файлов 276
Как закрыть файл 276
Ресурсы в заголовке блока try 276

Глава 13. Область видимости 279
Модификаторы доступа к членам классов 280
Классы, доступ и части программы 280
Классы и члены классов 281
Правила доступа к членам класса 281
Пример с рисунком во фрейме 283
Структура папок 285
Создание фрейма 286
Как изменить программу, не изменяя классы 287
Доступ, установленный по умолчанию 289
Как проникнуть в пакет 292
Защищенный доступ 292
Включение не производного класса в тот же пакет 294
Модификаторы доступа к классам 295
Открытые классы 296
Не открытые классы 296

Глава 14. Реагирование на события клавиатуры и мыши 299
Реагирование на щелчок мышью 299
События и обработка событий 301
Интерфейсы Java 302
Потоки 303
Ключевое слово this 304
Тело метода actionPerf ormed () 305
Идентификатор версии 305
Реагирование на другие события 306
Внутренние классы 311

Глава 15. Аплеты 315
Пример простого аплета 315
Выполнение аплета 316
Открытый класс 317
Классы Java API 317
Анимированный аплет 318
Методы, используемые в аплете 319
Содержимое методов аплета 320
Реагирование на события в аплете

Става 16. Соединение с базой данных 325
JDBC и Java DB 325
Создание записей базы данных 326
Использование команд SQL 328
Подключение и отключение базы данных 328
Извлечение данных 330

Часть V. Великолепные десятки 333

Гпава 17. Десять способов избежать ошибок 335
Правильное использование регистра букв 335
Выход из блока switch 336
Сравнение двух значений 336
Добавление элемента в графический интерфейс 336
Добавление приемников событий 337
Определение конструкторов 337
Исправление нестатических ссылок 337
Соблюдение границ массива 337
Указатели на nu 11 338
Помогите виртуальной машине Java найти классы 338

Глава 18. Десять сайтов, посвященных Java 341
Веб-сайты этой книги 341
Сайты Java 341
Новости, обзоры, примеры кодов 342
Работа 342
Сайты для каждого 342

Часть VI. Приложения

Приложение А. Установка интегрированной среды разработки 345
Загрузка и установка JDK 345
Загрузка и установка Eclipse 349
Конфигурирование Eclipse 351
Приложение Б. Использование Eclipse 353
Работа с примерами книги 353
Создание собственного проекта 355
Предметный указатель 359

Скачать книгу бесплатно 8,23 мб. djvu

Java для чайников. Видео

А. Н. Васильев «Самоучитель Java с примерами и программами» Наука и техника, 2011 год, 352 стр. (46,0 мб. djvu + 1,34 мб. файлы)

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

Не стоит много говорить, о том, как читая книги: руководства, самоучители, учебники можно стать программистом — все это не так. Изучение языка программирования, как и изучение иностранного языка, требует не только теоретических знаний — полученных из книг, но и практических упражнений. Желательно с носителями языка (делайте выводы).

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

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

В одном архиве книга, в другом листинги с программным кодом для практических работ, дистрибутив Java со средой разработки программ на Java (NetBeans) из архива удален для уменьшения его размера, последние их версии вы можете скачать отдельно.
ISBN 978-5-94387-937-1

Страница загрузки NetBeans

О книге, языке и программном обеспечении 9
Технология JAVA 9
Программное обеспечение 11
Про ООП вообще и JAVA в частности 20
Полезные ресурсы 23
Структура книги 24
Терминология и принятые договоренности 25
Обратная связь 25
Благодарности 26

Глава 1. Первая программа 22
Очень простая программа 27
Еще одна простая программа 36
Резюме 39

Глава 2. Переменные и основные типы данных 41
Переменные базовых типов 41
Как объявлять переменные 43
Классы-оболочки 47
Резюме 50

Глава 3. Базовые операторы и приведение типов 51
Арифметические операторы 51
Логические операторы 52
Операторы сравнения 54
Побитовые операторы 54
Тернарный оператор 57
Оператор присваивания 59
Явное приведение и автоматическое расширение типов 60
Типы литералов 62
Сокращенные формы операторов 63
Инкремент и декремент 64
Вычисление выражений и приоритет операций 65
Резюме 66

Глава 4. Управляющие инструкции 67
Условный оператор IF 67
Оператор выбора SWITCH-CASE 76
Операторы цикла WHILE и DO-WHILE 80
Оператор цикла FOR 85
Резюме 90

Глава 5. Создание и работа с массивами 91
Одномерные массивы 91
Присваивание и сравнение массивов 97
Двумерные массивы 98
Инициализация массива 102
Работа с массивами 103
Оператор цикла FOR для перебора элементов массива 108
Резюме 109

Глава 6. Классы и объекты классы и объекты 111
Объявление класса и создание объекта 113
117
Конструкторы 122
Перегрузка методов и конструкторов 125
Присваивание объектов 130
Создание копии объекта 132
Резюме 136

Глава 7. Тонкости работы с объектами 137
Статические поля и методы 137
Объекты и методы 143
Массивы и объекты 149
Анонимные объекты 153
Внутренние классы 156
Аргументы командной строки 160
Резюме 164

Глава 8. Наследование, интерфейсы и пакеты 165
Основы наследования 165
Конструктор подкласса 169
Переопределение методов 172
Закрытые члены класса 177
Объектные переменные суперклассов 180
Абстрактные классы и интерфейсы 182
Пакеты и уровни доступа 193
Резюме 195

Глава 9. Работа с текстом и другие утилиты 197
Работа с текстом 197
Работа с датой и временем 209
Математические утилиты 210
Резюме 212

Глава 10. Обработка исключительных ситуаций 213
Исключительные ситуации и их типы 213
Обработка исключений 216
Создание пользовательских классов исключений 222
Резюме 227

Глава 11. Многопоточное программирование 228
Реализация потоков в JAVA 228
Главный поток 230
Создание дочернего потока 233
Синхронизация потоков 238
Резюме 244

Глава 12. Система ввода/вывода 245
Потоки данных и консольный ввод 245
Форматированный вывод 249
Работа с файлами 256
Резюме 265

Глава 13. Графика в Java. Основы библиотеки SWING, ринципы создания приложений с графическим интерфейсом 266
Создание простого окна 271
Окно с текстовой меткой 273
Окно с текстом и пиктограммой 275
Окно с меткой и кнопкой 277
Классы событий 282
Резюме 286

Глава 14. Приложения с графическим интерфейсом 287
Создание окна с текстовым полем ввода 287
Наследование классов компонентов 301
Резюме 315

Глава 15. Апплеты 316
Основные свойства апплетов и простой пример 316
Передача апплету аргументов 323
Апплет с элементами управления 328
Резюме 349
Заключение 350

Download technical books for free 46,1 mb. djvu Download technical books for free 1,34 мб. файлы

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

Head First Java

Я начал с этой книги не потому, что она мне больше всего нравится, а потому, что она самая простая. Эта книга, по мнению очень многих программистов, - лучший самоучитель Java с нуля. Причём она по-настоящему и совсем «с нуля», то есть подходит тем, кто только-только начинает и не совсем понимает ещё, что за зверь такой - программирование. Ко мне она попала слишком поздно. Думаю, именно поэтому я не смог её оценить по достоинству. «Просто читать» её было очень приятно, а вот искать что-то конкретное в ней мне приходилось подолгу. Материал там подан живо, но довольно поверхностно (потому что с нуля!) и многих тем и нужных пояснений попросту нет. А вот мой друг, которому она ушла по наследству, был от нее в восторге и кричал, что это не просто лучший учебник по Java для начинающих, а прям мировой шедевр и именно так нужно подавать сложный материал. Достоинства:
  • Лучший самоучитель Java с нуля, для полных чайников, написан живым языком;
  • Прикольные иллюстрации и юмор;
  • Пояснения с жизненными примерами.
Недостатки:
  • Многовато «воды» для тех, кто уже въехал в тему;
  • Не всегда удачные паззлы и упражнения.

Герберт Шилдт. Java 8. Руководство для начинающих

Полистав этот учебник, я подумал, что он хорошо подойдёт тем, кому нравится более традиционное изложение материала, нежели в Headfirst, и при этом они ищут самоучитель «с нуля». Местами изложение в книге очень детальное, напоминает расширенную и переведённую документацию с хорошими наглядными примерами. Иногда, как по мне, автор переходит границу, и начинает слишком уж разжевывать, читать становиться скучновато… и вдруг - кульбит - и какое-то довольно сложное место проскакивается почти мгновенно, и ты в полном недоумении пытаешься понять, что и где пропустил. Тем не менее, таких мест в книге не слишком много, и я знаю людей, которые считают, что «Руководство для начинающих» - лучший самоучитель Java для тех, кто ещё ничего не знает. Лично мне он показался не очень ровным. Скажем, начинаю разбирать коллекции, и вместо человеческого пояснения мне подсовывают задачу по самостоятельному созданию Set на основе массивов. Классная задача, но я бы хотел для начала лучше понять, что такое стандартные коллекции! Хотя эта книга, как и предыдущая, считается учебником для начинающих, мой опыт преподавателя подсказывает, что она хороша только в совокупности с другими материалами: гуманитарию-свитчеру будет не всё просто и понятно. Лучше всего "Руководство для начинающих" подойдёт тому, кто худо-бедно учил программирование (например, в универе), давным-давно на него забил, и при этом ему нравится стиль изложения автора. Достоинства:
  • Традиционное вдумчивое изложение основ;
  • Хорошие примеры.
Недостатки:
  • Есть «прыжки» от «слишком разжевано» до «мельком сказано»;
  • Местами скучновато.
Кстати, у Герберта Шилдта есть ещё одна известная книга по программированию - «Java 8. Полное руководство». Это совсем другой учебник, более фундаментальный. К нему и переходим. Справочники и расширенные руководства Книги из этого раздела пригодятся тем, кто уже ввязался в по полной и ищет книги для лучшего понимания теории и практики.

Герберт Шилдт «Java 8. Полное руководство»

Эту книгу я решил загрузить из интернета, чтобы оценить, а потом - купить или не купить. Шутка ли, 1300 страниц текста! Ну и цена впечатляет не меньше объема. Точно так же я поступил и с двухтомником «Библиотека профессионала» Кея Хорстманна (о ней - ниже). Забегая наперед скажу, что я остановил свой выбор на второй. Почему? Потому что в книге «Java. Полное руководство» я узрел те же недостатки, что и в «Руководстве для начинающих». Иногда разжевано, иногда - скомкано, но при этом не просто скомкано, а как-то многословно скомкано. Вероятно, это - авторский стиль и, думаю, кому-то он будет по нраву, а точнее - по мышлению. В целом «Java 8. Полное руководство» - это неплохой справочник по Java. Но лично мне изложение тех же самых тем больше понравилось в другой книге. Достоинства:
  • Полное руководство. Кажется, там есть все темы, которые нужно знать новичку, и не только новичку.
  • Подробные пояснения.
Недостатки:
  • Много воды (но это кому-то может нравиться!);
  • Русский перевод не лучший.

Java. Библиотека профессионала, Кей С. Хорстманн, Гари Корнелл

Книги Шилдта и Хорстманна часто сравнивают друг с другом. И у той, и у другой есть преданные поклонники. Для меня именно двухтомник Хорстманна - лучший учебник по Java. Он же стал для меня настольной книгой на начальных и средних уровнях JavaRush. Когда я не понимал какую-то тему, в основном лез именно в Хорстманна, и тот многое прояснял. В книге рассматривается всё - от синтаксиса до многопоточного программирования, локализации приложений и работы с XML. И пусть вас не пугает название «Библиотека профессионала» (меня именно оно и отпугнуло), основы тут разобраны довольно хорошо. Кроме того, её полезно периодически перечитывать, чтобы освежить и упорядочить знания. Говорят, даже профессионалы находят в ней что-то полезное для себя… Не знаю. Стану профессионалом - расскажу! Достоинства:
  • При впечатляющем количестве страниц - мало воды (в отличие от Шилдта).
  • Содержит всё, что нужно новичкам.
  • Раскрывает Java 8.
  • Хорошая подача тем по коллекциям и дженерикам.
  • Очень хорошо сочетается с JavaRush. Доходите до темы, решаете задачки, в какой-то момент что-то не понимаете - смотрите Хорстманна, пробуете снова.
Недостатки:
  • Кому-то может показаться, что книга суховата;
  • Нет практики;
  • Русский перевод с ляпами.

«Java. Методы программирования». Блинов, Романчик

Когда-то я вычитал на форуме, что есть такая книга «Промышленное программирование», и в ней неплохие задачи. Оказалось - не соврали. Я нашёл её копию в PDF на сайте белорусского EPAM’а. Там издание не самое новое (по Java 6), а написана книга как основательный университетский учебник, то есть местами изложение несколько тяжеловесное, академическое. НО! Там действительно очень хороший сборник задач по программированию на Java, а также тестовые задания. Говорят, по этой книге учатся стажёры EPAM, а также её взяли на вооружение многие оффлайновые курсы по Java.

Там подход к задачам немного не такой, как у JavaRush, то есть, в среднем тут задачи чуть сложнее и каждая из них - что-то вроде… не мини, но микро-проекта. Так что рекомендую даже студентам JavaRush, так как недостатком практической стороны курса я считаю то, что все задачи в нём уже полностью спроектированы и есть слишком много подсказок. Скажем, задачи на ООП из этого сборника помогли мне очень неплохо разобраться в этом самом ООП наряду с книгами «неувядающей классики», о которых я пишу ниже. Книга написана как бы для будущих «гребцов», поэтому в ней описаны технологии Hibernate для разработки распределённых систем, а также основы HTML, XML, JavaScript. «Промышленное программирование» - если не лучший самоучитель Java, то очень неплохое учебное пособие. Но к ней нужно приходить уже подготовленным. Скажем, после десятка-другого уровней JavaRush. Позднее я обнаружил её более новое и переработанное издание, уже под именем «Java. Методы программирования ».

Достоинства:
  • Отличная подборка задач и тестовых заданий;
  • Есть официальная бесплатная версия (я полагаю, что она официальная, поскольку лежит не на каком-нибудь рутрекере, а на сайте EPAM);
  • Сравнение с С++.
  • Возможность понять, что проходят на стажировке EPAM.
Недостатки:
  • Слишком фундаментальное изложение. Но для повторения с практикой - подойдёт.
  • Нет Java 8.
Неувядающая классика Книги, о которых я пишу ниже можно назвать священными текстами для начинающих и продолжающих «джавистов».

Effective Java, Джошуа Блох

Это просто сокровище, а не книга, и посвящена она базовым принципам языка от одного из его авторов Джошуа Блоха. Скорее всего, вы уже пользовались его библиотеками (в Java Collection, например). Сразу оговорюсь: полнейшим новичкам, кроме каких-нибудь вундеркиндов-спидлёрнеров книга Effective Java не нужна. Сначала лучше усвоить синтаксис, и получить хоть какую-то практику программирования, так сказать, «набить шишки», а затем уже - браться за творение Джошуа Блоха. Книга пригодится тем, кто хочет по-настоящему понимать Java, сформировать правильный подход при программировании на этом языке, понять не только как нужно делать, но прочему нужно делать именно так. А ещё тем, кто хочет глубоко познать ООП (в принципе, это взаимосвязанные вещи). Эта книга - лучший учебник по Java в разрезе объектно-ориентированного подхода к программированию. Достоинства
  • Блестящее изложение материала по теме ООП.
  • Приведены лучшие практики программирования.
  • Автор очень хорошо знает Java изнутри.
Недостатки
  • Пока что отсутствует перевод самого нового издания книги (третьего).

Философия Java, Брюс Эккель

Название этой книги говорит само за себя. Это ещё одна «альфа и омега» для всех, кто хочет знать Java! В этой книге вы найдёте хорошие и внятные примеры, и из них будет понятно, как работает Java. Мне сложно сказать, какая из двух книг - «Философия Java» или «Эффективное программирование» - лучше. Я бы сказал, что Эккель несколько лояльнее к новичкам, в то время как Блох требует какого-никакого опыта. Впервые я прочитал главу из «Философии Java», когда только начинал учиться на JavaRush (кажется, на одном из ранних уровней она значилась в рекомендованных). Тогда она мне не пошла. Зато после 10 или 12 уровня - это была песня! И, я скажу, очень полезная песня. Я возвращался к ней и позже, уже когда пришёл к «Эффективному программированию». Скажу так: Блох и Эккель пускай говорят об одном и том же, но по-разному, и примеры приводят разные. Достоинства
  • Глубокое изложение принципов Java от профессионала;
  • Хорошо зайдет тем, кто переходит с других языков - много сравнений с С++, например.
  • Как мне кажется, её можно начинать читать уровня с 10-го, а вот Эккеля - чуть позднее.
Недостатки
  • Очень неудачные русские переводы;
  • Отсутствие нового издания книги на русском.

Краткие выводы

  1. Лучший самоучитель Java с нуля для тех, кто совсем ничего не знает - Head First Java;
  2. Лучший справочник-учебник по Java и настольная книга - «Библиотека профессионала». И, конечно, документация Oracle.
  3. Лучший сборник задач по программированию на Java - JavaRush. Ну а среди книг - «Java. Методы программирования».
  4. Лучшая неувядающая классика - «Философия Java» и «Effective Java». Это must read для всех, кто решил разобраться во всем по-настоящему, для глубокого понимания. Но лучше их читать постепенно и с расстановкой.
  5. Дополнительный вывод: есть возможность - читайте на английском. Русские переводы в основном очень слабые.

От автора: на этом языке программирования работает примерно 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, т. е. разработка начинки приложений;

JavaScript. Быстрый старт

это объектно-ориентированный язык программирования, код которого выполняется специальной виртуальной 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. На этом этапе изучите синтаксис, библиотеки и фреймворки, которые пригодятся вам при создании более сложных приложений с практическим уклоном. Хороший программист не только умеет пользоваться различными библиотеками, но и знает, как они устроены внутри. Кроме этого, такие понятия, как операции ввода/вывода, наследование и абстракции, сериализация, родовые типы, регулярные выражения, не должны быть для вас пустым звуком.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Тонкости программирования. Ни в коем случае не брезгуйте тщательным изучением документации и жаргона 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. Таким образом, мы изменили каталог на тот, где расположена наша программа. Затем вводим.

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

1. Образование онлайн

Думаю, каждый хоть раз натыкался на уроки от этого автора. Может показаться, что он объясняет слишком медленно, но на деле именно такой темп позволяет хорошо усвоить и закрепить полученную информацию. Работает с Eclipse, что подойдет тем, кто не знаком с шорткатами, библиотеками и другими плюсами данной IDE (тем более, знание Eclipse требуется повсеместно). Плейлисты разделены на введение, Java для профессионалов, алгоритмы сортировок, JSP, Swing, паттерны и многое другое.

2. ZhirniToni

Тоже популярный канал, который ориентирован на изучение основ. Кроме самого программирования, здесь также представлена схематическая визуализация процесса, вплоть до разбора основ ООП. Здесь и обзор main-класса, и вывод в консоль, и циклы. В общем, все необходимое, чтобы изучить Java с нуля. Видео небольшие, до 20 минут каждое. Объяснения хоть и лаконичные, но емкие, так что после просмотра не остается лишних вопросов. Плейлисты включают в себя материалы «для чайников», Java Production и методологию. Если готовитесь к собеседованию – это то, что нужно.

3. loftblog

Сборная солянка. Нет, правда: на этом канале собрано много всего. Можно найти уроки по основам программирования, HTML, CSS, Python, Git. Даже монтаж видео в Adobe Premiere. То есть опыт у ребят колоссальный. Но мы поговорим о Java. Здесь нам демонстрируют работу со всеми (ну точно многими) любимой IntelliJ IDEA. Показывают даже установку IDE, что полезно, если вы новичок или просто никогда не работали с IntelliJ. При этом уроки разные по продолжительности, которая зависит от сложности темы. Подача материала легкая, но основательная.

4. Evil Nerd

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

Англоязычные Youtube-каналы

5. Derek Banas

Автор не ограничивается лишь Джавой, хотя изучить Java с этим каналом не составит труда. Здесь собрано множество вспомогательных материалов. Например, если после Java захочется «перетечь» в Android – не вопрос, ведь на канале есть соответствующие видеоуроки. Представлены как алгоритмы, так и Java-туториалы. Видео снабжены презентациями, которые лаконично и максимально доступно объясняют схему работы как самого языка, так и программы на нем. Автор также использует Eclipse.

6. Durga Software Solutions

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

7. Java Brains

Преподаватель Java Brains является отличным учителем и техническим экспертом в том, чему он учит. Он уже давно работает разработчиком программного обеспечения, поэтому вы точно знаете, что гарантированно получите во всех смыслах правильный контент. Порой автор показывает один из способов, а затем объясняет, как можно изменить код, чтобы сделать то же самое, но лучше, чище. Плейлистов много, включая Java Enterprise Edition, а также разбор таких популярных фреймворков, как Spring и Hibernate.

8. Deege U

На этом канале вам расскажут, что такое , как создать репозиторий на Github, продемонстрируют микросервисы, туториалы, etc. В общем-то, ничего сверхнового, но этот канал станет отличным дополнением к предыдущим, так как моментами затрагиваются действительно интересные темы, которые не везде освещаются. Например Java EE-сервер приложений Wildfly. Хорошая палочка-выручалочка, как для начинающих джавистов, так и для более опытных разработчиков.

Возьмите нашу подборку на карандаш. Она обязательно пригодиться новичкам, стремящимся изучить Java, и программистам с опытом, которые хотят вспомнить «матчасть». Удачи в открытии новых горизонтов!