Навчання ява. Уроки програмування 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 про Java для початківців на 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) Під списком "Системні Змінні" натиснути кнопку "Створити"

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. І його ім'я має бути головним, щоб інтерпретатор знав, з чого почати виконання програми.

Тепер, що таке 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 потрібен, щоб зрозуміти скрипти та програмування з нуля. З чого почати? З прочитання книги Джоша Локхата "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