Обучение ява. Уроки программирования на Java. Получение начального опыта. Фриланс

Мы привыкли к быстрому доступу к информации и столь же быстрому её поглощению. Мы предпочитаем пятиминутные ролики глубоким лекциям и коротенькие статьи - книгам. Не буду утверждать, что хорошая книга по программированию заменит любую статью, это не так. И уж точно она не заменит практику. Тем не менее, лично ко мне настоящее понимание основ программирования пришло после того, как я, прорешав сотни задач на курсе программирования и прочитав тонну статей, начал параллельно изучать теорию по книгам и хорошо так в них углубился. Я довольно долго искал свой персональный «лучший учебник по 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. Дополнительный вывод: есть возможность - читайте на английском. Русские переводы в основном очень слабые.
English version of this post: top books about Java for beginners on CodeGym
Наверное многие скажут: "по Java уже написано много хороших книг, зачем еще одна"? И для многих скорее всего моя книга не даст ничего нового. Ведь основным ее читателем должен стать (предположительно) человек, который вообще не имеет никакого опыта в программировании. Со одной стороны кажется, что достаточно взять книгу с хорошим, наиболее полным описание и все. Но на практике это далеко не так. Недостаточно прочитать о чем-то. Главное понять, как это использовать. Уметь приспособить разный набор средств для решения конкретной задачи. Оценить, что из существующих вариантов лучше. Как этого добиться? Практика. Очень много практики с разбором тривиальных примеров и решением похожих задач самостоятельно. Однако практика, к сожалению, это еще не все. Помимо нее должна быть и правильно подобранная, дозированная теория. Это значит, что я не буду вываливать все знания в полном объеме на читателя сразу. Многое буду сознательно упрощать для лучшего понимания сути вещей. Надеюсь профессионалы меня за это не будут гневно хулить. Ведь после прочтения моей книги, читатель сможет перейти к литературе, дающей более развернутые знания, и разобраться в ней самостоятельно.


Глава: Введение (или рассказ о программировании)

Наверное, в наш прогрессивный век многие слышали такие слова как "программа" и "программирование". Давайте разберемся что это такое, откуда взялось и на какие направления сейчас разбивается.
Во-первых, начнем с термина "программа". Если простыми словами, то программа - это последовательность действий или указаний компьютеру, которую он должен выполнить. Запуская программу, мы запускаем по очереди все команды или инструкции, указанные в ней. Программирование, соответственно, - это процесс создания или написания программ.
Как компьютер понимает или расшифровывает команды записанные в программе?
По сути дела, программа, которую видит компьютер, и программа, которую видит человек на экране, очень сильно отличаются, так как написаны на разных языках. Компьютерная машина понимает только так называемый двоичный код - определенные комбинации из единиц и нулей. Почему так? Все просто, если мы обратимся к механике процесса. Команды компьютеру передаются по шлейфам, состоящие из набора проводов (каналов), и так называемой шине данных. Есть электрический сигнал в канале - значит поступила единица. Нет сигнала - ноль.
Однако, если мы откроем текст программы, написанной программистом, он не будет выглядеть как сплошной набор единиц и нулей и его вполне можно будет "прочитать" и разобрать на команды. Как же тогда компьютер понимает программы, написанные людьми? А вот здесь работают так называемые переводчики с одного языка на другой. Называют эти переводчики - трансляторами. Трансляторы можно разделить на два вида: компиляторы и интерпретаторы. Компиляторы переводят всю программу целиком и сохраняют в специальных исполняемых файлах. Чтобы запустить такую программу, нужно запустить полученный файл. Интерпретаторы переводят команды в режиме он-лайн и сразу их выполняют. По одной команде за один шаг: перевел команду - выполнил, перевел следующую - выполнил, и т. д.
От уровня сложности языка, с которого переводит транслятор, зависит количество команд в двоичном коде. Если язык достаточно приближен к двоичному коду, то на одну команду такого языка будет выходить от 1 (ассемблеры) до 10 команд в двоичном коде. К таким языкам можно отнести, например, Pascal, C. Для высокоуровневых языков, такие например, как С++ и Java, количество команд в двоичном коде на одну команду высокоуровневого языка может быть равным 100 и более.
С одной стороны использование компиляторов лучше, так как программы переведенные целиком на машинный язык работают быстрее. Однако эти программы работают только в какой-то одной операционной системе, для которой они были скомпилированы. К достоинствам интерпретаторов можно отнести так называемую кроссплатформенность, то есть независимость от конкретной операционной системы (платформы). Что здесь имеется ввиду? Дело в том что для запуска одной и той же программы в разных операционных системах будут использоваться разные интерпретаторы: в Windows один интерпретатор, в Linux - другой, в третьей операционной системе - третий и т. д. А текст самой программы остается неизменным и наглядным, где бы мы его ни открыли. Со скомпилированной программой все сложнее. Во-первых, она уже переведена на машинный язык и просмотреть в привычном виде мы ее не сможем. Во-вторых, программа четко ориентирована на определенную операционную систему и изменить это в скомпилированной программе невозможно. Для того, чтобы провернуть подобный фокус нужно взять исходную программу, которая написана на понятном программисту языке, внести необходимые изменения и скомпилировать ее под другую платформу (операционную систему).
В принципе для любого языка можно разработать как компиляторы так и интерпретаторы. К таким языкам, для которых существуют как компиляторы так и интерпретаторы, например, можно отнести Visual Basic. Однако есть ряд языков, для которых существуют только компиляторы или интерпретаторы. Например, для языка Pascal есть множество компиляторов, но нет интерпретаторов (по крайней мере я о них не слышала). Для языков VBScript, JavaScript существуют только интерпретаторы.
Отдельно можно выделить языки программирования, в которых используется некоторое сочетание принципов компиляции и интерпретации. К таким языкам можно отнести и Java. Сначала программа, написанная на Java, обрабатывается компилятором. Однако на выходе получается не машинный, а некоторый промежуточный код (псевдо-код или байт-код), который затем интерпретируется виртуальной машиной Java. Виртуальная машина Java - это программа, которая должна быть установлена в операционной системе, где будет запускаться превращенная в псевдо-код программа.
Как и где пишутся программы?
Давайте подумаем что нам понадобится для создания работающей программы. Во-первых, нам нужно где-то набирать текст программы. А значит нужен какой-то текстовый редактор, в котором мы это проделаем и сможем сохранить. Во-вторых, понадобится компилятор или интерпретатор. В принципе это необходимый минимум. Однако! Следует учесть, что по мере написания программ мы, как и все люди допускаем ошибки. Во-первых, ошибку мы можем сделать в тексте. Было бы удобно, чтобы текстовый редактор умел видеть хотя бы простейшие ошибки в синтаксисе написанных команд и как-то оповещал нас об этом (например, подчеркиванием, как это делает Word для обычных текстов). Во-вторых, могут быть логические ошибки, когда в тексте все вроде верно написано, но ничего не работает так как ожидалось. На этот случай, было бы неплохо иметь удобные инструменты для поиска ошибок во время работы программы.
Для удобства программистов все удобные инструменты объединены в особые программы - системы программирования. Обычно в них есть и особый текстовый редактор, и трансляторы, и отладчик (для поиска ошибок в ходе выполнения программы), и уйму удобных инструментов для облегчения нелегкого труда программиста. К таким "плюшкам" можно отнести автогенерацию кусочков программы, удобный запуск программ по одному щелчку (когда система программирования сама запускает нужный транслятор и полученную исполняемую программу) и многое-многое другое.
Обычно для одного языка существует не одна система программирования, а несколько. Каждый программист, естественно, сам выбирает наиболее удобную для себя систему. Например, для Java самыми распространенными системами программирования являются "IntelliJ Idea","Eclipse","NetBeans".
Поскольку автор предпочитает первую из них и остальные вам пока неизвестны, для нашей практики мы с вами будем использовать "IntelliJ Idea".


Часть 1. Установка необходимых программ и их настройка

Глава: JDK - Java Development Kit (комплект для разработки на Java)

Начнем с самого главного - установки набора необходимых программ для разработки и выполнения программ, написанных на Javа. На английском название этого набора звучит как Java Development Kit или коротко - JDK. Именно последнюю аббревиатуру мы будем использовать в дальнейшем.
Что входит в JDK?
В JDK входят следующие компоненты:
1) JRE - Java Runtime Environment (Среда выполнения Java)
Набор программ и библиотек, необходимых для выполнения псевдо-кода. Фактически это и есть виртуальная машина Java, необходимая для запуска скомпилированных под нее программ.
Примечание: Если нужно только запускать скомпилированные программы, написанные на Java, а не создавать их, устанавливать JDK не имеет смысла. Достаточно установить только JRE.
2) компиляторы
3) отладчики
4) специализированные библиотеки
5) и другие средства разработки
Что такое библиотеки и что в них находится?
Программы на языке высокого уровня пользуются готовыми, проверенными фрагментами кода для выполнения различных типовых действий. К таким действиям можно отнести: отображение информации на экране, ввод данных с клавиатуры, вычисление стандартных математических функций и т. д. Подобные фрагменты кода находятся в библиотеках, представленных в виде отдельных файлов.
Где взять JDK?
Любую версию JDK можно скачать совершенно бесплатно с официального сайта Oracle. Для этого сначала наберем в любом интернет-поисковике следующие слова для поиска: "JDK download". Первый же сайт в списке - наш.

В табличке с нужной версией выбирайте сначала опцию "Accept License Agreement" (переводится с английского как "Согласиться с лицензионным соглашением"), а затем щелкайте по нужному файлу в этой таблице.
Как вы уже знаете, Java - кроссплатформенный язык программирования, то есть одна и та же программа, написанная на нем, одинаково работает в разных операционных системах. Последнее свойство достигается за счет различающихся JRE и JDK на разных операционных системах (платформах).
Естественно вы должны скачать установочный файл, который соответствует вашей операционной системе. Например, если вы работаете под Linuх, выбирайте соответствующий файл для Linux. Если под Windows - файл для Windows.
Если вы устанавливаете JDK под 32 битную операционную систему, качайте файл с пометкой x86. Если под 64 битную - с пометкой х64.
Примечание. Разрядность системы в Windows 7 можно узнать так: жмем «Пуск», правой кнопкой мыши «Компьютер», выбираем «Свойства». Смотрим значение свойства "Тип системы".

Например:

Для 64-битной операционной системы Windows и JDK 8u101 нужный файл будет иметь следующее название:
"jdk-8u101-windows-x64.exe"

Для 32-битной операционной системы Windows и JDK 8u101 нужный файл будет иметь следующее название:
"jdk-8u101-windows-i586.exe"

Как установить и правильно настроить JDK (для ОС Windows 7)?
Этап первый: Установка JDK
Для того чтобы установить JDK, необходимо запустить установочный exe-файл с нужной версией JDK. Дальше нужно лишь следовать по окнам-шагам инсталляции.
Примечание: На одной операционной системе может быть установлено несколько версий JDK и JRE. Сделать какую-то JRE основной (которую и будет использовать виртуальная машина Java) можно в настройках операционной системы. Задать определенную JDK для проекта можно как в операционной системе(будет общей для всех проектов) так и в системе программирования, в которой этот проект пишется.
Давайте рассмотрим весь процесс установки JDK на примере установки JDK 8u102 на 64-битную операционную систему Windows 7 (нужно будет запускать файл jdk-8u102-windows-x64.exe).

1. В первом окне просто нажимаем кнопку "Next"

2. Во втором окне сначала выбираем папку, куда будет устанавливаться наше JDK. Для этого нажимаем кнопку "Change..." и выбираем нужное место на диске.

Примечание: Желательно придерживаться одного общего места для всех папок с разными версиями JRE. То есть чтобы структура общей папки была наподобие следующей:

После этого нажимаем кнопку "Next".

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

1) Зайдите в следующие настройки:
Кнопка "Пуск" --> правой кнопкой мыши в пункт "Компьютер"--> пункт "Свойства" --> пункт "Дополнительные параметры среды" --> вкладка "Дополнительно" --> кнопка "Переменные среды..."

2) Под списком "Cистемные Переменные" нажать кнопку "Создать"

3) Внести необходимые данные и нажать кнопку "OK":
Имя переменной JAVA_HOME
Значение переменной <путь к папке, куда устанавливалось JDK(не JRE!)>

4) Найдите в списке системных переменных переменную "Path", выберете ее и нажмите кнопку "Изменить".

5) Перейдите в конец поля "Значение переменной"(ничего не удалять!!!), добавьте следующий кусочек текста и нажмите кнопку "OK":
;%JAVA_HOME%\bin\

6) Нажмите кнопку "OK" для окна "Переменные среды", затем для вкладки "Дополнительно" и перезагрузите компьютер.


Глава: IDE (Integrated Development Environment) "IntelliJ Idea"- Интегрированная среда разработки (система программирования) "IntelliJ Idea"

"IntelliJ Idea" одна из наиболее распространенных систем программирования для Java. Она удобна и имеет много инструментов, облегчающих работу программиста. К несомненным плюсам можно отнести доступные бесплатные версии этой среды разработки в интернете.

Примечание. Термин IDE(интегрированная среда разработки) идентичен понятию "система программирования", однако в профессиональной среде его используют чаще.

Где взять "IntelliJ Idea"?
Данную IDE можно скачать с официального сайта компании "JetBrains". Для этого сначала нужно набрать в любом интернет-поисковике следующие слова для поиска: "Intellij Idea". Первый же сайт в отобразившемся списке - наш.


В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке 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).

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

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

Варианты изучения

С чего начать обучение программированию с нуля?Существует несколько способов освоения нового материала в данной области. Частные преподаватели подскажут, как начать изучать программирование с нуля, и обучат вас важным аспектам построения программного кода. Однако данный метод достаточно затратный, поэтому в основном используют такие способы обучения:

  1. Специализированные курсы. Их стоимость намного меньше, чем уроки персонального репетитора. Стоит заметить, что множество работодателей положительно реагируют на наличие разнообразных сертификатов о завершении обучения в компьютерных академиях. Обратите внимание на курсы всемирно популярных компаний «Майкрософт» и «Циско».
  2. Удаленные бесплатные курсы. В интернете очень большое количество сервисов, с помощью которых вы сможете просмотреть курсы лекций Оксфорда, Гарварда и других именитых учебных заведений мира. Также существуют специальные платформы для тренировки практических навыков программирования. Более подробно об удаленном обучении и полезных интернет-сервисах читайте далее в статье.
  3. Самообучение. С чего начать изучение программирования с нуля, если вы не планируете записываться на курсы и тратить деньги? В таком случае проще всего заняться самообразованием. Начать изучение следует с прочтения основ, не углубляйтесь в теорию, сразу приступайте к практике, ведь только в процессе создания программы вы будете приобретать необходимые навыки.

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

Как выбрать подходящее направление?

Напрямую зависит от типа ПО, которые вы будете создавать в будущем:


Если наиболее важную роль для вас играет размер заработной платы, обратите свое внимание на рынок вакансий. Сейчас самыми востребованными считаются разработчики, которые специализируются на языках Java, C#, ASP.NET, C++.

Языки низкого и высокого уровней. Разница и области применения

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

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

Программирование с нуля: с чего начать приложений?

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

  1. Google Play. Магазин приложений для пользователей операционной системы "Андроид". Данная ОС имеет наибольшую долю пользователей на рынке. Для разработки приложений и игр используются языки java и C/C++. Наибольшей популярностью пользуются приложения-мессенджеры, клиенты социальных сетей, облачные хранилища, игры.
  2. Windows Mobile Store. Данный магазин стремительно набирает популярность вместе со смартфонами от компании «Майкрософт». В странах СНГ большинство пользователей предпочитают планшеты на платформе Windows Phone. Программирование приложений для такого магазина помогает заработать больше денег на монетизации, ведь, в отличие от "Андроида", практически все программы в магазине Windows распространяются на платной основе.
  3. App Store. Еще одна выгодная площадка для разработки (язык - Objective-C). Процесс создания программ для устройств компании Apple требует предустановленной среды разработки под названием Xcode. Следующим шагом нужно изучить Objective-C программирование с нуля. С чего начать написание кода, подскажет книга Дэвида Марка «Изучение С для Mac. Издание второе».

Язык Java

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

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

Программирование с нуля. С чего начать Java- и Web-кодинг?

Язык Java широко используется в веб-разработке. Прежде чем начать полноценный процесс программирования, следует изучить Java, PHP, MySQL, HTML, CSS. Более подробная расшифровка этих понятий приведена ниже:

  1. Java - используется в написании утилит для сайтов и прописания логики функционала веб-страниц.
  2. PHP - язык для создания персональных страниц сайтов. Имеет скриптовую структуру. Лидирующий язык в создании популярных сегодня динамических веб-сайтов. PHP нужен, чтобы понять скрипты и программирование с нуля. С чего начать? C прочтения книги Джоша Локхата «PHP: Правильный путь».
  3. MySQL - система для руководства азами данных. Широко применяется в создании веб-сайтов, которые требуют хранения больших объемов сгруппированных данных.
  4. HTML - не является языком программирования. Это язык разметки, использующийся для написания базы веб-страницы (построения блоков, распределение текста и абзацев и так далее).
  5. CSS - каскадная таблица стилей. Используется только совместно с HTML для придания языку разметки стиля и внешнего вида.

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

Web-программирование. Актуальность и особенности

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

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

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

Создание приложений под операционную систему Windows

Для разработки таких программ вам понадобятся познания языка C#. Бесплатный сервис от компании «Майкрософт» под названием Virtual Academy позволит вам выучить все особенности данного языка и попрактиковаться в написании простых приложений.

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

Семейство языков С (С, С++, С#). Особенности

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

Языки С, С++, С# имеют одну общую черту - наличие функции ООП (объектно-ориентированного программирования). Такая технология позволяет значительно упростить процесс написания программного кода. Каждый программный объект описывается в определенном классе и имеет свои параметры, методы и свойства. Таким образом, программист может не прописывать каждый раз огромные куски кода, если один и тот же объект нужно использовать несколько раз.

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

На первом этапе обучения практически любой веб-сервис предложит вам попробовать свои возможности, используя «Паскаль» - наиболее простой из языков высокого уровня. Он используется в обучающих целях, его преподают в школах и техникумах, дабы студенты смогли понять программирование с нуля. С чего начать «Паскаль»-кодинг? Прежде всего, нужно скачать на ваш ПК среду разработки. Это небольшой исполняемый файл, в котором и предстоит писать программный код. Используйте TurboPascal, ведь это наиболее популярная среда изучения данного языка программирования.

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

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

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

Получение начального опыта. Фриланс

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

Итог

Программирование с нуля: с чего начать? Для чайников профессора всемирно известных университетов советуют поупражняться с базовыми структурами, которые составляют основу любого языка программирования. Запишитесь на специализированные курсы или займитесь самообучением, прослушивая лекции в режиме онлайн.

По состоянию на сегодняшний день Java - это самый известный и популярный среди всех языков программирования. Начал существовать с 1996 года, изначально разрабатывался в компании Sun Microsystems . Со временем её поглотила корпорация Oracle. Разработчики планировали сделать из Java универсальный язык, применимый практически для всех задач.

За прошедшие 23 года Java сильно расширился и улучшился. На сегодня актуальная версия - Java 11, выпущенная в сентябре прошлого года. За это время Java стала больше, чем языком универсального предназначения. Её можно назвать полноценной платформой, которая обладает собственной экосистемой. Сегодня язык действительно может использоваться для чего угодно: от создания мелких программ до интернет-порталов колоссальных объёмов. Часто применяется для разработки ПО под все известные компьютеры, смартфоны и умную технику. Большая часть всех приложений на Android написана на Java.


Особенности Java

У много особенностей, но ключевой можно назвать принцип трансляции кода в особый байт-код , что не привязан к платформе. Впоследствии данный байт-код обрабатывается на JVM . Этот фактор отличает Java от прочих интерпретируемых языков наподобие Perl , и пр. В них код сразу поступает на интерпретатор. С другой стороны, Java также не относится к исключительно компилируемым языкам (вроде C-подобных).

За счёт необычной архитектуры достигается кроссплатформенность и переносимость приложений, основанных на Java. Такие продукты можно выполнять на Windows, Linux, Mac OS и для этого даже не нужна перекомпиляция кода. Реализация JVM на всех платформах может отличаться, но принцип и ход выполнения остаётся таким же.

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

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

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

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


Top