Náš blog

Porovnanie softwaru: DaVinci Resolve vs. Final Cut vs. Premiere Pro
Vzdelávanie
15.01.2022
Skillmea

Porovnanie softwaru: DaVinci Resolve vs. Final Cut vs. Premiere Pro

DaVinci Resolve je dobre známy ako robustná platforma na color grading a korekciu farieb. Zatiaľ čo Premiere Pro je vysoko rešpektovaný NLE editor (non-linear editor). Premiere Pro je tiež plne integrovaný s ďalším softvérom Creative Cloud od Adobe, vrátane: Photoshop, Illustrator, Audition a najviac s After Effects. Ďalším hráčom na trhu editovania a tvorby videa je Final Cut Pro X od Apple. Final Cut Pro, Adobe Premiere Pro a čoraz populárnejší DaVinci Resolve súperia o pozornosť dnešných video editorov. Pozrime sa na výhody a nevýhody jednotlivých programov a sami sa rozhodnite, ako každý z nich bude vplývať na váš pracovný workflow a zvýšenie produktivity. 🌍 Celkový prehľad Začnime všeobecným pohľadom na každú platformu a na to, čo ju v tomto porovnaní odlišuje od ostatných. DaVinci Resolve Firma Blackmagic Design premenila DaVinci Resolve z aplikácie na color grading na výkonnú aplikáciu pre postprodukciu videa. Resolve sa snaží spojiť rýchlosť Final Cut so známymi konvenciami Premiere Pro. Stránky Cut a Edit vám umožňujú zvoliť si svoj prístup k úpravám. Dokonca pridali externý hardvér, aby do procesu strihu vniesli tradičný pocit „pásky“.  Nasleduje grafika založená na nodoch, efekty a triedenie farieb. Farebné nástroje DaVinci Resolve sú vysoko nad konkurenciou a prinášajú skutočne vynikajúce výsledky. Zvuk Fairlight dáva editorom možnosť pracovať na svojom zvuku priamo v aplikácii. Final Cut Pro S Final Cut Pro X ponúka Apple najneortodoxnejšie riešenie v tejto skupine programov. Apple vo svojom prístupe k úpravám považuje video za „údaje“ a nie za „filmové klipy“. Nástroje na organizáciu, kľúčové slová a protokolovanie umožňujú editorom efektívne a rýchlo organizovať obrovské množstvá záznamu. Magnetická časová os zdôrazňuje skôr vzťahy medzi klipmi než celkovú časovú os a efektívne pracuje na zefektívnení každého kroku procesu.  Final Cut Pro je takisto neustále optimalizovaný pre hardvér Apple a rodinu kodekov ProRes. Výsledkom je editor, ktorý sa zameriava na metadáta pre organizáciu a rýchlosť v strihu aj exportu videa. Adobe Premiere Pro Až do verzie Final Cut Pro 7, Final Cut Pro a Premiere Pro zaujali do značnej miery podobný prístup k postprodukcii. Keď Apple radikálne zmenil svoju editačnú paradigmu s príchodom Final Cut Pro X, Adobe sa zameral na editorov, ktorí zmenu neuvítali.  V mnohých ohľadoch sa spoločnosť Adobe zameriava na to, aby bola najbežnejším nástrojom. Známe koncepty, ako sú koše a stopy, skúsení editori veľmi dobre poznajú. Tí, ktorí pracujú s VFX, milujú dynamické prepojenie medzi Premiere Pro a After Effects, ktoré umožňuje projektom presúvať sa medzi rôznymi nástrojmi Adobe bez toho, aby ich editori museli exportovať alebo dekódovať. Adobe tiež obsahuje silnú súpravu výkonných zvukových nástrojov v balíku Creative Cloud s Adobe Audition, ktorý pomáha editorom vyladiť zvuk do finálnej podoby bez toho, aby opustili ekosystém Adobe. Okrem toho na Premiere Pro nájdete viac editorov ako na iných platformách, vďaka čomu je skvelou voľbou pri spolupráci s inými tímami, vzdelávanie a riešenie prípadných problémov.[Image] DaVinci Resolve 🧩 Rozhranie (interface) DaVinci Resolve DaVinci Resolve používa free-form editor časovej osi. Rozdeľuje ich do viacerých sekcií, aby bolo možné ľahšie nájsť a pochopiť rôzne časti úpravy videa. Bezplatná verzia ponúka päť sekcií – Cut & Edit, Fusion, Color, Fairlight a Deliver. Fairlight je miesto, kde môžete upravovať zvuk videa. Final Cut Pro Final Cut Pro využíva magnetickú časovú os, ktorá všetko zjednodušuje do jednej stopy a efektívne organizuje. To poskytuje Final Cut Pro výhodu používania zjednodušenej časovej osi, ktorá uľahčuje novým používateľom úpravy videa. Nemôžete si ju však prispôsobiť podľa svojich predstáv, ale pomocou klipov môžete robiť všetko, ako je zlučovanie, označovanie, pridávanie grafiky a mnohé ďalšie. Adobe Premiere Pro Premiere Pro používa časovú os tradičného nelineárneho editora (NLE) so stopami a hlavami stôp. Obsah vašej časovej osi sa nazýva sekvencia a pre lepšiu organizáciu môžete mať vnorené sekvencie, podsekvencie a čiastkové klipy. Časová os obsahuje aj karty pre rôzne sekvencie, čo môže byť užitočné, ak pracujete s vnorenými sekvenciami.  Používateľské rozhranie je mimoriadne konfigurovateľné a umožňuje vám odpojiť všetky panely. Môžete zobraziť alebo skryť miniatúry, priebehy, kľúčové snímky. Existuje sedem predkonfigurovaných pracovných priestorov, vrátane zostavy, úprav, farieb a nadpisov. 💾 Organizácia mediálnych súborov DaVinci Resolve DaVinci Resolve udržuje veci organizované pomocou sekcie vyhradenej na pridávanie médií. Karta Media vám umožňuje pridať akékoľvek médiá, ktoré môžete neskôr použiť vo videu. Môže to byť videoklip, obrázok, zvuk alebo čokoľvek, čo podporuje DaVinci Resolve. Nemôžeme nespomenúť dynamické priečinky, ktoré skvelo fungujú pre vyhľadávanie súborov a ich triedenie. Final Cut Pro Na druhej strane Final Cut Pro vám umožňuje ľahko organizovať súbory. Obsahuje možnosti, ako sú knižnice, udalosti, roly a označovanie kľúčových slov pri importe médií do Final Cut Pro. Knižnica je miesto, kam importujete svoje súbory a médiá. Okrem toho, že ich len importujete, môžete klipy aj premenovať v dávkach a sledovať ich všetky na jednom mieste. Adobe Premiere Pro Rovnako ako tradičné NLE, Premiere Pro umožňuje ukladať súvisiace médiá do zásobníkov, ktoré sú podobné priečinkom. Rovnako ako v prípade priečinkov, môžete mať zásobníky v rámci zásobníkov. Na položky môžete použiť aj farebné štítky, ale nie kľúčové slová. Panel Knižnice vám umožňuje zdieľať prostriedky medzi inými aplikáciami Adobe, ako sú napr. Photoshop a After Effects.[Image] Final Cut Pro X 🔊 Audio DaVinci Resolve DaVinci Resolve prichádza s Fairlight, ktorý predstavuje významnú konkurenciu tomu, čo ponúka Final Cut Pro a Adobe Premiere Pro. Fairlight je aplikácia zabudovaná do DaVinci Resolve a je k dispozícii v samostatnej sekcii pre všetky potreby úprav audia (zvuku). Avšak aj na karte Upraviť (Edit) môžete vykonať niekoľko základných úprav zvuku. Fairlight poskytuje kompletný DAW (Digital Audio Workstation) na úpravu zvuku s rôznymi efektmi, nahrávaním, miešaním stôp a mnoho ďalších. Final Cut Pro Final Cut Pro vám umožňuje jednoducho používať zvuk na časovej osi. V porovnaní s DaVinci Resolve je to najdôležitejší bod Final Cut Pro. Dodáva sa so širokou škálou bezplatných (royalty-free) audio stôp, ktoré môžete použiť na svojej časovej osi bez obáv z porušovania autorských práv. Navyše, keď importujete zvuk do Final Cut Pro, automaticky sa odstráni väčšina hluku na pozadí. To znamená, že si môžete vybrať aj z rozsiahlej knižnice doplnkov, aby ste veci robili rýchlejšie. A čo sa týka dôležitých funkcií, môžete strihať, mixovať, spájať a dokonca použiť doplnok Apple Logic Pro na získanie efektu priestorového zvuku vo vašej audio stope. Adobe Premiere Pro Audio Mixer v Premiere Pro zobrazuje vyváženie, jednotky hlasitosti (VU), indikátory orezania a stlmenie/sólo pre všetky stopy časovej osi. Môžete ho použiť na úpravy počas prehrávania projektu. Nové stopy sa automaticky vytvoria, keď pustíte zvukový klip na časosvú os a môžete určiť typy ako Standard, Mono, Stereo, 5.1 a Adaptive.  Ak máte nainštalovaný Adobe Audition (aplikácia v Creative Cloud), môžete medzi ním a Premiere Pro prepínať zvuk a využívať pokročilé techniky, ako je adaptívna redukcia šumu, parametrický ekvalizér, automatické odstránenie kliknutí, štúdiový reverb a kompresia. 🎨 Color grading DaVinci Resolve Pokiaľ ide o color grading, DaVinci Resolve je absolútna špička. Ak sa viac zaujímate práve o farbenie videa, DaVinci Resolve môže byť pre vás ideálnym nástrojom. Ponúka vám širokú škálu rozsiahlych a pokročilých nástrojov na úpravu farieb. DaVinci Resolve pôvodne začal ako nástroj na korekciu farieb, takže je určite najlepší vo svojej triede. Final Cut Pro Final Cut Pro prichádza so sadou nástrojov na korekciu farieb a color grading. Patrí medzi ne sada nástrojov, ako sú krivky, LUT, farebné kolieska a mnoho ďalších presetov. Dokonca ani s týmito funkciami sa triedenie farieb vo Final Cut Pro nepribližuje tomu, čo ponúka DaVinci Resolve. Adobe Premiere Pro Premiere Pro obsahuje nástroje Lumetri Color. Sú to funkcie na profesionálny color grading, ktoré predtým existovali v samostatnej aplikácii SpeedGrade. Nástroje Lumetri podporujú 3D vyhľadávacie tabuľky (LUT) pre výkonný a prispôsobiteľný vzhľad. Nástroje ponúkajú pozoruhodné množstvo manipulácie s farbami spolu s veľkým výberom vzhľadu filmu a HDR. K dispozícii sú aj predvoľby úprav Sýtosť, Vibrance, Faded Film a Sharpen. Najpôsobivejšie sú možnosti Curves a Color Wheel. Program obsahuje pracovný priestor určený na úpravu farieb.[Image] Adobe Premiere Pro 🚀 Motion Graphics DaVinci Resolve DaVinci Resolve má samostatnú časť venovanú pohyblivej grafike s názvom Fusion. Keďže ide o pokročilý nástroj, môže si vyžadovať určitú dávku trpezlivosti a zaškolenia, aby ste pochopili, ako sa s ním pracuje a ako funguje. Na používanie však nie je potrebné inštalovať aplikáciu samostatne. S Fusion integrovanou do DaVinci Resolve môžete jednoducho vytvárať a presúvať veci a pritom zostať v DaVinci Resolve. Final Cut Pro Pokiaľ ide o Final Cut Pro, neponúka špeciálnu možnosť pre pohyblivú grafiku. Namiesto toho ju môžete vytvoriť pomocou Apple Motion. Je jednoduchý na používanie a obsahuje všetky možnosti, ktoré potrebujete na vytvorenie základnej grafiky. Získate výhodu výberu zo širokej škály pluginov a šablón na vytváranie pohyblivej grafiky oveľa jednoduchšie. Adobe Premiere Pro Pokiaľ ide o pohyblivú grafiku, v Creative Cloud od Adobe je jasnou voľbou číslo jedna After Effects, čo je ale samostatná aplikácia. After Effects je "industry standard" pre pohyblivú grafiku a jeho kompatibilita a prepojenie s Premiere Pro je vynikajúce. Musíte sa však naučiť ovládať novú aplikáciu, čo si vyžaduje určitý čas a zručnosti. 💰 Cena a dostupnosť DaVinci Resolve DaVinci Resolve je k dispozícii zadarmo alebo v komerčnej verzii (DaVinci Resolve Studio), ktorá stojí 295 USD - jednorazový poplatok. Bezplatná verzia DaVinci Resolve je dostatočná aj pre tých najskúsenejších profesionálnych editorov. DaVinci Resolve je k dispozícii pre Windows, Mac aj Linux, čo mu dáva výhodu oproti Final Cut Pro aj Adobe Premiere Pro. Final Cut Pro Final Cut Pro stojí jednorazový poplatok 299 USD, ktorý sa následne priradí k vášmu Apple ID a dá sa nainštalovať na viacero počítačov. Final Cut Pro je k dispozícii iba pre počítače Mac, takže ak žiadny nevlastníte, musíte si ho kúpiť tiež. Adobe Premiere Pro Adobe používa model predplatného (subscription) pre všetky svoje Creative Cloud aplikácie a ceny sú rôzne. Len Premiere Pro vás bude stáť 23,99 Eur mesačne. Prípadne je možné objednať si celý Creative Cloud balík so všetkými aplikáciami (vrátane After Effects, Photoshop, Illustrator, InDesign a pod.) v cene 59,99 Eur mesačne. Nie je však možné objednať si program a mať k nemu časovo neobmedzený prístup, je potrebné platiť mesačný poplatok. Záver Každý z nástrojov na strih videa má svoje silné stránky: Premiere Pro je najpoužívanejší, Final Cut Pro X je najrýchlejší a DaVinci Resolve obsahuje „všetko v jednom“. Majte tiež na pamäti, že vývojári týchto produktov v Adobe, Apple a Blackmagic Design neustále prinášajú nové aktualizácie s vylepšeniami. Naučte sa dôkladne jednu z týchto aplikácií a vo svete editovania videa sa určite nestratíte.
8 najpopulárnejších programovacích jazykov pre vývoj hier
Vzdelávanie
28.12.2021
Skillmea

8 najpopulárnejších programovacích jazykov pre vývoj hier

Tvorba hier je tvorivým úsilím, ktoré si vyžaduje technologické znalosti. Herní vývojári musia poznať programovacie jazyky, ktoré spĺňajú určité špecifiká. Väčšina tvorcov hier mala problém vybrať si ideálny programovací jazyk pre vývoj hier. Je možné použiť programovacie jazyky ako C++, Python a iné. Niektorým jazykom sa však darí lepšie ako iným. Výber programovacieho jazyka pre herných vývojárov závisí od typu hry (konzola, počítač alebo mobil) a miery interaktivity. V tomto článku predstavíme top 8 programovacích jazykov pre vývoj hier. Podľa výskumnej správy od Market Research Future (MRFR), „Informácie o trhu s videohrami podľa herného zariadenia, podľa typu hry, podľa koncového používateľa a regiónu – prognóza do roku 2027“ bol videoherný trh ocenený na 155,9 miliárd v roku 2019 a veľkosť odvetvia má rásť ročným tempom 14,5 % do roku 2026. Dominantní hráči na videohernom trhu sú Ubisoft Entertainment, Electronic Arts, Qualcomm Wireless Communications Technologies, Nintendo alebo Activision Blizzard. 1. C# C# je v súčasnosti jedným zo známych programovacích jazykov pre použitie v rôznych herných enginoch. Je to jeden z najpopulárnejších programovacích jazykov medzi hernými vývojármi. Jedným z dôvodov, prečo je C# taký užitočný a populárny jazyk na vývoj hier, je XNA vyvinutá spoločnosťou Microsoft presne na tento účel.  XNA framework je ideálny na vytváranie hier na Windows a Xbox. Navyše, v herných enginoch Unity3D a Xamarin je možné vytvárať hry na všetky platfory vrátane iOS, Android, PlayStation a Windows. Populárne hry vyvinuté pomocou C# zahŕňajú Pokemon Go a Super Mario Run. 2. C++ Nie je žiadnym prekvapením, že C++ je jedným z najlepších jazykov na vývoj hier, najmä preto, že je to populárne a flexibilné riešenie. C++ je známy svojou vysokou úrovňou abstrakcie, ktorá umožňuje mať presnú kontrolu nad tým, ako hardvér počítača interaguje s kódom. C++ tiež poskytuje podrobnejšiu kontrolu nad tým, ako systém spracováva grafiku, čo zohráva v hernom priemysle veľmi dôležitú úlohu. Ďalšou kľúčovou výhodou používania C++ je, že vám umožňuje optimalizovať špeciálne časti herného dizajnu a dať im ich vlastné abstrakcie. Je to podobné, ako dať špecifickým prvkom hry vlastnú infraštruktúru a zdroje. Táto úroveň podrobného vývoja hier je pri mnohých iných jazykoch náročná, ak nie nemožná. C++ bol použitý na vytváranie populárnych hier ako StarCraft, Football Pro alebo Counter-Strike. 3. Java Aj keď Java neposkytuje rovnakú úroveň ovládania ako C++, mnohí považujú Javu za najlepší jazyk pre vývoj hier. Popularita Javy je čiastočne spôsobená jej jednoduchosťou použitia, čo z nej robí skvelé riešenie pre mnohých nových herných vývojárov. Java komunita tiež poskytuje veľkú zbierku nástrojov a iných open-source riešení. Vďaka tomu je vývoj hier oveľa rýchlejší, najmä preto, že môžete nájsť kód, ktorý už bol napísaný na použitie vo vašej hre. V porovnaní s C++ ponúka Java jednoduché písanie, ladenie, učenie a kompilovanie. Hry, ako napríklad Mission Impossible III, Minecraft, FIFA 11 a Ferrari GT 3: World Track, boli všetky vytvorené pomocou Javy. 4. JavaScript Pokiaľ ide o vývoj online hier, len málo jazykov je lepších ako JavaScript. JavaScript si dobre rozumie s HTML aj CSS, čo uľahčuje vývoj hier pre viaceré platformy. Niektorí programátori považujú JavaScript za pohodlné všestranné riešenie, pretože ho môžete použiť na vytváranie animácií a interaktívnych prvkov. Online komunita JavaScriptu je takisto obrovská, takže môžete nájsť množstvo vopred navrhnutých prvkov, ktoré môžete použiť vo svojich vlastných hrách. JavaScript je jazyk, ktorý stojí za hernými hitmi ako American Girl, Angry Birds a Aquaria. Ak chcete začať s jazykom, vyskúšajte náš kurz Rob hry v JavaScripte. 5. Python Hoci nie je taký populárny ako Java alebo C++, Python sa používa na vývoj hier. Jeho knižnica PyGame je vhodná pre vývojárov, ľahko sa používa na vytváranie hier a umožňuje vývojárom rýchlo vytvárať prototypy hier. Okrem toho, rovnako ako Java a C++, aj Python beží na princípoch OOP. Jeho jednoduchá krivka učenia robí z Pythonu obľúbenú možnosť pre mnohých začínajúcich herných vývojárov. Niektoré populárne hry vytvorené pomocou Pythonu zahŕňajú Battlefield 2, Disney's Toontown Online, Eve Online a Frets on Fire. 6. HTML5 HTML nie je programovací jazyk, ale aj napriek tomu je v našom rebríčku. HTML5 je jednou z najlepších možností pre herných vývojárov na vytváranie aplikácií a hier pre rôzne platformy a prehliadače. Ďalej je možné ho ľahko používať s JavaScriptom. HTML5 je široko preferované pre vývoj hier pre svoje špičkové herné enginy. Herné frameworky vrátane Construct 2, ImpactJS, Phaser, Turbulenz a Booty5 prevzali zodpovednosť za proces vývoja hier v HTML5. Niektoré populárne hry vytvorené pomocou HTML5 zahŕňajú Cookie Clicker, Gods Will Be Watching, World Cup Penalty 2018. 7. UnrealScript Unreal Engine vyvinul programovací jazyk UnrealScript alebo UScript. Rovnako ako Java, aj UnrealScript je objektovo orientovaný bez viacnásobného dedenia. Hlavné herné platformy vrátane Windows, Android, Linux a Playstation používajú UnrealScript. V roku 2014 však Epic Games oznámili, že Unreal Engine 4 nebude podporovať UnrealScript. Niektoré populárne hry vyvinuté pomocou UnrealScript zahŕňajú Advent Rising, America’s Army, The Wheel Of Time, Batman-Arkham Knight a jeho série. 8. Lua Lua je ľahký, vysokoúrovňový a multiplatformový programovací jazyk, ktorý sa ľahko spúšťa, vďaka čomu je zábavné a efektívne ho používať na vývoj videohier. Môže byť navrhnutý tak, aby sa dal vložiť do mnohých aplikácií, vďaka čomu je pre vývojárov a hráčov pohodlné upravovať hru. Herné enginy, ako napríklad Gideros mobile, Corona SDK a CryEngine, používajú Lua ako svoj primárny programovací jazyk. Niektoré populárne hry vyvinuté pomocou jazyka Lua sú Age of Conan, American Girl, Angry Birds a Aquaria. Zaujíma ťa herný vývoj a chceš sa mu začať venovať? Určite si pozri niektoré z našich kurzov venované práve tvorbe hier v Unity3D, JavaScripte či GameMaker Studio.
Čo je etický hacking?
Vzdelávanie
20.12.2021
Skillmea

Čo je etický hacking?

Slovné spojenie etický hacking sa na prvý pohľad môže javiť ako oxymoron. V tomto blogu ti však vysvetlíme, čo je to etický hacking, na akých princípoch je postavený, ako sa líši od toho neetického hackingu a ako môže byť prínosný pre firmy. Keď vznikol pojem „hacker“, opisoval softvérových inžinierov, ktorí vyvinuli kód pre sálové počítače. Teraz to znamená skúseného programátora, ktorý sa pokúša získať neoprávnený prístup k počítačovým systémom a sieťam využitím slabých miest v systéme. Hackeri píšu skripty, aby prenikli do systémov, prelomili heslá a ukradli údaje. Aj keď sa hackovanie stalo pojmom, ktorý najčastejšie popisuje škodlivé a neetické aktivity, nemusí to tak byť. Hacker môže tieto zručnosti stále dobre využiť. V tomto článku sa pozrieme na etické hackovanie a ukážeme ti, ako môžeš začať svoju cestu stať sa etickým hackerom. Čo vlastne robia etickí hacker? Etický hacking je známy aj ako white hat hacking alebo penetračné testovanie. Môže to byť veľmi zaujímavá kariéra, pretože etickí hackeri trávia svoj pracovný deň učením sa, ako fungujú počítačové systémy, odhaľovaním ich zraniteľných miest a skúšaním vkradnúť sa do nich bez strachu zo zatknutia. Na rozdiel od neetických hackerov, ktorí sú zvyčajne motivovaní finančným ziskom, etickí hackeri majú za cieľ pomôcť firmám (ale aj spoločnosti ako celku) udržiavať ich údaje v bezpečí. Firmy si najímajú etických hackerov, aby našli zraniteľné miesta vo svojich systémoch a aktualizovali chybný softvér, aby nikto iný nemohol použiť rovnakú techniku na opätovné preniknutie. Ako etickému hackerovi sa ti buď podarí nabúrať do systému a potom ho opraviť, alebo sa pokúsiš nabúrať do systému a nepodarí sa ti to. Obidva výsledky znamenajú víťazstvo pre etického hackera a firmu, pretože firemná sieť a údaje sú v konečnom dôsledku bezpečné. Povedzme si ešte aký je rozdiel medzi etickým hackerom a penetračným testerom. Zatiaľ čo termín etický hacking možno použiť na opísanie celkového procesu hodnotenia, vykonávania, testovania a dokumentovania založeného na množstve rôznych hackerských metodológií, penetračné testovanie je len jeden nástroj alebo proces v rámci etického hackingu. Hľadajú zraniteľné miesta Zraniteľnosť sú bugy alebo chyby v softvéri, ktoré možno využiť na získanie neoprávneného prístupu do siete alebo počítačového systému. Medzi najbežnejšie zraniteľnosti patria: • zastaraný softvér, • nesprávne nakonfigurované systémy, • nedostatočné šifrovanie údajov. Niektoré zraniteľnosti sa dajú ľahko otestovať, pretože chyby už boli zdokumentované. V týchto prípadoch musí penetračný tester urobiť iba skenovanie systému, aby zistil, či v systéme existuje chyba a aktualizovať softvér. Ďalšie zraniteľnosti však môžu byť neznáme a penetračný tester použije skripty a ďalšie nástroje, aby maximálne otestoval systém a zistil, či sa nejaké chyby objavia. Ukazujú metódy používané hackermi Etickí hackeri sa môžu vžiť aj do roly učiteľa. Mnoho firiem a zamestnancov vie len málo o hrozbách kybernetickej bezpečnosti a o tom, ako ich konanie môže zabrániť hrozbe alebo pomôcť hackerovi ukradnúť údaje. Etickí hackeri organizujú kurzy o kybernetickej bezpečnosti a varujú zamestnancov pred novými hrozbami, keď ich objavia. Vzdelávanie je obzvlášť účinné proti phishingu a iným kybernetickým útokom typu sociálneho inžinierstva, ktoré vyžadujú, aby útočníkov cieľ (človek) podnikol kroky, aby bola jeho hackerská aktivita umožnená. Keď sú zamestnanci informovaní o potenciálnej hrozbe, existuje väčšia šanca, že ju bude možné zastaviť skôr, ako infikuje systém. Pomáhajú predchádzať kybernetickým útokom Etickí hackeri tiež spolupracujú s ostatnými členmi bezpečnostného tímu na vytvorení bezpečnejšej infraštruktúry pre podnik. Etickí hackeri vedia, aké druhy hrozieb existujú, a môžu tímu pomôcť pri výbere nástrojov a vytváraní bezpečnostných politík, ktoré môžu zabrániť hrozbám, o ktorých možno ešte ani nevedia. Môžu tiež pomôcť s nastavením systémov na zálohovanie a obnovu, ktoré možno použiť v najhoršom prípade.[Image] Kľúčové princípy etického hackingu Hranica medzi black hat (alebo neetickým) hackingom a white hat (alebo etickým) hackingom sa môže zdať nejasná. Koniec koncov, existuje aj gray hat hacking, ktoré sa nachádza niekde medzi týmito dvoma. Ako etický hacker by si mal dodržiavať niekoľko zásad: • Dodržiavaj zákon: hackovanie je etické iba vtedy, ak máš povolenie na vykonanie hodnotenia bezpečnosti systému, ktorý hackuješ. • Poznaj rozsah projektu: správaj sa len v intenciách zmluvy, ktorú máš so spoločnosťou. Zisti presne, čo máš testovať a testuj iba tieto systémy. • Nahlás všetky slabé miesta: nahlás všetky slabé miesta, ktoré nájdeš a navrhni spôsoby, ako ich opraviť. • Rešpektuj akékoľvek citlivé údaje: penetračný tester často testuje systémy, ktoré uchovávajú citlivé údaje a bude musieť podpísať zmluvu o mlčanlivosti (NDA). Prečo je etický hacking dôležitý? Zámerným zistením zneužití a slabín v počítačových sieťach organizácie je v podstate možné opraviť ich skôr, ako ich zneužije neetický hacker. Etickí hackeri teda pomáhajú organizáciám identifikovať a eliminovať hrozby zlepšovaním celkovej bezpečnosti IT v organizácii. Samozrejme, nie sú to len údaje, ktoré sú v stávke, pokiaľ ide o počítačovú kriminalitu. V správe Centra pre strategické a medzinárodné štúdie a spoločnosti McAfee v oblasti bezpečnostného softvéru z roku 2020 sa zistilo, že straty z počítačovej kriminality dosiahli v roku 2020 približne 945 miliárd USD. Len pre porovnanie, v roku 2018 to bolo zhruba 522 miliárd USD, takže nárast je znepokojúci. Tieto rastúce náklady sa pripisujú lepšiemu vykazovaniu, ako aj efektívnejším technikám hackerov. Okrem straty údajov a peňazí môže počítačová kriminalita poškodiť verejnú bezpečnosť, poškodiť ekonomiky a podkopať národnú bezpečnosť. Je zrejmé, že je nevyhnutné chrániť organizácie a ich údaje a etické hackovanie môže v tejto ochrane zohrávať kľúčovú úlohu. Druhy etického hackingu Existuje niekoľko etických hackerských metód a základných oblastí, ktoré môže profesionál použiť. Nižšie uvádzame niektoré z najbežnejších typov etického hackovania: • Hackovanie webových aplikácií. Webové aplikácie sú zdieľané cez sieť (ako je internet alebo intranet) a niekedy sú založené na prehliadači. Aj keď sú pohodlné, môžu byť zraniteľné voči útokom skriptov a etickí hackeri takéto slabiny testujú. • Hackovanie webového servera. Webové servery prevádzkujú operačné systémy a aplikácie, ktoré hostujú webové stránky a pripájajú sa k back-end databázam. V každom bode tohto procesu existujú potenciálne slabé miesta, ktoré musia etickí hackeri otestovať, identifikovať a odporučiť opravy. • Hackovanie WIFI bezdrôtovej siete. Všetci poznáme bezdrôtové siete – skupinu počítačov, ktoré sú bezdrôtovo pripojené k centrálnemu prístupovému bodu. S touto vymoženosťou však prichádza množstvo potenciálnych bezpečnostných nedostatkov, ktoré musia white-hat hackeri hľadať. • Hackovanie systému. Prístup k zabezpečenej sieti je jedna vec, ale hackovanie systému sa zameriava na získanie prístupu k jednotlivým počítačom v sieti. Etickí hackeri sa presne o to pokúsia a zároveň navrhnú vhodné protiopatrenia. • Sociálne inžinierstvo. Zatiaľ čo ostatné metódy sa zameriavajú na prístup k informáciám prostredníctvom počítačov, systémov a sietí, sociálne inžinierstvo sa zameriava na jednotlivcov, ľudí. Často to znamená manipuláciu ľudí, aby odovzdali citlivé údaje alebo poskytli prístup bez toho, aby mali podozrenie na zlý úmysel. Aké pracovné pozície môže obsadiť etický hacker? Firmy všetkých veľkostí a odvetví sa obávajú bezpečnosti svojej siete. Pokiaľ stále dochádza k narušeniam bezpečnosti a firmy budú mať stále citlivé údaje, etickí hackeri budú žiadaní, takže trh práce pre nich vyzerá dobre aj v budúcnosti. Niektoré väčšie podniky majú medzi zamestnancami etických hackerov, ktorí celý deň vykonávajú bezpečnostné testy a penetračné testy. V iných spoločnostiach môže byť etické hackovanie iba súčasťou práce, zatiaľ čo väčšinu času trávite konfiguráciou sietí a nastavovaním nových systémov. Niektoré z najpopulárnejších pozícií etických hackerov zahŕňajú: • Penetračný tester • Security Analyst • Etický hacker • Bezpečnostný konzultant • Bezpečnostný inžinier • Bezpečnostný architekt • Analytik informačnej bezpečnosti • Manažér informačnej bezpečnosti Záver Ak ťa kariéra v tomto odvetví zatiaľ láka, možno ťa tiež zaujíma, ako sa naučiť etický hacking. Väčšina etických hackerov, penetračných testerov a white-hat hackerov sa pustí do etického hackingu, pretože ich zaujíma, ako funguje internet a informačná bezpečnosť. Jedna vec, ktorú musí etický hacker vedieť, je kybernetická bezpečnosť. Keďže etický hacker sa zaoberá aj softvérovými zraniteľnosťami a možno bude musieť písať skripty, ktoré mu pomôžu s touto úlohou, budeš sa musieť naučiť aj nejaký programovací jazyk (pravdepodobne to bude viac jazykov). Pre etických hackerov sú odporúčané jazyky ako Python, C, C++ alebo JavaScript. Práca s terminálom, scriptovanie v Bashi sú tiež silne odporúčané, rovnako tak nástroje na testovanie zraniteľnosti ako Metasploit a OpenVAS. Mnoho užitočných nástrojov a postupov etického hackingu sa naučíš v našom online kurze Úvod do etického hackingu. Najdôležitejšou požiadavkou je však zvedavosť. Takže buď zvedavý a veľa šťastia pri etickom hackovaní!
11 najlepších nástrojov na analýzu dát
Vzdelávanie
25.11.2021
Skillmea

11 najlepších nástrojov na analýzu dát

Objem údajov, ktoré sa vytvárajú dennodenne, každý rok exponenciálne rastie. V priemere každý z nás vytvorí každú sekundu minimálne 1,7 megabajtu dát. Mnohé z týchto údajov zhromažďujú firmy, pre ktoré znamenajú kľúčovú úlohu pri rozhodovaní a strategickom plánovaní. Bez správnych nástrojov sa však dáta nevyužívajú a len zaberajú miesto. Preto prichádzajú na scénu nástroje na analýzu dát. Umožňujú dátovým vedcom a dátovým analytikom zhromažďovať a analyzovať dáta, aby ich premenili na užitočné informácie pre rozvoj podnikania či prijímanie správnych rozhodnutí. K dispozícii je široká škála nástrojov na analýzu dát. Niektoré z nich sú programovacie jazyky, ktoré sú obľúbené medzi dátovými vedcami, pretože sa ľahko používajú a dobre analyzujú údaje. Niektoré sú knižnice pre tieto programovacie jazyky, ktoré zjednodušujú analýzu údajov. A niektoré sú samostatné aplikácie, ktoré bežia v počítači alebo vo webovom prehliadači. Výber správnych nástrojov na analýzu dát Pred výberom nástroja na analýzu údajov je potrebné zvážiť niekoľko otázok, najmä: 1. Aký druh dát analyzujete? Sú to jednoduché číselné údaje uložené v tabuľkách a databázach alebo kvalitatívne údaje s otvoreným koncom, ako sú konverzácie v sociálnych médiách, ktoré si vyžadujú analýzu pomocou modelov strojového učenia na vytvorenie prehľadov? 2. Koľko dát analyzujete? Ak sú údaje, ktoré potrebujete analyzovať, obmedzené, prácu zvládne takmer každý nástroj. Ak však plánujete analyzovať big data, budete musieť na analýzu použiť špecifické nástroje. 3. Aké technické znalosti sú potrebné na vykonanie analýzy? Ak ovládate programovací jazyk, ako je Python, R, Java alebo SQL, potom máte veľa možností, pokiaľ ide o výber nástroja na analýzu dát. A ak nie ste technický alebo nemáte záujem o učenie sa jazyka, máte tiež niekoľko možností, pretože sú k dispozícii tzv. "no-code" nástroje, ktoré môžete použiť. 4. V akom formáte chcete výsledky? Chcete vidieť svoje výsledky vo formáte tabuľky alebo by ste radšej generovali grafické zobrazenie výsledkov? Najpopulárnejšie nástroje na analýzu dát Po zodpovedaní týchto otázok si spravíte prehľad o rôznych analytických nástrojoch a zvolíte ten najvhodnejší pre vaše potreby. V zozname nižšie teraz uvedieme populárne nástroje na analýzu dát, ktoré by vám mohli pomôcť. 1. Python Python je jedným z najpoužívanejších programovacích jazykov na analýzu údajov. Je to interpretovaný, univerzálny, vysokoúrovňový jazyk, ktorý možno použiť na procedurálne, funkčné a objektovo orientované programovanie. Táto flexibilita je jedným z dôvodov, prečo je Python obľúbený u programátorov s rôznym zameraním. Navyše, jeho jednoduchá syntax, ktorá je takmer ako prirodzený jazyk, z neho robí obľúbený jazyk pre začínajúcich vývojárov. Čo však robí Python skvelým jazykom na analýzu údajov, sú všetky knižnice tretích strán, ktoré môžete do svojho projektu pridať zadarmo. Mnohé z týchto knižníc, ako napríklad Matplotlib, PyTorch a Pandas, sú navrhnuté na spracovanie údajov, čo znamená, že na analýzu údajov musíte napísať menej kódu. 2. Matplotlib Matplotlib je knižnica Python, ktorá uľahčuje vizualizáciu údajov a grafické vykresľovanie. Môžete ho jednoducho nainštalovať na akýkoľvek operačný systém, ktorý podporuje Python, vrátane Mac, Windows a Linux. Po nainštalovaní môžete dlhé zoznamy čísel previesť na ľahko zrozumiteľné koláčové grafy, tepelné mapy, histogramy a iné typy vizualizácií, ktoré sú pripravené na použitie v zostavách alebo publikovanie online. Matplotlib môže tiež vygenerovať používateľské rozhranie pre vašu grafiku s ponukou, ktorú môžete použiť na prispôsobenie grafiky bez písania dodatočného kódu. 3. PyTorch PyTorch je open source knižnica Pythonu, ktorá sa používa na vytváranie, trénovanie a spúšťanie modelov strojového učenia. Používa tenzory podobné poliam na kódovanie vstupov, výstupov a parametrov modelov. Tenzor je kontajner pre údaje, ktorý môže tieto údaje reprezentovať v ľubovoľnom počte dimenzií, čo z neho robí veľmi flexibilný nástroj na analýzu dát. Ďalšou výhodou PyTorch je, že môže spúšťať modely strojového učenia pomocou počítačového GPU a nie CPU. To znamená, že model strojového učenia PyTorch vám môže poskytnúť report 4 až 5-krát rýchlejšie ako iné nástroje na analýzu údajov, ktoré využívajú iba spracovanie CPU. 4. Pandas Pandas je ďalšia knižnica Pythonu a je to švajčiarsky armádny nožík na manipuláciu s údajmi. S pandas môžete zmeniť neštruktúrované údaje z viacerých zdrojov na 2D objekt v pamäti nazývaný DataFrame. Keď už máte údaje v DataFrame, môžete ich rýchlo filtrovať, vyhľadávať, segmentovať a segregovať. Môžete tiež zlúčiť a spojiť dva rôzne DataFrame. 5. Jupyter Notebook Jupyter Notebook je webová aplikácia s otvoreným zdrojovým kódom, v ktorej môžete spúšťať Python, R a ďalšie programovacie jazyky v interaktívnom prostredí. Keďže ide o webovú aplikáciu, umožňuje interaktívnu spoluprácu medzi používateľmi. Nazýva sa to „notebook“, pretože umožňuje analytikom údajov nielen ukladať a spúšťať kód v prehliadači, ale pridáva aj vysvetľujúci text, obrázky a ďalšie podporné informácie. Zápisníky Jupyter slúžia ako výpočtový záznam medzi spolupracovníkmi a vytvorené záznamy možno uložiť ako súbory JSON. Tieto súbory potom možno použiť na sledovanie každého kroku procesu. O PyTorch, Pandas a tvorbe grafov v Matplotlib sa viac dozvieš v našom online kurze Python Data Science. 6. R R bol navrhnutý špeciálne pre potreby komunity zaoberajúcej sa dátovou analýzou a štatistikou. Jazyk R je vhodný na strojové učenie, vizualizáciu údajov a štatistickú analýzu. Obrovskou výhodou jazyka R je práve jeho obrovská komunita. R je sada nástrojov na manipuláciu s údajmi, vykonávanie výpočtov a generovanie grafiky. Dodáva sa s výkonnými možnosťami spracovania a ukladania údajov, ako aj flexibilnou sadou grafických nástrojov na generovanie tabuliek a grafov, ktoré sú pripravené na publikovanie v zostavách. Pokiaľ si vyberiete jazyk R, neurobíte určite chybu, najmä preto, že bol od základov vytvorený práve na dátovú analýzu. 7. SQL SQL, čo je skratka pre Structured Query Language, je programovací jazyk, ktorý bol vytvorený na interakciu s relačnými databázami. Z tohto dôvodu a skutočnosti, že firmy ukladajú väčšinu svojich údajov v databázach, je SQL základným nástrojom, ktorý dátoví vedci a dátoví analytici používajú na tvorbu reportov. SQL je tiež jednoduchý jazyk na učenie. Dotazy, ktoré do neho píšete, sú takmer ako anglické vety. A takmer každý iný programovací jazyk má tiež knižnice, ktoré môžete použiť na interakciu s databázami, vďaka čomu je tento jazyk skutočne výkonný na analýzu údajov. 8. D3.js D3.js je open-source JavaScriptová knižnica na vytváranie vlastných vizualizácií vo webovom prehliadači. Spolu s JavaScriptom používa HTML, škálovateľnú vektorovú grafiku a CSS, čo umožňuje webovým vývojárom jednoducho vykonávať analýzu údajov bez toho, aby sa museli učiť nový jazyk. D3 je skratka pre "Data Driven Documents" a umožňuje vývojárom prepojiť dáta na HTML dokumenty pomocou Document Object Modelu (DOM) a potom transformovať dokument na základe údajov, ktoré používa. D3 tiež podporuje interakciu, animáciu, anotáciu a kvantitatívnu analýzu. Aj keď sa technológia, ktorú používa D3, dá ľahko naučiť, prichádza s viac ako 30 modulmi a 1 000 metódami vizualizácie, ktorých zvládnutie môže chvíľu trvať. 9. MATLAB MATLAB používa vysokoúrovňový programovací jazyk na matematické modelovanie, numerické výpočty a vizualizáciu dát. Jeho názov je skratkou pre „maticové laboratórium - matrix laboratory“, pretože ide o maticový jazyk. Matematické matice sú dátové štruktúry, ktoré dokážu vyriešiť mnohé technické výpočtové problémy efektívnejšie ako iné skalárne programovacie jazyky. MATLAB môžete použiť na množstvo rôznych úloh, ako je vykresľovanie údajov, vývoj algoritmov, vytváranie modelov strojového učenia, interakcia s programami napísanými v iných jazykoch a analýza množín dát. Vďaka jeho pokročilým matematickým funkciám existuje veľa technických rolí, ktoré používajú MATLAB, vrátane softvérových inžinierov a dátových analytikov. 10. Tensor Flow TensorFlow je open-source platforma strojového učenia a analýzy dát, ktorú vytvoril tím Google Brain. Používa sa na numerické výpočty a implementáciu neurónových sietí s hlbokým učením. Kód pre TensorFlow je napísaný v C++, ale poskytuje API, ku ktorému je možné pristupovať pomocou mnohých iných programovacích jazykov vrátane Python, Go, Java, R, JavaScript a ďalších. TensorFlow dokáže trénovať a spúšťať modely strojového učenia na rozpoznávanie obrázkov, klasifikáciu ručne písaných číslic, vkladanie slov, opakujúce sa neurónové siete, preklad jazyka, spracovanie prirodzeného jazyka a simuláciu. A namiesto toho, aby ste sa museli zaoberať podrobnosťami vytvárania vlastných algoritmov, môžete si vytvoriť svoje vlastné modely pomocou TensorFlow. 11. Tableau Tableau je popredný nástroj Business Intelligence na trhu, ktorý sa používa na analýzu a vizualizáciu údajov v jednoduchom formáte. Tableau je nástroj na analýzu dát, ktorý sa používa na vytváranie kvalitných vizualizácií údajov pre business intelligence. Dokáže extrahovať dáta z mnohých zdrojov, vrátane Microsoft Excel, PDF súborov, rôznych typov databáz alebo dokonca súborov uložených na AWS. Po extrahovaní údajov k nim môže pristupovať aplikácia Tableau Desktop. Potom ho môžete použiť na generovanie dashboardov a vizualizácií v softvéri. Dáta môžu byť tiež publikované na Tableau Server, kde k nim možno pristupovať z akéhokoľvek miesta, vrátane mobilných zariadení. A to všetko môžete urobiť bez písania akéhokoľvek kódu. Záver Nástroje na analýzu dát vám pomôžu objavovať trendy a vzorce, na základe ktorých budete vedieť robiť lepšie rozhodnutia. K dispozícii je široká škála nástrojov, od zložitých programovacích jazykov až po aplikácie, ktoré vyžadujú veľmi málo technických znalostí. Výber je len na vás.
Čo robí DevOps Engineer?
Vzdelávanie
16.11.2021
Skillmea

Čo robí DevOps Engineer?

Na základe niektorých štatistík sa predpokladá, že dopyt po softvérových inžinieroch do roku 2029 narastie o 22%. Tento dopyt po softvérových inžinieroch a webových či mobilných aplikáciách, ktoré vytvárajú, viedol k mnohým novým pracovným pozíciám a inovatívnym, efektívnejším vývojovým procesom – ako napríklad DevOps.  Zaujíma ťa, čo je to DevOps, čo robí taký DevOps Engineer (inžinier), koľko zarába a aké zručnosti potrebuje? Čítaj ďalej a dozvieš sa viac.[Image] Čo je DevOps? DevOps je spojenie slov Development (vývoj) a Operations (prevádzka). Je to špeciálna metóda vývoja softvéru, ktorá spája procesy, ľudí a technológie, vďaka čomu môžu firmy produkovať kvalitný softvér, služby a produkty. DevOps-áci používajú nástroje, procesy a metódy vývoja na zabezpečenie efektívneho vývoja aplikácií. Zohrávajú dôležitú úlohu v každej fáze procesu vývoja, od nápadu až po implementáciu a údržbu. DevOps označuje spôsob vývoja softvéru, ktorý zaisťuje, že všetko beží hladko v každej fáze vývoja. Pred predstavením DevOps v roku 2009 vývojárske tímy zvyčajne zostavovali každú časť aplikácie nezávisle. Jeden tím by sa napríklad zaoberal štruktúrou databázy, zatiaľ čo iný vytvoril frontend alebo bezpečnostné prvky. Aj keď to bolo efektívne, často to viedlo k problémom, keď boli tieto rôzne časti spojené do jedného celku. DevOps sa snaží tento problém vyriešiť tým, že všetkých účastníkov vývoja spojí dokopy. Môžeš si to ľahko predstaviť ako stavbu domu. Štandardne by si mal rôznych dodávateľov, ktorí by robili rôzne práce: murári, elektrikári, inštalatéri, maliari atď. Pri DevOps modeli však títo dodávatelia spolupracujú, diskutujú o každej fáze vývoja a pracujú spolu a ťahajú za jeden povraz. Výsledkom je, že konečný produkt je efektívnejší, kvalitnejší a ušetrí aj čas, pretože každá zložka sa spája s ostatnými. DevOps Engineer zaisťuje, že sa to všetko deje hladko a konzistentne počas celého životného cyklu vývoja. DevOps špecialisti teda používajú rôzne nástroje, procesy a metódy vývoja, aby zabezpečili efektívny vývoj aplikácií. V každej fáze procesu vývoja (od nápadu až po implementáciu a údržbu) zohrávajú významnú úlohu. Keďže celý vývoj aplikácie je v rámci jedného tímu, vývojári sú schopní rýchlejšie komunikovať medzi sebou, ale aj kolaborovať so zákazníkom, čo znamená častejšie vydávanie nových verzií vyvíjaného softvéru. Funkcie DevOps DevOps špecialista podporuje komunikáciu, spoluprácu a zdieľanie zodpovednosti naprieč všetkými stranami počas životného cyklu vývoja. Hlavnou výzvou, ktorej čelia DevOps-áci, je zjednotiť všetkých účastníkov vývoja, čo sú frontend a backend developeri, UI/UX dizajnéri, testeri, ľudia zodpovední za bezpečnosť produktu, ale aj obchodníci, zákaznícky servis či ďalšie kľúčové osoby.  V DevOps kultúre sú všetci títo účastníci rovnako dôležití a ich vstupy do vývoja majú rovnakú hodnotu. DevOps-ák musí zabezpečiť, že je s tým celý tím stotožnený, podporuje to a samozrejme najmä praktizuje.  Aké techniky používajú DevOps-áci? Najčastejšie sú využívané nasledovné postupy či technológie: • continuous integration, continuous deployment (CI/CD), • kontajnerizácia, • monitorovanie. V skratke si povedzme o každej z vyššie uvedených technológií. CI/CD Zavádza automatizáciu do softvérového vývoja. Pomocou skupiny rôznych nástrojov tak je možné zabezpečiť automatické zostavovanie verzií, ich kontrolu a reporting kvalít konkrétnej verzie. Po zostavení a otestovaní je možné nasadiť verziu do produkčného prostredia. To je technika Continuous Integration. Inými slovami, zmeny sa vykonajú a integrujú okamžite. "CD" sa môže vzťahovať aj na Continuous Delivery. Zmeny vykonané v aplikácii sa pred odoslaním do úložiska (napr. GitHub) testujú na chyby. Následne sú umiestnené do živej produkcie. Continuous Deployment znamená automatické odosielanie zmien vykonaných vývojárom z úložiska ako napr. GitHub do produkcie, kde ho môžu koncoví používatelia používať. Kontajnery Kontajnery poskytujú spôsob izolácie procesov od zvyšku softvéru. Každý kontajner funguje v podstate ako virtuálny stroj, ktorý spúšťa jednu časť celkového procesu. Pretože kontajnery sa dajú veľmi rýchlo zapnúť a vypnúť, kontajnerizácia uľahčuje vytváranie, nasadzovanie a spúšťanie aplikácií. DevOps engineer musí rozumieť kontajnerizácii, pretože má vplyv na to, ako sa produkt vytvára, upravuje a testuje. Pri vytváraní kontajnera by malo platiť pravidlo, že jeden kontajner je jedna služba. Na to, aby sme docielili tieto vlastnosti kontajnerov, musíme dodržať 3 hlavné princípy kontajnerizácie: štandardnosť (Standard), jednoduchosť (Lightweight) a izolovanosť (Isolated). V dnešnej dobe je veľmi populárny prechod na mikroservisovo orientovanú architektúru. Pri tejto architektúre je funkcionalita softvéru rozdelená do menších častí - mikroservisov. Cieľom je vytvorenie aplikácie, ktorá bude čo najviac modulárna. Bude to znamenať jej zjednodušenie, udržiavateľnosť a tiež škálovateľnosť. Funkcionalita aplikácie sa rozdelí do jednotlivých mikroservisov, kde každý má na starosti iba jednu, oddelenú časť softvéru. Ak bude potrebná zmena aplikácie, tieto mikroservisy je relatívne jednoduché upraviť. Vykoná sa len požadovaná zmena, upraví sa daný mikroservis a opätovne je nasadený. Pri takomto prístupe sa vyskytuje menej chýb, výpadkov a má to kladný vplyv na testovanie a hľadanie chýb v softvéri. Monitorovanie Monitorovanie zahŕňa používanie systému, ktorý umožňuje sledovať celý vývojový ekosystém a upozorní ťa, ak sa niečo pokazí. S dobre nastaveným monitorovaním môžeš rýchlo riešiť problémy pomocou analýzy základných príčin, ktorá presne určí, kde problém začal. Monitorovanie ti tiež umožňuje zistiť, ako sa rôzne systémy navzájom ovplyvňujú, či už bežia súčasne alebo postupne. Tvoja práca ako DevOps špecialistu bude takmer nemožná bez komplexného monitorovacieho riešenia. Riešenie problémov bude rýchlejšie a efektívnejšie.[DASA DevOps Competency model (zdroj: DASA)] Zručnosti DevOps špecialistu Technické zručnosti sú nevyhnutnosťou. Aj keď sa v DevOps prostredí a IT všeobecne neustále objavujú nové technológie a nástroje, dobrý DevOps inžinier by mal mať kvalitné znalosti v týchto oblastiach: • verziovanie, systém správy verzií (ako Git, Github, Bitbucket, Svn atď.), • Continuous integration (Jenkins, Bamboo, VSTS), • koncepty kontajnerov (Docker), • orchestrácia kontajnerov (Kubernetes, Swarm, Openshift), • cloud (AWS, Azure, GoogleCloud, Openstack), • základy sietí, Linux (základy OS), Bash, • základy programovania (napr. Python, Design Patterns). DevOps inžinieri musia byť schopní písať bezpečný kód na ochranu aplikácií pred útokmi, ako aj na obranu pred bežnými zraniteľnosťami kybernetickej bezpečnosti. Rovnako ako v iných technických prostrediach, kľúčovým prvkom DevOps je tiež automatizácia. Veľa opakujúcich sa a manuálnych úloh vykonávaných tradičnejšími systémovými administrátormi možno automatizovať pomocou jazykov ako Python, Ruby, Bash či Shell. Nezabúdaj ani na soft skill zručnosti ako komunikačné zručnosti, dobrú organizáciu, ochotu spolupracovať, flexibilitu, prezentačné zručnosti alebo to, že zákazník je na prvom mieste. Mzda DevOps špecialistu sa podľa portálu platy.sk pohybuje v závislosti od regiónu a seniority na úrovni od 2.000 Eur vyššie. Jedná sa o veľmi žiadanú pozíciu, dopyt po DevOps inžinieroch v ostatných rokoch značne vzrástol.[Image] Ako sa stať DevOps špecialistom Aby si sa stal DevOps špecialistom, musíš získať znalosti a skúsenosti potrebné na prácu s rôznymi technológiami. Kľúčom je naučiť sa zručnosti, aplikovať ich a vybudovať si portfólio, ktorým sa vieš odprezentovať. Náš zoznam vyššie v článku sa zdá byť vyčerpávajúci a nekonečný. Ako sme už spomínali, v jednej oblasti môžeš byť expertom a o iných vieš toho málo. To je úplne v poriadku. Základné znalosti z každej oblasti sú dobrým začiatkom. Napríklad, ak si softvérový inžinier, určite si dobrý v programovaní. Nemalo by byť pre teba ťažké zvládnuť prácu admina, pretože niektoré činnosti si už určite mohol vykonávať vo svojej práci. Rovnako, ak si sieťový inžinier, nebudeš mať problém naučiť sa viac o bezpečnosti, virtualizácii a správe infraštruktúry. Každá z týchto zručností spolu súvisí. Cesta k tomu, aby ste sa stali DevOps špecialistom je dlhá, ale stojí za to. A neexistujú žiadne skratky.
8 populárnych IDE a editorov kódu
Vzdelávanie
24.10.2021
Skillmea

8 populárnych IDE a editorov kódu

Keď absolvuješ naše online kurzy programovania, budeš používať textový editor. Keď študuješ kurz HTML a CSS, vystačíš si aj textový editor ako napr. Notepad. Pre to, aby si bol efektívny, však budeš určite používať buď na programovanie vytvorené editory kódu alebo IDE. V tomto článku ti vysvetlíme, čo sú IDE a editory kódu a v čom sa líšia. Budeme preberať aj výhody a nevýhody IDE a editorov kódu. V článku nájdeš aj zoznam najpopulárnejších IDE a editorov kódu, ktoré vývojári používajú, a v čom je každý z nich jedinečný. Čo sú to IDE a editory kódu?IDE je integrované vývojové prostredie. Je to softvér, ktorý vývojárom umožňuje ľahko vytvárať, upravovať a ladiť kód. Aj keď niektoré môžu vyžadovať doinštalovať knižnice pre určité programovacie jazyky, väčšina bežných IDE je pripravená, takže je ľahké zachytiť potenciálne chyby syntaxe a chyby pred kompiláciou alebo spustením kódu. Editor kódu je typ textového editora s niekoľkými funkciami, ktoré uľahčujú písanie kódu. Napríklad editory kódu automaticky zvýraznia slová na základe syntaxe a automaticky odsadia riadky kódu. Editor kódu však nemá funkcie ladenia a automatického dopĺňania, ktoré má IDE. Niektorí vývojári uprednostňujú spustenie programu od začiatku v editore kódu. Iní však pri kontrole alebo úprave kódu niekoho iného uprednostňujú IDE, pretože ladenie je jednoduchšie. Najpopulárnejšie IDE a editoryAk chceš začať s IDE, budeš mať trochu väčšiu pomoc s ladením, zvýrazňovaním syntaxe a funkciami automatického dopĺňania. Ak programuješ sám, môže byť IDE skvelým spôsobom, ako získať pomoc, ktorú by si na začiatku mohol potrebovať. IDE často prichádzajú s nástrojmi na automatizáciu, testovanie a vizualizáciu procesu vývoja. V podstate ti vybavia všetko, čo potrebuješ pre premenu kódu, na fungujúcu aplikáciu alebo program. Tu sú populárne IDE a editory, ktoré by si mohol zvážiť: 1. Visual Studio CodeVS Code je výkonný textový editor, ktorý je možné spustiť v rôznych operačných systémoch ako Windows, macOS a Linux. Jeho rozhranie je jednoduché. Panel vľavo obsahuje verzie kódu a jeden v strede, kde píšeš kód. Obsahuje funkcie ladenia pre viacero programovacích jazykov.  Dodáva sa so vstavanou podporou jazykov JavaScript, TypeScript a Node.js a má bohatý ekosystém rozšírení pre ďalšie jazyky (napríklad C ++, C#, Java, Python, PHP, Go) a runtime (napríklad .NET a Unity). Tento editor je obľúbenou voľbou medzi vývojármi, pretože drvivých 70% ho označilo za svojho obľúbeného v prieskume Stack Overflow v roku 2021. Je tiež možné ho stiahnuť zadarmo, vďaka čomu je atraktívnou voľbou pre začínajúcich programátorov.[Image] 2. IntelliJ IDEAVývojové prostredie Intellij IDEA je produktom českej softvérovej firmy JetBrains. Prvá verzia vyšla už v roku 2001 a od tej doby sa neustále vyvíja. IntelliJ IDEA je kompaktné a „inteligentné“ IDE, ktoré poskytuje vývojárom návrhy na zlepšenie ich programov a výrazne im urýchľuje vývoj a ladenie. Medzi funkcie patrí kontrola verzií, analýza kódu a navrhované dokončenie kódu. Navyše nepotrebuješ nové doplnky pre ďalšie jazyky. IntelliJ nie je zadarmo, ako Visual Studio Code. V závislosti od zvolenej frekvencie fakturácie to stojí 499 Eur ročne alebo 49,90 Eur mesačne. Cena je pomerne vysoká, ale mnoho vývojárov využíva práve toto IDE na zvýšenie produktivity. Je najobľúbenejší medzi Java vývojármi, aj keď podporuje aj iné JVM jazyky, napr. Kotlin, Scala či Groovy, vďaka pluginom aj podpora Go, Pytonu, SQL či PHP.[Image] 3. PyCharmPyCharm je primárne jedným z najlepších IDE pre Python, ale prémiová verzia podporuje aj iné jazyky pre web development, napr. JavaScript, CoffeeScript, TypeScript či SQL. Pri kódovaní kontroluje chyby a má aj automatické dopĺňanie. Má elegantné, minimálne GUI pre prehľadný vývoj a tiež kontroluje kvalitu tvojho kódu. PyCharm je tiež z dielne firmy JetBrains, môžeš si stiahnuť bezplatnú komunitnú úroveň PyCharm, ktorá ti umožní programovať v Pythone. Ak však chceš prístup aj k ďalším funkciám pre vývoj, či k podpore HTML, SQL a JavaScript, budeš musieť zaplatiť za licenciu. Plná verzia PyCharmu stoji 199 Eur ročne alebo 19,90 Eur pri mesaačnej platbe.[Image] 4. NetBeansNetBeans by v našom zozname najlepších IDE pre webdevelopment nemal chýbať. Patrí medzi jedno z najobľúbenejších IDE, je to jednoduchý softvér pre Javu, JavaScript, PHP, HTML5, CSS, ale funguje rovnako dobre aj s PHP, C/C++ atď. Ide o bezplatné IDE na každodenné používanie. Pomáha vám tiež vytvárať webové stránky bez chýb zvýraznením kódu nielen syntakticky, ale aj sémanticky. Má tiež veľa výkonných nástrojov na refaktorovanie, pričom je otvoreným zdrojom.[Image] 5. PhpStorm / WebStormPhpStorm je ďalšou možnosťou, ktorú treba zvážiť ako jedno z najlepších IDE pre webový vývoj. Ako napovedá názov, zameriava sa na PHP, ale sú plne podporované aj front-end technológie vrátane HTML 5, CSS, Sass, Less, JavaScript a ďalších. Zahŕňa tiež podporu pre WordPress, Drupal, Joomla!, Laravel či Magento. Je ľahké sa v ňom orientovať, má automatické dopĺňanie kódu, nástroje na ladenie a testovanie, ako aj rýchle (a bezpečné) refaktorovanie. WebStorm je odľahčená verzia PhpStormu, je jedno z najlepších IDE pre JavaScript. Zahŕňa nielen automatické dopĺňanie kódu a live detekciu chýb, ale má aj debugger, unit testovanie a veľa integrácií, ako sú Git, GitHub, Mercurial a ďalšie.[Image] Ďalšie tipy na zaujímavé IDEčka, ktoré môžeš skúsiť sú CodeLobster alebo Komodo. V tomto článku sa nimi zaoberať nebudeme, ale tiež poskytujú kvalitné prostredie pre vývoj v jazykoch ako JavaScript, PHP, Ruby, Python či Go. Ďalšie editory kóduSublime Text 3Efektívny editor, ktorý beži na Windowse, MacOS aj Linuxe. Zvýrazňovanie syntaxe, rýchle načítavanie či automatické dopĺňanie kódu majú vývojári radi. Mnoho začínajúcich developerov volí práve tento editor ako svoju prvú voľbu. Notepadd++Editor kódu Notepad++ pracuje s rôznymi programovacími jazykmi, ale bol navrhnutý pomocou programovacieho jazyka C++ a často sa uprednostňuje pri vývoji v rovnakom jazyku. Hoci si ho môžeš stiahnuť zadarmo, jeho použitie je obmedzené na operačný systém Windows. AtomJe multiplatformný (dostupný pre Windows, macOS a Linux), môžeš si ho prispôsobiť rôznymi UI a témami či farbami. Samozrejmosťou je automatické dopĺňanie, vyhľadávanie, zobrazovanie a nahradzovanie textu v súbore alebo vo všetkých projektoch. Má zabudovaného správcu balíkov na inštaláciu nových či tvorbu vlastných balíkov. Výber správneho IDE či editoru kódu je dôležité, ovplyvňuje ho mnoho faktorov. Zvoľ si ten, ktorý najlepšie funguje s programovacím jazykom, ktorý používaš či je najvhodnejší pre projekt, na ktorom práve pracuješ. Aké je tvoje obľúbené IDE či editor? Podeľ sa v komentároch.
Čo je testovanie softvéru?
Vzdelávanie
18.10.2021
Skillmea

Čo je testovanie softvéru?

Softvér je potrebné testovať počas jeho vývoja aj po každom update. Ak sa chceš dozvedieť, čo je súčasťou testovania softvéru, prečo je testovanie dôležité, kde v procese vývoja sa testovanie nachádza a ktoré jazyky je dobré ovládať ak chceš byť IT tester, čítaj tento článok ďalej. Čo je testovanie softvéru?Testovanie softvéru je metóda, ktorá kontroluje, či skutočný softvérový produkt zodpovedá očakávaným požiadavkám (implicitným aj explicitným) a zaisťuje, aby softvérový produkt neobsahoval chyby, resp. pomáha s tým, aby software obsahoval čo najmenej chýb a žiadne kritické. Zahŕňa spustenie softvérových/systémových komponentov pomocou manuálnych alebo automatizovaných nástrojov. Účelom testovania softvéru je identifikovať chyby, nedostatky alebo chýbajúce požiadavky v porovnaní s pôvodnými požiadavkami. Testovanie softvéru sa týka procesu overovania a vyhodnocovania funkcie softvérovej aplikácie alebo produktu. Používa sa na zníženie alebo odstránenie chýb a minimalizáciu množstva dodatočných investícií, ktoré musí spoločnosť investovať do riešenia problémov a vydávania aktualizácií. Softvérový tester teda hľadá chyby, nedostatky či iné problémy vo webových či mobilných aplikáciách, desktopových produktoch alebo hrách. “TL;DR: IT testeri sú dôležití, pretože pomáhajú vysokej kvalite softvérových produktov, spokojnosti zákazníkov a používateľov a dlhodobej prosperite businessu.” Prečo je testovanie softvéru dôležité?Testovanie softvéru je dôležité, pretože neotestovaný alebo nedostatočne výkonný softvér môže mať vplyv na tisíce používateľov. Ak napríklad webová aplikácia, ktorá predáva produkt, funguje príliš pomaly, zákazníci môžu byť netrpezliví a kúpia si podobný produkt inde. Alebo ak databáza v aplikácii pošle nesprávne informácie pre vyhľadávací dotaz, ľudia môžu stratiť dôveru k webovej aplikácii alebo firme vo všeobecnosti. Softvérový tester pomáha predchádzať týmto druhom zlyhaní. Testovanie softvéru navyše môže pomôcť zaistiť bezpečnosť používateľov alebo osôb, ktorých sa týka používanie.  Úlohou testera je teda vžiť sa do pozície používateľa daného softvérového produktu a pripraviť si rôzne scenáre, ktoré na danom produkte v priebehu vývoja testuje. Nájdené problémy následne reportuje vývojárskemu tímu, ktorý tieto chyby odstráni.  “TL;DR: Cieľom testovania je zabezpečiť čo najvyššiu používateľskú spokojnosť s produktom.[Image]” Typy testovania softvéruExistuje niekoľko typov testovania softvéru, z ktorých každý vyžaduje rôzny stupeň špecifickosti. Tu je zoznam niektorých z najbežnejších: Testovanie použiteľnosti (Usability testing)Testovanie použiteľnosti je najlepším spôsobom ako zistiť či s webstránkou, aplikáciou alebo hrou bežní používatelia vedia narábať a pochopiť, ako pri jej používaní rozmýšľajú. Usability testing je v podstate spôsob, akým dokážeme overiť výsledok svojej práce na reálnych používateľoch.  Usability testing predstavuje hodnotenie produktu alebo služby jeho testovaním reprezentatívnou vzorkou užívateľov. Spravidla musia účastníci počas testovania splniť niekoľko úloh, pričom je ich správanie a konanie pozorne sledované a zaznamenávané testerom. Akceptačné testovanieHlavným účelom akceptačného testovania nie je nájdenie chýb, ale ohodnotenie pripravenosti systému pre nasadenie a používanie. Ide teda o kontrolu, či systém funguje tak, ako má. Softvér v tomto prípade pracuje s ostrými a skutočnými dátami, testuje sa, či produkt pracuje správne v reálnom nasadení a spĺňa používateľské požiadavky. Integračné testovanieCieľom je overiť, či väčšie časti softvéru spolu fungujú. Tento typ testovania väčšinou nevykonávajú testeri, ale samotní vývojári. Testuje sa interakcia s rôznymi časťami softvéru, ale aj s hardwarom, operačným systémom.  Unit testySlúžia programátorovi ako okamžitá spätná väzba k napísanému kódu. Unit testy slúžia na testovanie menších jednotiek zdrojového kódu. Programátor napíše kód a následne pre tento kód napíše testy. Existuje prístup písanie testov pred kódom, ktorý sa nazýva Test Driven Development. Test by mal testovať správanie kódu za štandardných aj mimoriadnych situácií. Ideálny unit test je nezávislý na ostatných testoch a na zvyšku testovaného programu. Niekedy nie je na prvý pohľad vidieť rozdiel medzi unit a integračným testovaním. Okrem týchto testov poznáme ďalšie druhy testov, napr. performance testy. Čo potrebuješ vedieť, ak chceš byť testerom?Aj keď ako IT tester nemusíš napísať ani riadok kódu, v mnohých prípadoch ho stále musíš vedieť prečítať. Ako tester softvéru tvoja práca zahŕňa viac ako len klikanie a prechádzanie aplikáciou. Musíš byť schopný preskúmať kód a hľadať potenciálne problémy alebo zistiť, čo mohlo spôsobiť chybu alebo poruchu. Väčšina testerov robí okrem manuálneho testovania aj písanie automatizovaných testov. Napísať automatizované testy je ale výrazne jednoduchšie než naprogramovať celé aplikácie.  Podľa portálu platy.sk je priemerná mesačná mzda IT testera v Bratislave takmer 2.000 Eur, takže vydať sa na túto kariérnu cestu je aj z finančného pohľadu zaujímavé. Tu je niekoľko jazykov, ktoré by si sa mal naučiť, aby si maximalizoval svoje vyhliadky na prácu testera: • Java • Python • C# Stačí sa naučiť samozrejme jeden z jazykov, môže byť aj iný ako je v zozname. Okrem toho budeš určite potrebovať poriadnu dávku precíznosti a byť komunikatívny, nakoľko budeš musieť reportovať nájdené chyby, správne ich pomenovať, nájsť riešenie a budeš ďalej v kontakte s vývojárskym tímom. Ak v IT len začínaš, práca manuálneho IT testera je skvelý štart. Manuálne testovanie je stále tu a bude tu aj naďalej, nakoľko má mnoho výhod, napríklad pomocou manuálneho testovania vieš objaviť nové chyby v aplikácii, dizajnové chyby a ďalšie. Opäť poznamenávame, že trh v QA sa neustále vyvíja a predpokladáme, že bude chcieť univerzálnych testerov, ktorí vedia dobre manuálne testovať a zároveň aj tvoriť automatizáciu. Pokiaľ máš v pláne stať sa automatizovaným testerom, máme pre teba hneď niekoľko kurzov. Najskôr začni s kurzom Selenium, v ktorom sa naučíš aj Javu a JUnit. Tento kurz má aj pokračovanie pre pokročilých. Ak sa ti viac pozdáva JavaScript, určite mrkni kurz Cypress.io. Cypress je moderný testovací nástroj pre end to end testovanie.
10 programátorských C++ úloh pre začiatočníkov
Vzdelávanie
07.10.2021
Skillmea

10 programátorských C++ úloh pre začiatočníkov

Naučiť sa C ++ nie je ľahká úloha, keď si však chceš uchovať svoje znalosti v dobrej forme, vyžaduje si to prax. Jedna vec je naučiť sa základy programovania v C++ a syntax jazyka, ale niečo úplne iné je použiť tieto znalosti na tvorbu reálnych programov v jazyku C++. V tomto článku si povieme, kde by ste mohli použiť jazyk C++ vo svojej ďalšej práci a prečo je to stále používaný programovací jazyk. A takisto ti v článku prinesieme 10 programátorských úloh v C++, na ktorých si jazyk precvičíš. Na čo sa používa C++?C++ je jedným z najpoužívanejších programovacích jazykov. Lepšou otázkou by teda mohlo byť, na čo sa C++ nehodí? 🙂 C++ je najčastejšie zvolený kvôli svojej schopnosti efektívne prevádzkovať veľké aplikácie. Môžete ho tiež použiť na doladenie toho, ako program používa svoj hardvér. C++ nájdete v operačných systémoch, vašich obľúbených multiplayer hrách, pripájaní na databázy a dokonca aj v nových technológiách VR a AR. Okrem toho je C++ populárne pri tvorba databázových aplikácií, vo finančníctve a ekonomike, využíva sa vo vstavaných systémoch, real-time systémoch, pri spracovaní veľkého objemu dát, ďalej v robotike a kybernetike, v počítačovej grafike (spracovanie obrazu, grafický rendering) či komunikačných systémoch. Mnoho vývojárov si vyberá C++, pretože dokáže efektívne spúšťať ich programy. Komunita C++ vývojárov je tiež pomerne široká, umožňuje to jednoduchšiu spoluprácu a pomoc, keď sa človek pri niečom zasekne.  10 C++ úloh pre začiatočníkovNa splnenie úloh použi ľubovoľný editor, ktorý ti vyhovuje. Stanov si cieľ a časový horizont, v ktorom chceš úlohy splniť. Kľudne urob jednu úlohu každý deň, niektoré úlohy budú možno náročnejšie a zaberú viac času.  Začnime s úlohami. 1. Vypíšte „Hello world“ správuV ktoromkoľvek editore, s ktorým ste sa rozhodli pracovať, skontrolujte, či môžete napísať kód, ktorý zobrazí tento reťazec znakov. Aj keď sa to môže javiť ako jednoduchá úloha, zamyslite sa nad všetkými spôsobmi, akými budete chcieť zobrazovať správy v budúcich programoch, ktoré vytvoríte. Tlač chybových správ alebo potvrdzovacích správ pre rôzne časti kódu je dôležitá pri ladení programu. Môžu sa tiež objaviť výzvy alebo výsledky, ktoré budete chcieť vytlačiť a zdieľať s koncovým používateľom. Vypisovanie správy je zručnosť, ktorú budete používať pomerne často. 2. Vytvorte program, ktorý sčíta dve celé číslaZistite, či dokážete vytvoriť program v jazyku C++, ktorý načíta dve celé čísla zo vstupu klávesnice a sčíta ich. Výsledok by mal vrátiť súčet. Ide síce o základný kalkulátor, predstavte si ale jeho silu vo veľkej databáze, kde by ste pomocou slučiek mohli pridávať obrovské množstvo údajov. Bonusová úloha: Rozšírte tento program o súčet dvoch matíc (nezáleží, koľko bude mať prvkov), aby ste vytvorili pole súčtových prvkov. Ak máte záujem pracovať vo finančnom odvetví ako vývojár, pomocou programov, ako je tento, môžete vašej firme vypočítať dôležité údaje. 3. Napíšte program, ktorý prevádza pixely na centimetreMeniče jednotiek sú malé pomocné nástroje. Môžete vytvoriť program v jazyku C++, ktorý bude zaznamenávať rozmery v pixeloch a vypľuje presne rovnaké meranie v centimetroch? Ak uvažujete o kariére v oblasti dátovej vedy, budete musieť byť dobrý v čistení a formátovaní údajov. Konverzia údajov na inú mernú jednotku je dobrým praktickým testom. 4. Naprogramujte nástroj na konverziu teplotyPodobne je užitočný program na zostavenie prevodu teploty na inú mernú jednotku. Zistite, či môžete vytvoriť program, ktorý bude merať zadanú teplotu v stupňoch Celzia a vráti rovnakú teplotu vo Fahrenheite. 5. Vytvorte multiplikátor s pohyblivou rádovou čiarkouVzhľadom na dve čísla s pohyblivou rádovou čiarkou vytvorte program C ++, ktorý vám poskytne súčin týchto dvoch. Chcete posunúť veci na strednú úroveň? Na tejto výzve stavte tým, že povolíte ľubovoľný počet vstupov (alebo ich množstvo) a vrátite súčin všetkých vstupných čísel s pohyblivou rádovou čiarkou. 6. Skonvertujte reťazec na všetky veľké písmenáMôžete sa rozhodnúť, ako dlhý alebo krátky bude váš vstupný reťazec. Tento program by mal brať zadané malé písmená a prevádzať ich na veľké písmená. Ide o veľmi užitočný nástroj na správu databázy alebo čistenie údajov. 7. Vytvorte kalkulačku, ktorá bude počítať priemerNapíšte program v jazyku C++, do ktorého zadáte pole čísel a výstupom bude ich priemer. Bonusom by mohla byť kalkulačka, ktorá ako vstup použije maticu a poskytne priemer každého riadka alebo stĺpca. 8. Vytvorte funkciu, ktorá skráti reťazec na 10 znakovMôžete zostrojiť funkciu, ktorá prijíma ako vstup reťazec a vracia skrátenú verziu? Existuje mnoho aplikácií na orezávanie údajov, takýto nástroj vie odstrániť chyby v databáze. Napríklad v údajoch o adrese zákazníka by akékoľvek PSČ, ktoré má viac ako päť znakov, bolo nesprávne. Orezávanie celých súborov pomocou tohto programu môže pomôcť udržať databázy so správnymi údajmi. 9. Naprogramujte program, ktorý bude vykonávať triedenie poľa číselných prvkovVzhľadom na pole, povedzme, 10 čísel, môžete vytvoriť program, ktorý vráti pole v číselnom poradí od najmenšieho čísla po najväčšie? Zoradenie údajov je účinný spôsob využitia jazyka C++. Ak vám vyhovuje malé pole, skúste pracovať s väčším - alebo dokonca s maticou. Triediaci algoritmus nechávame na riešiteľovi. 10. Napíšte program, ktorý počíta duplicitné položky poľaPri čistení údajov je potrebné odstrániť duplicitné údaje. V tejto krátkej úlohe teda vytvorte program, ktorý vráti počet prvkov v poli, ktoré sú duplikáty. Nezabudnite každý deň pracovať na svojich programátorských zručnostiach, aby ste postupne dosiahli vytúžený cieľ a stali sa dobrými programátormi. 
Hra GalaxyCodr učí programovať deti od 8 rokov
Vzdelávanie
17.09.2021
Skillmea

Hra GalaxyCodr učí programovať deti od 8 rokov

Veľký tresk našej galaxiePrácou so žiakmi sme získali cenné skúsensti. Z nich sme čerpali pri tvorbe video kurzov programovania pre deti. Vo videách účastníkom predstavíme postup, podľa ktorého si dokážu naprogramovať vlastné projekty. Naším zámerom však je, aby deti neboli len pasívnymi divákmi, ale aby samé aktívne tvorili riešenia problémov pri programovaní. Rozhodli sme sa preto vytvoriť vzdelávaciu hru. Inšpiráciu sme našli napríklad v aktivitách Hour of Code alebo hre Run Marco, na ktorú sme pozerali ako na nášho duchovného súpera. Vo svete však existuje viacero podobných projektov. Väčšina z nich sa však venuje len úplným základom a to je pohyb alebo orientácia robota. My sme chceli ísť viac do hĺbky. Na prvý pohľad sme chceli zaujať príjemnou grafikou, vtipným príbehom a animovanými filmami. Už od samého začiatku sme náš projekt testovali s deťmi. Žiakom sme predviedli náčrty postáv a nechali sme ich hlasovať. Vybrali si vzhľad hlavného hrdinu, vesmírnu raketu alebo príšerky do albumu. Keďže som zberateľský typ, hneď na začiatku som chcel deti motivovať zbieraním. Podobne, keď som ako školák kupoval samolepky pokémonov do nálepkového albumu. Prvá verzia hry, ktorú sme testovali so žiakmi, vznikla ešte ako prototyp v prostredí Scratch. Popravde Scratch doteraz využívame pri tvorbe podkladov a návrhu nových mechaník. Na obrázku nižšie si pozrite malú ukážku.[Image] Simulujeme to, ako budú fungovať, predtým než sa pustíme do ich programovania a implementácie do hry. Počas vývoja sme upustili od viacerých návrhov. Napríklad, pôvodne sme našu hru pomenovali Galacticco. Chceli sme deti odmeňovať predmetmi, ktorými by si zveľaďovali svoju virtuálnu izbu alebo vylepšovali vesmírnu raketu. To by bola domovská základňa nášho hrdinu. Do finálnej podoby sa nedostal ani dizajn úrovní pod vodou alebo medzi oblakmi. Vulkanickej planéty plnej lávy sa však možno ešte v budúcnosti dočkáme.  Popis hry GalaxyCodr v skratke Hra je rozdelená na niekoľko planét. Každá z nich sa venuje nejakej problematike programovania. Obsahuje 20 základných príbehových úrovní. Pre odvážnych je určených 5 náročnejších bonusových úrovní. Každá planéta má vlastné príbehové videá a graficky odlišné prostredie. Úrovne tvoria cesty zložené z políčok. Cieľom je navigovať postavičku Spike na cieľové políčko. Riešením je algoritmus zložený z pokynov teda príkazov, ktoré majú tvar blokov. Zkladáme ich dokopy podobne ako pri stavebnici. Programujeme spôsobom uchop, presuň. a umiestni. Poradie inštrukcií je veľmi dôležité, pretože Spike vykonáva príkazy postupne. Každý level obsahuje didaktický cieľ. Ktorý keď žiaci splnia dostanú víťazný pohár. Na splnenie cieľa na prvých úrovňiach sa postačí dostať do cieľa. Neskôr sa ciele prispôsobia problematike, ktorej sa na danej úrovne venujeme. [Image] Zábavný fakt: Prvé dve planéty Sandy a Roj meteoritov, ktorý obieha okolo planéty, sme spojili do jedného celku. Tieto dva akty boli zverejnené a dlhý čas dostupné na hranie. Spolu s ďalšími planétami prichádzame aj so súťažou. Chceli sme, aby hráči hrali niečo nové a neboli znudení opakovaním úrovní. Tak sme sa rozhodli spojiť pôvodné dva celky dokopy. Zároveň sme navrhli novú sadu úloh. Je mierne náročnejšia. Uvidíme, ako sa nám toto rozhodnutie osvedčí. Hráči sa tak po prejdení prvej planéty môžu tešiť na nový obsah tvorený 4 novými planétami a teda 80 levelmi. Kurikulum planét1. Planéta: Sandy Na povrchu planéty sa naučíme: pohyb postavičky, postupnosť príkazov, vstupné parametre a cyklus. Začíname s bežnými príkazmi ako choď dopredu alebo otoč sa. Riešenie niektorých úrovní nabáda opakovať časti kódu pomocou príkazu opakuj. Všimnite si, že do príkazov vieme písať rôzne čísla. Vo vesmíre sa naučíme: orientácia na dráhe a časovanie. Dráha je kvôli meteoritom rozdelená na niekoľko samostatných častí. Tie sú poprepájané pomocou portálov. Pozor, východy z portálu môžu byť otočené iným smerom ako ich vstupy! Premávku vo vesmíre podobne ako aj u nás pomáhajú riadiť semafory. Musíme si naplánovať, pri ktorom semafore budeme čakať a ako dlho. Prípadne musíme hľadať cestu, po ktorej sa dostaneme najrýchlejšie do cieľa. Na získanie víťazného pohára je potrebné prejsť level za určitý počet ťahov. Každý krok dopredu ako aj čakanie nás stojí drahocenný ťah. 2. Planéta: TerraNaučíme sa: cyklus s ne-určeným počtom opakovaní a podmienky. Cesta sa nám zdá príliš dlhá. Nebudeme počítať políčka. Budeme opakovať kráčanie pokiaľ sa nedostaneme do cieľa. Sem tam musíme odbočiť alebo sa vyhnúť prekážke. Aby sme vedeli kedy, tak sa na to potrebujeme opýtať. Tieto otázky skladáme pomocou podmienok, napríklad: Ak je cesta vpravo, odboč doprava. Na začiatku ich budeme mať predpripravené, neskôr si ich budeme musieť poskladať z jednotlivých dielikov. 3. Planéta: Crystal Naučíme sa: premenné a vstupné parametre. Cestu nám blokujú rôzne uzavreté zátarasy alebo nefunkčné portály. Na ich spojazdnenie potrebujeme určitý počet kryštálov vhodnej farby. Tie sú našťastie všade okolo nás. Budeme ich zbierať, počítať a používať. 4. Planéta: VotanNaučíme sa: súradnice. Celá plocha je pokrytá ľadom až na pár zasnežených políčok. Práve ich polohu musíme zistiť. Je zložená z písmen a čísel. Keď zistíme správnu polohu, môžeme sa po ľade na políčko šmyknúť. 5. Planéta: Zombie IXNaučíme sa: programovať viacero postáv a udalosti. V ceste nám stojí zavretá brána. Niekde musí byť páka, ktorá ju otvorí. Nedočiahneme na ňu. Pomôcť nám môžu okolo sa potulujúci roboti. Ich program je však poškodený. Sú hlúpejší ako zombie, ktoré sú nám v pätách. Pomocníkov potrebujeme naprogramovať. Musíme im dať znamenie, aby v správnej chvíli otvorili bránu. Tak, aby nás pustili ďalej, ale aby zombie zostali vonku.[Image] Nové možnosti a súťaž s KauflandomHraním hry môžeme plniť rôzne úspechy, za ktoré dostanete odmeny pre svoj účet. Môžeme si upraviť obrázok a rámček avatara, pridať pred svoju hernú prezývku titul ako napríklad "kráľ galaxie". Na stránke hry máme pripravenú aj pomoc pre učiteľov. Tí majú možnosť založiť si učiteľský účet. V ňom môžu vytvárať triedy, kam si vás pomocou kódu môžu pridať a sledovať tak váš postup hrou.  Vďaka spolupráci s Kauflandom sme hráčom sprístupnili nový obsah. V Kauflande si môžete zakúpiť len za 1 euro nálepkový album. Za každých 20 Eur nákupu získate jeden balíček obsahujúci 5 náhodných nálepiek do albumu a 1 QR kód. Pomocou QR kódu môžete získať ďalší balíček, ale tentoraz do digitálneho albumu. Dvojnásobná radosť z otvárania.  Tento balíček si v predajni môžete zakúpiť aj samostatne za 0,5 Eur. Ak sa vám podarí zozbierať celý digitálny album a dokončíte prvú planétu, víťazné poháre  nepotrebujete, môžete sa zapojiť do súťaže o herný notebook. Digitálnych hrdinov môžete získať aj hraním hry. Ak si vo svojom profile vyplníte školu, automaticky ju zapíšete do súťaže o IT učebňu.[Image]Viac informácií o súťaži a hre GalaxyCodr nájdete na webe.
Programovanie pre deti: sprievodca pre rodičov a učiteľov
Vzdelávanie
08.09.2021
Skillmea

Programovanie pre deti: sprievodca pre rodičov a učiteľov

Programovanie pre deti je čoraz viac obľúbenejšie. Nie je to prekvapujúce, vzhľadom k tomu, ako sa spoločnosť stala závislou na technológiách. Stále viac ľudí sa zaujíma o túto zručnosť a pýta sa: mohol by som sa to tiež naučiť? Aj rodičia viac venujú pozornosť programovaniu a snažia sa k nemu svoje deti viesť.  Naučiť sa programovať v mladom veku môže dieťaťu zaistiť celoživotný úspech. Programovaniu sa venujú už aj učitelia na základných školách a existuje viacero vzdelávacích programov, kurzov či nástrojov, ktoré sa snažia programovanie deťom čo najviac priblížiť a uľahčiť. V tomto článku prinesieme náš pohľad na programovanie pre deti: výhody, prečo je táto počítačová zručnosť v súčasnosti taká dôležitá, zoznam nástrojov, vďaka ktorým sa vaše dieťa vie naučiť základy programovania.[Image] V akom veku môžu deti začať s programovaním?Podľa Piagetovej kognitívno-štrukturálnej teórie vývinu, ktorú vypracoval švajčiarsky psychológ Jean Piaget v roku 1971, sú deti vo veku 5 rokov v predoperačnom štádiu. V tejto fáze dieťa začína chápať svet pomocou mentálnych reprezentácií prostredníctvom slov a obrazov. Prejavom reprezentatívnej funkcie v poznávaní je tiež oddialená imitácia. Ide o schopnosť napodobňovať model s časovým odstupom. Dieťa môže napríklad vidieť iné dieťa ako prelieza zábradlie. Spomenie si na to na druhý deň a na základe predstavy, ktorú si uchovalo, dokáže samo uvedené úkony podobným spôsobom vykonať. Podľa tejto teórie a dostupnosti moderných vzdelávacích nástrojov a technológií, sa mnohí odborníci zhodujú, že dieťa sa môže začať učiť programovať vo veku 5 rokov. Niektorí rodičia môžu mať z tohto veku obavy a rozumieme týmto obavám. Základy programovania je však možné vyučovať ľahšie vďaka gamifikácii a moderným programovacím aplikáciám, robotike a ich nástrojov. Mnoho webových aplikácií a stránok učia deti programovať pomocou blokového programovania. Niektoré vlády, napríklad Veľkej Británie, Estónska a Fínska zaviedli alebo zvažujú zavedenie programovanie ako súčasť školských osnov pre deti vo veku 5 a viac rokov. Ako vzbudiť záujem vášho dieťaťa o programovanie?Ak sa vaše dieťa už zaujíma o programovanie, tvorbu webov či vývoj hier a aplikácií, pravdepodobne nebudete musieť urobiť veľa, aby ste ich k samotnému reálnemu programovaniu doviedli. V zásade by ste už len našli vhodné online či offline kurzy, krúžky a podobne. Ak však vaše dieťa z počítačových vied (alebo aj STEM predmetov - Science, Technology, Engineering, Mathematics) nadšené nie je, existuje niekoľko spôsobov, ako v nich vzbudiť záujem. Kombinujte programovanie s ich súčasnou vášňou• Hračky a roboty Existuje množstvo zábavných "offline" hračiek, ktoré pokrývajú základy STEM a kódovania. Existuje takisto mnoho programovateľných robotov. Môžeme spomenúť populárneho Ozobota alebo Makeblock mBot Robot Kit. Sú to sety vhodné pre začiatočníkov v oblasti programovania a viete ich programovať aj pomocou rozhrania v notebooku či tablete. NAO Robot je humanoidný robot, ktorý je však veľmi drahý a tu ho spomíname skôr ako zaujímavosť.[Image] • Stavebnice LEGO je lídrom v oblasti hračiek pre začínajúcich staviteľov. S LEGO MINDSTORMS si môžete postaviť a naprogramovať vlastného robota. Obsahuje aj jednoduchú aplikáciu s programátorským rozhraním a takto viete ovládať svojho robota. Páčiť by sa vám mohol aj LEGO BOOST Creative Toolbox, vďaka ktorému sa vaše dieťa môže naučiť základy kódovania, inžinierstva a robotiky.[Image] • Kreslenie, maľovanie Ak má vaše dieťa umelecké vlohy, má rado kreslenie, ukážte mu nástroje ako napr. Scratch vďaka, ktorému môžete vytvárať animácie, interaktívne príbehy, hry a pod. pomcou blokového programovania. Deti môžu do Scratch platformy nahrať vlastné obrázky, zvuky, pozadie a vytvárať tak unikátne projekty. Viac o Scratch si prečítajte nižšie v článku. • Video hry (mobilné hry) Deti, ktoré hrávajú počítačové a mobilné hry, by mohli mať záujem o ich výrobu. Vášniví hráči sa môžu naučiť základné znalosti programovania prostredníctvom veľmi obľúbených počítačových hier ako Minecraft a Roblox. Učte sa programovať s nimiDeti chcú byť nezávislé, ale napriek tomu môžu uprednostniť, keby im boli rodičia nápomocní pri začiatkoch v programovaní. Učia sa niečo nové a častokrát sa môžu na niečom zabrzdiť, zaseknúť, čo môže byť veľmi frustrujúce a demotivujúce. Keď im však pomôžu rodičia, ktorým dôverujú, učenie sa stane väčšou zábavou. Pokiaľ teda vaše dieťa váha s učením sa programovania, navrhnite mu, že sa budete učiť spoločne. Ak nie ste technicky zdatný rodič, nevadí, je to skvelá príležitosť aj pre vás naučiť sa niečo nové a vzdelávať sa.[Image] Aký je najlepší programovací jazyk pre deti?Moja cesta k programovaniu začala na strednej škole v prostredí Turbo Pascal. Na počítačoch pre moju skupinu nebola dostupná grafika. Tak zatiaľ čo druhá skupina kreslila autíčka, my sme sa snažili s tou modrou obrazovkou nejako komunikovať. Programovali sme rôzne jednoduché výpočty a odpovede. Po výmene učebne sa pre nás finálnou skúškou stal príklad naprogramovať nakreslenie olympijských kruhov. Veľkým vtipom bola moja príprava na maturitu. Pred Vianocami sa nám pokazil počítač a oprava trvala celý zvyšok školského roka. Programoval som pomocou ceruzky a starého zošita. Spustenie programu prebiehalo v mojej hlave s myšlienkami: „Teraz by to asi malo fungovať.“  Doba postúpila a digitálne technológie sú dostupnejšie. Úvodné nástroje do programovania sa skrývajú za každým rohom. Jedným očkom môžete mrknúť na našu vzdelávaciu hru GalaxyCodr. Vaše prvé kroky na ceste k programovaniu sú oveľa jednoduchšie. Ale ktorou cestou sa vydať? Skúsim vám poradiť podľa mojich skúseností, nakoľko som odučil nespočetne veľa kurzov, krúžkov a webinárov programovania pre deti.  Scratch Junior (škôlka – 3. trieda ZŠ) Začnime s tými najmladšími. Im by som odporučil prostredie Scratch Junior. Je určené pre smartfóny alebo tablety. Vhodnejší je však tablet, vďaka jeho rozmerom obrazovky. Na ktorej sa vám bude s blokmi lepšie pracovať. Príkazy sú stvárnené blokmi pripomínajúcimi stavebnice. Z nich skladáte scenáre pre postavičky, spôsobom uchop potiahni a pusti. Význam príkazov je znázornený obrázkami. Možno na začiatku budete potrebovať pomoc rodičov, ale programovať v prostredí Scratch Junior by mali zvládnuť aj deti v predškolskom veku.   Scratch (4. – 8. trieda ZŠ) Keď trochu podrastiete, môžete sa pustiť do prostredia Scratch. Tu začína tá pravá zábava pre každého nadšenca, ktorý rád vymýšľa vlastné svety alebo chce tvoriť hry. Opäť programujeme blokovým systémom. Všetky príkazy máte dostupné a rozdelené do kategórií. Nachádza sa tu bohatá knižnica postáv a pozadí. Nesklame nás ani celkom slušný nástroj na kreslenie. Scratch beží vo webovom prehliadači. Ak si vytvoríte účet, môžete si vaše diela ukladať priamo online do cloudu. Tu prichádzame ku skvelej Scratch komunite. Priamo na stránke nájdete obrovské množstvo zverejnených projektov. Každý z nich si môžete vyskúšať a pozrieť jeho zdrojový kód. Môžeme sa takto naučiť, ako projekt funguje a prípadne sa ním inšpirovať. Keďže programy tvoria používatelia, sú tu aj slabšie projekty s prosbou o pomoc, vtipné príbehy, zábavné hry a dokonca aj majstrovské diela. Scratch má neskutočný potenciál! Môžete tu dokonca naprogramovať rekurzívne stromy, čo je téma na vysoké školy.   App Inventor (od 7. triedy ZŠ) Z „dospelejších“ programátorských nástrojov je k prostrediu Scratch najbližšie App Inventor. Je to grafický programovací nástroj pre mobilné Android telefóny. To znamená, že programujetee pomocou blokov a rôznych komponentov. Programujete vo webovom prehliadači. Môžete sa prihlásiť pomocou Gmail účtu a zdrojový kód projektov ukladať v cloude. Naprogramované projekty si môžete spustiť na vašom telefóne. Jednoduchú hru typu „Udri prstom krtka“ naprogramuje skoro každý. App Inventor je vhodný na výuku programovania, ale možno v ňom vyvíjať aj plnohodnotné mobilné aplikácie. [Image] p5.js - JavaScript (od 7. triedy ZŠ)Moju cestu do „dospeláckého textového programovania“ som započal v prostredí p5.js, ktoré mi predstavil jeden kolega. Ahoj Majo 🙂 Prostredie beží online vo webovom prehliadači. Prihlásiť sa môžete pomocou Gmail konta a všetky projekty si priamo naň uložiť. Na písane kódu používame jazyk JavaScript. S tým, kde zobrať tie správne slová, aby nám vznikol kód, si ťažkú hlavu robiť nemusíte. Na stránke je bohatá Referenčná knižnica s príkazmi. Výhodou sú príklady, ktoré môžete upraviť a tak experimentovať. Fanúšikovia vytvorili rôzne užitočné knižnice, ktoré sú dostupné priamo na stránke. Naše projekty môžeme pomocou webového odkazu poslať kamarátom, či už so zdrojovým kódom alebo len spusteným projektom. Osobne môžem učiteľom toto prostredie vrelo odporučiť! Dôležité je zvoliť správnu sadu jednoduchých a zaujímavých projektov. Ako mám vo zvyku, na overenie našich „skillov“ môžeme využiť hru Bludisko.  [Image] Ďalšie nástrojePočas svojej praxe som sa stretol s viacerými jazykmi a prostrediami pre začiatočníkov v oblasti programovania. Môžeme si ich spomenúť v „Sieni slávy.“ Blockly Games Ponúka viacero aktivít, ale mojou obľúbenou je Maze. Tu vás čaká zopár zaujímavých bludísk. Programujete cestu do cieľa pomocou blokov. Posledné úrovne vás môžu potrápiť s vetvením podmienok.  CodeCombat Chcete sa naučiť programovať hraním hry na hrdinu. V tomto RPG dobrodružstve môžete prechádzať rôznymi kobkami pomocou textového programovania ako Phyton, JavaScript, C++ a tak ďalej. Hodina kódu (Hour of Code) Obsahuje početnú sadu aktivít zameraných na programovanie pomocou blokov. Oblečené sú v tematickom kabáte ako Minecraft, Star Wars, Angry Birds alebo Plants vs Zombies. Môžete tu nájsť aj zbierku odkazov na ďalšie zaujímavé prostredia.  GalaxyCodr Vráťme sa naspať domov na Slovensko, kde štartuje vesmírna raketa pripravená na programátorské dobrodružstvo. V peknom grafickom prostredí programujete cestu postavičky Tima pomocou blokov. Jeho cesta za záchranou kamaráta je podporená vtipnými animáciami. Môžete sa v blízkej dobe tešiť na pokračovanie príbehu a nové planéty, ktoré čoskoro pribudnú.  LEGO Stavebnice LEGO ponúkajú viacerých robotov, ktorý nie sú určený len na skladanie. Ich pomocou sa môžeme učiť programovať. Pre mladších je tu LEGO Boost a pre starších LEGO Mindstorms. Programujeme na tablete alebo počítači pomocou blokov.  Veteráni K starším veteránom v tejto oblasti patria prostredia pre deti ako Robot Karel, EasyLogo, Imagine alebo Baltík. Odporučiť môžem aj sadu aktivít na precvičenie digitálnych zručností v prostredí Cirkus Šaša Tomáša alebo archív súťaže iBobor.  Na záver môžem povedať, že som určite nespomenul všetko. Chcel som sa s vami podeliť o programátorské prostredia, s ktorými mám osobnú skúsenosť. Ak máte tipy na ďalšie vzdelávacie hry, aplikácie či robotov, neváhajte sa s nimi podeliť v komentároch.
Frontend vs Backend vs Fullstack a ako sa na to pozerám ja
Vzdelávanie
20.08.2021
Jaroslav Beňo

Frontend vs Backend vs Fullstack a ako sa na to pozerám ja

Pri riešení a vývoji aplikácii si vieme vývoj rozdeliť na dve hlavné časti – front end a back end. Front end je v podstate to čo vidíš očami – to s čím sa používateľ ako prvým stretne (počas vysokej školy ma pucoval jeden profesor, že človek, čo kliká našu aplikáciu je používateľ a nie užívateľ). Následne back end je všetko vzadu, čo bežný používateľ nevidí, čo sa deje na pozadí, zväčša je to spracovanie dát, komunikácia s databázou a podobne.  Po internete kolujú desiatky memes, v ktorých sa tieto rozdiely medzi frontendom a backendom zobrazujú. Pozri si zopár z nich: [Image] Dúfam, že máš teraz akú takú hrubú predstavu o tom, čo je frontend a čo backend. Ako sa nám snažia podsunúť tieto meme obrázky, backend nemusí byť a nemal by byť škaredý a zle napísaný špagetový kód, práve naopak. Napriek tomu, že backend používateľ nevidí, mal by fungovať parádne. Pozrime sa teraz na to z pohľadu reálnej aplikácie.  Reálna aplikácia Uvažujem nad webovou aplikáciou, ktorá bude napojená na databázu. Ako prvé potrebujem poznať, čo sa má v aplikácii diať, čo má aplikácia robiť, aké sú podmienky, čo sa má kedy zobrazovať a tak podobne.   Na túto úlohu sú vyhradení špecialisti ako analytik, ktorý analyzuje aplikáciu z pohľadu používania a takzvanej business logiky. Teda napríklad banková aplikácia má inú business logiku a podobne aplikácia na správu používateľov má inú logiku. Potom nastúpi architekt, ktorý povie, v čom sa bude programovať frontend, v čom back end a všetko navrhne technicky.  Následne prichádza na scénu frontend programátor a backend programátor. Alebo čoraz viac populárny fullstack programátor.  Úloha front end developeraFrontend developer má za úlohu pripraviť obrazovky – UI – user interface podľa požiadaviek. Napríklad potrebuje zobraziť všetky transakcie na bankovom účte. Pripraví si obrazovku. Použije HTML + CSS na výzor stránky plus JavaScript na funkcionalitu. Použije najčastejšie jeden z populárnych frameworkov – podľa zadania architekta – Angular, Vue, React. Okrem toho by frontend vývojári mali ovládať frameworky ako Bootstrap, Foundation a ďalšie, ktoré zaistujú skvelo vyzerajúci obsah bez ohľadnu na zariadenie, na ktorom si daný obsah prezeráte. Ak potrebuje dáta, tak podá požiadavku na backend programátora alebo analytik pripraví úlohu pre back end programátora. Frontendista následne potom zobrazí dáta, ktoré mu poskytol backend.  “Frontend developer je zodpovedný za interiérový dizajn domu, ktorý postavil backend developer.” Úloha back end developeraBack end developer pripraví databázu, pripraví si kód na získanie dát z databázy a napojenie dát do programu. Následne pripraví službu na poskytnutie dát do okolitého sveta. Nie všetko, čo je v databáze chceme zobrazovať na obrazovke, len to čo je treba. Služba býva hlavne REST rozhranie (REST api), ktoré vyzerá ako klasická url adresa na webovú stránku, no namiesto web stránky vráti dáta v požadovanom tvare. Napríklad vráti zoznam bankových transakcií daného používateľa v tvare JSON.   Ako backendista by si mal poznať jazyk SQL na komunikáciu s databázou. Potom záleží v akom jazyku je backend napísaný – Java, C#, Python, Ruby a podobne. Potom každý jazyk má frameworky, ktoré pomáhajú pri práci.  Úloha full stack developeraIdeálna kombinácia je vedieť aj front end aj back end. Fullstack developer si pripraví obrazovku a ak potrebuje dáta, tak si ich vie aj sám pripraviť. Podľa môjho názoru je dobre vedieť aj front aj backend, ale trpí tým hĺbka znalostí problematiky.   Zručnosti a znalosti fullstack developerov sú potrebné vo všetkých fázach procesu webového vývoja, počnúc fázou plánovania projektu, správou databáz, vytváraním používateľských rozhraní až po štruktúrovanie údajov a riešenie kritických potrieb. Fullstack vývojári preto musia porozumieť všetkým úrovniam webových stránok a tomu, ako web funguje. Na záver možno povedať, že učenie sa viacerých webových jazykov a technológií je pravdepodobne najlepšia cesta. Je však dobré mať na pamäti tento prístup: osvojte si najpoužívanejšie a najpopulárnejšie technológie/jazyky, pretože čím väčšiu podporu pre svoj web/produkt/službu máte, tým lepšie. Backend developer pozná do hĺbky problémy, ktoré môžu vzniknúť s databázou, pozná lepšie všetky procesy na pozadí.  Frontend developer ovláda lepšie javascriptový framework, vie ako spraviť veci efektívnejšie. Fullstack developer nemusí čakať, kým mu pripravia dáta na backende a vie si všetko lepšie manažovať.
Data Science: ktorým jazykom začať?
Vzdelávanie
11.08.2021
Skillmea

Data Science: ktorým jazykom začať?

Aj ty rozmýšľaš o tom, že sa naučíš data science, ale nevieš, kde začať? Dostávame otázky na to, s ktorým data science jazykom začať ako s prvým. Preto sme pripravili tento blog, v ktorom ti zosumarizujeme nami navrhovaný postup učenia sa data science. V článku nájdeš tipy na jazyky dátovej vedy od našich lektorov Mira Beku, ktorý spravil populárny online kurz Python Data Science a od Mareka Čecha, ktorý vytvoril kurz so zameraním na SQL dátovú analýzu. Veríme, že tento článok ti pomôže vybrať ten správny data science jazyk.[Image] Správny jazyk pre tvoje Data Science cielePredtým, ako si vyberieš konkrétny jazyk, by si si mal(a) položiť niekoľko otázok a zodpovedať na ne. Sú to najmä tieto: Na akých projektoch chceš pracovať? Aké témy ťa zaujímajú? Do ktorých odvetví chceš ísť? Odpovede na tieto otázky ti pomôžu určiť jazyk, ktorý sa budeš musieť naučiť. Niektoré odvetvia vyžadujú znalosť konkrétneho jazyka, je to najmä z dôvodu, že budeš pracovať s preverenými modelmi daného odvetvia, ktoré sú vytvorené pomocou určitého jazyka. Dobrým postupom je aj opýtať sa dátových vedcov z odvetvia, ktoré ťa zaujíma, na jazyky, ktoré používajú a čím odporúčajú začať. Nižšie v článku nájdeš niekoľko facebookových a iných skupín z regiónu Slovenska a Česka, ktoré ti odporúčame. “TL;DR: Najčastejšie používané jazyky v dátovej vede sú Python, R a SQL. Toto sú aj nami odporúčané jazyky, ktorými začať, pokiaľ máš v úmysle stať sa dátovým vedcom. ” Pri výbere akéhokoľvek z data science jazykov však v podstate neurobíš chybu, nakoľko keď sa naučíš extrahovať poznatky a dáta pomocou jedného jazyka, nebude pre teba problém naučiť sa iný jazyk. Všestranný dátový vedec by mal byť schopný "skákať" medzi jazykmi. Najobľúbenejšie Data Science jazykyV tomto stručnom prehľade ti predstavíme najobľúbenejšie Data Science jazyky a na čo slúžia. Dobrou správou je, že Python, R aj SQL majú rozsiahle ekosystémy a komunity, takže tieto jazyky sú vhodné pre takmer všetky úlohy dátovej vedy. Python Python je univerzálny moderný programovací jazyk, vieš ním robiť weby aj programovať robotov. Medzi programátormi je obľúbený pre svoju stručnú a ľahko čitateľnú syntax. Dobre sa teda číta a je možné sa ho veľmi rýchlo naučiť - je teda skvelou voľbou pre výučbu programovania. Vďaka množstvu výkonných knižníc a balíkov môže Python implementovať mnohé zo štatistických modelov a výpočtov potrebných pre dátovú vedu. Je to tiež jeden z najlepších jazykov na získavanie (scraping) údajov z webu. Veľa firiem a organizácií používa Python na data science, pretože ich programátori už používajú Python aj na iné účely. Python tiež používa intuitívnu a jednoduchú syntax, takže je vhodný pre začiatočníkov na učenie sa dôležitých všeobecných konceptov programovania, ako sú napr. funkcie. Miernou nevýhodou Pythonu ako prvého jazyka pre data science je, že základná inštalácia Pythonu neobsahuje štatistické funkcie, takže si budeš musieť stiahnuť všetky potrebné balíčky, aby si mohol začať s data science v Pythone. Keď si však všetko nastavíš, Python sa dá ľahko naučiť. Zopár zaujímavých a odporúčaných balíčkov pre Python: • Data manipulácia: pandas a NumPy • Vizualizácia: Matplotlib a seaborn • Testovanie hypotéz a modelovanie: SciPy, scikit-learn, statsmodels Lektor Miro Beka odporúča aj Jupyter notebook, ktorý je podľa neho "skvelý nástroj ako pracovať s Python datas cience, pretože programátor vie priamo v ňom vykonávať všetky funkcie, zobrazovať grafy a obrázky, prípadne importovať existujúce jupyter notebooky. Keďže python nemá natívne IDE, kde by všetky tieto veci fungovali out of the box, jupyter notebook slušne dopĺňa Python prostredie o potrebné nástroje." Programovací jazyk R R je štatistický programovací jazyk vytvorený pre analýzu údajov, vizualizáciu údajov a dátovú vedu. Dodáva sa s komplexným súborom vstavaných štatistických funkcií a metód. R je dobrá voľba, ak si nováčik v oblasti dátovej vedy, ale už máš základné znalosti o všeobecných konceptoch programovania. Dátové štruktúry, typy premenných a analytické nástroje v R sú jednoduché a navrhnuté špeciálne pre dátovú vedu. Na začiatku nemusíš byť zaneprázdnený syntaxou alebo viacerými rôznymi knižnicami. So základnou inštaláciou R budeš mať prístup k mnohým funkciám dátovej vedy, ako sú lineárne regresie alebo t-testy, a vytvárať peknú grafiku a vizualizácie. R sa tiež dobre kombinuje s RStudio - integrovaným vývojovým prostredím (IDE) - ktoré uľahčuje spustenie kódu R a kontrolu výstupu. Medzi niekoľko užitočných balíkov, o ktorých by si mal vedieť pri učení jazyka R, patria: • Zbierka data science balíčkov: tidyverse • Data manipulácia: dplyr (nachádza sa aj v tidyverse) • Vizualizácia: ggplot2 (nachádza sa aj v tidyverse) • Regresia: caret SQLSQL je jazyk, ktorý umožňuje programátorom komunikovať s databázami a spravovať údaje, ktoré obsahujú. Bežne sa používa na dopytovanie a úpravu údajov uložených v relačnej databáze. Dátoví vedci zvyčajne extrahujú údaje z databázy pomocou jazyka SQL a potom ich importujú do R alebo Pythonu na analýzu. Bez ohľadu na to, aký jazyk sa pre analýzu údajov naučíš, SQL je dôležité naučiť sa, ak chceš sťahovať údaje z databáz. Znalosť jazyka SQL ti umožňuje pracovať s databázami PostgreSQL, SQLite, MySQL a ďalšími relačnými databázami. Syntax základných dotazov je v rôznych databázach podobná, takže SQL je na tento účel univerzálnym jazykom. Ak sa chceš dozvedieť viac o rôznych typoch databáz, pozri si tento online kurz o MySQL a SQLite. Lektor Marek Čech hovorí o SQL ako o vstupnej bráne do odborov súvisiacich so správou dát, či už sa jedná o dáta science, dáta analýzu alebo napríklad business intelligence. Je nielen univerzálnym jazykom pre komunikáciu s databázami a získavanie dát z nich, ale ponúka aj veľké množstvo vstavaných funkcií, vďaka ktorým je používateľ veľmi rýchlo a jednoducho schopný robiť pomerne komplexné operácie. "Začať svoju cestu k práci s dátami jazykom SQL by som práve preto odporučil aj ľuďom, ktorí nemajú predchádzajúce skúsenosti s programovaním či "kódovaním". Človek sa tak naučia písať jednoduché aj zložité otázky, vytvárať databázové schémy, indexy či procedúry, a všeobecne pochopí, ako tok dát a ich čistenie / transformácie bežne prebieha." hovorí ďalej Marek Čech. Jazyk SQL je možné využiť naozaj v akomkoľvek odbore. Poznať ho teda znamená otvorené dvere do lokálnych podnikov i nadnárodných korporácií snáď vo všetkých odvetviach. A keď sa človek rozhodne svoje znalosti rozšíriť o ďalšie jazyky, bude sa mu znalosť SQL stále hodiť pri pátraniach na zdrojové dáta a často aj pre najrôznejšie dáta analytické operácie či poskytovanie dát "businessovým" používateľom - teda napr. Manažment firmy. Ďalšie data science jazykyV závislosti od toho, do akého odvetvia nakoniec pôjdeš, sa možno budeš musieť naučiť konkrétny jazyk pre dátovú vedu. V nasledujúcom zozname jazykov sa dozvieš viac o tom, na čo sa používajú. C/C ++: C aj C ++ vyžadujú silné znalosti základov programovania a učenie týchto jazykov môže trvať dlhšie. V kombinácii s Pythonom alebo R je možné C/C ++ použiť na rýchlejšie a efektívnejšie výpočty datasetov. JavaScript: JavaScript je super nástroj na vývoj interaktívnych data vizualizácií na webe s knižnicami ako D3.js. JavaScript tiež podporuje knižnice strojového učenia ako TensorFlow.js. MATLAB: Ideálny pre pokročilé numerické výpočty a na riešenie zložitých matematických a štatistických problémov. MATLAB sa v akademickom prostredí široko používa na vyučovanie matematiky, fyziky a inžinierstva. Julia: Novší programovací jazyk navrhnutý pre numerickú analýzu a výpočtovú vedeckú analýzu. Je to užitočné pre aplikácie vo fyzike, chémii, astronómii, strojárstve, bioinformatike a ďalších oblastiach. Scala: Výkonný jazyk, ktorý dokáže spracovať veľké množstvo údajov. Scala beží na Java Virutal Machine, čo znamená, že sa dobre integruje s programami napísanými v Jave. SAS: Vytvorený pre pokročilú analytiku, obchodnú inteligenciu a prediktívnu analýzu. SAS sa bežne používa v zdravotníctve, bankovníctve a poisťovníctve. Stata: Používa sa v ekonomickom výskume, verejnej politike a sociálnych vedách. Stata je navrhnutá pre čokoľvek od jednoduchej deskriptívnej analýzy po komplexné štatistické modelovanie. Ďalšie vzdelávanie v data sciencePokiaľ chceš byť v kontakte s ľuďmi z fachu, pozri si týchto zopár užitočných odkazov. Toto sú slovenské Facebook skupiny, ktoré sa zaoberajú dátovou vedou: • PyData Slovakia & Bratislava 👉 https://www.facebook.com/groups/1813599648877946/ • R Slovakia 👉 https://www.facebook.com/groups/931707906955080/ Pycon konferencia v Bratislave je organizovaná dobrovoľníkmi a dobrovoľníčkami z občianskeho združenia SPy o.z. zameraného na šírenie jazyka Python a ďalších open sourcových technológií a myšlienok. Pycon má špecializovaná časť, ktorá sa volá Edu Summit a je zameraná na vyučovanie programovania na základných a stredných školách. Viac info nájdeš na webe Pyconu. Pythonu sa venuje aj konferencia Python Day Bratislava. Je to československá konferencia, na ktorej si vypočuješ prednášky od popredných českých a slovenských odborníkov zo sveta Pythonu. Ročník 2021 bol organizovaný online. Machine Learning Prague je najväčšia európska konferencia o Machine Learningu, AI a Deep Learningu. Ročník 2022 bude v marci, viac info na stránke konferencie.