Java обучение. Уроци по програмиране на java. Натрупване на първоначален опит. На свободна практика

Ние сме свикнали с бърз достъп до информация и също толкова бързо усвояване. Предпочитаме петминутни видеоклипове пред дълбоки лекции и кратки статии пред книги. Няма да твърдя, че добра книга за програмиране ще замени всяка статия, това не е така. И със сигурност няма да замени практиката. Но за мен лично истинското разбиране на основите на програмирането дойде, след като реших стотици проблеми в курс по програмиране и прочетох куп статии, започнах едновременно да изучавам теорията от книгите и да се задълбоча в тях добре. Търся моя личен „най-добър урок по Java за начинаещи“ от доста време. По-долу има няколко книги, които ми бяха полезни в по-голяма или по-малка степен на различни етапи от обучението ми.

"За най-малките"

Можете да започнете да четете следващите две книги в началото на вашето обучение, успоредно с видеото или, ако учите с JavaRush, заедно с първите нива. Те, особено първият, са подходящи за хора с нулев опит в програмирането.

Head First Java

Започнах с тази книга не защото ми е любима, а защото е най-простата. Тази книга, според много програмисти, е най-добрият урок по Java от нулата. Освен това, той е наистина и напълно „от нулата“, тоест подходящ е за тези, които тепърва започват и все още не разбират напълно какъв вид програмиране на звяр е. Тя дойде при мен твърде късно. Мисля, че затова не можах да го оценя. Беше много приятно да го „просто прочета“, но трябваше да търся нещо конкретно в него дълго време. Материалът там е представен живо, но доста повърхностно (защото е от нулата!) и много теми и необходими обяснения просто липсват. Но моят приятел, на когото беше наследен, беше възхитен от него и извика, че това не е просто най-добрият учебник по Java за начинаещи, а истински световен шедьовър и така трябва да се поднася сложен материал. Предимства:
  • Най-добрият урок по Java от нулата, за пълни манекени, написан на жив език;
  • Готини илюстрации и хумор;
  • Обяснения с примери от реалния живот.
недостатъци:
  • Много "вода" за тези, които вече са влезли в темата;
  • Не винаги успешни пъзели и упражнения.

Хърбърт Шилд. Java 8 Ръководство за начинаещи

След като прегледах този учебник, реших, че той ще бъде много подходящ за тези, които обичат по-традиционно представяне на материала, отколкото в Headfirst, и в същото време търсят урок от нулата. На места изложението в книгата е много подробно, напомнящо разширена и преведена документация с добри визуални примери. Понякога, според мен, авторът прекрачва границата и започва да дъвче твърде много, четенето става скучно... и изведнъж - салто - и някое доста сложно място се пропуска почти моментално и вие сте напълно объркан, опитвайки се да разберете какво и къде пропуснахте. В книгата обаче няма твърде много такива пасажи и познавам хора, които вярват, че Ръководството за начинаещи е най-добрият урок по Java за тези, които все още не знаят нищо. Лично на мен не ми се стори много гладко. Да кажем, че започвам да сортирам колекции и вместо човешко обяснение ми дават задачата да създам независимо Set въз основа на масиви. Страхотен проблем, но бих искал първо да разбера по-добре кои са стандартните колекции! Въпреки че тази книга, както и предишната, се счита за учебник за начинаещи, опитът ми като учител показва, че тя е добра само в комбинация с други материали: не всичко ще бъде просто и разбираемо за студент по хуманитарни науки. „Ръководството за начинаещи“ е най-подходящо за някой, който поне е научил програмиране (например в университета), отдавна се е отказал от него и в същото време харесва стила на представяне на автора. Предимства:
  • Традиционно обмислено представяне на основите;
  • Добри примери.
недостатъци:
  • Има „скокове“ от „твърде дъвчащи“ до „бързо казано“;
  • Малко скучен на места.
Между другото, Хърбърт Шилд има друга известна книга за програмиране - „Java 8. Пълно ръководство" Това е съвсем различен учебник, по-фундаментален. Да преминем към него.

Препратки и ръководства за напреднали

Книгите в този раздел ще бъдат полезни на тези, които вече са се включили най-пълно и търсят книги за по-добро разбиране на теорията и практиката.

Хърбърт Шилд "Java 8. Пълното ръководство"

Реших да изтегля тази книга от интернет, за да я оценя и след това да реша дали да я купя или не. Няма майтап, 1300 страници текст! Е, цената е не по-малко впечатляваща от обема. Направих точно същото нещо с двутомната „Библиотека на професионалистите“ от Кей Хорстман (повече за нея по-долу). Гледайки напред, ще кажа, че избрах второто. Защо? Защото в книгата „Ява. Пълното ръководство" видях същите недостатъци като в "Ръководството за начинаещи". Понякога е сдъвкана, понякога е намачкана, но в същото време не е просто намачкана, а някак многословно намачкана. Вероятно това е стилът на автора и мисля, че някой ще го хареса или по-скоро техния начин на мислене. Като цяло, Java 8: The Definitive Guide е добър справочник за Java. Но лично на мен повече ми хареса представянето на същите теми в друга книга. Предимства:
  • Пълно ръководство. Изглежда има всички теми, които един начинаещ, и не само един начинаещ, трябва да знае.
  • Подробни обяснения.
недостатъци:
  • Много вода (но някои хора може да харесат това!);
  • Преводът на руски не е най-добрият.

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

Книгите на Шилд и Хорстман често се сравняват една с друга. И двамата имат верни фенове. За мен двутомникът на Хорстман е най-добрият учебник по Java. Също така се превърна в справочник за мен при начинаещи и средни нива на JavaRush. Когато не разбирах дадена тема, най-често се обръщах към Хорстман и той ми изясни много неща. Книгата обхваща всичко - от синтаксис до многонишково програмиране, локализиране на приложения и работа с XML. И не позволявайте на името „Професионална библиотека“ да ви плаши (това ме изплаши), основите са покрити доста добре. Освен това е полезно периодично да го препрочитате, за да опресните и организирате знанията си. Казват, че дори професионалистите намират нещо полезно за себе си в него... Не знам. Ако стана професионалист, ще ви кажа! Предимства:
  • С впечатляващ брой страници, има малко вода (за разлика от Schildt).
  • Съдържа всичко необходимо на начинаещите.
  • Разкрива Java 8.
  • Добро представяне на теми за колекции и генерични продукти.
  • Съчетава се много добре с JavaRush. Преминете към темата, решете проблеми, в даден момент не разбирате нещо - гледайте Horstmann, опитайте отново.
недостатъци:
  • Някои може да намерят книгата малко суха;
  • Без практика;
  • Руски превод с грешки.

"Java" Методи за програмиране“. Блинов, Романчик

Веднъж прочетох в един форум, че има книга, наречена „Индустриално програмиране“, и има някои добри проблеми. Оказа се, че не са излъгали. Намерих копие от него в PDF на беларуския уебсайт на EPAM. Публикацията там не е най-новата (на Java 6), но книгата е написана като солиден университетски учебник, тоест на места изложението е някак тежко и академично. НО! Наистина има много добра колекция от задачи за програмиране на Java, както и тестови задачи. Казват, че обучаемите в EPAM учат от тази книга и тя също е възприета от много офлайн курсове по Java.

Подходът към задачите там е малко по-различен от този на JavaRush, тоест като цяло задачите тук са малко по-сложни и всяка от тях е нещо като... не мини, а микропроект. Така че препоръчвам JavaRush дори на студенти, тъй като смятам, че недостатъкът на практическата страна на курса е, че всички задачи в него вече са напълно проектирани и има твърде много съвети. Да речем, ООП проблемите от тази колекция ми помогнаха да разбера много добре това ООП, заедно с книгите на „вечните класики“, за които пиша по-долу. Книгата е написана сякаш за бъдещи „гребци“, затова описва технологиите на Hibernate за разработване на разпределени системи, както и основите на HTML, XML, JavaScript. „Индустриално програмиране“ е, ако не най-добрият урок по Java, то много добър учебник. Но трябва да дойдете при него вече подготвени. Да речем, след дузина или две нива на JavaRush. По-късно открих по-новото му и преработено издание, вече под името „Java. Методи за програмиране."

Предимства:
  • Отличен избор на задачи и тестове;
  • Има официална безплатна версия (мисля, че е официална, тъй като не е в някой root тракер, а в сайта на EPAM);
  • Сравнение с C++.
  • Възможност да разберете какво включва стаж в EPAM.
недостатъци:
  • Твърде фундаментално представяне. Но за повторение с практика ще бъде подходящо.
  • Няма Java 8.

Вечна класика

Книгите, за които пиша по-долу, могат да бъдат наречени свещени текстове за начинаещи и напреднали „джависти“.

Ефективна Java, Джошуа Блок

Това е съкровище, а не книга, и се фокусира върху основните принципи на езика от един от своите автори, Джошуа Блок. Най-вероятно вече сте използвали неговите библиотеки (в Java Collection, например). Ще направя резервация веднага: напълно начинаещите, с изключение на някои prodigies-speedrunners, не се нуждаят от книгата Effective Java. Първо, по-добре е да овладеете синтаксиса и да получите поне малко практика в програмирането, така да се каже, „да разберете нещата“, и след това да се захванете с творението на Джошуа Блок. Книгата ще бъде полезна за тези, които искат наистина да разберат Java, да формират правилния подход при програмиране на този език, да разберат не само как се прави това, но и всичко останало, което трябва да се направи точно по този начин. А също и за тези, които искат да разберат задълбочено ООП (по принцип това са взаимосвързани неща). Тази книга е най-добрият учебник по Java в контекста на обектно-ориентирания подход към програмирането. Предимства
  • Блестящо представяне на материал по темата за ООП.
  • Предоставени са най-добрите практики за програмиране.
  • Авторът познава Java много добре отвътре.
недостатъци
  • Все още няма превод на най-новото издание на книгата (третото).

Философия на Java, Брус Екел

Заглавието на тази книга говори само за себе си. Това е още една „алфа и омега“ за всички, които искат да познават Java! В тази книга ще намерите добри и ясни примери и от тях ще стане ясно как работи Java. Трудно ми е да кажа коя от двете книги - "Философията на Java" или "Ефективното програмиране" е по-добра. Бих казал, че Eckel е малко по-приятелски настроен към начинаещи, докато Bloch изисква известен опит. За първи път прочетох главата от „Философия на Java“, когато тъкмо започвах да изучавам JavaRush (мисля, че беше посочен като препоръчителен на едно от ранните нива). Тогава тя не ми отиваше. Но след ниво 10 или 12 - беше песен! И ще кажа, много полезна песен. Върнах се към него по-късно, когато стигнах до Ефективното програмиране. Ще кажа следното: нека Блок и Екел говорят за едно и също нещо, но по различни начини и дават различни примери. Предимства
  • Задълбочено представяне на принципите на Java от професионалист;
  • Ще е добре за тези, които преминават от други езици - има много сравнения със C++, например.
  • Струва ми се, че можете да започнете да го четете на ниво 10, но Eckel - малко по-късно.
недостатъци
  • Много несполучливи руски преводи;
  • Липса на ново издание на книгата на руски език.

Кратки изводи

  1. Най-добрият урок по Java от нулата за тези, които не знаят нищо - Head First Java;
  2. Най-добрият справочник и справочник по Java е „Професионална библиотека“. И, разбира се, документация на Oracle.
  3. Най-добрата колекция от задачи за програмиране на Java - JavaRush. Е, сред книгите - „Java. Методи за програмиране“.
  4. Най-добрите вечни класики са „Философията на Java“ и „Ефективна Java“. Това е задължително четиво за всеки, който реши да разбере всичко наистина, за дълбоко разбиране. Но е по-добре да ги четете постепенно и в ред.
  5. Допълнителен извод: има възможност - четете на английски. Преводите на руски като цяло са много слаби.
Английска версия на тази публикация: най-добрите книги за Java за начинаещи в CodeGym
Вероятно мнозина ще кажат: „Вече са написани много добри книги за Java, защо още една?“ И за мнозина най-вероятно книгата ми няма да даде нищо ново. В края на краищата основният му читател би трябвало да е (вероятно) човек, който няма никакъв опит в програмирането. От една страна, изглежда, че е достатъчно да вземете книга с добро, най-пълно описание и това е. Но на практика това далеч не е така. Не е достатъчно да четеш за нещо. Основното нещо е да разберете как да го използвате. Да можете да адаптирате различен набор от инструменти за решаване на конкретен проблем. Преценете кое от съществуващи опцииПо-добре. Как да постигнете това? Практикувайте. Много практика за анализиране на тривиални примери и самостоятелно решаване на подобни проблеми. Практиката обаче, за съжаление, не е всичко. Освен него трябва да има и правилно подбрана, дозирана теория. Това означава, че няма да изхвърля цялото знание изцяло върху читателя наведнъж. Умишлено ще опростя много за по-добро разбиране на същността на нещата. Надявам се професионалистите да не ме хулят гневно за това. В края на краищата, след като прочете книгата ми, читателят ще може да премине към литература, която предоставя по-подробни знания и да я разбере сам.


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

Вероятно в нашата прогресивна епоха мнозина са чували такива думи като „програма“ и „програмиране“. Нека да разберем какво е това, откъде идва и в какви посоки сега се разпада.
Първо, нека започнем с термина "програма". Ако с прости думи, тогава програмата е поредица от действия или инструкции към компютъра, които той трябва да изпълни. Когато изпълняваме програма, изпълняваме една по една всички команди или инструкции, посочени в нея. Програмирането, съответно, е процес на създаване или писане на програми.
Как компютърът разбира или дешифрира команди, написани в програма?
Всъщност програмата, която компютърът вижда, и програмата, която човек вижда на екрана, са много различни, тъй като са написани на различни езици. Компютърната машина разбира само така наречения двоичен код - определени комбинации от единици и нули. Защо така? Всичко е просто, ако се обърнем към механиката на процеса. Командите се предават на компютъра чрез контури, състоящи се от набор от проводници (канали) и така наречената шина за данни. В канала има електрически сигнал, което означава, че е пристигнала единица. Няма сигнал - нула.
Ако обаче отворим текста на програма, написана от програмист, тя няма да изглежда като непрекъснат набор от единици и нули и може да бъде напълно „прочетена“ и анализирана на команди. Как тогава компютърът разбира програми, написани от хора? Но тук работят така наречените преводачи от един език на друг. Тези преводачи се наричат ​​преводачи. Преводачите могат да бъдат разделени на два вида: компилатори и интерпретатори. Компилаторите превеждат цялата програма и я записват в специални изпълними файлове. За да стартирате такава програма, трябва да стартирате получения файл. Преводачите превеждат команди онлайн и ги изпълняват незабавно. Една команда наведнъж: преведена командата - изпълнена, преведена следващата - изпълнена и т.н.
Броят на командите в двоичния код зависи от нивото на сложност на езика, от който превежда преводачът. Ако езикът е достатъчно близък до двоичния код, тогава една команда на такъв език ще има от 1 (сглобяване) до 10 команди в двоичен код. Такива езици включват например Pascal, C. За езици на високо ниво, като 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 development kit)

Нека започнем с най-важното - инсталиране на набор от необходими програми за разработване и изпълнение на програми, написани на Java. На английски името на този комплект е Java Development Kit или накратко JDK. Това е последното съкращение, което ще използваме в бъдеще.
Какво е включено в JDK?
JDK включва следните компоненти:
1) JRE - Java Runtime Environment (Java Runtime Environment)
Набор от програми и библиотеки, необходими за изпълнение на псевдокод. Всъщност това е виртуалната машина на Java, необходима за стартиране на програми, компилирани за нея.
Забележка: Ако искате да изпълнявате само компилирани Java програми, а не да ги създавате, няма смисъл да инсталирате JDK. Достатъчно е да инсталирате само JRE.
2) компилатори
3) дебъгери
4) специализирани библиотеки
5) и други инструменти за разработка
Какво представляват библиотеките и какво има в тях?
Програми на език високо нивоизползвайте готови, доказани кодови фрагменти за извършване на различни стандартни действия. Такива действия включват: показване на информация на екрана, въвеждане на данни от клавиатурата, изчисляване на стандартни математически функции и др. Такива кодови фрагменти се намират в библиотеки, представени като отделни файлове.
Къде мога да взема JDK?
Всяка версия на JDK може да бъде изтеглена напълно безплатно от официалния сайт на Oracle. За да направите това, първо въведете следните думи за търсене във всяка интернет търсачка: „JDK download“. Първият сайт в списъка е нашият.

В знака с необходимата версия първо изберете опцията „Приемам лицензионното споразумение“ (преведено от английски като „Съгласен съм с лицензионното споразумение“), след което щракнете върху желания файл в тази таблица.
Както вече знаете, Java е междуплатформен език за програмиране, тоест една и съща програма, написана на него, работи еднакво на различни операционни системи. Последното свойство се постига благодарение на различни JRE и JDK на различни операционни системи (платформи).
Естествено, трябва да изтеглите инсталационния файл, който отговаря на вашата операционна система. Например, ако работите на Linux, изберете подходящия файл за Linux. Ако е под Windows - файл за Windows.
Ако инсталирате JDK на 32-битова операционна система, изтеглете файла, означен като x86. Ако е 64-битов, той е маркиран с x64.
Забележка. Можете да разберете капацитета на системата в 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. В първия прозорец просто щракнете върху бутона "Напред".

2. Във втория прозорец първо изберете папката, в която ще бъде инсталиран нашият JDK. За да направите това, щракнете върху бутона "Промяна..." и изберете желаното място на диска.

Забележка: Препоръчително е да се придържате към едно общо местоположение за всички папки с различни JRE версии. Тоест структурата на споделената папка трябва да бъде нещо като следното:

След това щракнете върху бутона „Напред“.

Втори етап: Настройка на променливи на средата
За да може системата за програмиране да знае кой jdk да използва по подразбиране за своите програми и операционната система да може да разпознава java файлове, е необходимо да конфигурирате системните променливи в нашата операционна система.
За да направите това в Windows 7, трябва да предприемете следните стъпки:

1) Отидете на следните настройки:
Бутон "Старт" --> щракнете с десния бутон върху "Компютър" --> "Свойства" --> "Разширени настройки на средата" --> раздел "Разширени" --> бутон "Променливи на средата..."

2) В списъка „Системни променливи“ щракнете върху бутона „Създаване“.

3) Въведете необходимите данни и щракнете върху „OK“:
Име на променлива JAVA_HOME
Променлива стойност<путь к папке, куда устанавливалось JDK(не JRE!)>

4) Намерете променливата „Път“ в списъка със системни променливи, изберете я и щракнете върху бутона „Промяна“.

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. Здравей свят!

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

Да започнем със самите основи. Да отдадем почит на традицията и да пишем най-простата програма, което показва поздравЗдравей свят. Ако нямате Java, след това може да бъде изтеглен от официалния уебсайт http://www.java.com/ru. След това го инсталирайте.

Ако Java сте инсталирали, след това въведете следния текст в някой редактор:

Публичен клас HelloWorld {

Обществен статичен void main ( Низови аргументи ) {

Система . навън . печат ( "Здравей свят!" );

}

}

И не забравяйте да го запазите под иметоЗдравей свят. java- Името на изпълнимия клас трябва да съвпада с името на файла. За да компилирате, използвайте програмата javac.exe включени в стандартния пакет Java. Ето как може да изглежда партиден файл за компилациятози java файл:

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

пауза

Ако не са възникнали грешки по време на компилацията:

тогава, най-вероятно, компилацията е била успешна във вашата в същата директория, където се намира HellowWorld. java Появи се и HellowWorld.клас:

Сега нека стартираме друг партиден файл, който ще извика Java интерпретатора заедно с нашия компилиран файл:

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

пауза

Ако всичко е направено правилно, трябва да получите този резултат:

Ако сте го получили, тогава мога да ви поздравя - написахте първата си програма на Java. В бъдеще ще научим как да пишем Java аплети и много повече. А сега няколко думи за самата програма. Както забелязахте, започва с думата public. Това е модификатор, който означава, че декларираме нещо публично достъпно: клас, метод на клас или променлива. Има и други модификатори, например: частен, защитен, приятелски, окончателен, абстрактен, статичен.Някои от тях могат да се комбинират помежду си. Например private означава, че променливата, която искаме да декларираме, е частна за други класове. Но ще стигнем до модификатора по-късно. Сега нека разгледаме следващата ключова дума, клас. Това означава, че декларираме клас. В java всичко се основава на класове. Един от класовете е задължително базовият. И базовият клас трябва да е публичен. В този пример това е класът HelloWord. Засега той е единственият, който имаме.

Сега ще се опитам да обясня с прости думи какво е това Класи какво е предмет.

Нека си спомним училищния курс по зоология. Как се класифицира живият свят? Първо се въвежда понятието „царство“.

1. Царство на едноклетъчните организми,

2. растително царство

3. Животинско царство.

Да вземем животни. Те могат да бъдат разделени по вид. Например:

1. Тип коелентерни.

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

3. Вид миди.

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

Последните се делят на бозайници, влечуги, земноводни, птици и т.н. Можете да отидете още по-далеч в класификацията, но няма да го правим сега, а ще преминем директно към програмирането.

В езика Java можете, подобно на класификацията на живия свят, да класифицирате обекти (части програма и данни). Има класове за това.

Спри, спри! - казвате вие, - защо класифицирате тези обекти?

Представете си, че вие ​​като някакъв демиург (творец, бог) създавате живот на Земята. Първо разработихте най-простите органични съединения. И така, в името на експеримента, какво ще се случи. След това ги комбинирали в сложни молекули, от които като тухли сглобявали най-простите микроорганизми. Но вашата крайна цел е създаването на интелигентен живот. Следователно вие не сте спрели дотук, а сте създали многоклетъчни организми. След това започнаха да ги подобряват и развиват. Някои видове се оказаха жизнеспособни, други изчезнаха (динозаври). И накрая целта беше постигната - появи се Хомо сапиенс - Хомо сапиенс.

Сега нека да слезем на земята и да си представим програмирането като творение, при което принуждавате вашата програма да се развие до определено състояние, когато може да се използва, и след това допълнително, постепенно увеличавайки и подобрявайки функционалността.

Сега нека си представим, че атомът е най-простата програмна команда или единица информация (които, разбирате ли, са неразделни една от друга, защото програмата работи с нещо – точно така, с информация).

Тогава молекулата е подпрограма. Или предмет.

Така че създадохме куп обекти в нашата програма. Трябва да ги класифицираме по някакъв начин, за да не се объркаме. Това е, за което Java предоставя класове. Използвайки ги, ние описваме клас обекти (обща концепция, например птици), а след това, имайки описания клас, можем да създадем обект - екземпляр на този клас. Тоест класът е самата дума Birds, а обектът е някаква конкретна птица, ако продължим нашата аналогия.

Освен това птиците се предлагат в различни видове. Но всички те имат някои общи характеристики, наследени от концепцията за „Птици“. По същия начин в Java, от клас можете да създадете друг клас, който наследява неговите свойства и методи (функции). Нарича се наследство.

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

И така, разбрахме основните концепции на Java. Сега нека преминем през програмата.

Ето как декларираме клас:

публичен клас HelloWorld {

В този случай има само един клас в нашата програма и това е базовият клас, тоест класът, отговорен за стартирането на програмата. Ето защо името му трябва да съвпада с името на файла, така че интерпретаторът да „знае“ откъде да започне изпълнението на програмата.

Базовият клас (HelloWorld) има основен метод: main. Декларирахме го като публичен и статичен. Първият показва, че методът е публичен. Ако това не беше така, нашата програма просто нямаше да стартира. Има и методи, които не са публично достъпни, но за тях ще говорим в следващите уроци.Засега не забравяйте, че основният метод (който се стартира, когато стартираме програмата) трябва да е публичен. И името му трябва да е main, за да знае интерпретаторът откъде да започне изпълнението на програмата.

Сега какво е статично. Това е модификатор, който показва, че методът е статичен. Тоест работи дори когато екземпляр на класа (обект) не е създаден. По принцип полетата и методите със статичен модификатор са общи за всички обекти на класа. Ще говорим и за това по-късно.

Всеки метод може или не може да има върната стойност. Ако е така, значи е функция. Типът върната стойност също е включен в декларацията на метода. Ако не, тогава го задайте на void (както в нашия пример).

Достъпът до полетата и методите на даден обект става чрез точка. Има и вградени обекти, например System, които използваме в нашия пример:

Система . навън . печат ( "Здравей свят!" );

в този случай имаме достъп до полето out, което също е обект, предназначен за извеждане на данни, и извикваме неговия метод за печат, който показва текст на екрана (като командата PRINT в добрия стар BASIC).

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

А създаването на уебсайтове става все по-популярно и привлича вниманието на огромен брой хора. Дори човек без специално образование може да започне да разработва програми, основното е желанието и желанието да научите нов материал и постоянна практика.

Опции за проучване

Откъде да започнете да изучавате програмиране от нулата Има няколко начина да овладеете нов материал в тази област. Частните учители ще ви покажат как да започнете да учите програмиране от нулата и ще ви научат на важни аспекти на изграждането на код. Този метод обаче е доста скъп, така че се използват главно следните методи на обучение:

  1. Специализирани курсове. Цената им е много по-ниска от уроците от личен учител. Струва си да се отбележи, че много работодатели реагират положително на наличието на различни сертификати за завършено обучение в компютърни академии. Обърнете внимание на курсовете на световноизвестните компании Microsoft и Cisco.
  2. Дистанционни безплатни курсове. В интернет има много голям брой услуги, с които можете да видите лекционни курсове от Оксфорд, Харвард и други известни образователни институции в света. Има и специални платформи за обучение на практически умения по програмиране. Прочетете повече за дистанционното обучение и полезни интернет услуги по-нататък в статията.
  3. Самообучение. Къде да започнете да учите програмиране от нулата, ако не планирате да се записвате на курсове и да харчите пари? В този случай най-лесният начин е да се образовате. Трябва да започнете да изучавате, като прочетете основите, не се задълбочавайте в теорията, веднага започнете да практикувате, защото само в процеса на създаване на програма ще придобиете необходимите умения.

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

Как да изберем правилната посока?

Пряко зависи от типа софтуер, който ще създадете в бъдеще:


Ако заплатата е най-важният фактор за вас, насочете вниманието си към пазара на труда. В днешно време най-търсени са разработчиците, които се специализират в езиците Java, C#, ASP.NET, C++.

Езици на ниско и високо ниво. Разлика и приложения

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

Езиците от високо ниво са много по-лесни за използване, защото използват вградени библиотеки за опростяване и визуализиране на кода. Повечето съвременни софтуери са написани на езици от високо ниво.

Програмиране от нулата: откъде да стартирате приложения?

Процесът на създаване на мобилни програми позволява на програмистите да работят с най-новите инструменти и в резултат на това да печелят прилична сума пари чрез монетизация. Първо трябва да изберете обекта, в който ще работите:

  1. Google Play. Магазин за приложения за потребители на операционна система Android. Тази ОС има най-голям дял потребители на пазара. Езиците Java и C/C++ се използват за разработване на приложения и игри. Най-популярни са месинджър приложенията и клиентите. социални мрежи, съхранение в облака, игри.
  2. Windows Mobile Store. Този магазин бързо набира популярност заедно със смартфоните на Microsoft. В страните от ОНД повечето потребители предпочитат таблети, базирани на платформата Windows Phone. Програмирането на приложения за такъв магазин ви помага да печелите повече пари от монетизация, тъй като, за разлика от Android, почти всички програми в магазина на Windows се разпространяват на платена основа.
  3. App Store. Друга печеливша платформа за разработка (език - Objective-C). Процесът на създаване на програми за устройства на Apple изисква предварително инсталирана среда за разработка, наречена Xcode. Следващата стъпка е да научите програмирането на Objective-C от нулата. Книгата на Дейвид Марк “Learning C for Mac” ще ви каже откъде да започнете да пишете код. Второ издание."

език Java

Повечето професионални разработчици препоръчват да започнете знанията си по програмиране с езика Java. Лесно се учи и в същото време се търси на пазара. Използвайте съветите по-долу, ако решите да научите програмиране от нулата. Откъде да започна разработката на Java?

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

Програмиране от нулата. Откъде да започна с Java и уеб кодирането?

Езикът Java се използва широко в уеб разработката. Преди да започнете пълноценния процес на програмиране, трябва да научите Java, PHP, MySQL, HTML, CSS. По-подробно обяснение на тези понятия е дадено по-долу:

  1. Java - използва се при писане на помощни програми за уебсайтове и писане на логиката на функционалността на уеб страницата.
  2. PHP е език за създаване на лични уеб страници. Има скриптова структура. Водещият език в създаването на динамични уебсайтове, които са популярни днес. PHP е необходим, за да разберете скриптовете и програмирането от нулата. Откъде да започна? От четене на книгата на Джош Локхат „PHP: Правилният път“.
  3. MySQL е система за управление на основните данни. Широко използван при създаване на уебсайтове, които изискват съхраняване на големи количества групирани данни.
  4. HTML не е език за програмиране. Това е език за маркиране, използван за писане на основата на уеб страница (изграждащи елементи, разпределяне на текст и абзаци и т.н.).
  5. CSS - Каскаден стилов лист. Използва се само във връзка с HTML, за да придаде стил и външен вид на езика за маркиране.

Само като научите основните понятия на етапите на тези технологии, можете да започнете да създавате професионални динамични уебсайтове, които днес са много търсени.

Уеб програмиране. Уместност и характеристики

Темата за уеб програмирането е особено актуална днес. Както беше посочено по-горе, за да започнете да разработвате уеб елементи, трябва да имате доста голямо количество познания относно езиците за маркиране, създаването на скриптове, логиката и стиловете.

Днес няма да изненадате никого със сайтове, които са създадени само с помощта на HTML и CSS, така че уеб разработчиците, които могат да направят сайт визуално красив, както и да го напълнят с цялата функционалност, необходима на потребителите, станаха търсени.

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

Създаване на приложения за операционна система Windows

За да разработите такива програми, ще ви трябват познания по езика C#. Безплатна услуга от Microsoft, наречена Virtual Academy, ще ви позволи да научите всички функции на този език и да практикувате писането на прости приложения.

Според новата политика на Microsoft, всички приложения се качват в магазина за софтуер, така че можете да получите достъп за монетизиране на вашия проект.

Семейството от езици C (C, C++, C#). Особености

Програмиране от нулата - откъде да започнем с избора на език? Отговорът на този въпрос може да бъде получен чрез по-подробно разглеждане на видовете технологии за създаване на приложения. Уместността на даден език също трябва да се вземе предвид.

Езиците C, C++, C# имат едно общо нещо - наличието на OOP (обектно-ориентирано програмиране) функции. Тази технология ви позволява значително да опростите процеса на писане на програмен код. Всеки софтуерен обект е описан в определен клас и има свои собствени параметри, методи и свойства. По този начин програмистът не трябва да пише огромни парчета код всеки път, ако един и същ обект трябва да се използва няколко пъти.

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

На първия етап от обучението почти всяка уеб услуга ще ви предложи да опитате нейните възможности с помощта на Pascal, най-простият от езиците на високо ниво. Използва се за образователни цели и се преподава в училища и технически колежи, така че учениците да могат да разберат програмирането от нулата. Откъде да започна с кодирането на Pascal? Първо, трябва да изтеглите средата за разработка на вашия компютър. Това е малък изпълним файл, в който ще бъде записан програмният код. Използвайте TurboPascal, защото това е най-популярната среда за изучаване на този език за програмиране.

HourOfCode е уеб услуга от Microsoft. Целта е ясно да покаже на учениците какво представляват цикъл, променлива, клас и условия. Учебният процес е като игра.

CodeAcademy е мощен ресурс за изучаване на почти всяка технология за кодиране. Отделяйки само един час на ден, вие дори няма да забележите как ще се научите да програмирате и да създавате свои собствени проекти.

Udacity е услуга, която предоставя на своите потребители безплатен достъп до лекции на известни професори и разработчици.

Натрупване на първоначален опит. На свободна практика

След като научите основните принципи на избрания от вас език, можете спокойно да започнете първите си проекти. Започнете да работите на свободна практика, защото така ще попълните портфолиото си и ще придобиете опит в общуването с клиенти. Такива умения ще ви бъдат полезни в бъдеще, ако искате да получите работа в компания като официален разработчик на софтуер.

Долен ред

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

Към днешна дата Java е най-известният и популярен сред всички езици за програмиране. Започва да съществува през 1996 г., първоначално разработен от Sun Microsystems. С течение на времето тя беше погълната от Oracle Corporation. Разработчиците планираха да направят Java универсален език, приложим за почти всички задачи.

През последните 23 години Java се разшири и подобри значително. Текущата версия днес е Java 11, пусната през септември миналата година. През това време Java се превърна в нещо повече от език с общо предназначение. Може да се нарече пълноценна платформа, която има своя собствена екосистема. Днес езикът наистина може да се използва за всичко: от създаване на малки програми до колосални интернет портали. Често се използва за разработване на софтуер за всички известни компютри, смартфони и интелигентни уреди. Повечето приложения на Android са написани на Java.


Характеристики на Java

Има много функции, но ключовата е принципът на преобразуване на код в специален байт код, който не е обвързан с платформата. Впоследствие този байт код се обработва на JVM. Този фактор отличава Java от други интерпретирани езици като Perl, и т.н. При тях кодът веднага отива при интерпретатора. От друга страна, Java също не е чисто компилиран език (като C-подобните).

Благодарение на необичайната архитектура се постига крос-платформа и преносимост на Java-базирани приложения. Такива продукти могат да се изпълняват на Windows, Linux, Mac OS и дори не изискват повторно компилиране на код. Изпълнението на JVM на всички платформи може да се различава, но принципът и изпълнението остават същите.

Синтаксисът на Java е близък до езиците C; ние много напомняме на и. Ако имате познания по един от C-подобните езици, разбирането на Java няма да е трудно.

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

Java се класифицира като обектно-ориентиран език. Има поддръжка за наследяване, полиморфизъм и други. Този подход помага за създаването на големи проекти, които са лесни за мащабиране, разширяване и редактиране.

Това е сравнително прост език, който може да се научи доста бързо. Благодарение на рамките в него можете да създавате стандартна функционалност за уебсайтове, игри и приложения на компютри и смартфони с няколко команди, без да се забърквате с код на ниско ниво.


Връх