Archívy kategórie: programovanie

Workshop – základy programovania

Úvod

Nedávno som dostal nápad – čo tak naučiť pár ľudí programovať? A začal som robiť online kurz programovania. Ako sa však ukázalo, drvivá väčšina ľudí, ktorí sa zapojili do tohto kurzu boli ľudia, ktorí už majú s programovaním skúsenosti. Domáce úlohy boli pre nich hračka. A tí, čo majú tajnú túžbu naučiť sa programovať si samozrejme nenájdu čas, alebo chuť robiť domáce úlohy, pretože sa im to asi zdá byť ťažké.

Jeden večer som sa nachádzal v mojom obľúbenom bare a prišiel za mnou kamarát so slovami “Nauč ma programovať”. Chcel som mu poslať svôj online kurz, ale uvedomil som si, že takíto ľudia sa nedonútia niečo sami naučiť. Bombardovať ľudí e-mailami prečo nerobia domáce úlohy ma nebaví. Na druhý deň ráno v mojej hlave vznikla myšlienka “Čo takto usporiadať workshop programovania?”.

Čo to je?

Za cca 2-4 hodiny sa naučíte základy programovania, zistíte či vás to baví a či sa chcete programovaniu ďalej venovať.

Pre koho to je?

Pre všetkých, ktorí chcú preniknúť do tajov programovania. Som toho názoru, že programovať sa naučí každý. No možno sa v tomto workshope presvedčím, že to nie je pravda :)

Pre koho to nie je?

Pre tých, ktorí majú s programovaním už skúsenosti. Na Workshope sa budú preberať naozaj iba základy.

Koľko to stojí?

Čo sa týka peňazí, tak nič. Investujete do toho “iba” čas (2-4 hodiny). Workshop je naozaj zdarma.

Prečo robím tento workshop?

Veľa ľudí nevie, čo si má pod pojmom “programovanie” predstaviť. Veľa ľudí vraví “programovanie nie je pre mňa” aj keď programovať nikdy neskúsili. Mojim cieľom je odhaliť mystériu programovania bežným smrteľníkom a prebudiť v nich lásku alebo nenávisť k programovaniu.

Programátorov je na celom svete nedostatok. Ľudia žijú z biednej výplaty, no keby sa naučili programovať, môžu zarábať oveľa viac. Takisto je to skvelá možnosť pre nezamestnaných. Viete ako som sa ja dostal k programovaniu? Bol som nezamestnaný a pretože som nechcel robiť za minimálnu mzdu, začal som sa učiť programovať.

Čo budeš potrebovať?

Hlavu s mozgom na rozmýšľanie, notebook na programovanie.

Kedy a kde to vypukne?

Termíny kurzu a prihlasovanie nájdete na stránke mojich kurzov: http://kurzy.hromnik.com/zaklady-programovania

Workshopu sa môže zúčastniť 8 – 10 ľudí.

Je možné, že pre veľký záujem bude workshopov viac. Ak máš záujem o workshop, prihlás sa do newslettera “Budúci programátori” a pošlem ti bližšie info hneď ako bude dostupné. Prihlásiť sa môžeš na tejdo adrese: http://hromnik.us8.list-manage.com/subscribe?u=278d7ef7b31184a530eaff0b2&id=a2cae41622

Prípadné otázky posielajte cez správy na Facebooku alebo na mail tomas@hromnik.com

Prihlásiť sa k odberu noviniek o programovaní

* povinné pole



Chcem dostávať novinky o:


 

Prečo JavaScript? Aneb JavaScript nie je Java

Koncom roku 2008 sa JavaScriptu smiali, že “Java and Javascript are similar like Car and Carpet are similar.” (Java a JavaScript sú podobné ako auto a koberec). Teda Java mala byť auto a JavaScript koberec. V roku 2008 to aj tak bolo. Java bola vyspelejšia, JavaScript bol iba skriptovací jazyk, v ktorom sa dali robiť rózne fígle pre webové stránky v prehliadačoch. JavaScript bolo možné použiť iba vo webovom prehliadači. Javu bolo a je možné použiť pre desktopové aplikácie, webové aplikácie (na strane servera) a Android aplikácie.

V roku 2009 vznikla platforma Node.js, ktorá umožnila použitie JavaScriptu na strane webového servera. Webová stránka má 2 časti – serverovú a klientskú (prehliadač) časť. Zrazu vďaka Node.js bolo možné použiť JavaScript v oboch častiach, čo prináša nesmiernu výhodu pre programátorov – nemusia rozmýšľať vo viacerých serverových jazykoch ako PHP, Java, Python, Ruby,… ale stačí im JavaScript na strane servera aj na strane klienta. Osobne som programoval weby v PHP na serveri a potom som mal niečo spraviť na klientovi v JavaScripte. Keďže PHP a JavaScript majú trochu odlišnú syntax, zrazu som bol z JavaScriptu debil. Nevedel som takmer napísať ani čiarku JavaScriptu bez googlenia. A potom som objavil server-side Javascirpt – Node.js. Nádhera. Bol som milo prekvapený, že také niečo existuje a nebol som sám. Mnoho ľudí prešlo z klasických server-side jazykov na Node.js možno aj práve kvoli tomu, že bolo možné písať server a klienta v jednom jazyku ale hlavne preto, že Node.js je výkonnejšie.

Mobilné aplikáce v JavaScripte

Áno, v JavaScripte, HTML a CSS sa dajú spraviť aj mobilné aplikácie napríklad pomocou Phonegap a Ionic. Obrovskou výhodou je, že robíte klasickú webovú aplikáciu v JavaScripte, HTML a CSS, ktorú potom môžete rovno preportovať pre rôzne mobilné operačné systémy ako iOS, Android, Windows7, Blackberry alebo FirefoxOS. Keby ste pre mobilné aplikácie nepoužili JavaScript, museli by ste pre Android programovať v Jave, pre iOS v Objective C, pre Windows7 v C#,… pre každú platformu zvlášť a znova to isté v inom jazyku. Strach a hrôza!!!

Aby som JavaScript iba nechválil, mobilné aplikácie napísané v JavaScripte môžu byť o niečo pomalšie ako natívne aplikácie. Stojí ale za rozmyslenie, či obetujem výkon za čas programovania pre ďalšie platformy… Navyše minimálne Android plánuje lepšiu podporu HTML5 + JavaScript aplikácií.

Môžte si pozrieť moje Android aplikácie Drink counter, Math homework. A takisto mám Drink counter a Math homework pre FirefoxOS. Jeden kód – viac platforiem. Nemám žiaľ  iOS ani Windows7 telefóny a tak nemám na čom testovať aplikácie pre tieto platformy. Pred vypustením aplikácie do sveta je dobré otestovať aplikáciu na reálnom zariadení, môžu (a nemusia) nastať rôzne odchylky vo funkčnosti :)

V skratke

JavaScript je univerzálny programovací jazyk. Naprogramujete v ňom webové (klient, server), mobilné (Phonegap) aj desktopové aplikácie. Stačí tak málo – vedieť JavaScript.

Záver

Osobne si myslím, že JavaScript, HTML5 a CSS je budúcnosť akýchkoľvek aplikácii, či už mobilných, desktopových, alebo webových. Samozrejme JavaScript nie je dokonalý jazyk, existujú oveľa krajšie a lepšie jazyky. Ale JavaScript je univerzálny. A tá univerzálnosť ma láka viac, než čokoľvek iné.

 

Programovanie pre neprogramátorov – 2. lekcia

Tento článok je súčasťou môjho online kurzu programovania v JavaScripte. Každý sa ho môže zúčastniť, kurz je zdarma. Kto sa ešte nezaregistroval, môže tak spraviť tu: http://eepurl.com/UzefH. Kurz obsahuje teoretickú časť (články na tomto blogu) a praktickú čast (domáce úlohy zadávané emailom).

V prvej lekcii som vysvetľoval prvé základné stavebné kamene každého programu/aplikácie. Dnes si ukážeme ďalšie stavebné kamene a to podmienky.

Podmienky určujú, ktorá časť kódu sa vykoná. Z prvej lekcie budeme potrebovať vedieť čo sú boolean premenné (true, false).

var isRaining = true;
if (isRaining) {
  //prší, vykoná sa táto časť kódu
}

Ak by sme definovali “isRaining” false, blok kódu obalený if-om by sa nevykonal. Keďže je “isRaining” true, “prší” sa vykoná.

var isRaining = false;
if (isRaining) {
  //prší, vykoná sa táto časť kódu
} else {
  //neprší, vykoná sa táto časť kódu
}

V ukážke vyššie definujeme boolean premennú “isRaining” s hodnotou false (nepravda). Ktorá časť kódu sa vykoná? Vykoná sa “neprší” (vetva else), pretože “isRaining” je nepravda. Ak by sme definovali “isRaining” ako true, vykoná sa “prší”. Všimnite si medzeru za “if” a medzeru pred a za “else”. Takisto odsadenie 2 medzerami alebo tabulátorom vo vnútri “if”. Je to “coding standard“, ktorý by mali dodržiavať všetci programátori.

Skoro by som zabudol na “else if”:

var age = 18;
if (age === 18) {
  //si dospelý, už môžeš piť alkohol legálne
} else if (age < 18) {
  //si ešte dieťa, môžeš piť nelegálne alkohol
} else {
  //máš viac ako 18 rokov. Si už stará raketa.
}

“else if” použijeme ak chceme overiť viacero podmienok. “else if” môže byť za sebou ľubovoľne veľakrát. Po “else if” môže a nemusí nasledovať “else”.

Ešte je tu pár vecí, ktoré by sme mali vedieť pri podmienkach a boolean hodnotách. A to:

Operátory a vyhodnocovanie podmienok:

Operátor is equal ==

var name = 'Josh';
//operátor is equal (==) porovná 2 hodnoty a vyhodnotí podmienku na true (ak sa rovnajú) alebo false (ak sa nerovnajú)
var isJosh = (name == 'Josh'); //isJosh sa vyhodnotí na true. Zátvorky sú ľubovoľné, slúžia pre prehľadnosť kódu
var isPeter = (name == 'Peter'); //isPeter sa vyhodnotí na false pretože 'Josh' != 'Peter'

if (name == 'Josh') {
  //som Josh
}

Existuje aj operátor “===”, ktorý porovnáva rovnosť hodnôt ako aj “==” ale líšia sa tým, že operátor “===” porovnáva aj rovnosť typov premenných:

var zero = 0;

if (zero == "0") {
  //podmienka sa vyhodnotí na true. V JavaScripte môžeme porovnávať čísla so stringami s operátorom ==
}

if (zero === "0") {
  //podmienka sa vyhodnotí na false, pretože zero je typ Number a "0" je String
}

Operátor nerovná sa (is not equal) !=

var zero = 0;

if (zero != "0") {
  //tento blok sa nevykoná, vyhodnotenie podmienky je false
}

//operátor !== porovnáva hodnotu aj typ premenných
if (1 !== "1") {
  //true, 1 je typ Number, "1" je typ string.
}

Porovnávajúce operátory <, >, <=, >=

if (3 > 4) {
  //3 nie je väčšie ako 4...
}

if (5 <= 5) {
  //5 je menšie, alebo rovné 5
}

Operátor && (and) a || (or)

var isRaining = true;
var isStorm = false;
var isRainingAndStorm = isRaining && isStorm; //operátor && je logický AND (a zároveň). Porovnáva 2 hodnoty. Ak sú obe hodnoty true, podmienku vyhodnotí na true. Ak je jedna, alebo obe hodnoty false, podmienku vyhodnotí na false

isRainingAndStorm = isRaining || isStorm //operátor || je logický OR (alebo). Stačí ak je jedna hodnota true a celý výraz sa vyhodnotí na true

Viac o porovnávacích operátoroch sa dozviete tu.

Zhrnutie

Mali by ste chápať načo slúžia podmienky “if”, “else if”, “else”
Mali by ste chápať operátorom “&&”, “||”, “==”, “===”, “!=”, “!==”, “<“, “>”, “<=”, “>=”

Cvičenie/Domáca úloha

http://jsfiddle.net/elfoslav/fyC3L

Ako odovzdávať cvičenia? Keď sa ti zobrazí stránka s cvičením, klikni v hornom menu na “Fork”. To vytvorí tvoju kópiu cvičenia. Keď budeš chcieť spustiť kód, klikni v hornom menu na “Run”. Keď budeš mať cvičenie hotové, klikni na “Update”, to uloží tvoje cvičenie. Potom už len skopíruješ link cvičenia a odošleš mi ho do mailu. Ja ti cvičenie skontrolujem a oznámkujem.

Alebo jednoduchšie: Zaregistruj sa na http://www.codermania.com a prejdi si cvičenia tam. Cvičenia sa vyhodnocujú automaticky. Ak si nebudeš dať vedieť rady, je tam tlačidlo “Ask for help”. Ak nevieš po anglicky, môžeš použiť Google translator. Veľa šťastia.

Prihlásiť sa k odberu noviniek o programovaní

* povinné pole



Chcem dostávať novinky o:


 

Programovanie pre neprogramátorov – 1. lekcia

Tento článok je súčasťou môjho online kurzu programovania v JavaScripte. Každý sa ho môže zúčastniť, kurz je zdarma. Kto sa ešte nezaregistroval, môže tak spraviť tu: http://eepurl.com/UzefH. Kurz obsahuje teoretickú časť (články na tomto blogu) a praktickú čast (domáce úlohy zadávané emailom).

V úvodnom článku o programovaní som sľúbil, že v ďalšom článku si ukážeme kusy kódu.

Tak poďme na to. Dnes sa naučíme pojmy ako

  • variable (čítaj veriebl)
  • array (čítaj erej)
  • string (čitaj ako vidíš)
  • integer (čítaj intidžer)
  • float (čítaj flout)
  • boolean (čítaj búlín)

Tieto pojmy využijete takmer vo všetkých programovacích jazykoch.

Premenné (variables)

Premenné si môžete predstaviť ako úložisko dát. Do premennej môžeme uložiť text (dátový typ string), čislo (dátové typy integer, float, double), zoznam položiek (pole), funkcie, objekty a ďalšie. Premenné sa píšu anglickým názvom. Vlastne všetky programy sa píšu anglicky, aby im rozumeli programátori z celého sveta. V JavaScripte začína definícia premennej kľúčovým slovom “var” (skratka variable).

Ukážka premennej dátového typu string s názvom “name” a hodnotou ‘Peter’:

var name = 'Peter';

Ukážka premenných s názvom “carName” a “pigName”:

//string môže začínať a končiť jednoduchými uvodzovkami ' '
var carName = 'Škoda';
//alebo dvojitými uvodzovkami " "
var pigName = "Miško";

Všimnite si ako sú názvy napísané. Viacslovné názvy začínajú malým písmenom, nové slovo začína veľkým. Toto sa nazýva CamelCase a je to programátorský štandard vo väčšine programovacích jazykoch. Všimnime si tiež, že deklarácia premennej končí znakom “;” nazývaný stredník (semicolon). Stredník slúži k ukončeniu príkazu.

Premenné typu string môžeme spájať s operátorom +:

var firstname = 'Peter';
var lastname = 'Pan';
var fullName = firstname + ' ' + lastname; //medzi firstname a lastname musíme pridať medzeru. fullName má hodnotu 'Peter Pan'

Premenné typu integer/float:

//integer je celé číslo
var a = 6;
var b = 2;
var c = a + b; //8
var d = a / b; //3
var e = a * b; //12
var f = a - b; //4
//float je desatinné číslo
var x = 1.5;
var y = 2.23;
var z = x + y; //3.73

Desatinné čísla sa píšu s bodkou, nie čiarkou ako sme zvyknutí.

Premenné typu boolean:

var isDay = true; //je deň
var isNight = false; //nie je noc
var hasDog = false; //nemá psíka

Premenné typu boolean majú len 2 hodnoty – “true” a “false”. Používajú sa na zistenie či je niečo pravda alebo nepravda. Všimnite si prefixu “is/has”. Je zvykom tento prefix mať v názve premennej typu boolean.

Viac o premenných sa dočítate tu.

Komentáre (comments)

V programoch sa píšu komentáre pre objasnenie, čo daný kus kódu robí. Programátor naprogramuje niečo zložité, nenapíše si k tomu komentár, lebo v danej chvíli je mu jasné čo daný kód robí. Keď sa však po pol roku k tomu kódu vráti, bude márne rozmýšľať čo tým kusom kódu pred pol rokom myslel. Preto dobrí programátori píšu komentáre. Komentáre sa tiež píšu po anglicky, len v tomto článku ich budem písať po slovensky.

Ukážka komentárov:

//toto je jednoriadkový komentár
//každý riadok musí začínať s dvoma lomítkami

/** toto je viacriadkový komentár
začína lomítkom a dvoma hviezdičkami
končí jednou hviezdičkou a jedným lomítkom
*/

//môžeme zakomentovať aj kusy kódu. Zakomentovaný kód bude program ignorovať.
//var a = 'blabla';

Kľúčové slová (keywords)

Každý programovací jazyk má kľúčové slová. V JavaScripte je to napr “var”, “break”, “delete”,…  Kľúčové slová nemôžu byť použité ako názvy premenných pretože majú definovaný svôj speciálny význam. Všetky kľúčové slová nájdete tu.

Polia (arrays)

Ak ste si predstavili pole ako rolu, tak to nie je ono. Polia slúžia v programoch na uloženie zoznamu dát. Pole je vlastne typ premennej, tak ako sme si predstavili typy string, integer, float a boolean.

Ukážka poľa v JavaScripte:

/** pole people obsahuje mená ľudí. K položkám v poli pristupujeme pomocou indexu. Polia sa indexujú od 0. */
var people = ['Jully', 'John', 'Josh', 'Marry'];

var jully = people[0]; //people[0] vráti položku s indexom 0, teda 'Jully'
var josh = people[2]; //people[2] vráti 'Josh'

//položku v poli môžeme zmeniť
people[1] = 'Joe'; //John zmeníme na Joe

//prázdne pole
var people2 = [];

people2[0] //vráti undefined, pretože v poli na indexe 0 nič nie je.

//položky do poľa pridáme pomocou funkcie push
people2.push(jully, 'Julian', people[3]); // ['Jully', 'Julian', 'Marry']

//počet položiek v poli zistíme pomocou length
var peopleCount = people.length; //4

S poľami sa toho dá robiť veľa. Viac sa dočítate na w3schools. Polia si precvičíme v cvičení, na konci článku.

Zaujímavosti

var name = 'Peter'; //definujeme premennú kľúčovým slovom var
name = 'Jay'; //hodnotu premennej môžeme zmeniť. Premenná už existuje, píšeme ju bez var.
name = []; //hodnotu premennej môžeme predefinovať

Všetky prebrané veci v tomto článku sú základné stavebné kamene každého programu.

Pôvodne som chcel prebrať viac, ale zdá sa, že už je toho v tejto lekcii dosť. V druhej lekcii si predstavíme cykly a nejaké tie ify – ďalšie základné stavebné kamene každého programu. Ak ste sa ešte nezaregistrovali do kurzu a chcete sa naučiť základy programovania, môžte sa ešte stále zaregistrovať.

Komu by nestačil tento článok, tu je pár zdrojov o JavaScripte:

Cvičenia

1. úloha: http://jsfiddle.net/elfoslav/9G3xa/
2. úloha: http://jsfiddle.net/elfoslav/He9z4/

Ako odovzdávať cvičenia? Keď sa ti zobrazí stránka s cvičením, klikni v hornom menu na “Fork”. To vytvorí tvoju kópiu cvičenia. Keď budeš chcieť spustiť kód, klikni v hornom menu na “Run”. Keď budeš mať cvičenie hotové, klikni na “Update”, to uloží tvoje cvičenie. Potom už len skopíruješ link cvičenia a odošleš mi ho do mailu. Ja ti cvičenie skontrolujem a oznámkujem.

Alebo jednoduchšie: Zaregistruj sa na http://www.codermania.com a prejdi si cvičenia tam. Cvičenia sa vyhodnocujú automaticky. Ak si nebudeš dať vedieť rady, je tam tlačidlo “Ask for help”. Ak nevieš po anglicky, môžeš použiť Google translator. Veľa šťastia.

Prihlásiť sa k odberu noviniek o programovaní

* povinné pole



Chcem dostávať novinky o:


 

Programovanie pre neprogramátorov (úvod)

Programátorov je v dnešnej dobe málo. Takmer každá IT firma stále hľadá programátora. Je čas naučiť sa programovať.

Ja som sa začal učiť programovať po strednej škole (2008). Zistil som, že manuálnou prácou sa neuživím. Jednak finančne, druhak mám obe ruky ľavé. A to som ľavák.

Kto chce, naučí sa programovať aj sám (s pomocou Google). Kto má peniaze, môže si zaplatiť programátorské kurzy. Kto má peniaze a čas, môže ísť na výšku, ale tam je viac matiky ako programovania. Na začiatku je dobré, keď má človek učiteľa, alebo človeka, ktorý programovaniu rozumie.

Programovanie musí človeka baviť. Keď som spravil svôj prvý program, povedal som si “wow, to je úžasné”. Ten program spočítal 2 čísla, ktoré som mu zadal.

V čom je dobré začať programovať? Programovacích jazykov je veľa. Keď už sa človek jeden jazyk naučí, ostatné jazyky sa naučí pomerne rýchlo. Ja som začínal s Pascalom, C, C++. V škole som sa naučil v Jave objektovo programovať a využil som to aj v PHP. Teraz je môj jediný univerzálny jazyk JavaScript.

V dnešnej dobe sa oplatí robiť hlavne webové a mobilné aplikácie. Máte nápad na nejakú aplikáciu ale neviete ju spraviť? Naučte sa to! Nečakajte, že vám ju niekto naprogramuje. Programátorov je málo a sú zaneprázdnení svojou prácou.

Toľko k úvodu. V ďalšom článku v kategórii programovanie si ukážeme a vysvetlíme kusy kódu aby ste mali predstavu ako to funguje.

Tu si môžete pozrieť upútavku:

https://www.facebook.com/photo.php?v=701206783246409&set=vb.100000712815612