Dauguma čia besilankančių tikriausiai norėtų pradėti mokytis kurti internetinius puslapius (o ypač tokius kietus kaip maze.lt), bet visiškai nenutuokia nuo ko reikėtų pradėti. Pabandysiu kaip galima aiškiau paaiškinti viską, ko reikia norint sukurti savo internetinį puslapį, kokias technologijas galima rinktis ir kaip viskas susiriša tarpusavyje.
Čia nebus pamoka kaip reikia programuoti, bet labiau pažvelgsime į tai, KAIP reikia sutramdyti internetinių puslapių monstrą ir KOKIUS įrankius tam naudoti. Jeigu tiesiog norite pereiti prie mokymosi resursų, apačioje yra pateikta keletas gerų puslapių, kur galite išmokti visų čia minimų dalykų.
Kaip, kas ir su kuo valgoma?
Internetinis puslapis susideda iš trijų pagrindinių elementų. Juos visus ir aptarsim.
Į internetinį puslapį reikia žiūrėti kaip į informacijos (teksto ir paveikslėlių) rinkinį. Įsivaizduokite, kad turite Word dokumentą, kuris yra parašytas juoda ant balto. Lygiai taip pat atrodo ir nesuformatuoti internetiniai puslapiai be visiškai jokių stiliaus elementų.
Puslapio formatavimui yra naudojama keletas kalbų, bet kaip reikia puslapį padaryti ne tik grąžų bet ir veiksmingą? Kaip padaryti, kad jūsų turimas tekstas keistųsi priklausomai nuo to, kas tą puslapį peržiūri? Prie puslapio veikimo patarčiau pereiti tik tada, kai jau esate užtriktinti savo turinio formatavimo gebėjimais.
Puslapio Veidas (Front-End)
Puslapio veidas yra tai, kaip atrodo jūsų suformatuotas teksto lapas. Dar kitaip šis puslapio formatavimo "mokslas" vadinasi front-end, tai jeigu būsite įvaldę sekančius du dalykus, galėsit žmonėms sakyti, kad dirbate ties front-end ir esat labai patyrę ;)
Front-end susideda iš dviejų pagrindinių dalykų (kartais trijų, bet šį kartą praleisim tą trečią dalį ir per daug savęs neapsunkinsim informacijos kiekiu). Puslapio formatavimo duona ir sviestas yra HTML ir CSS, apie kuriuos ir kalbėsim dabar.
HTML
Norint suformatuoti savo dokumentą (pakeisti teksto vietą, išdalinti tekstą į paragrafus ar atskirus teksto blokus su paveikslėliais) naudojama HTML (HyperText Markup Language) kalba. HTML nėra programavimo kalba, ji yra kalba skirta teksto formatavimui (panašiai kaip Markdown ar bbcode kitose forumo platformose). HTML naudojame pažymėti skirtingoms teksto dalims, paragrafams, įterpti paveikslėliams ar nuorodoms.
HTML nėra raketų mokslas. Tereikia apie viską galvoti kaip statymą iš LEGO kaladėlių (nes HTML viskas yra kvadratukais). Tiesiog kuriate tekstą, kurį apsupate įvairiais blokais ir kraunate viską vienas ant kito. Kaip tie kvadratukai atrodo padės geriau įsivaizduoti šis puslapio planas.
CSS
CSS (Cascading StyleSheets) yra atskira kalba (taip pat ne programavimo), kuri yra naudojama pakeisti jūsų teksto ir teksto blokų išvaizdai. Parašius savo HTML kodą dažniausiai yra prisegamas papildomas (kartais ir net ne vienas) CSS failas, kuris suteikia tekstui formatą. CSS tiesiog pasako jūsų naršyklei kaip turi atrodyti tekstas ir teksto blokai. Tai darote CSS faile pasakydami kurį teksto bloką norite keisti ir tiesiog parašydami jam stiliaus taisykles. Išvertus CSS kodą į lietuvių kalbą, CSS skambėtų šitaip: Noriu, kad visuose paragrafuose: teksto dydis būtų 16 pikselių, teksto spalva būtų raudona, pats paragrafas būtų juodos spalvos.
Jei vis dar sunku įsivaizduoti kas yra CSS, tai pažiūrėkite kaip atrodo maze.lt be CSS. Be CSS maze.lt turi tik daug teksto, kuris HTML pagalba yra išlaužomas į naujas eilutes ir keletą paveikslėlių.
Puslapio Logika (Back-End)
Puslapio logika yra mano asmeniškai mėgstamiausia dalis. Puslapio logika kitaip dar yra vadinama ir back-end. Dabar mes jau žinome su kuo reikia tekstą formatuoti (HTML) ir su kuo jam uždėti tinkamą išvaizdą (CSS) ir galime pereiti prie to, kaip reikia tekstą keisti, priklausomai nuo tam tikrų sąlygų (ar vartotojas prisijungęs, ar turi reikiamą kiekį taškų, ar kažkur pakomentavo).
Norint apdoriti jau turima tekstą ir juo manipuliuoti mums reikės pasirinkti tikrą programavimo kalbą (tikresnę nei HTML ir CSS). Labai madinga yra galvoti, kad PHP yra vienintelė kalba su kuria galima sukurti funkcionuojantį puslapį. Deja, toli grąžu taip nėra. Jeigu jau mokat kažkokią programavimo kalbą, tai šansai yra, kad su ja galite padaryti savo internetinį puslapį.
Trupmai perbėgsiu per visas madingas programavimo kalbas naudojamas web programavime:
Ruby
Ruby yra labai populiari objektinė (OOP) kalba, kur VISKAS yra objektas (jeigu nežinot kas tai yra, per daug nesukit sau dėl to galvos). Ruby yra labai greita ir turi labai patogų framework'ą (skeletą/karkasą), kurį pramokus bus galima beprotiškai greit kurti sudėtingus internetinius puslapius (net sudėtingesnius nei maze :exclamation: ).
Keletas puslapių naudojančių Ruby:
- WeHeartIt
- GitHub
- Twitch
- Ask.fm
- ThemeForest
Python
Python yra labai tvarkinga ir draugiška programavimo kalba pradžiamoksliams. Viena iš labiausiai rekomenduojamų kalbų pradinukams dėl lengvo skaitymo ir programavimo principų perpratimo. Be to, Python yra pakankamai greita ir populiari kalba dideliems projektams.
Python taip pat turi Django framework'ą (skeletą/karkasą), kuris pagreitina darbą kuriant internetines svetaines. Ypač tinka, jeigu norite sukurti kažką, kas naudoja daug realaus laiko duomenų.
Keletas puslapių naudojančių Python:
JavaScript
JavaScript neperseniausiai įgavo labai didelį pagreitį puslapio logikos (back-end) programavime. Atsirado daug įvairiausių bibliotekų ir įrankių, kurie savo greičiu pralenkia net ir pačias greičiausias programavimo kalbas. JavaScript taip pat yra pakankamai nesudėtinga kalba, tačiau turi labai daug blogybių, kurios gali priversti pasukti galvą, ypač jei turite kokių nors kitų kalbų programavimo žinių.
JavaScript turi įvairių framework'ų ir įrankių, tokių kaip Node.js ir Express.js, kurie leidžia greit ir be daug vargo sukurti greit veikiančias internetines svetaines.
Keletas puslapių naudojančių JavaScript (Node ir Express):
- Netflix
- PayPal
- eBay
- Yahoo
- Microsoft
PHP
Kalba, kuri tikriausiai yra žinomiausia kiekvienam bent kiek turėjusiam reikalų su internetiniais puslapiais. PHP prasidėjo kaip kažkas panašaus į HTML alternatyvą ir palaipsniui tavo pilnaverte programavimo kalba.
PHP turi NEprogramavimo kalbos šaknis ir tai labai atsiliepia pačiai kalbai ir jos greičiui. Tačiau iš visų kalbų su PHP tikriausiai lengviausia yra kažką paleisti greit ir be labai didelio vargo. PHP puikiai tinka nedideliems puslapiams, laikraščiams, žurnalams, blog'ams ir forumams.
Vienas didžiausių puslapių pasaulyje, Facebook, yra sukurtas naudojant PHP. Didžioji dalis Facebook kodo vis dar yra PHP, bet jie naudoja ir begalybę kitų programavimo kalbų savo puslapyje. Be Facebook, PHP yra atsakinga už ~80% (statistika išgalvota, bet skaičius tikrai nemažas) internetinių puslapių. Į šitą išgavlotą statistiką taip pat įeina ir Wikipedia.
PHP taip pat turi ir daug framework'ų, kurie programavimą su PHP labai stipriai palengvina; Laravel, Symfony, Phalcon, CodeIgniter, CakePHP.
Java
Java yra dar viena nebloga kalba pradinukams. Ją moka mūsų numylėtasis Bebras. Labai galinga ir lengvai išmokstama, tačiau beprotiškai sunku iki galo ją įvaldyti.
Java dažniausiai naudojama didelių korporacijų puslapiuose, vien dėl to, kad yra labai stabili, greita ir laiko patikrinta. Norinčius dirbti su rimtais internetiniais projektais raginčiau mokytis šią kalbą.
Be to, Java kalbai gausi framework'ų, tokių kaip Grails, Play ar Spring MVC.
Keletas puslapių naudojančių Java:
- Maze (šiek tiek)
- Amazon
- eBay
C (sharp)
C# yra kalba sufokusuota į Microsoft Windows platformą ir neperseniausiai perėjus į platesnius vandenis. Labai lengva ir galinga kalba su begale įvairiausių bibliotekų. Be to, C# yra pakankamai atlaidi klaidoms ir turi vieną iš geriausių programavimo įrankių (IDE) Visual Studio (nemėgstu Microsoft, bet Visual Studio TIKRAI geras dalykas).
C#, kaip ir Java, dažniausiai renkasi korporacijos, kurios nori stabilumo ir greičio. Be to, Microsoft turėjimas užnugaryje, ypač ištikus bėdai, visada vilioja.
Keletas puslapių naudojančių C#:
- Bing
- MSN
- MySpace
C++
C++ nesirinkčiau ir niekam kitam nepatarčiau rinktis kaip pačios pirmos programavimo kalbos. Bet jeigu jau mokat C++ gana neblogai, tai kodėl gi nepabandžius ir padaryti internetinio puslapio?
Pagrindinis C++ privalumas yra didelis greitis. Visi skaičiavimai, užklausos ir duomenų apdorojimai yra atliekami labai greit. Tačiau kalbos sudėtingumas šiek tiek sumažina paties programavimo greitį ir užtikrintumą.
C++ puslapius pataržiau programuoti tik naudojant framework'ą ir per daug nesistengti išrasti dviračio.
Keletas puslapių naudojančių C++:
Scala
Pakankamai jauna programavimo kalba lyginant su tokiais gigantais kaip Java, PHP, Ruby ar C#. Iš pirmo žvilgsnio kiek primena Java ar C# savo sintakse. Scala bendruomenė yra pakankamai didelė, bet ne tiek didelė kiek kitų kalbų, todėl nepatyrusiems programuotojams gali būti sudėtinga rasti sprendimus kiek elementaresnėms problemoms.
Scala taip pat turi ir internetiniams puslapiams skirtą framework'ą pavadinimu Play (šis framework'as yra tiek Java tiek Scala kalbomis).
Kurią programavimo kalbą man pasirinkti?
Jūsų back-end (puslapio logikos) kalba neturės visiškai jokios įtakos tam, kaip jūsų puslapis atrodo. Rinkitės tai, kas jums atrodo suprantamiausia, lengviausia ir priimtiniausia.
Viskas, ką daro puslapio logika, tai pagal tam tikrus kriterijus nusprendžia kokį tekstą vartotojui parodyti arba kaip tą tekstą suformatuoti. Pavyzdžiui, jei vartotojas prisijungęs - parašyti "Sveiki!", jei neprisijungęs - parašyti "Turite prisijungti!". Po to, šitam programavimo kalbos pagalba sugeneruotam tekstui bus užkabinamas atitinkamas formatavimas (HTML) ir stilius (CSS).
Apibendrinimas
Taigi, dabar jau turėtumėte suprasti kaip, ko ir kokiais kiekiais jums reikia.
Jeigu kažkam vis dar kyla neaiškumų - trumpai drūtai:
- HTML naudojama formatuoti tekstą ir įterpti paveikslėlius.
- CSS naudojama uždėti tekstui spalvą, pakeisti foną, šriftą, uždėti teksto blokams ar paveikslėliams rėmelius.
- Puslapio Logika (programavimo kalba) naudojama "sugalvoti" kokį tekstą norite parodyti į jūsų puslapį atėjusiam lankytojui ir užkabinti tam tekstui atitinkamą HTML formatavimą.
Programavimo kalbą rinkitės pagal tai, ko norite patys ir kas jums atrodo lengva. Pirmiausia nuspręskite kokio tipo puslapio norite, o tada nerkite į programavimo kalbų gelmes. Aš asmeniškai patarčiau mokytis Python, JavaScript arba PHP.
Kur visko mokytis?
codecademy turi nemokamus, labai gerus ir ganėtinai trumpus "kursus" įvairioms programavimo kalboms. Į kurias įeina:
- HTML ir CSS
- PHP
- Python
- Ruby
- JavaScript
LearnX turi labai daug pamokų įvairioms programavimo kalboms:
- Java
- Python
- C#
- JavaScript
- PHP
KhanAcademy turi labai gerą kursą HTML ir CSS kalboms. Taip pat ten galima ir sukurti nedidelius mini puslapiukus naudojant tik HTML ir CSS, kas yra labai gerai praktikai, nes matysite kaip viskas keičiasi realiu laiku.
KhanAcademy taip pat turi ir JavaScript (JS) programėlių kursą, kurį patarčiau peržvelgti visiems norintiems išmokti kurti JS programėles.
Try Ruby yra gana geras puslapis greitam šokimui prie Ruby mokymosi. Parašykite į komandinę eilutę, esančią tame puslapyje, "help" ir jus perves per 15 minučių gidą apie tai kas yra Ruby ir kaip programuoti naudojant šią kalbą. Taip pat gausite ir įvairių užduotėlių, kurios padės geriau įsisavinti žinias.
Klausimai/Atsakymai/Pageidavimai
Labai laukiu klausimų ir pageidavimų. Jeigu jaučiatės, kad turite kvailą klausimą, vis tiek klauskit! Kvailų klausimų gi nebūna ;)
Justicious prieš 9 metus
Sveikas, @Edvinas . Esu pradedantysis HTML/CSS srityje bet paženges PASCAL. Ir norėčiau daugiau sužinoti daugiau apie HTML kodavima. Gal galėtum įkelti daugiau pamokų apie HTML svetainių dizaino kodavimo? Būčiau labai dekingas ir skoloje nelikčiau ;)
SkepticalHippo prieš 9 metus
@Justicious kaip tik planavau kai laisvesnio laiko atsiras sukurti pamoką kaip iš .PSD failo paversti viską į HTML ir CSS. Manau sekanti didelė tema iš mano pusės tokia ir bus :)
r4imis prieš 9 metus
Labai įdomiai skaitėsi, viską perskaičiau ir beskaitant taip sukilo noras kažką sukurti, bet deja tam dar nėra žinių :)
Edit: Be java, kokias dar kalbas naudoja maze.lt? :)
Barzdocius prieš 9 metus
Sudominai, bet žinau, kad atsidaręs kokią pamoką greit tas susidomėjimas dings kai išvysiu krūva heroglifų :D Ne man programavimas.
Būtų visai ir man įdomu sužinot kokias kalbas maze.lt dar naudoja be java?
KenBrown prieš 9 metus
@Barzdocius kodėl manai , kad programavimas ne tau ? Niekas negimė mokėdamas , ir visiem kažkada tai buvo heroglifai. Atsimenu dabar , kai pats pradėjau mokytis programavimo ir kai zyzdavau Edvinui dėl kiekvienos nesąmonės , amžinau kartodavau , jog tai ne man , bet galiausiai persilaužiau . Galų gale jei tikrai tave tai traukia ir tau tai įdomu - pirmyn !
SkepticalHippo prieš 9 metus
@Barzdocius PHP labai mažai hieroglifų turi. Apskritai, gerą kodą galima labai lengvai išversti į tvarkingą anglų kalbos sakinį. Pavyzdys:
if(User::loggedIn())
{
print("Sveikas!")
}
Išsiverstų į "if the user is logged in, then print out 'Sveikas'". Svarbu yra kodo tvarkingumas programuojant.
Codecademy taip pat patarčiau išbandyt. Ten labai palaipsniui įveda tave į visus programavimo subtilumus, o jei kas bus neaišku, visada gali klausti maze ;)
Maze naudoja PHP, Java, HTML, CSS ir JavaScript kalbas su tam tikromis papildomomis bibliotekomis ir duomenų bazėmis (naudojam kelias duomenų bazių platformas dėl greičio). Planuose yra panaudoti JavaScript arba Java ir plačiau, negu dabar.
Edit: prisiminiau šitą paveikslėlį apie CSS
Gedriau prieš 9 metus
Situacija: turi ribotą laiką sukurti nedidelį projektą, bet beveik neturi jokių programavimo skillų (tik minimaliai c++ pagrindus). Python vs Ruby? Ką pasirinktum tu ir kodėl? :)
SkepticalHippo prieš 9 metus
@Gedriau Labai priklauso nuo to, koks projekto tipas ir ko būtent reikės. Tiek Ruby tiek Python turi begalybę bibliotekų. Tavo vietoj, apsižiūrėčiau, kuri kalba turi geresnius įrankius ir kuriuos būtų tau greičiau išmokti. Pabandyk tiek su viena tiek su kita kalba paleisti minimalų "Hello World" puslapį. Su kuria gausis greičiau, tą ir rinkis.
Edit: Prie to paties. Ruby turi labai minimalistinį framework'ą Sinatra, kuris labai greit leidžia paleisti svetainę.
Barzdocius prieš 9 metus
@KenBrown matai tas ir yra, kad mokykloje jau antri metai C++ moko, bet aš iki šiol neparašyčiau pačio paprasčiausio sakinio :D C++ buvo pirma ir paskutinė manau :D
@Edvinas na kaip ir sakiau C++ jau teko susidurt tai atmušė visus norus nuo programavimo tai nemanau, kad tavo tas PHP mane bent kiek gelbėtų :D Tiesiog yra žmonių, kurie tam gabūs ir kurie ne, tai aš būčiau prie tų negabių :D
SkepticalHippo prieš 9 metus
@Barzdocius C++ yra viena iš sudėtingiausių kalbų, kurią gali mokytis pradžiamokslis. Net neįsivaizduoju kodėl mokykloje moko tą bjaurastį. C++ gazdina net ir pakankamai patyrusius programuotojus ir dauguma C++ apeina iš tolo vien dėl to, kad nors ir galinga, tačiau nelabai miela kalba.
Ruby, Python, PHP yra LABAI skirtingos nuo C++.
KenBrown prieš 9 metus
@Barzdocius mane ir mokina antrus metus tą c++ , bet nei kiek ji man nelimpa lygiai taip pat kaip tau, kaip ir sakė Edvinas C++ labai skyriasi nuo PHP ar dar kokios kitos kalbos
Barzdocius prieš 9 metus
edviu prieš 1 metus
šaunuoliai, kad padedate. labai gerai tie puslapiai, internetinėje parduotuvėje žymiai lengviau pirkti palyginus kainas ir t.t. nei stovėt prie lentynų fizinėse pardėse..