Java obuka. Lekcije Java programiranja. Sticanje početnog iskustva. Freelancing

Navikli smo na brz pristup informacijama i jednako brzo apsorpciju. Više volimo petominutne video zapise nego duboka predavanja i kratke članke od knjiga. Neću tvrditi da će dobra knjiga o programiranju zamijeniti bilo koji članak, to nije tako. I sigurno neće zamijeniti praksu. Međutim, za mene lično, pravo razumijevanje osnova programiranja došlo je nakon što sam, nakon što sam riješio stotine problema na kursu programiranja i pročitao gomilu članaka, počeo istovremeno proučavati teoriju iz knjiga i dobro se udubljivao u njih. Već neko vrijeme tražim svoj lični „najbolji Java tutorial za početnike“. U nastavku donosim nekoliko knjiga koje su mi bile korisne u većoj ili manjoj mjeri u različitim fazama mog studija.

"Za mališane"

Sljedeće dvije knjige možete početi čitati na početku studija, paralelno sa videom, ili, ako učite uz JavaRush, zajedno sa prvim nivoima. Oni su, posebno prvi, pogodni za ljude sa nultom programskom pozadinom.

Head First Java

Počeo sam sa ovom knjigom ne zato što mi je omiljena, već zato što je najjednostavnija. Ova knjiga je, prema mišljenju mnogih programera, najbolji Java tutorijal od nule. Štoviše, zaista je i potpuno "od nule", odnosno pogodan je za one koji tek počinju i još ne razumiju kakva je vrsta programiranja zvijeri. Došla mi je prekasno. Mislim da to zato nisam mogao cijeniti. Bilo je veoma prijatno „samo pročitati“, ali sam morao dugo da tražim nešto konkretno u njemu. Materijal je tamo prikazan slikovito, ali prilično površno (jer je ispočetka!), a mnoge teme i potrebna objašnjenja jednostavno nema. Ali moj prijatelj, kojem je to naslijedio, bio je oduševljen njome i viknuo da ovo nije samo najbolji udžbenik Java za početnike, već pravo svjetsko remek-djelo i tako treba predstaviti složen materijal. Prednosti:
  • Najbolji Java tutorijal od nule, za kompletne lutke, napisan živim jezikom;
  • Cool ilustracije i humor;
  • Objašnjenja sa primjerima iz stvarnog života.
Nedostaci:
  • Puno “vode” za one koji su već ušli u temu;
  • Ne uvijek uspješne zagonetke i vježbe.

Herbert Shildt. Java 8 Vodič za početnike

Nakon što sam pregledao ovaj udžbenik, pomislio sam da bi bio prikladan za one koji vole tradicionalniju prezentaciju materijala nego u Headfirst, a u isto vrijeme traže tutorijal od nule. Ponegdje je prezentacija u knjizi vrlo detaljna, podsjeća na proširenu i prevedenu dokumentaciju s dobrim vizualnim primjerima. Ponekad, što se mene tiče, autor pređe granicu i počne previše da žvaće, čitanje postane dosadno... i odjednom - salto - i neko prilično složeno mesto se promaši skoro trenutno, a vi ste potpuno zbunjeni pokušavajući da shvatite šta i gde promašio si. Međutim, takvih pasusa u knjizi nema previše, a poznajem ljude koji vjeruju da je Vodič za početnike najbolji Java tutorial za one koji još ništa ne znaju. Lično, nije mi bilo baš glatko. Recimo da počnem sortirati kolekcije i umjesto ljudskog objašnjenja, oni mi daju zadatak da samostalno kreiram skup na osnovu nizova. Sjajan problem, ali prvo bih želio bolje razumjeti šta su standardne kolekcije! Iako se ova knjiga, kao i prethodna, smatra udžbenikom za početnike, moje iskustvo kao nastavnika govori da je dobra samo u kombinaciji sa drugim materijalima: studentu humanističkih nauka neće sve biti jednostavno i razumljivo. “Vodič za početnike” je najprikladniji za nekoga ko je barem naučio programiranje (na primjer, na fakultetu), davno ga je odustao, a pritom voli autorov stil izlaganja. Prednosti:
  • Tradicionalno promišljeno predstavljanje osnova;
  • Dobri primjeri.
Nedostaci:
  • Postoje “skokovi” sa “previše sažvakanog” na “brzo rečeno”;
  • Na mjestima pomalo dosadno.
Inače, Herbert Schildt ima još jednu poznatu knjigu o programiranju - “Java 8. Kompletan vodič" Ovo je potpuno drugačiji udžbenik, fundamentalniji. Idemo dalje.

Reference i napredni vodiči

Knjige u ovom dijelu bit će korisne onima koji su se već u potpunosti uključili i traže knjige za bolje razumijevanje teorije i prakse.

Herbert Shildt "Java 8. Potpuni vodič"

Odlučio sam da preuzmem ovu knjigu sa interneta da je procenim, a zatim odlučim da li da je kupim ili ne. Bez šale, 1300 stranica teksta! Pa, cijena nije ništa manje impresivna od količine. Ja sam uradio potpuno istu stvar sa dvotomnom “Profesionalnom bibliotekom” Kay Horstmann (više o tome u nastavku). Gledajući unapred, reći ću da sam izabrao drugu. Zašto? Jer u knjizi „Java. Kompletan vodič“ vidio sam iste nedostatke kao i u „Vodiču za početnike“. Nekad je sažvakana, nekad zgužvana, ali u isto vreme nije samo zgužvana, već nekako verbozno zgužvana. Ovo je vjerovatno autorov stil i mislim da će se nekome svidjeti, odnosno njihov način razmišljanja. Sve u svemu, Java 8: The Definitive Guide je dobra referentna knjiga za Javu. Ali lično mi se više dopalo predstavljanje istih tema u nekoj drugoj knjizi. Prednosti:
  • Kompletan vodič. Čini se da ima sve teme koje početnik, a ne samo početnik, mora znati.
  • Detaljna objašnjenja.
Nedostaci:
  • Puno vode (ali nekima bi se to moglo svidjeti!);
  • Ruski prijevod nije najbolji.

Java. The Professional's Library, Kay S. Horstmann, Gary Cornell

Šildove i Horstmanove knjige često se porede jedna sa drugom. Obojica imaju vjerne fanove. Za mene je Horstmannova dvotomna knjiga najbolji udžbenik o Javi. Takođe je postala referentna knjiga za mene na početnim i srednjim nivoima JavaRusha. Kada nisam razumio neku temu, uglavnom sam se obraćao Horstmannu, a on je razjasnio mnoge stvari. Knjiga pokriva sve od sintakse do višenitnog programiranja, lokalizacije aplikacija i rada sa XML-om. I ne dozvolite da vas naziv "Profesionalna biblioteka" uplaši (to je ono što je mene uplašilo), osnove su prilično dobro pokrivene. Osim toga, korisno je povremeno ga ponovo čitati kako biste osvježili i organizirali svoje znanje. Kažu da i profesionalci u tome pronađu nešto korisno za sebe... Ne znam. Ako postanem profesionalac, reći ću vam! Prednosti:
  • Uz impresivan broj stranica, malo je vode (za razliku od Schildta).
  • Sadrži sve što je potrebno početnicima.
  • Otkriva Java 8.
  • Dobra prezentacija tema o kolekcijama i genericima.
  • Vrlo dobro se slaže sa JavaRush-om. Dođite do teme, riješite probleme, u nekom trenutku nešto ne razumijete - gledajte Horstmanna, pokušajte ponovo.
Nedostaci:
  • Nekima će knjiga biti malo suva;
  • Nema prakse;
  • Ruski prevod sa greškama.

"java" Metode programiranja". Blinov, Romanchik

Jednom sam pročitao na jednom forumu da postoji knjiga pod nazivom “Industrijsko programiranje” i imala je dobrih problema. Ispostavilo se da nisu lagali. Pronašao sam kopiju u PDF-u na bjeloruskoj web stranici EPAM-a. Tamošnja publikacija nije najnovija (na Javi 6), ali je knjiga napisana kao solidan univerzitetski udžbenik, odnosno na mjestima je prezentacija pomalo teška i akademska. ALI! Zaista postoji veoma dobra kolekcija Java programskih problema, kao i test zadataka. Kažu da polaznici EPAM-a uče iz ove knjige, a usvojena je i na mnogim vanmrežnim Java kursevima.

Pristup zadacima tamo je malo drugačiji od JavaRush-a, odnosno u proseku su zadaci ovde malo komplikovaniji i svaki od njih je nešto kao... ne mini, već mikro projekat. Stoga JavaRush preporučujem čak i studentima, jer smatram da je nedostatak praktične strane kursa to što su svi zadaci u njemu već u potpunosti osmišljeni i ima previše savjeta. Recimo, OOP problemi iz ove kolekcije su mi pomogli da dobro shvatim ovaj OOP, zajedno sa knjigama „bezvremenih klasika“ o kojima pišem u nastavku. Knjiga je napisana kao za buduće „veslače“, stoga opisuje Hibernate tehnologije za razvoj distribuiranih sistema, kao i osnove HTML-a, XML-a, JavaScript-a. “Industrijsko programiranje” je, ako ne najbolji Java tutorial, onda vrlo dobar udžbenik. Ali na to morate doći već spremni. Recimo, nakon desetak ili dva nivoa JavaRusha. Kasnije sam otkrio njeno novije i revidirano izdanje, već pod nazivom „Java. Metode programiranja."

Prednosti:
  • Odličan izbor zadataka i testnih zadataka;
  • Postoji zvanična besplatna verzija (vjerujem da je zvanična, jer nije na nekom root trackeru, već na EPAM web stranici);
  • Poređenje sa C++.
  • Prilika da shvatite šta ulazi u EPAM staž.
Nedostaci:
  • Previše fundamentalna prezentacija. Ali za ponavljanje s vježbom bit će prikladno.
  • Nema Java 8.

Bezvremenski klasik

Knjige o kojima pišem u nastavku mogu se nazvati svetim tekstovima za početnike i napredne “javiste”.

Efektivna Java, Joshua Bloch

To je blago, a ne knjiga, i fokusira se na osnovne principe jezika jednog od njenih autora, Joshue Blocha. Najvjerovatnije ste već koristili njegove biblioteke (na primjer, u Java kolekciji). Odmah ću napraviti rezervaciju: potpunim početnicima, osim nekih čudesa-speedrunnera, nije potrebna knjiga Effective Java. Prvo, bolje je savladati sintaksu i steći barem malo prakse u programiranju, da tako kažem, "naviknite se na to", a zatim prihvatite kreaciju Joshue Blocha. Knjiga će biti korisna za one koji žele da istinski razumeju Javu, formiraju pravi pristup pri programiranju na ovom jeziku, razumeju ne samo kako se to radi, već i sve ostalo što treba da se uradi upravo na taj način. I za one koji žele duboko razumjeti OOP (u principu, to su međusobno povezane stvari). Ova knjiga je najbolji udžbenik o Javi u kontekstu objektno orijentisanog pristupa programiranju. Prednosti
  • Sjajna prezentacija materijala na temu OOP-a.
  • Date su najbolje prakse programiranja.
  • Autor jako dobro poznaje Javu iznutra.
Nedostaci
  • Još nema prijevoda najnovijeg izdanja knjige (trećeg).

Java filozofija, Bruce Eckel

Naslov ove knjige govori sam za sebe. Ovo je još jedna “alfa i omega” za sve koji žele da znaju Javu! U ovoj knjizi ćete naći dobre i jasne primjere, a iz njih će biti jasno kako Java funkcionira. Teško mi je reći koja je od dvije knjige - "Filozofija Jave" ili "Efektivno programiranje" - bolja. Rekao bih da je Eckel nešto više prijateljski raspoložen prema početnicima, dok Bloch zahtijeva određeno iskustvo. Prvi put sam pročitao poglavlje iz „Java filozofije“ kada sam tek počinjao da učim JavaRush (mislim da je naveden kao preporučen na jednom od ranih nivoa). Onda mi nije odgovarala. Ali nakon nivoa 10 ili 12 - to je bila pjesma! I, reći ću, veoma korisna pjesma. Vratio sam se na to kasnije, kada sam došao na Efektivno programiranje. Reći ću ovo: neka Bloch i Eckel govore o istoj stvari, ali na različite načine, i daju različite primjere. Prednosti
  • Detaljna prezentacija Java principa od profesionalca;
  • Biće dobro za one koji prelaze sa drugih jezika - ima mnogo poređenja sa C++, na primer.
  • Čini mi se da ga možete početi čitati na nivou 10, ali Eckel - malo kasnije.
Nedostaci
  • Vrlo neuspješni prijevodi na ruski;
  • Nedostatak novog izdanja knjige na ruskom jeziku.

Kratki zaključci

  1. Najbolji Java tutorial od nule za one koji ne znaju ništa - Head First Java;
  2. Najbolji Java referentni udžbenik i referentna knjiga je “Profesionalna biblioteka”. I, naravno, Oracle dokumentacija.
  3. Najbolja zbirka zadataka Java programiranja - JavaRush. Pa, među knjigama - “Java. Metode programiranja".
  4. Najbolji bezvremenski klasici su “Filozofija Jave” i “Efektivna Java”. Ovo je obavezno čitanje za sve koji su odlučili da sve razumiju stvarno, za duboko razumijevanje. Ali bolje ih je čitati postepeno i po redu.
  5. Dodatni zaključak: postoji prilika - čitajte na engleskom. Ruski prijevodi su općenito vrlo slabi.
Engleska verzija ovog posta: najbolje knjige o Javi za početnike na CodeGymu
Vjerovatno će mnogi reći: „mnogo dobrih knjiga je već napisano na Javi, zašto još jedna?“ I za mnoge, najvjerovatnije moja knjiga neće dati ništa novo. Na kraju krajeva, njegov glavni čitalac treba da bude (verovatno) osoba koja uopšte nema iskustva u programiranju. S jedne strane, čini se da je dovoljno uzeti knjigu sa dobrim, najpotpunijim opisom i to je to. Ali u praksi je to daleko od slučaja. Nije dovoljno čitati o nečemu. Glavna stvar je razumjeti kako ga koristiti. Biti u stanju prilagoditi različit skup alata za rješavanje određenog problema. Procijenite koje od postojeće opcije bolje. Kako to postići? Vježbajte. Puno vježbajte analiziranje trivijalnih primjera i samostalno rješavanje sličnih problema. Međutim, praksa, nažalost, nije sve. Pored toga, mora postojati i pravilno odabrana, dozirana teorija. To znači da čitaocu neću svo znanje u potpunosti baciti odjednom. Namjerno ću mnogo pojednostaviti radi boljeg razumijevanja suštine stvari. Nadam se da me profesionalci neće ljuto huliti zbog ovoga. Uostalom, nakon čitanja moje knjige, čitalac će moći da pređe na literaturu koja pruža detaljnije znanje i da je razume sam.


Poglavlje: Uvod (ili priča o programiranju)

Vjerovatno su u našem progresivnom dobu mnogi čuli riječi kao što su "program" i "programiranje". Hajde da shvatimo šta je to, odakle je došlo i u kojim pravcima se sada raspada.
Prvo, počnimo s pojmom "program". Ako jednostavnim riječima, tada je program niz radnji ili instrukcija računaru koje mora izvršiti. Kada pokrenemo program, pokrećemo jednu po jednu sve naredbe ili instrukcije navedene u njemu. Programiranje je, shodno tome, proces kreiranja ili pisanja programa.
Kako kompjuter razumije ili dešifruje komande napisane u programu?
U stvari, program koji računar vidi i program koji osoba vidi na ekranu su veoma različiti, jer su napisani na različitim jezicima. Računarska mašina razumije samo takozvani binarni kod - određene kombinacije jedinica i nula. Žašto je to? Sve je jednostavno ako se okrenemo mehanici procesa. Komande se prenose do računara preko petlji, koje se sastoje od skupa žica (kanala) i takozvane sabirnice podataka. U kanalu postoji električni signal, što znači da je jedinica stigla. Nema signala - nula.
Međutim, ako otvorimo tekst programa koji je napisao programer, on neće izgledati kao neprekidan skup jedinica i nula i može se u potpunosti „pročitati“ i raščlaniti na komande. Kako onda kompjuter razumije programe koje su napisali ljudi? Ali ovdje rade takozvani prevodioci s jednog jezika na drugi. Ovi prevodioci se zovu prevodioci. Prevodioci se mogu podijeliti u dvije vrste: prevodioci i prevodioci. Kompajlatori prevode cijeli program i spremaju ga u posebne izvršne datoteke. Da biste pokrenuli takav program, morate pokrenuti rezultirajuću datoteku. Tumači prevode komande na mreži i odmah ih izvršavaju. Jedna po jedna naredba: prevedena naredba - izvršena, prevedena sljedeća - izvršena, itd.
Broj komandi u binarnom kodu zavisi od nivoa složenosti jezika sa kojeg prevodilac prevodi. Ako je jezik dovoljno blizak binarnom kodu, onda će jedna naredba takvog jezika imati od 1 (sastavljanje) do 10 komandi u binarnom kodu. Takvi jezici uključuju, na primjer, Pascal, C. Za jezike visokog nivoa, kao što su C++ i Java, broj naredbi u binarnom kodu po naredbi jezika visokog nivoa može biti 100 ili više.
S jedne strane, upotreba kompajlera je bolja, jer programi prevedeni u potpunosti na mašinski jezik rade brže. Međutim, ovi programi rade samo na određenom operativnom sistemu za koji su kompajlirani. Prednosti tumača uključuju tzv. cross-platform, odnosno nezavisnost od određenog operativnog sistema (platforme). Šta to znači? Činjenica je da će se za pokretanje istog programa u različitim operativnim sistemima koristiti različiti tumači: u Windowsu jedan tumač, u Linuxu - drugi, u trećem operativnom sistemu - treći, itd. Ali tekst samog programa ostaje nepromijenjen i jasan, gde god da ga otvorimo. Sa kompajliranim programom sve je komplikovanije. Prvo, već je preveden na mašinski jezik i nećemo ga moći pogledati u uobičajenom obliku. Drugo, program je jasno fokusiran na određeno operativni sistem i nemoguće je to promijeniti u kompajliranom programu. Da biste izveli takav trik, potrebno je da uzmete izvorni program, koji je napisan na jeziku razumljivom programeru, izvršite potrebne promjene i kompajlirate ga za drugu platformu (operativni sistem).
U principu, i prevodioci i prevodioci se mogu razviti za bilo koji jezik. Takvi jezici za koje postoje prevodioci i prevodioci, na primjer, uključuju Visual Basic. Međutim, postoji niz jezika za koje postoje samo prevodioci ili tumači. Na primjer, za jezik Pascal postoji mnogo kompajlera, ali nema interpretatora (barem ja nisam čuo za njih). Za VBScript i JavaScript jezike postoje samo prevodioci.
Zasebno, možemo razlikovati programske jezike koji koriste neku kombinaciju principa kompilacije i interpretacije. Java se takođe može smatrati takvim jezikom. Prvo, program napisan u Javi obrađuje kompajler. Međutim, izlaz nije mašinski kod, već neki međukod (pseudo-kod ili bajtkod), koji se zatim interpretira od strane Java virtuelne mašine. Java virtuelna mašina je program koji mora biti instaliran na operativnom sistemu gde će se program, pretvoren u pseudokod, izvoditi.
Kako i gdje se pišu programi?
Razmislimo o tome šta nam je potrebno za kreiranje radnog programa. Prvo, moramo negdje ukucati tekst programa. Što znači da nam trebaju uređivač teksta, u kojem ćemo to učiniti i moći ćemo to sačuvati. Drugo, trebat će vam kompajler ili interpreter. U principu, ovo je potreban minimum. Kako god! Treba napomenuti da dok pišemo programe, mi, kao i svi ljudi, griješimo. Prvo, možemo napraviti grešku u tekstu. Bilo bi zgodno kada bi uređivač teksta mogao vidjeti barem najjednostavnije greške u sintaksi pisanih naredbi i na neki način nas o tome obavijestiti (na primjer, podvlačenjem, kao što Word radi za obične tekstove). Drugo, može doći do logičkih grešaka kada se čini da je sve u tekstu ispravno napisano, ali ništa ne radi kako se očekivalo. U ovom slučaju, bilo bi dobro imati zgodne alate za pronalaženje grešaka dok program radi.
Za praktičnost programera, svi prikladni alati su kombinovani u posebne programe - sisteme za programiranje. Obično imaju poseban uređivač teksta, prevodioce, program za otklanjanje grešaka (za pronalaženje grešaka tokom izvršavanja programa) i mnogo zgodnih alata koji olakšavaju naporan rad programera. Takve „dobrote“ uključuju automatsko generiranje programskih dijelova, praktično pokretanje programa jednim klikom (kada sam programski sistem pokrene željeni prevodilac i rezultirajući izvršni program) i još mnogo, mnogo više.
Obično za jedan jezik ne postoji jedan programski sistem, već nekoliko. Svaki programer, naravno, bira najpogodniji sistem za sebe. Na primjer, za Javu, najčešći programski sistemi su "IntelliJ Idea", "Eclipse", "NetBeans".
Budući da autor preferira prvu od njih, a ostali su vam još uvijek nepoznati, za našu praksu koristit ćemo "IntelliJ Ideu".


Dio 1. Instaliranje potrebnih programa i njihovo postavljanje

Poglavlje: JDK - Java razvojni komplet (Java razvojni komplet)

Počnimo s najvažnijim - instaliranjem seta potrebnih programa za razvoj i izvršavanje programa napisanih na Javi. Na engleskom, naziv ovog skupa je Java Development Kit, ili skraćeno JDK. To je posljednja skraćenica koju ćemo koristiti u budućnosti.
Šta je uključeno u JDK?
JDK uključuje sljedeće komponente:
1) JRE - Java Runtime Environment (Java Runtime Environment)
Skup programa i biblioteka potrebnih za izvršavanje pseudo-koda. U stvari, ovo je Java virtuelna mašina potrebna za pokretanje programa kompajliranih za nju.
Napomena: Ako želite samo da pokrenete kompajlirane Java programe, a ne da ih gradite, nema smisla instalirati JDK. Dovoljno je instalirati samo JRE.
2) kompajleri
3) debuggers
4) specijalizovane biblioteke
5) i drugi razvojni alati
Šta su biblioteke i šta se u njima nalazi?
Programi na jeziku visoki nivo koristite gotove, dokazane fragmente koda za izvođenje različitih standardnih radnji. Takve radnje uključuju: prikazivanje informacija na ekranu, unos podataka sa tastature, izračunavanje standardnih matematičkih funkcija, itd. Takvi fragmenti koda nalaze se u bibliotekama, predstavljeni kao zasebne datoteke.
Gdje mogu dobiti JDK?
Bilo koja verzija JDK-a može se preuzeti potpuno besplatno sa službene Oracle web stranice. Da biste to učinili, prvo unesite sljedeće riječi za pretraživanje u bilo koji internet pretraživač: “JDK preuzimanje”. Prva lokacija na listi je naša.

U znaku sa potrebnom verzijom prvo odaberite opciju „Prihvatam ugovor o licenci“ (u prevodu sa engleskog kao „Slažem se sa ugovorom o licenci“), a zatim kliknite na željeni fajl u ovoj tabeli.
Kao što već znate, Java je višeplatformski programski jezik, odnosno isti program napisan u njemu radi isto na različitim operativnim sistemima. Posljednje svojstvo se postiže zahvaljujući različitim JRE i JDK na različitim operativnim sistemima (platformama).
Naravno, morate preuzeti instalacionu datoteku koja odgovara vašem operativnom sistemu. Na primjer, ako radite na Linuxu, odaberite odgovarajuću datoteku za Linux. Ako je pod Windowsom - datoteka za Windows.
Ako instalirate JDK na 32-bitni operativni sistem, preuzmite datoteku sa oznakom x86. Ako je 64-bitni, označen je kao x64.
Bilješka. Kapacitet sistema u Windows 7 možete saznati na ovaj način: kliknite na "Start", desni klik na "Računar", odaberite "Svojstva". Gledamo vrijednost svojstva "System type".

Na primjer:

Za 64-bitni Windows operativni sistem i JDK 8u101 potreban fajlće imati sljedeće ime:
"jdk-8u101-windows-x64.exe"

Za 32-bitni Windows operativni sistem i JDK 8u101, potrebna datoteka će imati sljedeće ime:
"jdk-8u101-windows-i586.exe"

Kako instalirati i pravilno konfigurirati JDK (za Windows 7)?
Prva faza: Instaliranje JDK-a
Da biste instalirali JDK, potrebno je da pokrenete instalacioni exe fajl sa željenom verzijom JDK-a. Zatim samo trebate slijediti korake instalacije.
Napomena: Više verzija JDK i JRE može se instalirati na isti operativni sistem. Možete napraviti neku vrstu JRE-a kao glavnog (koji će koristiti Java virtuelna mašina) u postavkama operativnog sistema. Možete postaviti određeni JDK za projekat i u operativnom sistemu (biće zajednički za sve projekte) i u programskom sistemu u kojem je ovaj projekat napisan.
Pogledajmo cijeli proces instalacije JDK koristeći primjer instaliranja JDK 8u102 na 64-bitni operativni sistem Windows sistem 7 (morat ćete pokrenuti datoteku jdk-8u102-windows-x64.exe).

1. U prvom prozoru jednostavno kliknite na dugme "Dalje".

2. U drugom prozoru prvo izaberite fasciklu u koju će biti instaliran naš JDK. Da biste to učinili, kliknite gumb "Promijeni..." i odaberite željenu lokaciju na disku.

Napomena: Preporučljivo je držati se jedne zajedničke lokacije za sve mape s različitim verzijama JRE. To jest, struktura dijeljenog foldera bi trebala biti otprilike sljedeća:

Nakon toga kliknite na dugme „Dalje“.

Druga faza: Postavljanje varijabli okruženja
Da bi sistem za programiranje znao koji jdk će po defaultu koristiti za svoje programe i kako bi operativni sistem mogao prepoznati java datoteke, potrebno je konfigurirati sistemske varijable u našem operativnom sistemu.
Da biste to uradili u Windows 7, potrebno je da preduzmete sledeće korake:

1) Idite na sljedeće postavke:
Dugme "Start" --> desnim klikom na "Računar" --> "Svojstva" --> "Napredne postavke okruženja" --> kartica "Napredno" --> "Promenljive okruženja..." dugme

2) Ispod liste “System Variables” kliknite na dugme “Create”.

3) Unesite tražene podatke i kliknite "OK":
Ime varijable JAVA_HOME
Varijabilna vrijednost<путь к папке, куда устанавливалось JDK(не JRE!)>

4) Pronađite varijablu "Putanja" na listi sistemskih varijabli, odaberite je i kliknite na dugme "Promijeni".

5) Idite na kraj polja “Variable Value” (nemojte ništa brisati!!!), dodajte sljedeći dio teksta i kliknite na “OK”:
;%JAVA_HOME%\bin\

6) Kliknite OK za prozor Environment Variables, zatim karticu Advanced, i ponovo pokrenite računar.


Poglavlje: IDE (Integrisano razvojno okruženje) "IntelliJ Idea" - Integrisano razvojno okruženje (programski sistem) "IntelliJ Idea"

"IntelliJ Idea" je jedan od najčešćih programskih sistema za Javu. Pogodan je i ima mnogo alata koji programeru olakšavaju rad. Nesumnjive prednosti uključuju pristupačnost besplatne verzije ovo razvojno okruženje na Internetu.

Bilješka. Termin IDE (integrirano razvojno okruženje) je identičan konceptu „programskog sistema“, ali se u profesionalnom okruženju češće koristi.

Gdje mogu dobiti "IntelliJ Idea"?
Ovaj IDE se može preuzeti sa službene web stranice kompanije JetBrains. Da biste to uradili, prvo morate da ukucate sledeće reči za pretragu u bilo kom pretraživaču na Internetu: “Intellij Idea”. Prva stranica na listi koja se pojavljuje je naša.


U ovom članku pokušaću da predstavim osnove programiranja u Delphiju što jednostavnije i jasnije.

Java za lutke. Lekcija 1. Hello World!

Prvo ću vam reći šta Java može. Prvo, na ovom jeziku možete pisati aplete - programe koji su ugrađeni u web stranicu web stranice. Na primjer, to može biti igra, poslovni grafički sistem i još mnogo toga. Drugo, možete pisati punopravne aplikacije u Javi koje nisu nužno povezane s Webom. Ili možete koristiti servlete - programe koji se, za razliku od apleta, ne izvršavaju na strani klijenta, već na strani servera.

Počnimo sa samim osnovama. Odajmo počast tradiciji i pišimo najjednostavniji program, koji prikazuje pozdrav Zdravo svijete. Ako nemate Java, onda se može preuzeti sa službene web stranice http://www.java.com/ru. Zatim ga instalirajte.

Ako Java ste instalirali, a zatim u nekom uređivaču ukucajte sljedeći tekst:

Javna klasa HelloWorld {

Javna statička void main ( String args ) {

Sistem . van . print ( "Zdravo svijete!" );

}

}

I svakako ga sačuvajte pod imenom Zdravo svijete. java- Ime izvršne klase mora odgovarati imenu datoteke. Za kompajliranje koristite program javac.exe uključeno u standardni paket Java. Ovako bi mogao izgledati batch fajl za kompilaciju ovaj java fajl:

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

pauza

Ako nije bilo grešaka tokom kompilacije:

onda je, najvjerovatnije, kompilacija bila uspješna kod vas u istom direktoriju gdje se nalazio HellowWorld. java Pojavio se i HellowWorld.class:

Sada pokrenimo drugu batch datoteku koja će pozvati Java interpreter zajedno sa našom kompajliranom datotekom:

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

pauza

Ako je sve urađeno ispravno, trebali biste dobiti ovaj rezultat:

Ako ste ga dobili, onda vam mogu čestitati - napisali ste svoj prvi program na Javi. U budućnosti ćemo naučiti kako pisati Java aplete i još mnogo toga. A sada nekoliko riječi o samom programu. Kao što ste primijetili, počinje riječju javnost. Ovo je modifikator koji znači da deklariramo nešto javno dostupno: klasu, metodu klase ili varijablu. Postoje i drugi modifikatori, na primjer: privatno, zaštićeno, prijateljsko, konačno, apstraktno, statično. Neki od njih se mogu međusobno kombinovati. Na primjer, private znači da je varijabla koju želimo deklarirati privatna za druge klase. Ali do modifikatora ćemo doći kasnije. Pogledajmo sada sljedeću ključnu riječ, klasa. To znači da deklarišemo klasu. U Javi je sve bazirano na klasama. Jedna od klasa je nužno osnovna. I osnovna klasa mora biti javna. U ovom primjeru, to je klasa HelloWord. Za sada je on jedini kojeg imamo.

Sada ću pokušati jednostavnim riječima objasniti šta je to Klasa i šta je objekat.

Sjetimo se školskog kursa zoologije. Kako se klasifikuje živi svet? Prvo se uvodi koncept „kraljevstva“.

1. Carstvo jednoćelijskih organizama,

2. biljno carstvo

3. Životinjsko carstvo.

Uzmimo životinje. Mogu se podijeliti po vrsti. Na primjer:

1. Tip coelenterates.

2. Vrsta pljosnatih crva.

3. Vrsta školjke.

4. Tip chordata.

Potonji se dijele na sisare, gmizavce, vodozemce, ptice itd. Možete ići još dalje u klasifikaciju, ali to sada nećemo raditi, već ćemo prijeći direktno na programiranje.

U jeziku Java možete, slično klasifikaciji živog svijeta, klasificirati objekte (dijelove programa i podataka). Ima časove za ovo.

Stop stop! - kažete, - zašto klasifikovati ove objekte?

Zamislite da vi kao neki demijurg (tvorac, bog) stvarate život na Zemlji. Prvo ste razvili najjednostavnija organska jedinjenja. Dakle, eksperimenta radi, šta će se dogoditi. Zatim su ih spojili u složene molekule, od kojih su, poput cigli, sastavili najjednostavnije mikroorganizme. Ali vaš krajnji cilj je stvaranje inteligentnog života. Dakle, niste stali na tome, već ste stvorili višećelijske organizme. Tada su počeli da ih poboljšavaju i razvijaju. Neke vrste su se pokazale održivim, neke su izumrle (dinosauri). I konačno je cilj postignut - pojavio se Homo sapiens - Homo sapiens.

Sada se spustimo na zemlju i zamislimo programiranje kao kreaciju, gdje prisiljavate svoj program da evoluira do određenog stanja kada se može koristiti, a zatim dalje, postepeno povećavajući i poboljšavajući funkcionalnost.

Zamislimo sada da je atom najjednostavnija programska naredba ili jedinica informacija (koje su, vidite, međusobno neodvojive, jer program radi s nečim – tako je, sa informacijom).

Tada je molekul potprogram. Ili objekat.

Tako smo kreirali gomilu objekata u našem programu. Moramo ih nekako klasificirati da se ne bismo zbunili. To je ono za šta Java pruža klase. Koristeći ih, opisujemo klasu objekata (opći koncept, na primjer ptice), a zatim, posjedujući opisanu klasu, možemo kreirati objekt - instancu ove klase. Odnosno, klasa je sama riječ Ptice, a objekt je neka specifična ptica, ako nastavimo našu analogiju.

Nadalje, ptice dolaze u različitim vrstama. Ali svi imaju neke zajedničke karakteristike, naslijeđene iz koncepta "ptica". Slično u Javi, iz klase možete kreirati drugu klasu koja nasljeđuje njena svojstva i metode (karakteristike). To se zove nasleđe.

Različite ptice imaju različite boje perja, oblik kljuna i krila. Isto tako za klase, prilikom kreiranja nove klase, mogu se promijeniti naslijeđene karakteristike. To se zove polimorfizam.

Dakle, shvatili smo osnovne koncepte Jave. Sada idemo kroz program.

Ovako deklarišemo klasu:

javna klasa HelloWorld {

U ovom slučaju u našem programu postoji samo jedna klasa, a to je bazna klasa, odnosno klasa odgovorna za pokretanje programa. Zato njegovo ime mora odgovarati imenu datoteke, tako da interpretator „zna“ odakle da počne izvršavanje programa.

Osnovna klasa (HelloWorld) ima osnovnu metodu: main. Proglasili smo ga javnim i statičnim. Prvi označava da je metoda javna. Da to nije tako, onda naš program jednostavno ne bi započeo. Postoje i metode koje nisu javno dostupne, ali o njima ćemo govoriti u narednim lekcijama.Za sada samo zapamtite da osnovni metod (koji se pokreće kada pokrenemo program) mora biti javni. I njegovo ime bi trebalo da bude glavno tako da tumač zna gde da počne da izvršava program.

E sad šta je statično. Ovo je modifikator koji označava da je metoda statična. Odnosno, radi čak i kada instanca klase (objekta) nije kreirana. Općenito, polja i metode sa statičkim modifikatorom zajednički su za sve objekte klase. O ovome ćemo također razgovarati kasnije.

Svaka metoda može, ali i ne mora imati povratnu vrijednost. Ako jeste, onda je to funkcija. Tip povratne vrijednosti je također uključen u deklaraciju metode. Ako nije, onda ga postavite na void (kao u našem primjeru).

Pristup poljima i metodama objekta se odvija preko tačke. Postoje i ugrađeni objekti, na primjer, System, koje koristimo u našem primjeru:

Sistem . van . print ( "Zdravo svijete!" );

u ovom slučaju pristupamo polju out, koje je takođe objekat namenjen za izlaz podataka, i pozivamo njegovu metodu print, koja prikazuje tekst na ekranu (kao naredba PRINT u dobrom starom BASIC-u).

(C) Šuravin Aleksandar

A izrada web stranica postaje sve popularnija i privlači pažnju ogromnog broja ljudi. Čak i osoba bez posebnog obrazovanja može početi razvijati programe, glavna stvar je želja i želja za učenjem novog materijala i stalna praksa.

Study Options

Gdje početi učiti programiranje od nule Postoji nekoliko načina za savladavanje novog gradiva u ovoj oblasti. Privatni učitelji će vam pokazati kako da počnete učiti programiranje od nule i naučiti vas važnim aspektima koda za izgradnju. Međutim, ova metoda je prilično skupa, pa se uglavnom koriste sljedeće nastavne metode:

  1. Specijalizovani kursevi. Njihov trošak je mnogo manji od lekcija kod ličnog mentora. Vrijedi napomenuti da mnogi poslodavci pozitivno reaguju na dostupnost raznih potvrda o završenoj obuci u kompjuterskim akademijama. Obratite pažnju na kurseve svjetski poznatih kompanija Microsoft i Cisco.
  2. Besplatni kursevi na daljinu. Na internetu postoji veoma veliki broj servisa pomoću kojih možete pogledati kurseve predavanja sa Oxforda, Harvarda i drugih poznatih obrazovnih institucija u svetu. Postoje i posebne platforme za obuku praktičnih vještina programiranja. Više o učenju na daljinu i korisnim internet uslugama pročitajte dalje u članku.
  3. Samoučenje. Gdje početi učiti programiranje od nule ako ne planirate da se upisujete na kurseve i trošite novac? U ovom slučaju, najlakši način je da se obrazujete. Trebali biste početi učiti čitajući osnove, ne ulaziti u teoriju, odmah počnite vježbati, jer ćete tek u procesu kreiranja programa steći potrebne vještine.

Nakon što odaberete opciju obuke koja vam odgovara, trebali biste se odlučiti za predmetnu oblast, jer programiranje ima prilično širok raspon različitih grana.

Kako odabrati pravi smjer?

Direktno ovisi o vrsti softvera koji ćete kreirati u budućnosti:


Ako vam je plata najvažniji faktor, obratite pažnju na tržište rada. Danas su najtraženiji programeri koji su specijalizovani za jezike Java, C#, ASP.NET, C++.

Jezici niskog i visokog nivoa. Razlike i primjene

Vjeruje se da se svi programski jezici dijele na visoke i niske razine. Kod niskog nivoa je lakši za računarsku obradu, ali je potrebno mnogo vremena za pisanje i zahteva više znanja o domenu. Takvi jezici (na primjer, asembler) se koriste za pisanje softvera za digitalne čipove i mikrokontrolere. Nisu baš zgodni za učenje programiranja od nule. Korisni servisi i literatura svjetski poznatih autora dati kasnije u članku će vam reći gdje da počnete pisati svoje prve programe.

Jezici visoke razine su mnogo lakši za korištenje jer koriste ugrađene biblioteke za pojednostavljenje i vizualizaciju koda. Većina modernih softvera napisana je na jezicima visokog nivoa.

Programiranje od nule: gdje započeti aplikacije?

Proces kreiranja mobilnih programa omogućava programerima da rade s najnovijim alatima i, kao rezultat, zarade pristojan iznos novca kroz monetizaciju. Prvo morate odabrati lokaciju na kojoj ćete raditi:

  1. Google Play. Prodavnica aplikacija za korisnike Android operativnog sistema. Ovaj OS ima najveći udio korisnika na tržištu. Java i C/C++ jezici se koriste za razvoj aplikacija i igara. Najpopularnije su messenger aplikacije i klijenti. društvene mreže, pohrana u oblaku, igre.
  2. Windows Mobile prodavnica. Ova prodavnica brzo dobija na popularnosti zajedno sa pametnim telefonima kompanije Microsoft. U zemljama ZND većina korisnika preferira tablete zasnovane na Windows Phone platformi. Programiranje aplikacija za takvu trgovinu pomaže vam da zaradite više novca od monetizacije, jer se, za razliku od Androida, gotovo svi programi u Windows prodavnici distribuiraju na plaćenoj osnovi.
  3. Prodavnica aplikacija. Još jedna isplativa platforma za razvoj (jezik - Objective-C). Proces kreiranja programa za Apple uređaje zahtijeva unaprijed instalirano razvojno okruženje pod nazivom Xcode. Sljedeći korak je naučiti programiranje Objective-C od nule. Knjiga Davida Marka “Učenje C za Mac” će vam reći gdje da počnete pisati kod. Drugo izdanje."

Java jezik

Većina profesionalnih programera preporučuje da svoje znanje programiranja započnete sa jezikom Java. Lako se uči i istovremeno je tražen na tržištu. Koristite savjete u nastavku ako odlučite naučiti programiranje od nule. Odakle početi sa razvojem Jave?

Java je objektno orijentisani programski jezik visokog nivoa koji je potreban za razvoj najsavremenijih web aplikacija i igara. Tokom procesa kompilacije (transformacije pisanog koda u jezik razumljiv uređaju), kod se pretvara u niz bajtova, tako da se program može lako testirati na bilo kojem virtuelna mašina Java.

Programiranje od nule. Odakle početi sa Java i Web kodiranjem?

Java jezik se široko koristi u web razvoju. Prije nego što započnete punopravni proces programiranja, trebali biste naučiti Java, PHP, MySQL, HTML, CSS. Detaljnije objašnjenje ovih koncepata je dato u nastavku:

  1. Java - koristi se za pisanje uslužnih programa za web stranice i pisanje logike funkcionalnosti web stranice.
  2. PHP je jezik za kreiranje ličnih web stranica. Ima strukturu skripte. Vodeći jezik u kreiranju dinamičnih web stranica koje su danas popularne. PHP je potreban za razumijevanje skriptiranja i programiranja od nule. Gdje početi? Od čitanja knjige Josha Lockhata "PHP: The Right Way".
  3. MySQL je sistem za upravljanje osnovama podataka. Široko se koristi u kreiranju web stranica koje zahtijevaju pohranjivanje velike količine grupisanih podataka.
  4. HTML nije programski jezik. Ovo je jezik za označavanje koji se koristi za pisanje osnove web stranice (građevinski blokovi, distribucija teksta i pasusa, itd.).
  5. CSS - Kaskadni stilski list. Koristi se samo u kombinaciji sa HTML-om da bi se jezik za označavanje dao stil i izgled.

Samo učenjem osnovnih koncepata o prekretnicama ovih tehnologija možete početi kreirati profesionalne dinamičke web stranice koje su danas veoma tražene.

Web programiranje. Relevantnost i karakteristike

Tema Web programiranja danas je posebno aktuelna. Kao što je gore navedeno, da biste započeli razvoj web elemenata morate imati prilično veliku količinu znanja o jezicima za označavanje, kreiranju skripti, logici i stilovima.

Danas nećete nikoga iznenaditi stranicama koje se kreiraju samo pomoću HTML-a i CSS-a, pa su web programeri koji su u stanju učiniti web stranicu vizualno lijepom, kao i ispuniti je svim funkcionalnostima potrebnim korisnicima, postali traženi.

Ovaj tip razvoja zahtijeva kreiranje dva tipa istog programa: serverskog i klijentskog dijela. Programer mora razumjeti princip rada takozvanih soketa - paketa podataka koji omogućavaju da se potrebni tokovi informacija prenose preko mreže između servera i klijenta.

Kreiranje aplikacija za Windows operativni sistem

Za razvoj takvih programa trebat će vam znanje C# jezika. Besplatna Microsoftova usluga pod nazivom Virtual Academy omogućit će vam da naučite sve karakteristike ovog jezika i vježbate pisanje jednostavnih aplikacija.

Prema Microsoftovoj novoj politici, sve aplikacije se postavljaju u prodavnicu softvera, tako da možete dobiti pristup za unovčavanje svog projekta.

C porodica jezika (C, C++, C#). Posebnosti

Programiranje od nule - odakle početi birati jezik? Odgovor na ovo pitanje može se dobiti detaljnijim uvidom u vrste tehnologija kreiranja aplikacija. Relevantnost određenog jezika takođe treba uzeti u obzir.

Jezici C, C++, C# imaju jednu zajedničku stvar - prisustvo OOP (objektno orijentirano programiranje) funkcija. Ova tehnologija vam omogućava da značajno pojednostavite proces pisanja programskog koda. Svaki softverski objekat je opisan u određenoj klasi i ima svoje parametre, metode i svojstva. Dakle, programer ne mora svaki put pisati ogromne komade koda ako isti objekat treba koristiti nekoliko puta.

Korisni internet servisi za učenje osnovnih principa programiranja i strukture koda bilo koje aplikacije

U prvoj fazi obuke, gotovo svaki web servis će vam ponuditi da isprobate njegove mogućnosti koristeći Pascal, najjednostavniji od jezika visokog nivoa. Koristi se u obrazovne svrhe i predaje se u školama i tehničkim fakultetima kako bi učenici mogli razumjeti programiranje od nule. Odakle početi s Pascal kodiranjem? Prije svega, morate preuzeti razvojno okruženje na svoj PC. Ovo je mala izvršna datoteka u koju će biti napisan programski kod. Koristite TurboPascal, jer je to najpopularnije okruženje za učenje ovog programskog jezika.

HourOfCode je Microsoftov web servis. Svrha mu je da jasno pokaže učenicima šta su ciklus, varijabla, klasa i uslovi. Proces učenja je poput igre.

CodeAcademy je moćan resurs za učenje gotovo svake tehnologije kodiranja. Ako posvetite samo sat vremena dnevno, nećete ni primijetiti kako ćete naučiti programirati i kreirati vlastite projekte.

Udacity je servis koji svojim korisnicima omogućava besplatan pristup predavanjima poznatih profesora i programera.

Sticanje početnog iskustva. Freelancing

Nakon što naučite osnovne principe odabranog jezika, možete bezbedno započeti svoje prve projekte. Počnite da se bavite slobodnim zanimanjem, jer ćete tako popuniti svoj portfolio i steći iskustvo u komunikaciji sa kupcima. Takve vještine će vam biti korisne u budućnosti ako želite da se zaposlite u nekoj kompaniji kao službeni programer softvera.

Zaključak

Programiranje od nule: odakle početi? Za lutke, profesori sa svjetski poznatih univerziteta savjetuju vježbanje s osnovnim strukturama koje čine osnovu bilo kojeg programskog jezika. Upišite se na specijalizirane kurseve ili samostalno učite slušajući online predavanja.

Java je od danas najpoznatiji i najpopularniji među svim programskim jezicima. Počeo je da postoji 1996. godine, a prvobitno ga je razvio Sun Microsystems. Vremenom ga je apsorbovala korporacija Oracle. Programeri su planirali da Javu učine univerzalnim jezikom primjenjivim na gotovo sve zadatke.

Tokom protekle 23 godine, Java se proširila i značajno poboljšala. Trenutna verzija danas je Java 11, objavljena u septembru prošle godine. Tokom ovog vremena, Java je postala više od jezika opšte namene. Može se nazvati punopravnom platformom koja ima svoj vlastiti ekosistem. Danas se jezik zaista može koristiti za bilo šta: od kreiranja malih programa do kolosalnih internet portala. Često se koristi za razvoj softvera za sve poznate računare, pametne telefone i pametne uređaje. Većina aplikacija na Androidu napisana je na Javi.


Java karakteristike

Ima mnogo funkcija, ali ključna je princip prevođenja koda u poseban bytecode, koji nije vezan za platformu. Nakon toga, ovaj bajt kod se obrađuje na JVM-u. Ovaj faktor razlikuje Javu od drugih interpretiranih jezika poput Perl, itd. Kod njih kod odmah ide do interpretatora. S druge strane, Java takođe nije čisto kompajlirani jezik (kao oni koji su slični C).

Zbog neuobičajene arhitekture postignuta je cross-platforma i prenosivost aplikacija baziranih na Javi. Takvi proizvodi se mogu pokrenuti na Windows, Linux, Mac OS i ne zahtijevaju čak ni rekompilaciju koda. Implementacija JVM-a na svim platformama može se razlikovati, ali princip i izvođenje ostaju isti.

Javina sintaksa je bliska C jezicima; mi veoma podsećamo na i. Ako imate znanje jednog od jezika sličnih C, razumijevanje Jave neće biti teško.

Sljedeća važna karakteristika jezika- automatski prikuplja svo smeće i uklanja ga iz memorije. U praksi to znači da Java uklanja nekorištene i zastarjele objekte iz memorije bez dodatnih naredbi. Na drugim jezicima to se mora uraditi ručno, periodično pisanjem odgovarajućih komandi.

Java je klasifikovana kao objektno orijentisani jezik. Postoji podrška za nasljeđivanje, polimorfizam i još mnogo toga. Ovaj pristup pomaže u stvaranju velikih projekata koje je lako skalirati, proširiti i urediti.

To je relativno jednostavan jezik koji se može naučiti prilično brzo. Zahvaljujući okvirima na njemu, možete kreirati standardnu ​​funkcionalnost za web stranice, igre i aplikacije na PC-u i pametnim telefonima u nekoliko naredbi, bez petljanja sa niskim kodom.


Top