Vzdělávání

Sekce vzdělávání nabízí články o různých vzdělávacích programech, včetně front end developer kurzů a kurzů jako kurz Excel, které vám pomohou získat praktické dovednosti. Objevte nejlepší způsoby, jak se vzdělávat online a posunout své schopnosti na vyšší úroveň.

Kotlin vs. Java - méně kódu
Vzdělávání
06.01.2020
Skillmea

Kotlin vs. Java - méně kódu

Kotlin a Java jsou kompatibilní programovací jazyky. V tom smyslu, že pokud zkompilujeme Java kód, tak se vytvoří bytecode v souboru .class. Pokud zkompiluji Kotlin kód, tak se vytvoří bytecode v souboru .class. Tedy, jestli pracuješ v Kotlině nebo v Javě, tak nakonec budeš mít kód, který si bude rozumět a který dokáže běžet tam, kde dokáže běžet JVM – java virtual machine. V tomto článku vám chci ukázat to, proč byl Kotlin vytvořen – aby nám co nejvíce zjednodušil psaní kódu. Představ si, že chceš napsat třídu Auto. Ta má fieldy název a počet dveří. Tyto fieldy budou private a final – tedy po prvním nastavení je nemůžeš změnit. Přístup k těmto fieldům můžeš udělat jen přes public get metodu. Zároveň umíš sestrojit auto tak, že mu zadáš jen název. Pokud bude zadán jen název, tak počet dveří bude automaticky 4. Pokud zadáš název a počet dveří, tak se fieldy nastaví tak, jak jsme to zadali v konstruktoru. Kód v JavěTakto bude vypadat kód napsaný v Javě: public class Auto { private final String nazov; private final int pocetDveri; public Auto(String nazov) { this(nazov,4); } public Auto2(String nazov, int pocetDveri) { this.nazov = nazov; this.pocetDveri = pocetDveri; } public String getNazov() { return nazov; } public int getPocetDveri() { return pocetDveri; } }Nejprve máme dva privátní final fieldy: private final String nazov; private final int pocetDveri;Pak konstruktor, pokud chci vytvořit objekt auto jen pomocí názvu: public Auto2(String nazov) { this(nazov,4); } Konstruktor, pokud chci vytvořit auto a nastavit název a počet dveří: public Auto2(String nazov, int pocetDveri) { this.nazov = nazov; this.pocetDveri = pocetDveri; }A nakonec get metody, abychom měli přístup k daným fieldům: public String getNazov() { return nazov; } public int getPocetDveri() { return pocetDveri; }Jak to udělám v Kotlině?Potřebuji tento kód: class Auto (val nazov: String, val pocetDveri: Int = 4) { }To je všechno, těch 20 řádků v Javě je jeden řádek kódu v Kotlině. Za Auto jsou závorky - to je primární konstruktor, ve kterém se nastavují takzvané property. První property je název, který je val – val znamená, že hodnota se nemůže později měnit. Druhá property má nastaveno = 4, to znamená, že pokud chci vytvořit auto jen zadáním názvu, tak se automaticky pocetDveři nastaví na 4. Takto vytvořím Auto zadáním obou property a pod tím je přístup k property přes tečku: val skoda = Auto("Skoda", 5) skoda.nazov skoda.pocetDveriVytvoření auta jen s názvem: val auticko = Auto("Skoda")Záver Líbí se ti tento přístup? Chceš vědět více o programovacím jazyce Kotlin? Sleduj Learn2Code a věřím, že najdeš co hledáš. Připravovaný kurz o Kotlině zveřejníme již brzy.
Testování Java aplikací s JUnit
Vzdělávání
28.11.2019
Skillmea

Testování Java aplikací s JUnit

JUnit framework úvodPředstav si naprosto jednoduchou metodu, která má za úkol spočítat dva vstupní parametry metody. public static int sum(int number1, int number2){ return number1 + number2; }Jak bys otestoval tuto metodu? Zavolal bys danou metodu, a následně bys výsledek porovnal s očekávanou hodnotou. Pokud by metoda nevrátila očekávanou hodnotu, tak bys napsal hlášku, že test neprošel, pokud by vrátil očekávanou hodnotu, tak bys napsal, že test prošel. int sumNumber = sum(1, 4); if(sumNumber!=5){ System.err.println("Test failed."); }else{ System.out.println("Test passed."); }Co jsem udělal, je to, že náš kód jsem porovnal s jedním možným případem výsledku. Anglicky se setkáš s názvem test case. Tedy jsem zatím udělal jeden test case. Ty bys měl ověřit několik test časů. Svůj kód musíš vystavit „stresu“. Tedy si napíšeš několik dalších test časů. Například, jak to bude pracovat s nulou: int sumNumber = sum(1, 0); if(sumNumber!=1){ System.err.println("Test failed."); }else{ System.out.println("Test passed."); }Nebo jak to bude pracovat s negativním číslem: int sumNumber = sum(1, -10); if(sumNumber!=-9){ System.err.println("Test failed."); }else{ System.out.println("Test passed."); }Toto byly takzvané pozitivní testy. Test si považoval za passed – za úspěšný – tehdy, když byla splněna podmínka. Ty umíš ale napsat i takzvané negativní testy. Kde test prošel, pokud nebude splněna podmínka. Například test projde-li částek 2 a 2 není 5 a podobně. int sumNumber = sum(2, 2); if(sumNumber!=5){ System.out.println("Test passed."); }else{ System.err.println("Test failed."); }Náš kód jsme vystavili různým testům casem. Pokud testy projdou, tak metoda je ošetřena určitě víc – je více spolehlivá než kdybychom nenapsali, žádný test case. Co jsme udělali?Připravili jsme si testy. Poskytli jsme vstupní parametry testům – různá čísla ke spočítání. Spustili jsme testy a poskytli jsme také očekávané výsledky. Následně jsme vypsali hlášky, zda testy prošly nebo ne. Pokud bychom měli další metody, které bychom museli otestovat, pak bychom napsali další testy. Udělali bychom vlastně tytéž kroky jako při testování první metody. Co mají první testy odlišné od druhých testů? Voláme jiné metody, máme jiné parametry testů a máme jiné požadované výsledky. Co mají první testy společného s druhými testy? Testy jsme spustili – ke spuštění testů není nic odlišného. Verifikovali jsme výsledky – verifikování proběhlo iv prvním i druhém případě a následně se v obou případech napsaly hlášky na konzoli. JUnit framework nám usnadní způsob, jakým budeme spouštět testy a také způsob, jakým se uživateli sdělí výsledky testů. Spuštění, verifikování a vypsání hlášek bude řídit JUnit framework. My řekneme JUnitu – tady máš můj test kód a ty ho teď spusti a postarej se o to. JUnitu řekneme, tento výsledek očekávám, tyto údaje vkládám - prověřit to. JUnit to prověří a nám sdělí v pěkné čitelné formě, zda testy prošly a pokud neprošly, tak nám řekne přesně, které testy neprošly.[Image]JUnit byl mnoho let ve verzi 4. Verze 5 není přímo kompatibilní s verzí 4, ale tvůrci JUnit 5 připravili api, přes kterou umíme komunikovat i se starými testy – ta se jmenuje Vintage. Dále nové api se jmenuje Jupiter. Tyto api pak spoléhají na core frameworku – tedy zdroj – kód, který se stará o všechno ostatní. Spouštění testů a podobně. Plus máš možnost napsat své vlastní api, které pak bude také využívat core frameworku. Pokud budeš používat Jupiter plus core, tak si do projektu musíš stáhnout tyto závislosti. My budeme používat maven pro tyto účely. Vývojová prostředí jako IntelliJ IDEA nebo Eclipse mají zabudovanou integraci s JUnit 5 frameworkem a tak můžeme testy spouštět pomocí těchto vývojových prostředí. Pokud tě toto téma zajímá víc, sleduj online kurz JUnit a TDD pro programátory.
Můžeme si dnes na hodině hrát? Od záludného sluníčka k programu Scratch
Vzdělávání
27.02.2019
Skillmea

Můžeme si dnes na hodině hrát? Od záludného sluníčka k programu Scratch

„Můžeme si dnes na hodině hrát?“ To je otázka, se kterou se setkávám na hodinách během kroužků programování. Když jsem začínal s učením, velmi mě trápilo, jaký postoj zaujmout k žákům. Představoval jsem si různé katastrofické scénáře, když žáci začnou dělat nezbedu od odmlouvání až po demolování učebny. Jak napomenout děti? Jak zpacifikovat rošťáky? Jak je donutit spolupracovat? Jak se odprezentovat, abych nebyl za hlupáka? Jak jim správně vysvětlit látku? A to nejdůležitější: Jak se postavit před dav lidí, který vám v lepším případě věnuje pozornost, a být schopen ze sebe vysoukat smysluplnou větu? Začínal jsem se záludným sluníčkemNějaké zkušenosti jsem měl s doučováním spolužáků na vysoké škole. Pamatuji si, jak jsme trávili sobotní večery na Skype, kde jsme se snažili donutit to záludné sluníčko, aby po spuštění mělo tvar jako na zadaném obrázku. Později jsem pomáhal spolužákům pochopit, co se děje s jejich domácím úkolem. Nakonec jsem do nich tloukl schopnosti jak si rozebrat zadání, naplánovat postup, aby samostatně naprogramovali zkouškový program. Nedá mi nevzpomenout, jak se mi na střední škole rozbil počítač a já jsem maturitní otázky programoval s tužkou na papíře. Co ale stálo za tím, že jsem zvládl nakreslit sluníčko a potom připravoval spolužáky na zkoušku? Byl to ten skvělý pocit, že jsem v podstatě z ničeho vytvořil funkční program, hratelnou hru, svět s vlastními postavami.[Image] Trénujeme hlavu – každý po svémPři programování si trénujeme to, co máme v hlavě. Musíme myslet i na to, že ne každý se s tím snadno popasuje. Už jsem slyšel také stížnosti od dětí, jaký je to útok na mozek. Děti rádi tráví čas u počítače. Ne každý se ale chce učit složité algoritmy. Je třeba je naučit, že počítač není jen na hraní. Je to také nástroj, který jim umožňuje projevit se. (To by se ale mohli naučit i někteří rodiče 😊.) Vedou k tomu několik cest. Když jsem poprvé otevřel prostředí Scratch, byl jsem nadšený. Prostředí mi nabízí vše, co potřebuji k vytvoření vlastního světa. Tady máš, pohraj si s tím, experimentuj, uvidíme, co z toho vznikne. Nepotřebuješ vědět složité informace, co se za tím skrývá nebo proč tomu tak funguje. Prostředí ti napoví, toto s tímto se dá spojit, a vznikne támhle... Scratch umožní uživateli vytvořit velmi rychle jednoduchou hru. Postačí mi pár kliků a už mi postavička pojídá jablíčka a připočítává skóre. Pak už to jde samé.[Image] Počítačové hry nejsou zloŽáci se těší na hry, které vytvoříme. A pak začínají přicházet otázky: „Kdy si naprogramujeme hru jako GTA V?“ Na to však musím odpovědět, že hru, kterou vytvářelo tisíc lidí několik let, si za jedno odpoledne ve Scratchi nenaprogramujeme. Když si projdeme základy, pouštíme se do skutečného programování her. Často se ptám dětí na jejich vlastní nápady, které pak spolu realizujeme. Snažím se tak v dětech podpořit kreativitu. Chci, aby přemýšleli nad vlastními schopnostmi a možnostmi prostředí Scratch. Někdo může namítat, že počítačové hry jsou zlo, které kazí dnešní mládež. Já však říkám, že existují hry, které umí dětem hodně přinést: modelování v Minecraftu, management a plánování v Total War, simulace života v Simsu, budování světů v Age of Empires.[Image] Autorem blogu je Ľuboš Jaroš Ľubošovy vzdělávací podklady ke Scratchu naleznete tu. Mgr. Ľuboš JAROŠ je absolvent magisterského stupně studia učitelství matematiky a informatiky na FMFI UK (2015). Od začátku vysokoškolského studia se věnoval didaktice programování, ať už ve školních pracích nebo při vedení kroužků programování pro žáky 1. a 2. stupně, v čemž úspěšně pokračuje dosud. Vytvořil kompletní vzdělávací podklady a videotutoriály pro programy Scratch Junior a Scratch Starter. Je autorem knihy Scratch Starter - Programování pro děti (2017). 3 roky na vyžádání vede hodiny didaktiky pro učitele informatiky. Jeho oblíbeným pracovním nástrojem je programovací prostředí pro děti s názvem Scratch.
5 způsobů jak rozvíjet své dítě a nezakazovat mu počítač
Vzdělávání
18.02.2019
Skillmea

5 způsobů jak rozvíjet své dítě a nezakazovat mu počítač

Často dnes vidíme tristní obraz dětí, jako v tmavém koutku v záři displeje svého mobilu, tabletu nebo počítače prosedí celé hodiny a baví se na příbězích svých reálných či virtuálních kamarádů ve fiktivních světech. Až se zdá, že počítačové hry a multimédia jsou pro děti přitažlivější než cokoli jiného. Proč se to děje? Podle vědeckých výzkumů jsme to my sami, kdo vědomě či nevědomě už v útlém věku, učíme děti zpracovávat informace odlišným způsobem než celé generace před námi. Silné podněty a rychlé tempo vjemů z elektronických médií povzbuzují v mozku vylučování hormonu odměny dopaminu, a tím ovlivňují jeho kognitivní funkce. Člověk má sklony tyto zážitky opakovat, vyhledávat nové a silnější podněty, čímž se roztáčí „dopaminová spirála“. V současnosti se s tímto problémem boří množství rodičů a vychovatelů. Pokud chceme, aby naše děti udělaly i něco ve svůj prospěch a svou budoucnost, potřebujeme tyto silné podněty nejprve „přebít“, a tak si získat jejich pozornost. Pak bychom však měli postupně zjemňovat „nátlak“ a tříbit výdrž a vnímavost. Nabízím vám několik inspirací, které mají potenciál děti zaujmout a pobavit – aniž by prohlubovaly svou závislost na médiích. Naopak získají radost, zvýší kontakt s vrstevníky, vytříbí si vnímavost i pohybové dovednosti. Efektivně také sníží závislost na levných náhradách ze světa zábavního průmyslu.[Image] 1. Dejte křídla kreativitěDnes je trendem konzumace obsahu. Podobně jako při pojídání i tady to můžeme uchopit z opačné strany a „uvařit si“ něco vlastního. Díky všudypřítomným technologiím máme mnoho možností. Natočit mobilem vlastní krátký hraný, animovaný, přírodopisný film či televizní reportáž? Ke zpracování materiálu a tvorbě hudby můžeme využít volně dostupné aplikace v online obchodech. Podobně umíme vyrobit hudbu (napr. Chrome Music Lab) a jako bonus i plakát na premiéru (Office), případně is vlastnoručně kreslenou grafikou (napr. Photopea). Můžeme také natočit i veselé video (s porouchanými záběry) o tom, jak to celé vznikalo. A máme ideální příspěvek do rodinné videotéky! 2. StavebniceStavebnice jsou ideální prostředek pro konstruktivní hru a experimenty. Jsou navrženy tak, že respektují intelektuální a fyzické schopnosti dětí v jednotlivých věkových kategoriích. Například elektronická stavebnice Boffin, ve které si i menší děti bez potřeby mobilu či počítače bezpečně postaví zábavné elektrické obvody. Velmi vhodné jsou stavebnice Lego Technic s názornými ozubenými převody a dalšími součástkami, které demonstrují mechanické principy. Pokud se vám zdají tyto stavebnice příliš drahé, zkuste některou z online Lego půjčoven, které se začínají vynořovat iu nás. Vrcholem této skupiny je robotická stavebnice Mindstorms, která kromě lego dílků obsahuje také senzory a řídící jednotku. S použitím vhodného kurzu vevede vás i vaše děti do světa robotiky.[Image] 3. Výzva: Naučte je programovatVyšší úroveň používání digitálních technologií je naučit se je ovládnout je přes programování. Není až tak náročné začít, pokud víte, za který konec to chytit. Děti na kurzech a v letních denních táborech, které pořádáme v Learn2Code, nás přesvědčují o tom, že když jsou správně motivovány a pod dohledem zkušeného instruktora, základy programování zvládne každé z nich. Mnoho věcí se však dnešní teenagery učí z video návodů. A není to náhoda. Video návod může do velké míry osobní doprovod instruktora nahradit. První experimenty mohou začít v Scratchi, pokračovat vlastními mobilními appkami v AppInventore nebo grafickými skice v javascriptovom prostředí P5.js. 4. Měření sil s vrstevníkyI na Slovensku existuje spousta soutěží pro děti, ve kterých si mohou měřit síly s vrstevníky. Výjimka není ani informatika. Pokud vašeho potomka zajímají hry a programování, může vyzkoušet súťaž v tvorbe hier Galaxiáda. Její druhý ročník právě probíhá. 5. Dopřejte pohyb celému těluKaždé dítě, ať už programátorské nebo ne, uvítá chvíli veselého pohybu! Nevěříte? V doprovodu zábavné počítačové hry Stepmania překoná(te) dětskou lenost. Princip hry spočívá v tom, že dotykem nohou po podložce za doprovodu populární hudby „sestřelujete“ rychle ubíhající šipky. Stepmania je k dispozici zdarma. Jediné, co k ní potřebujeme, jsou ovladače Dance Pad, které však lze v domácích či zahraničních internetových obchodech koupit již od 10 eur za kus. Hra obsahuje několik herních režimů, lze hrát samostatně, ale zábavnější je ve dvou (potřebujete dvě podložky), či dokonce na turnaji. (Na ten si účastníci nosí své vlastní podložky.) Díky těmto aktivitám vy a vaše děti zažijete radost a pocit smysluplného využití času a moderních technologií ve prospěch sounáležitosti a vnímavosti. Zároveň povzbudíte jejich zdravou sebedůvěru a získávání takových dovedností, které jistě využijí v budoucnosti. Autorem článku je Marián Staňo Marián je absolvent učitelství matematiky a informatiky na FMFI UK (2001). Od začátku studia se věnoval experimentálnímu vyučování informatiky na ZŠ a později ve škole pro děti s všeobecným intelektovým nadáním (ZŠ Košická Bratislava, Škola pro mimořádně nadané děti a gymnázium v Bratislavě, Instruktor Letního denního tábora FMFI UK). Má dvacetiletou praxi ve vzdělávání dětí jako lektor a autor vzdělávacích materiálů. Má stejně zkušenost jako facilitátor arteterapeutických skupin dospělých a hledá průniky mezi animovanou tvorbou a technologiemi.
Java nejnovější verze – Java 9 moduly (1. část)
Vzdělávání
09.12.2018
Skillmea

Java nejnovější verze – Java 9 moduly (1. část)

Od verze 9 bude java vydávána v pravidelných intervalech. Nová java každých 6 měsíců. Takže můžeme očekávat novou funkčnost častěji, ale v menších dávkách. Nejpoužívanější Java dnes je java 8 – vydaná v roce 2014. Java 9 byla poprvé vydána v září 2017, později byly opraveny kritické chyby a lze říci, že taková lepší verze byla vydána v lednu 2018. Java 10 byla vydána v březnu 2018, Java 11 v září 2018. Takže rychlý posun ve verzích, ale ne drastický posun ve funkčnosti. Co je lepší? Najednou a mnohem nebo méně a postupně? Záleží na tom, co děláte. Pokud používáte mnoho rámců a knihoven třetích stran, může být vaše práce ovlivněna po zvýšení tohoto jevu. Prvním milníkem je java 11, která je označena jako LTS, tj. dlouhodobá podpora. Tato verze tohoto jevu bude opravena na dlouhou dobu a bude o ni postaráno v následujících letech. Co to znamená? Že společnosti s větší pravděpodobností přeskočí z jevu 8 dříve na jev 11, protože si budou jisty, že tato java bude v budoucnu opravena –, pokud bude nalezena kritická chyba. V tomto článku se zaměříme hlavně na seznam nových změn. Nebudeme se zabývat jednotlivými změnami podrobně. Budeme to udržovat i v budoucnu. InstalaceNejprve musíte stáhnout a nainstalovat nejnovější fenomén jdk. V době psaní to tak je Java 11. Nastavte proměnnou prostředí JAVA_HOME na nový jev – na kořen, nikoli do složky bin. Poté nastavte cestu k proměnné PATH pouze do složky koše nově nainstalovaného jevu. Spusťte příkazový řádek a zadejte příkaz: java – verze Pokud máte verzi, vše je v pořádku.[Image] Pokud dojde k chybě nebo se zobrazí starší verze, ujistěte se, že v PATH je cesta nového fenoménu nastavena na začátku. Je možné, že v PATH máte také nastaveno C: \ ProgramData \ Oracle \ Java \ javapath. Pokud ano, musí to být za cestou k nejnovějšímu jevu. ModulyV Javě 9 je nejpříznivější změnou projekt Jigsaw –, ale stačí, když si vzpomeneme, že se jedná o divizi modularity – velkého monolitu –, takže celá aplikace v jednom balení do menších buněk – moduly. Moduly pak řeknou, co publikují světu a co požadují pro svou správnou funkčnost. Každý modul obsahuje soubor modul-info.java a alespoň jeden balíček. Module-info.java obsahuje popis závislostí, které modul potřebuje. Každý modul je nezávislý v tom, že pokud obsahuje obrázky nebo konfigurační soubory, modul je spravuje sám. Vše v modulu je pro modul soukromé, pokud neřekneme jinak. Existují 4 typy modulů.Systémové moduly – Java SE a JDK moduly –, pokud si všimnete, jdk nainstalovaný pro novější jev postrádá složku jre. Nyní jsou jmody. Zde máme všechna výchozí nastavení poskytovaná moduly.[Image] Aplikační moduly jsou moduly, které chceme vytvořit, když se rozhodneme, že chceme moduly používat. Automatické moduly je vytvořen, když do modulu cesty přidáme soubory JAR. Název modulu je převzat z názvu souboru. Tyto automatické moduly mají plný přístup ke všem ostatním modulům načteným na cestě. Nepojmenovaný modul = pokud jsou některé třídy nebo soubory jar načteny na cestě –, tyto třídy a soubory jar jsou automaticky přidány do tohoto nejmenovaného modulu. Používá se pro zpětnou kompatibilitu s předchozím starším Javanese kódem. DistribuceModul by měl být zabalen jako jarní soubor – jeden jarní soubor by měl obsahovat maximálně jeden modul. Když provádíme projekt sestavení, musíme být opatrní, abychom každý modul v našem projektu zabalili jako samostatnou pružinu. Základní modulySlíbili jsme, že jdk má novou strukturu, která obsahuje jmoduly. Zde jsou základní moduly. Pokud zadáme příkaz, můžeme tyto moduly uvést pomocí příkazového řádku <b>java --list-modules</b>. [Image] Každý modul, který vytvoříme, použije implicitní modul java.base. Použití dalších modulů bude k dispozici po konfiguraci. Vytvoření moduluModul v podstatě vzniká, pokud definujeme soubor modul-info.java v kořenovém adresáři zdrojového kódu modulu. Tento okamžik pracuje se zdrojovým kódem jako s modulem. Moduly se navzájem nevidí – nemají přístup k sobě navzájem a ke třetímu atd. Podle toho, kolik modulů používáme. Pokud chcete použít něco zvenčí nebo chcete, aby byla viditelná vnitřek vašeho modulu nebo vnitřní čas vašeho modulu, musíte jej definovat. Pojďme mít projekt, ve kterém definujeme nový modul. V modulu máme složku src, do které vložíme veškerý zdrojový kód. Uvnitř definujeme balíček sk.jaro.demo a stále v něm vnější a vnitřní. Vytvoříme jednoduché třídy, které jen něco napíšou na konzoli.[Image] package sk.jaro.demo.external; public class HelloMainModuleExternal { public void doAction() { System.out.println ("Hello main module HelloMainModuleExternal"); } }  package sk.jaro.demo.internal; public class HelloMainModuleInternal { public void doAction() { System.out.println("Hello main module HelloMainModuleInternal"); } } Tyto třídy se liší pouze v názvu a příkazu na konzole. Později nastavíme vnitřní, aby byl viditelný pouze v hlavním modulu. Později nastavíme externí, aby byl viditelný mimo hlavní modul. Vytvořte soubor modul-info.java v src tohoto modulu. Uvnitř souboru je syntaxe, kde klíčovým slovem je nejprve modul, pak název modulu – můžete také použít tečky, a pak jsou zde složené závorky: modul nasmodule { }. Chceme, aby byl externí balíček k dispozici pro další moduly –, které budou nastaveny pro export. module main { exports sk.jaro.demo.external; }Nyní vytvoříme nový modul ve stejném projektu s názvem utils. Uvnitř budeme mít jednu třídu, ve které se pokusíme použít třídu HelloMainModuleExternal z hlavního modulu.[Image] Module-info.java musí nyní obsahovat, že v tomto modulu požadujeme hlavní modul –, protože z tohoto modulu používáme funkčnost. module utils { requires main; } Nyní můžeme použít třídy, které byly exportovány z hlavního modulu: package sk.jaro.demo; import sk.jaro.demo.external.HelloMainModuleExternal; public class UseSomethingFromMainModule { public static void main(String[] args) { HelloMainModuleExternal helloMainModuleExternal = new HelloMainModuleExternal(); helloMainModuleExternal.doAction(); } }ZávěrNakonec si s tím můžete hrát hned teď. Zkuste použít třídu, která není exportována z hlavního modulu. O modulech by bylo možné napsat a mluvit o nich, ale doufám, že pochopíte princip modularizace. Během studií na toto téma mám několik otázek, na které jsem dosud neodpověděl. Například: Maven s java modularizací? Rámce a modularizace? Pokud se vám tento článek líbil, napište něco do komentářů, budu šťastný. Zajímá vás Java? Vyzkoušejte jeden z kurzů na toto téma https://skillmea.sk. Pokud se o mně chcete dozvědět více, sledujte můj web www.jaroslavbeno.sk. jaro Zdrojové kódy ke stažení.
Využij toto léto: Online kurzy, za které neplatíš!
Vzdělávání
12.08.2017
Martina Baumann

Využij toto léto: Online kurzy, za které neplatíš!

Ještě stále nám zbývá pár týdnů prázdnin. Co takhle využít horkých letních dnů a kromě zábavy a dovolených se cosi naučit? Nemusíš nikam chodit, učit se můžeš – kdy chceš a kde chceš – v pohodlí domova nebo někde venku na lehátku s přístupem na internet. Kurzy nám neustále přibývají, to víme všichni. Teprve nedávno jsme si však řekli, že pojďme udělat kurzy pro všechny zadarmo - tedy i pro tebe, tvého kámoše, souseda, tátu, mámu, sestřenici. V čem je přidána hodnota těchto kurzů? V tom, že jsou dostupné zdarma, a tak můžeš ušetřené eurače utratit někde jinde. Třeba na nějaké fajnové drinky 👇   Letní akce se Zlavadna.skSamozřejmě, placené kurzy nám v nabídce nadále zůstávají. Ale i ty máš nyní šanci vyzkoušet ve speciální letní akci. Jak je to možné? Ne, nevyhráli jsme jackpot (tedy alespoň prozatím ne), jen jsme udělali další zajímavý deal pro tebe. O čem to tedy mluvím? 👇  Neomezený přístup ke všem online kurzům na Learn2Code po dobu tří měsíců . Čteš dobře, opravdu to nejsou halucinace z tepla, ale rozhodli jsme se udělat opět nějakou tu tučnou akci pro tebe a tvé kámoše. Do akce se zapoj ZDE . Java pro začátečníkyTento online kurz je již podle názvu vhodný pro začátečníky tak, aby se naučili snadno programovat v nejrozšířenějším a nejpoužívanějším programovacím jazyce Java. Tento kurz vysvětluje historii, základní pojmy, nastavení prostředí až po různé výjimky a samotné programování. Visual Design: Design vlastního tričkaV tomto kurzu se naučíte, jak si vytvořit vlastní motiv na triko. Kromě celkového vytvoření designu se dozvíte, jaké barvy a nástroje je třeba si při vytváření zvolit, také se naučíte něco o jednotlivých nástrojích, barevných režimech, o formátech jako jsou JPG, TIFF a PNG. Kurz je opět vhodný pro začátečníky. Základy online strategieOnline kurz provede studenta základy online marketingové strategie, přičemž získá všeobecný přehled a dobrý základ pro další vzdělávání v oblasti online marketingu. Například i to, jak se zákazníci chovají a rozhodují při nákupu, jak funguje nákupní model See-Think-Do-Care, podle něhož si může student navrhnout a vytvořit vlastní komunikační strategii. Základy online marketinguKromě základních pojmů z online marketingu se studenti seznámí s content marketingem a jak jej dělat, základy performance marketingu, social media marketingu a marketingu ve vyhledávačích. Lektoři online kurzu zde také vysvětlují, co je to landing page a proč je vůbec důležitá. Kde je třeba hledat tyto kurzy?Netřeba nějak zvlášť hledat, usnadním ti to. Pohodlně se usaď, zapni si ventilátor a klikej SEM (najdeš zde přehled všech kurzů, které jsou zdarma. Stačí si jen vybrat). Líbí se ti naše nabídka kurzů? Pokud ano, sdílej toto poselství i mezi ostatní kámoše. 
Front-End development technologie
Vzdělávání
30.07.2017
Lubo Herkoo

Front-End development technologie

Porovnání světů Front-End a Back-End vývoje jsme se věnovali před pár měsíci . Dnes se budeme hrabat v nástrojích Front-End programátorů – co všechno musíš zmáknout, pokud se jím chceš stát (kromě našich kurzů). V tomto textu nebudeme polemizovat, zda je lepší React , Angular nebo Vue.js. Zda je třeba používat SASS nebo LESS , nebo.. .. zda je lepší Mac, nebo PC. Přečteš si o nejpoužívanějších front-end technologiích, zkusíme Tě nasměrovat jak s front-endem začít a také (pokud to myslíš opravdu vážně) jak se dále rozvíjet, aby ti nic z Front-Endu neušlo. Pome! Přední konec webu - technologie Stačí otevřít některou webovou (nebo dnes už i desktopovou, ajPadovou, iFonovou, i androidovou) appku a díváme se na práci Front-End vývojářů. To oni nakódili ty buttony a textová pole, s citem promysleli efektní animace, menu a rozhýbali statický design svého kamaráda – grafika. V našem webovém světě pracují Front-End vývojáři primárně s HTML , CSS a JavaScriptem . Pro tyto technologie však existuje milion nástrojů a frameworků, které nám práci usnadňují, jsme díky nim produktivnější a dokážeme snáze tvořit složitější aplikace. K takovým - pokročilejším - nástrojům se však dostaneš později. Začít s React-em nebo AngularJS jako svou první zkušeností s front-endem by byl asi masochismus. Level 1: Kde začít? Někteří z nás statické HTML stránky s využitím CSS stylů zvládli už na střední (nebo i základní) škole. Neskutečná nuda a ani jsme netušili, že to může být pro nás později užitečné. Něco podobného, ​​jako když vás rodiče nutí chodit do hudební školy a znalosti zužitkujete až o 10 let později, když s kámoši vymyslíte kapelu. [Image] Všechny weby, webové aplikace však využívají HTML a CSS naplno a proto je třeba je zvládnout úplně na začátku – poznat své možnosti. Abychom si mohli říci, že jsme zvládli základy HTML, CSS a JavaScriptu, měli bychom znát funkce elementů a atributů z prvního grafu. Také bychom měli bez problémů umět používat základní CSS pravidla a jednotky . No a měli bychom vědět, k čemu slouží jQuery a jak nám může pomoci. Všechny informace a mnohem více najdeš v Jablkovém kurzu: Webrebel 1: HTML, CSS & Javascript . Level 2: Jak pokračovat? Určitě postupem času přejdeš z jednoduchých webstránek na složitější weby. Tvůj CSS soubor bude mít 1000 řádků a každá další změna Ti zabere 3 minuty strachu, 1 minutu roboty a 25 minut testování a fixování, pokud se něco pokazilo. Je čas na lepší organizaci svých CSS stylů. [Image] CSS Použij SASS - parádní preprocessor CSS stylů, který Ti umožní organizovat styly přehledně do složek/souborů. Také můžeš definovat proměnné, které obsahují definice barev, které často používáš, nebo okraje – aby vypadaly všude stejně. Pokud je potřebuješ změnit na více místech, přepíšeš hodnotu jedné proměnné a máš to vyřešeno. SASS umí pracovat is jednoduchými funkcemi. Např. lighten() a darken() , které dokáží danou barvu zesvětlit nebo ztmavit. SASS má těch funkcí a možností samozřejmě daleko víc. Dalšími alternativami k SASS může být LESS, Stylus, PostCSS a další. My v Learn2Code jsme si oblíbili SASS. Responzivní design Responzivní design řeší problém se zobrazováním Tvého webu na různých zařízeních. Pro front-end programátora je neodmyslitelnou součástí jeho skills. Mobilních zařízení je více než obyvatel na světě - musíme optimalizovat také pro malé obrazovky. Samotné HTML a CSS3 má v sobě nástroje, které nám při takové optimalizaci mohou pomoci. Například velmi důležitý HTML meta tag je viewport , který přizpůsobí velikost písma pro malé obrazovky tak, aby nebylo příliš malé: <meta name="viewport" content="width=device-width, initial-scale=1.0"> Pomocí CSS také dokážeme ošetřit responzivitu tak, že na šířku elementů budeme používat procentuální hodnoty a pravidlo box-sizing: border-box; . Takto můžeme zadefinovat vlastní grid , kde tato pravidla použijeme. CSS3 nám velmi pomáhá při responzivním designu s @media query. Pomocí @media dokážeme oddělit CSS, které bude platit například při rozlišeních menších než 1000px od pravidel, která budou platit pro rozlišení vyšší než 1000px. Výborná věc. Responzivnímu designu věnoval Yablko také spoustu videí v kurzu Webrebel 1 . Front-end Framework Šikovníky z Twitteru napadlo, že by bylo fajn mít po ruce sadu komponent , které velmi často používají ve svých projektech. Takovými komponenty jsou například tlačítka, různé typy menu, textová pole s validacemi nebo různé nadpisy. Důležitá byla také responzivita. Aby nemuseli začínat vždy od nuly, vytvořili Bootstrap – framework, který si okamžitě získal vývojáře po celém světě. Bootstrap je obrovský urychlovač času a čas jsou přece peníze. Pokud si Bootstrap oblíbíš a poznáš ho pořádně, začneš experimentovat s upravováním jeho vzhledu a přidáváním nových funkcí například přes JavaScript. Na internetu najdeš spoustu pluginů, které rozšiřují jeho možnosti. Alternativy k Bootstrapu mohou být: Foundation, Materialize CSS, Semantic UI a různé jiné. Level 3: JavaScript Dostáváme se do posledního levelu front-end programátora, tak vysoukejme rukávy a pojďme na to:) JavaScript je jedním z nejpopulárnějších jazyků. [Image] Příchodem Single Page Applications (SPA) se jeho popularita zmnohonásobila . SPA rapidně zlepšily rychlost webových aplikací. Podstatou SPA je, že celá stránka se načte jen jednou - na začátku. Každá další změna se děje na pozadí a změní se jen část stránky s novým obsahem. Nejlepšími příklady single-page aplikací jsou Facebook, YouTube, Twitter a mnohé jiné populární weby. Ani si neumíme představit to množství JavaScriptu, které tyto aplikace obsahují, protože podstatná část celé aplikace je naprogramována právě v JavaScriptu. Spousta .js souborů na jednom webu může způsobovat nemalé problémy. Zejména pokud jsou jednotlivé soubory na sobě závislé. Velmi jednoduchý příklad: napíšeme-li vlastní JS plugin k zobrazení foto galerie, který je závislý na jQuery. Když prohlížeč stáhne a spustí náš plugin, už musí mít k dispozici knihovnu jQuery. Je úkolem front-end programátora, aby takové problémy vyřešil. JavaScript naštěstí obsahuje obrovské množství nástrojů, které nám pomáhají řešit podobné problémy. Zde jsou některé situace a jejich řešení: • Správa závislostí – pokud je knihovna závislá na dalších knihovnách, pomohou nám npm nebo yarn • Automatizace činností – velkou pomocí je například automatický refresh prohlížeče při každé změně kódu. Takové a podobné tasky můžeme řešit přes gulp , grunt nebo npm • Správa modulů - nainstalované závislosti je třeba poskytnout prohlížeči ve formě výsledného .js souboru. Zde nám mohou pomoci webpack , rollup , RequireJS , browserify • Automatizované testování - abychom při každé změně nemuseli celou aplikaci testovat ručně, pomohou nám jíst , mocha nebo jasmine • Syntaxe - abychom neprodukovali JS špagety kód, vznikají nové standardy, které zpřehledňují syntaxi JavaScriptu - ES5 , ES6 nebo ES7 . Babel pomůže prohlížeči tuto novou syntaxi pochopit. JavaScript frameworky a knihovny Podobně jak nám Bootstrap pomohl s responzivitou a některými často používanými komponentami, existují i ​​JavaScript frameworky, které doplňují svět front-end programátora a celý vývoj komplikované SPA urychlují. Popsat každý framework není úkolem tohoto článku, pokud však některý z nich preferuješ, napiš nám do komentářů který a proč. Zde jsou nejpoužívanější: • React – Facebook vytvořil React jako řešení pro své komplikované uživatelské prostředí. Hlavní ideou je vytvoření komponent, které lze použít na více místech v aplikaci. Pokud uživatel provede nějakou akci a změní se obsah stránky - prohlížeč překreslí jen konkrétní komponentu. • Vue.JS - Alternativní knihovnou k Reactu je Vue.js, která se těší stále větší popularitě. Výhodou je přehlednější a lehčí syntax, kde se nemíchá HTML kód s JavaScriptem – což některým vývojářům nevyhovovalo • AngularJS - Vytvořený firmou Google je na rozdíl od React a VueJS plnohodnotným frameworkem - obsahuje také nástroje pro komunikaci s databází. Další alternativy k nejpoužívanějším frameworkům/knihovnám: EmberJS, Preact, Inferno a mnohé jiné. Level 4: Ano, existuje i level 4. Jsou to přídavné znalosti naskillovaného front-end programátora. Například bezpečnost - prevence před CSRF, XSS, DNS pinning nebo clickjacking útoky. Také poznání psychologie uživatele je obrovskou výhodou – priorizovat použitelnost a přístupnost aplikace před odvážným designem. Marketing , SEO , ... a mohli bychom jít dál. Důležité je nikdy se nepřestat vzdělávat , získat co největší rozhled v technologiích a v neposlední řadě nepodlehnout popularitě některého z nástrojů, ale zvolit nástroj tak, aby splnil svůj účel.
Frontend vs Backend: v čem je rozdíl?
Vzdělávání
28.05.2017
Lubo Herkoo

Frontend vs Backend: v čem je rozdíl?

V únoru 1997 bylo na síti Internet přístupných milion webů. To bylo před dvaceti lety  (také jsem si právě uvědomil jak jsem starý) . Dnes bychom je počítali ve stovkách milionů. Od té doby prošel vývoj webů neskutečnými změnami. Z jednoduchých prezenčních stránek nakreslených ve skicáři a oživených HTML, CSS a JavaScript kódem se staly složité CMS, LMS, CRM a WTF systémy postavené na některých z desítek back-end technologií. Data můžeme ukládat do SQL nebo NoSQL databáze a soubory již nenahráváme jednoduše na server přes FTP, ale používáme složité build systémy, které náš kód nejprve otestují a teprve poté posunou do produkce. Aplikace otevíráme na tabletech, chytrých telefonech, laptopech, ledničkách, … – proto je dobré pokud mají responzivní design. Aby té terminologie nebylo málo. Jednomu programátorovi to množství technologií, se kterými se denně potýká, začíná přerůstat přes hlavu. Proto se web vývojáři začínají specializovat. Dvě nejvýraznější skupiny jsou front-end a back-end vývojáři. Další by byli  full-stack  vývojáři,  DevOps .. Tento text ti pomůže pochopit, co je úkolem front-end a back-end vývojáře as jakými technologiemi nejčastěji tyto dvě skupiny vývojářů pracují. PolopatistickyPokud chce programátor postavit dům, nejprve zavolá back-end tým: zedníka a tesaře. Back-end zedník mu vybetonuje základy, postaví stěny, vyzdí otvory na dveře a okna. Později mu pomůže back-end tesař. Ten postaví střechu. V takovém domě by se však bývalo těžko – proto přijde front-end tým: malíř a bytový designér. Front-end tým zútulní cihlové zdi a zařídí dům – aby vše vypadalo parádně, spolu ladilo a hlavně  plnilo svůj účel . Pokud to přeměníme na web-development svět, tak back-end je základem pro naši aplikaci. Je to skrytá část aplikace (uživatel ji nevidí), která úzce spolupracuje se serverem, databází. Úkolem back-end programátora je tvořit kód, který je efektivní, zbytečně nezatěžuje server, databázi. aby uživatel nečekal příliš dlouho na potřebná data. Už dvě vteřiny jsou nekonečno. Front-end je zase ta část aplikace, kterou vidí a pracuje s ní uživatel. Často je označována pojmem  User Interface  (UI). Úkolem front-end programátora je, aby se aplikace zobrazovala každému uživateli správně a aby mu co nejvíce usnadnila práci s aplikací. Front-end programátor umí z tvého jednoduchého kliku na tlačítko vyrobit parádní animaci, která ti např. odkryje další možnosti práce s aplikací. Jazyky, nástrojeVývojáři pracují s řadou technologií, které se někdy mění od projektu k projektu. Diagramy zobrazují jen nejpoužívanější technologie . Důležité je rozumět, že ne všechny technologie z diagramu musí vývojář ovládat – je však dobré o většině z nich alespoň něco vědět – u velkých projektů může mít některá technologie výhody, jiná nevýhody. To je ale na dlouhou debatu a měl by to řešit vývojářský tým interně, nejlépe face-to-face. V žádném případě nedoporučuji ptát se na sociálních sítích, zda je lepší React, nebo Vue JS. Nikam to nevede :)  [Backend technologie] [Frontend technologie] Samostatnou kapitolu by mohly tvořit webové frameworky jako Ruby on Rails, Laravel nebo ExpressJS. Ty nám usnadňují postavit celou aplikaci – front-end i back-end část. Technologie v Learn2CodeKaždá webová aplikace má jiné nároky a výběr technologií často souvisí i se zkušenostmi a preferencemi týmu řízeného zkušeným CTO. Takový koktejl technologií jsme namíchali v Learn2Code pro naše projekty: Front-EndPracujeme s frameworkem Ruby on Rails. S  front-end  částí aplikace nám v Rails pomáhá SASS preprocesor, díky kterému máme CSS styly pořádané v komponentech a velmi snadno se v nich orientuje. Základ našeho layoutu tvoří framework Bootstrap, jehož vzhled je upraven pomocí CSS stylů – opět s využitím SASS. Na některé části aplikace https://skillmea.sk jsme nasadili React – prohlížení videí, fórum. Ve starších projektech stále využíváme jQuery. Uvažovali jsme nad experimentováním s Vue.js, nakonec tuto technologii neimplementujeme. Yablko však bude dělat online kurz na Vue.js :) React a všechny jeho závislosti spravuje NPM – Node Package Manager a WebPack, který nakonec vyplivuje jeden velký  bundle.js soubor. Back-EndJelikož používáme Rails,  back-end  je psán ve skriptovacím jazyce Ruby. K testování používáme RSpec. Používáme relační databázi PostgreSQL, kde máme uložena všechna  data. DevOpsAplikace nám běží na serverech Heroku. Obrázky skladujeme na Amazon S3. Video obsah je uložen na serverech Vimeo, se kterými komunikuje React prostřednictvím REST API. Kód všech projektů skladujeme v privátních repozitářích na GitHub. Na nekvalitní kód nás neustále upozorňuje RuboCop a JSHint. Nasazení nových funkcí do hlavní aplikace je řízeno s pomocí Continuous Integration-CodeShip.com . Některé z technologií, které používáme možná znáš. Některé z nich tě dokonce umíme naučit iu nás v Learn2Code, stačí podívat se na seznam kurzů . V dalších blozích se podíváme na front-end i back-end detailněji. Pokud máš nějaké otázky, postřehy nebo jsi něčemu nerozuměl, napiš komentář.
Programování bez Ing. - i bez diplomu z informatiky
Vzdělávání
21.03.2017
Lubo Herkoo

Programování bez Ing. - i bez diplomu z informatiky

Nemáš diplom z informatiky a chceš být programátor(ka)? Žádný problém! Během mého interview na pozici programátora v Learn2Code nikoho nezajímalo, co/kde jsem studoval. Důležité byly zkušenosti, portfolio a (snad) rozumné odpovědi na otázky. [Na programování nepotřebuješ titul] Kniha o JavaScriptu, kterou jsem nikdy nepřečetlProgramovat webové aplikace jsem se naučil sám. Stavěl jsem na základech ze střední školy, kde jsem zjistil, že web dokáže "postavit" i obyčejný smrtelník. Tehdy jsme na hodinách informatiky programovali Pascal, později ve vyšším ročníku i VisualBasic nebo C++. Tyto jazyky mě však moc nezaujaly. Neřešili žádný zásadní problém v mém životě, proto nám v task-baru vždy svítil CounterStrike 1.6 nebo Divoké kmeny - browserová online hra. V maturitním ročníku nás však na předmětu multimédia naučili tvořit jednoduché weby s využitím jazyka HTML a pravidel CSS. HTML & CSS jsou super v tom, že jakmile změníte svůj kód, stačí refresh prohlížeče a změny vidíte okamžitě.  Žádná kompilace kódu, žádné využívání komplikovaných knihoven pro zobrazování grafiky. Jednoduchý systém: pravidlo - výsledek. Web také stačilo nahrát přes FTP na některý z volně dostupných free hostingových serverů a viděl to celý svět. Sice vám to oblepili reklamou od vrchu až dolů, ale kámošům jsem poslal jen link a voila... Fotky z dozvuků si mohl prohlédnout každý, kdo měl internet. Během prodloužených prázdnin před studiem na vysoké škole jsem budoval svoji home-page. Chtěl jsem tam moc mít moderní vysouvací menu. Zjistil jsem, že takové menu bez JavaScriptu nedám. Koupil jsem si tedy svou první "programátorskou" knihu: JavaScript - programujeme internetové aplikace . V českém jazyce. Nikdy jsem se nedostal za 1. kapitolu: Začínáme - stáhl jsem hotový .js soubor s menu, které vypadalo tak, jak jsem chtěl. Vůbec jsem netušil, jak to celé funguje, ale hledal jsem. Tehdy mě Google poslal na neskutečný zdroj informací, web, který jsem jako jediný přečetl celý: jakpsatweb.cz. Boom!  Guestbook.PHPJelikož web bez knihy návštěv nebyl webem, zkoumal jsem možnosti. Potřeboval jsem nějaké PHP a to zase potřebovalo nějaké MySQL a nějak to bylo spolu propojeno. Pochopit princip PHP a databází mi pomohl český tutoriál, který jsem už dnes bohužel nenašel. Podařilo se mi dát dohromady soubor s asi 500 řádky PHP spaghetti kódu a guestbook.php byl na světě.  Výběr vysoké školy neměl nic společného s kariérou programátora. Studoval jsem učitelství anglického jazyka a informatiky na Katolické univerzitě v Ružomberku. Studium učitelské informatiky se moc neliší od středoškolské informatiky na technické škole, takže jsem se přes přednášky vrátil k Divokým kmenům. Moje spolužačka tehdy hledala někoho, kdo pomůže jejímu kamarádovi propagovat webem neziskovou organizaci, která pomáhá africkým dětem. Za peníze. Jelikož jsem zvládl guestbook.php, zvládnu i toto. Nevěřil jsem vlastním očím, když jsem při psaní tohoto textu našel svoji první zakázku v životě: LiveAid CZ. Pamatuji si, že můj honorář byl 400, - SK. WordPressJelikož jsem pořád snořil kolem PHP, narazil jsem i na redakční systém Wordpress. Ten mi pomohl pracovat efektivněji a zvládnout zakázky rychleji. Při práci s Wordpress jsem zvládl i objektové programování v PHP – pomohla mi k tomu výborná kniha od O'reilly: Programming PHP, je to však spíše příručka než nějaký tutoriál.  Ruby on RailsBěhem celé té doby jsem byl v kontaktu se svým kamarádem, spolužákem ze střední školy. Stále jsme debatovali o Apple, IT, programování. Jemu PHP nikdy nesedělo. Byl vždy trendy a také pořád něco programoval – nevěděl jsem však v jakém jazyce. Jelikož jsme oba studovali na VŠ (on na FEI STUBA) a bylo pro nás jako studenty poměrně snadné dostat se do USA, využili jsme toho. Po několika týdnech práce jsme objednali své první MacBook Pro. Podstatné na tom celém je to, že on za ty tři měsíce v USA po večerech naprogramoval vlastní verzi browserové hry Babylon (bohužel ji nikdy nepublikoval online). Občas zmínil nějaké railsy , ​​ale nikdy jsem tomu nevěnoval pozornost. Až jsme začali kecat a já jsem postupně vyměnil PHP za Ruby on Rails.  To, že jsme investovali do laptopů, si všiml i majitel hotelu, ve kterém jsme pracovali. Dali jsme řeč, zjistili jsme, že mu umíme pomoci s webem pro jeho hotely a od té doby jsme měli teplé místo v kanceláři, kde jsme vytvořili http://angelinnhotels.com/ . Webdesign nic moc, ale nemuseli jsme čistit klimatizace a pokoje po Američanech s nevychovanými dětmi.  VIVANTPo návratu z USA jsme s Josefem komunikovali intenzivněji. Vytvořili jsme firmu a dostali jsme se k profi zakázce od Ministerstva školství. Vyhráli jsme soutěž na vytvoření systému pro správu neziskových organizací v rámci ČR. Rozdělili jsme úkoly a pustili se do toho. Bylo to vzrušující období. Kupovali jsme svůj vlastní server, který jsme umístili do serverovny v Bratislavě. S pomocí Josefova bratra - linuxového guru - jsme ho nakonfigurovali. Na vývoj aplikace jsme samozřejmě použili Ruby on Rails a databázi PostgreSQL. Byl to první seriózní projekt, který však měl také své zasmluvené termíny. Projekt VIVANT, jak jsme jej nazvali, jsme dotáhli do úspěšného konce. Používá se dodnes ( http://adam.iuventa.sk ).  Restart - online kurzyBěhem práce na VIVANT jsem dokončil vysokou školu a začal pracovat jako učitel na ZŠ. Nevím jestli to bylo správné rozhodnutí, nebo ne. Řekl jsem si, že programovat budu moci i při práci učitele. Než jsem učil na poloviční úvazek, tak to také bylo možné. Později jsem však zjistil, že práci učitele na plný úvazek jen stěží dokážu spojit s další mentálně náročnou prací po večerech. Učitelování mě však natolik vzalo, že jsem postupně přestal programovat téměř úplně. Sledoval jsem trendy, zajímal se o dění, ale nepracoval jsem na žádném projektu.  Přestávka trvala téměř 6 let. Představa sebe – učitele v důchodu – mě později natolik vystrašila, že jsem se rozhodl odejít ze školství a zkusit restart svého programátorského řemesla. Problém byl v tom, že jsem zameškal dvě verze Ruby On Rails, ve světě PHP přibyl nový důležitý framework Laravel a zjistil jsem, že svět JavaScriptu je totálně někde jinde než před pěti lety - React, Angular, EmberJS, NodeJS... Nic z toho jsem neovládal. I pozůstatky know-how před pěti lety už byly neaktuální. Mé znalosti potřebovaly refresh. Zvolil jsem cestu online kurzů. Díky dobré angličtině jsem sáhl na kurzy Udemy. Později jsem objevil i jiné portály – Codeschool, Pluralsight, Egghead, Codecademy. Z každého portálu jsem absolvoval alespoň jeden kurz. Naučil jsem se co je nového v Ruby a Ruby on Rails, jak umím testovat své webové aplikace. Zlepšil jsem se v Git. Pochopil jsem, jak funguje JavaScript. Naučil jsem se základy EmberJS, React a NodeJS. Zlepšil jsem své znalosti v oblasti databází, naučil jsem se pracovat is NoSQL databázemi. Nemusel jsem nikam chodit. Všechno jsem zvládl v pohodlí domova, vlastním tempem. Job v Learn2CodeKdyž se mi jak-tak vrátilo sebevědomí a zrealizoval jsem pár malých projektů, na Facebooku zasdílel někdo pozici Ruby on Rails programátora v Learn2Code. Zlátal jsem svůj životopis, dostavil se na interview do velkého města. Rada (CEO) jsem upozornil na svou ztroskotanou učitelskou kariéru a promluvil jsem o svých projektech. Rozhodli se to se mnou zkusit. Já nelituji, Ráda se ale musíte zeptat vy :) Do it! Naučit se programovat weby není tak náročné, jak by se na první pohled mohlo zdát. Absolvovat online kurzy bylo příjemné a ve většině případů i zábavné, někdy to však byla i pořádná otrava – je třeba ale vydržet. Lidé, kteří kurzy vyrábějí tam nikdy nedají vatu, aby natáhli čas. Teď mám možnost nahlédnout i do Yablkových kurzů a konstatuji, že můj guestbook.php by neměl podobu 500 řádkového spaghetti kódu, kdybych mohl můj český tutoriál vyměnit za jeho Webrebel .
Pomozte nám darováním 2% daní
Vzdělávání
14.02.2017
Martina Baumann

Pomozte nám darováním 2% daní

Daňová přiznání se blíží, takže bychom vám rádi připomněli. Také v letošním roce mají zaměstnanci, fyzické a právnické osoby příležitost pomoci našemu občanskému sdružení. Darováním 2% vašich daní nám pomůžete dále poskytovat a šířit vzdělávání v oblasti digitálních dovedností. Občanské sdružení Learn2Code funguje od prosince 2012 a naším hlavním cílem je přinést kvalitní vzdělání v nejmodernějších technologiích dětem, studentům, absolventům, uchazečům o zaměstnání, mladým lidem a zároveň všem, kdo by se chtěl naučit mluvit IT. Jaký byl rok 2016?V roce 2016 jsme s týmem přinesli několik zajímavých online a prezenčních kurzů a nezmeškali jsme různé události ani zprávy. Zmiňme alespoň několik z nich. Vytvořili jsme několik bezplatných seminářů pro učitele, kde se naučili vše, co potřebují vědět pro oddělené řízení programových prstenů ve své škole, jakož i kompletní materiály a metodické postupy. [Image] Nezapomínáme na ty nejmenší a letos jsme také uspořádali letní kódové tábory, kde se děti naučily vytvářet vlastní hru. Zpravidla jsme letos mysleli na ženy, když se více než 40 žen naučilo programovat Rails Girls v Bratislavě. Zkušení mentoři pocházeli nejen ze Slovenska, ale také přivítali hosty z Prahy a Vídně. Organizátoři semináře mysleli na všechno, dívky byly rozděleny do skupin podle dosavadních zkušeností s programováním. [Image] Rails Girls Bratislava 2016  V říjnu jsme uspořádali kurzy popularizace programování na základních školách v rámci Týdne EU Code Week a kromě Bratislavy jsme také přivítali Žilinu, Banskou Bystrici a Košice.[Image] V roce 2016 jsme také naučili naši nejstarší generaci základy počítačové práce, jak hledat internet a zabezpečení počítače. Více o tomto projektu Na webu najdete vnitřek. [Image] Co jsme pro vás připravili v roce 2017V letošním roce pokračujeme opět s dětskými kurzy, ve kterých se děti od 8 let učí základům programování v Scratch, MIT App Inventor nebo dokonce JavaScript u dospělých. Pokračujeme v přípravě různých akcí, samozřejmě, že pro ženy Rails Girls nebude žádná oblíbená událost nebo soutěž pro programátory - frontenisty Kód ve tmě. Zase jsme se více zaměřili na učitele. Jak? I v letošním roce nabízíme vzdělávání učitelů prostřednictvím pracovních seminářů, které jsou zcela zdarma. Začátkem února 2017 jsme připravili školení pro učitele informatiky, ve kterém představujeme interaktivní vzdělávací hru pro děti. Díky tomu se děti naučí programovat v hravé formě. A to je také velká novinka, kterou bychom chtěli co nejvíce rozšířit na základní školy. Interaktivní vzdělávací hra GalaxyCodr je zdarma a děti od 7 let jej používají k tomu, aby se naučily základy programování v hravé formě.[Image] Také jsme mysleli na samotné školy a během roku připravujeme řadu vzdělávacích materiálů, které budeme distribuovat všem základním a středním školám na Slovensku zcela zdarma. Jak darovat 2%?Identifikační údaje o občanském sdružení, které mají být uvedeny v daňovém přiznání nebo sděleny vašemu zaměstnavateli: Název: Learn2Code Forma: občanské sdružení Sídlo: Vajnorská 100 / A, 83104 Bratislava IČO: 42346703 DIČ: 2023850763 Pokud jste zaměstnanec a nepodáváte daňové přiznání: Do 15.2.2017 požádejte svého zaměstnavatele, aby provedl roční vypořádání placených daňových záloh. Požádejte ho, aby vystavoval Osvědčení o zaplacení daně. Pokud jste v roce 2016 pracovali dobrovolně minimálně 40 hodin a dostanete se o tom Potvrzení od organizace / organizace, pro které jste dobrovolně pracovali v roce 2016, vypočítejte 3% zaplacené daně. Vyplňte PROHLÁŠENÍ o poukaz 2% a doručte oba formuláře spolu s potvrzením daňovému úřadu podle vašeho bydliště (, pokud poukážete na 3% daně, povinná příloha je také potvrzením práce nejméně 40 hodin dobrovolnictví ). Pokud jste fyzická osoba, která sama podá daňové přiznání ( SZČO ): Pokud jste nebyli dobrovolníkem v roce 2016 nebo jste dobrovolně méně než 40 hodin, musíte vypočítat 2% zaplacené daně ( suma alespoň 3 € ). Pokud jste v roce 2016 pracovali dobrovolně minimálně 40 hodin a dostanete se o tom Organizace pro dobrovolnictví a vysílání 2016 nebo Dobrovolnictví-příjemce 2016, vypočítat 3% zaplacené daně. V daňovém přiznání pro fyzické osoby jsou voucher boxy 2 ( 3 )% daně ve prospěch Learn2Code o.z. Do 31.3.2017 doručte řádně vyplněné daňové přiznání daňovému úřadu podle svého bydliště a v této lhůtě zaplatíte daň z příjmu. Pokud jste právnická osoba: Pokud do 31. března 2017 věnujete částku alespoň 0,5% své daně pro účely veřejné výhody, můžete nahlásit 1,5% své daně z příjmu. Pokud darujete alespoň 0,5% své daně pro veřejné účely až do data podání daňového přiznání, můžete nahlásit pouze 1% své daně z příjmu. Dodejte řádně vyplněné daňové přiznání daňovému úřadu podle svého sídla ve lhůtě, kterou máte k podání daňového přiznání, a v této lhůtě zaplatíte daň z příjmu. Máte-li jakékoli dotazy, napište nám nebo zavolejte na číslo 0948 828 228. Děkujeme za podporu našich vzdělávacích aktivit.
Remote práce z Nikaraguy a Kostariky
Vzdělávání
29.01.2017
Martin Lipták

Remote práce z Nikaraguy a Kostariky

Všechno to začalo Erasmem v Madridu před 3 lety. Byl to můj první delší pobyt mimo Slovensko a velmi mě inspiroval cestovat dál. Hned po škole jsem chtěl vyzkoušet život v jiných městech Evropy. Prvním cílem byl Manchester v Anglii. Rychle jsem si ale uvědomil, že život v kterémkoli evropském městě není až tak odlišný od toho, co jsem už zažil v Bratislavě nebo Madridu. Když už vyvinu tolik úsilí, abych se někam přestěhoval a zvykal si na nové prostředí, ať je to úplně jiná země na opačné straně planety, kde bude opravdu všechno naopak. A proč jsem si vybral právě Nikaraguu a Kostariku? Latinská Amerika byla mým prvním cestovatelským cílem mimo Evropu, protože se učím španělsky. Neuměl jsem se rozhodnout mezi Severní a Jižní Amerikou, tak jsem si vybral Střední. Na Slovensku znám více lidí původně z Nikaraguy a ti mi doporučili svou zemi kvůli bezpečnosti a nízkým cenám. Z Kostariky jsem nikoho neznal, ale jelikož je docela známá mezi digitálními nomády a je soused Nikaraguy, zařadil jsem ji do seznamu. V září 2016 jsem přiletěl do Managuy. Lokální kamarád mě vyzvedl na letišti a zavezl do bytu, který pro mě našel. Bylo to v dobré čtvrti poblíž centra. Jediná nevýhoda bylo špatné připojení k internetu - velmi nespolehlivé a signál nedosáhl do bytu. Později jsem ale objevil, že na terase se to dalo, tak jsem právě tam zřídil svoji kancelář. Ve 30 stupních každý den nebyl problém pracovat venku. [Image] Terasová kancelář v Manague Už předtím, když jsem byl ve zmíněném Manchesteru, jsem pracoval dálkově. Je to v podstatě práce z domova. Jedinou změnou byl 8hodinový rozdíl v čase. Když jsem já měl ráno, kolegové měli večer a už pomalu končili. Nebyl ale problém volat s nimi ráno, když jsme potřebovali leccos vybavit. Když jsme nepotřebovali, ani jsme nevolali. Vystačili jsme si s nástroji jako Slack, Trello nebo Github pull requests. Doma jsme zvykli mávat Scrum setkání každé ráno, kde každý v rychlosti řekl, co dělal včera a co plánuje na dnes. Kvůli časovému rozdílu jsme se rozhodli dělat scrum daily „offline“ – každý napsal do slack kanálu na konci svého dne shrnutí, co dělal a co plánuje. Ostatní si to přečtou kdykoli mají čas v jejich časové zóně. Mimochodem, z té terasy jsem vůbec neměl špatný výhled.[Image] Parque de Japón - výhled z mé terasy Cestování by ale nemělo smysl, kdybych celé dny jen pracoval :) Po večerech jsem chodil s kamarády ven nebo na kurzy tance. A kdybych neměl Hangout volání s kolegy, zapomněl bych i češtinu, protože jsem stále mluvil španělsky. Pokud se učíte cizí jazyk, není lepší trénink než jít do země, kde se mluví. O víkendech jsem vyrážel z hlavního města a dělal výlety po krásné Nikaragui - sopka Masaya, koloniální města Granada a León, kávové plantáže u Matagalpy, pláže v Pochomil a San Juan del Sur. [Image] Jezero Nikaragua - Velké jezero se dvěma sopkami ve středu Po dvou měsících v Nikaragui jsem se přesunul do Kostariky. Pronajal jsem si pokoj v domě kamaráda a strávil měsíc s jeho rodinou. Večer jsme chodili ven ao víkendech udělali pár výletů hlavně na pláže v Pacifiku - Sámara, Jacó a Playa Hermosa. Později jsem šel s dalším kamarádem do Národního parku Manuel Antonio. Plánoval jsem se podívat i Karibik a jít do Panamy, ale pokazil mi to hurakán Otto, který v těchto místech právě vyčínal.[Image] Playa Hermosa - v překladu krásná pláž V Kostarice jsem pracoval z co-workingu. Bylo to o dost pohodlnější než „terasová kancelář“, i když bez výhledu. Dobrý internet, ergonomické sezení a komunita malých firem a jiných freelancerů. Takže každé ráno jsem šel na autobus a odvezl se do „práce“. [Image] Kostarický co-working Nikaragua i Kostarika jsou krásné země a vyplatí se je navštívit. Mluví skoro tím samým jazykem, mají skoro stejnou kuchyni ai lidé jsou si v mnoha věcech podobní. V Kostarice skoro všichni mluví anglicky a je tam o něco lepší infrastruktura, ale na druhé straně je dvakrát dražší než Slovensko. V Nikaragui minete zhruba tolik jako na Slovensku. Když už tam půjdete, vyplatí se navštívit více zemí a srovnáte sami :) [Image] K obědu nemůže chybět rýže, fazole a banány Hodně lidí se mě ptá, proč jsem ve Střední Americe nezůstal, když je tak super. Některé věci, které na Slovensku bereme jako samozřejmost, jsou v jiných částech světa úplně jinak. • dost jsem se zlobil na kvalitu připojení na internet, i když teď už jsem na Slovensku a blog píšu z kavárny, protože doma mi právě dnes internet nefunguje (nebudu jmenovat poskytovatele, to je na jiný příspěvek) • všichni jezdili auty a infrastruktura pro lidi, kteří mají rádi zdravý vlastní pohyb, nebyla až tak vyvinuta. Dostat se na některá místa pěšky bylo riskováním života. A tak vypadala města - samé zácpy, špinavý vzduch a mnoho lidí s velkou hmotností • v Bratislavě se běžně ve čtyři ráno přejdu z jedné části města do druhé pěšky bez jakéhokoli stresu, že by se něco mohlo stát. Ve Střední Americe, když jsem chtěl jít v noci 15 minut pěšky domů, kamarádi mě raději zavezli. Neměl jsem žádný problém, ale všichni mě pořád varovali a byl jsem velmi opatrný, když jsem byl sám na ulici. • hledal jsem aktivní komunity vývojářů, startupistů, polyglotů a nevím koho, co by se pravidelně potkávaly, ale skoro nic takového neměly. V Bratislavě je toho hodně, každý den se dá jít někam (možná přeháním, ale je toho dost). Navzdory těmto věcem se mi ve Střední Americe moc líbilo a rád se tam někdy vrátím. A kam dál? Jihovýchodní asie? Thajsko? Autorem blog postu je Martin Lipták, programátor v Learn2Code. Máš nějaké dotazy na Maťa, na remotě práci nebo na střední Ameriku? Napiš je do komenáře.
Představujeme Marka - lektora kurzu UI/UX design
Vzdělávání
23.01.2017
Skillmea

Představujeme Marka - lektora kurzu UI/UX design

Marek se k designu dostal tak, že na začátku roku 2006 začal s 3D grafikou. Na střední škole zkusil CGI v programech Cinema 4D a Blender. Během studia strojního inženýrství začal pracovat s 2D grafikou. Pracoval na plakátech, banerech, CI a kampaních pro občanské sdružení Ynet a menší společnosti. Po univerzitě měl chuť zkusit něco nového a naučit se pracovat v týmu. Dostal se do digitální agentury PLATFORM, ve které pracoval na moderních projektech pro velké i menší klienty. Setkal se zde wirefrejmy, UI a UX, psychologii barev, pracoval na UI/UX mobilních aplikací pro iOS a Android. Marek se snaží neustále zlepšovat a zkoumat nové věci, tak se seznámil s moderními programy Affinity Designer s Sketch. V současnosti spolupracuje na tvorbě mobilních a webových aplikací pro společnost Pixwell. Markovy práce si můžeš prohlédnout na jeho Dribbbli. Marku, jak ses dostal k UI/UX? Začal jsem před lety s 3D grafikou, postupně jsem se dostal k printu, tvorbě posterů a 2D grafice. Později někdo potřeboval web, takže jsem se dostal k digitálu. Léta jsem byl na volné noze, chyběla mi zkušenost s prací v týmu, tak jsem se hlásil do agentury, kde jsem začal s mobilními aplikacemi a tedy is UI a UX. Co je podle tebe tvou nejsilnější designérskou stránkou a jak jsi tuto dovednost zlepšoval v posledních letech? Velká představivost 😀 Nejtěžší je pak všechny ty nápady dostat na displej. Léty jsem zlepšoval hlavně svůj technický skill, který ti pomůže představy a nápady velmi chytře dostat na obrazovku, a vlastně i do reálného světa. Jak sleduješ aktuální trendy a inovace v UX designu? Každý den sleduji tvorbu jiných i zkušenějších designérů i nováčků. Učit se je třeba pořád. Sleduji i jiné oblasti umění, kde se inspiruji, samozřejmě Instagram, Pinterest, Twitter, Dribbble a Behance, Muzli atd. [Ukázka práce Marka - taxi aplikace] Je někdo v UX oblasti, koho opravdu velmi uznáváš nebo kdo tě inspiruje? Pokud ano, tak proč? Nemám nikoho, koho bych vysloveně uznával, sleduji práci velkého počtu lidí. Inspiruje mě hlavně hledání řešení, tak aby byla moje práce pro lidi užitečná v každodenním životě. Co si myslíš, že bude příští velká změna v UX/UI designu v budoucnosti? UI a UX design velmi ovlivňují nové technologie a jejich změny. Různé smart hodinky, force-touch displeje, přišli jsme o 3,5mm konektor, rozšiřuje se USB-C. Tyto změny s sebou přinesou nový pohled na používání zařízení a samozřejmě také na ovládání nových aplikací, takže budeme hledat nová řešení pro UI/UX. Na jakých projektech nejraději pracuješ? Na takové, kde mám volnou ruku, resp. klient si nechá poradit 😊 Co bys doporučil začínajícím UX/UI designérům, jak mohou nastartovat svoji kariéru? Platí staré známé, učit se, …, hodně si vyzkoušet, trénovat a nebát se učit na vlastních chybách. Čím více toho udělá, tím více se naučí. Máš nějaké dotazy na Marka? Napiš je do komentářů. Zajímáš se o UX/UI design, ale nevíš kde začít? Od března 2017 spouštíme v Bratislavě prezenční kurz zaměřený právě na toto téma, viz si detail kurzu a jeho osnovu a v případě zájmu se přihlaš.