Vyzkoušej všechny online kurzy na 30 dní nyní v akci -50%
Akce
Výsledky vyhledávání
pro ”c++” jsme našli 182 výsledků
Kurzy (9)
Všechny kurzy
-
12h 26min
Algoritmizace v C++
od Marek Šurka
-
9h 55min
C++ Intermediate (středně pokročilý)
od Marek Šurka
4.4
3h 29min
C# pro mírně pokročilé
od Jaroslav Beňo
-
3h 22min
Objektově orientované programování v C++
od Marek Šurka
4.6
3h 18min
C# pro začátečníky
od Jaroslav Beňo
4.3
4h 44min
C++ Elementary (pro začátečníky)
od Marek Šurka
5.0
6h 26min
C++ Pre-Intermediate (mírně pokročilý)
od Marek Šurka
5.0
4h 9min
C++ Elementary II. (začátečník II.)
od Marek ŠurkaKapitoly (51)
Visual Studio C# - Príkazy, nastavenia a instructions prompt
Profesionální programování s AI
Visual Studio C# - Setup projektu
Profesionální programování s AI
ÚLOHA 6: Riešenie č. 3
Microsoft Excel: Pracovní pohovor
ÚLOHA 6: Riešenie č. 1
Microsoft Excel: Pracovní pohovor
ÚLOHA 12: Riešenie č. 1
Microsoft Excel: Pracovní pohovor
Visual Studio C# - Čo ďalej
Profesionální programování s AI
ÚLOHA 6: Riešenie č. 2
Microsoft Excel: Pracovní pohovor
20.4 Heap sort - algoritmus v jazyku C++
Algoritmizace v C++
Články (122)
Všechny články
Vzdělávání
11.03.2023
Skillmea
Power BI vs Tableau: Co si vybrat v roce 2023?
Power BI a Tableau jsou dvě důležité Business Intelligence technologie pro shromažďování, integraci, analýzu a prezentaci obchodních informací. Pomáhají vám provádět datovou analýzu, manipulaci s údaji a jejich vizualizaci, abyste měli přehled v informacích a dobré podklady pro byznys rozhodnutí.
V tomto článku se podíváme na Power BI a Tableau, prozkoumáme jejich podobnosti a rozdíly, jakož i jejich výhody a nevýhody. Po přečtení byste měli mít představu o tom, co je pro vaše potřeby to pravé.
Krátce o historii Business IntelligenceBusiness Intelligence je zde s námi již od 60. let 19. století, kdy Sir Henry Furnese, americký bankéř sbíral a analyzoval údaje, aby získal cenné informace a předčil tak konkurenci. V roce 1958, napsal počítačový vědec IBM Hans Peter Luhn článek, který popsal potenciál shromažďování Business Intelligence pomocí technologií. Business Intelligence, jak se dnes chápe, využívá technologie pro shromažďování a analýzu údajů, jejich přeměnu na užitečné informace a jednání na základě nich.
Tableau bylo poprvé spuštěno v roce 2004 a poskytuje uživatelům drag-and-drop způsob vytváření interaktivních vizualizací a dashboardů. Tableau má řadu produktů, které pomáhají firmám ukládat, analyzovat a vizualizovat údaje.
Microsoft Power BI přišlo na scénu o několik let později, poprvé bylo veřejnosti představeno v roce 2011. Cílem bylo vytvořit snadno použitelné rozhraní, které umožní organizovat a vizualizovat data i neprogramátorům. Stejně jako Tableau obsahuje i Power BI několik různých komponentů.
Podobnosti Power BI a TableauV následujících řádcích se podíváme na podobnosti mezi těmito dvěma nástroji.
Uživatelsky přívětivé a code-freeTableau i Power BI jsou ideálními nástroji, které se naučíte, pokud jste nováčkem v oblasti datové analýzy. Pokud jste business analytikem, jsou to dva hlavní nástroje pro vizualizaci dat, které budete potřebovat pro práci s nimi.
Připojení na různé zdroje datJedna věc je vizualizace údajů, které máte, ale důležité je mít řadu vstupů. Firmy mají tendenci shromažďovat data z více kanálů. Při srovnání Tableau a Power BI vidíme, že obě se mohou připojit k širokému spektru zdrojů. Patří sem MS Excel, CSV a JSON a placená verze obou platforem vám poskytuje přístup k více než 50 dalším datovým konektorům, jako jsou Google Bigquery, Amazon Redsift a Salesforce. Vizualizace se aktualizují, pokud se změní základní údaje.[Příklad dashboardu v Power BI]
Množství různých vizualizacíTableau i Power BI vám mohou pomoci prezentovat data různými způsoby. Máte možnosti pro vizualizace včetně sloupcových a čárových grafů, stromových map a geografických map. Na obou platformách můžete s těmito vizualizacemi interagovat, například umístěním kurzoru myši na ně získáte více informací a použitím filtrů, a také je můžete zkombinovat a vytvořit interaktivní dashboardy.
PopularitaNa základě údajů z webstránky Slintel z března 2023 má Power BI tržní podíl 13,27 %, zatímco Tableau využívá 13,83 % firem v rámci Business Intelligence řešení. Obě řešení mají desetitisíce firemních zákazníků na světě.[Příklad dashboardu v Tableau]
Rozdíly mezi Power BI a TableauTyto rozdíly mezi Power BI a Tableau zvažte, pokud uvažujete o jejich využití pro při svém podnikání či ve své kariéře.
Power BI funguje pouze na WindowsTo může výrazně zasáhnout do výběru těchto dvou platforem. Pokud budete pro svou práci většinou používat Mac, lepší volbou je Tableau, protože Power BI nemůžete používat na macOS.
CenyPower BI má výhodu oproti Tableau, pokud jde o ceny. Power BI Pro stojí 10 USD měsíčně na uživatele a ještě výkonnější služba Power BI Premium stojí 20 USD měsíčně na uživatele.
Více než 8 % uživatelů uvádí ceny jako jednu z největších silných stránek Power BI. Uživatelé služby Power BI zjišťují, že její cena je často zahrnuta v balíčku předplatného od společnosti Microsoft a existuje bezplatná verze.
Uživatelé si mohou vybrat z úplného balíka Tableau Creator za 70 USD měsíčně nebo se rozhodnout pro Tableau Explorer za 42 USD měsíčně, pokud potřebujete použít pouze stávající dashboardy. Uživatelé, kteří si jen potřebují prohlížet a interagovat s informačními panely, mohou získat předplatné Tableau Viewer ve výši 15 USD měsíčně.
Programovací jazykyPokud jde o použití Power BI a Tableau s různými programovacími jazyky, existují další rozdíly:
• Power BI: k manipulaci s daty a modelování můžete použít jazyk M a Data Analysis Expression. Je možné připojit i programovací jazyk R.
• Tableau: s Tableau máte větší výběr a flexibilitu. Kromě jednodušší integrace s R můžete implementovat Tableau Software Development Kit s jazyky Python, Java, C a C++.
Další rozdíly• Tableau je nejlépe známé pro své vizuálně atraktivní vizualizace dat, zatímco Power BI je preferováno pro svou schopnost pracovat s více údaji.
• Tableau je ideální pro zkušené datové analytiky, zatímco Power BI mohou používat zkušení i začínající uživatelé.
• Zvládnutí Tableau vyžaduje čas a odborné znalosti, zatímco používání Power BI je jednodušší.
• Tableau dokáže efektivně zpracovat velké objemy dat, zatímco Power BI je lepší pro omezené objemy dat.
ZávěrTakže Power BI nebo Tableau? Který z těchto dvou nástrojů si nakonec vyberete, jednoduše závisí na tom, jak je potřebujete používat ve svém podnikání.
Pro nás má mírně navrch Power BI. Jeho snadné použití, podobnost s Excelem a cenová dostupnost z něj činí skvělou volbu pro mnoho firem.
Tableau má stále jedinečné výhody, které ocení mnohé firmy a analytici. Je lepší pro větší objemy dat, nabízí krásné vizualizace dat a větší možnosti přizpůsobení než Power BI.
Tipy a triky
28.10.2018
Skillmea
Čísla a znaky v Javě
V tomto článku se spolu podíváme na základy práce s čísly a znaky v programovacím jazyce Java.
Čísla[Image]Proč používat Numbers a ne primitivní datové typy? Pokud nějaká metoda přijímá jako parametr Object, tak jí neumím podsunout primitivní datový typ. Můžeš použít konstanty, jako například MIN_VALUE nebo MAX_VALUE. Můžeme používat metody pro konverzi do a z primitivních datových typů i ze String.
Byte b = 127;
Byte b2 = 128; //error Byte len do 127Pro všechny typy máme metody, které z textu umí vylovit daný typ. Zde je třeba si dát pozor, protože pokud chci ze Stringu dostat Integer - ale zadám tam text, tak to bude chyba.
String decimal = "2.5";
double d1 = Double.parseDouble(decimal);
decimal = "2.5a";
double d;
d = Double.parseDouble(decimal); //chyba Když mluvíme o číslech, tak nemůžeme nezmínit modulo. Plus, minus známe, ale modulo by nám mohlo dělat problém.
private static void modulo() {
for(int i = 0; i < 32; i++){
rozdajHracoviKartu(i%4,i);
}
}
private static void rozdajHracoviKartu(int hrac, int karta) {
System.out.println("rozdavam hracovi "+hrac+", kartu cislo "+karta);
}V tomto příkladu výsledek modulu nebude nikdy více než 3 a méně než 0. Tedy se karty rozdají mezi všechny hráče ve hře. Zkus si to poměnit sám.
Matematické operácePro mnoho matematických operací máme třídu Math, která obsahuje řadu statických metod. Názvy jsou samo vysvětlující, nebo si viz níže komentáře:
System.out.println("a "+a+" abs "+ Math.abs(a)); //absolútna hodnota
System.out.println("b "+b+" ceil "+Math.ceil(b)); //zaokrúhli nahor
System.out.println("b "+b+" floor "+Math.floor(b)); //zaokrúhli nadol
System.out.println("b "+b+" rint "+Math.rint(b)); //klasicke
zaokruhovanie zmen b ... vracia double hodnotu intu
System.out.println("b "+b+" round "+Math.round(b)); //klasicke
zaokruhovanie zmen b ... vracia int alebo long ... int round(float f)
System.out.println("c "+c+" a d "+d+" max "+Math.max(c, d));
System.out.println("c "+c+" a d "+d+" min "+Math.min(c, d));
Náhodní čísloV Math třídě máme metodu random. Vrací hodnotu od 0.0 do 1.0 . Krácením umíš zvětšit a musíš přetypovat na int pokud chceš celá čísla.
private static void randomNumbers() {
int number = (int)(Math.random() * 100);
System.out.println(number);
}ZnakyPrimitivní datový typ char se používá k uchování jednoho znaku. U char máme také možnost použít jeho alternativu objektovou a to Character V jevu existují escape sekvence. To jsou znaky, tedy char, před kterým je zpětné lomítko. Tyto sekvence mají pro kompilátor zvláštní smysl. Neberou se jako nějaký jednoduchý text.
\t - vloží tab
\b - vloží backspace
\n - vloží nový řádek
\r - vloží carriage return
\f - vloží formfeed
\' - vloží jednu uvozovku
\" - vloží dvojitou uvozovku
\\ - vloží zpětné lomítko
Máme řadu pomocných metod:
Character ch3 = 'a';
System.out.println("char "+ch);
System.out.println("isLetter "+Character.isLetter(ch));
System.out.println("isDigit "+Character.isDigit(ch));
System.out.println("isWhitespace "+Character.isWhitespace(ch));
System.out.println("isUpperCase "+Character.isUpperCase(ch));
System.out.println("isLowerCase "+Character.isLowerCase(ch));
System.out.println("toUpperCase "+Character.toUpperCase(ch));
System.out.println("toLowerCase "+Character.toLowerCase(ch));
System.out.println("toString "+Character.toString(ch));Tímto způsobem umíš vložit také speciální znaky z hora:System.out.println("Some \t nice text. tab");
System.out.println("Some \t\b nice text. backspace");
System.out.println("Some \n nice text. new line");
// je to niečo ako na starom písacom stroji kedy si sa presunul na začiatok riadku
//ak nedáš ale nový riadok, tak ti prepíše to čo tam už máš napísané
System.out.println("Some \r nice text. carriage return");
System.out.println("Some \r\n nice text. carriage return a new line");
System.out.println("Some \' nice text. ");Pokud chceš zadat speciální hodnotu, tak musíš zadat před daný speciální znak lomítko.
char uvodzovka = '''; //error
char uvodzovka = '\'';
System.out.println("Some " nice text."); //error
System.out.println("Some \" nice text.");
System.out.println("Some \ nice text."); //error
System.out.println("Some \\ nice text.");ZávěrPokud tě zajímá Java, tak jsi tady na https://skillmea.\cz pohledej kurzy, které se věnují programování v Javě a nauč se víc. Já jsem Jaro a doufám se vidíme při dalším článku nebo videu.
Rozhovory
23.01.2023
Tím Skillmea
Influencer marketing: výběr, ceny a metriky
V novém podcastu jsme si povídali s Tonym Dúbravcem. Tony je online marketér, tvůrce podcastu "Doba digitální" a newsletteru o digitálních novinkách. Je odborníkem na social media a e-commerce, takže dnes budeme mluvit právě o těchto tématech.
➡️ Tony, jak silný trend vidíš aktuálně na social media?Jedním z trendů jsou určitě krátká videa, která přišla z TikToku a postupně se dostala na ostatní platformy. Dalším trendem je influencer marketing nebo jiný přístup k obsahu, který začíná s příchodem TikToku zabývat více na kvantitu, ne jen na kvalitu.
➡️ Ty jsi nyní konzultant pro strategie social media, čemu se věnuješ více detailně?Působím jako marketing manažer v Medusa Group, největší gastro společnosti na Slovensku. Mým druhým směrem je zároveň vytváření týmů pro klienty, které jsou složeny z freelancerů. Pracuje s agenturními týmy složenými z freelancerů a vytváří tým podle potřeb klienta, kde jsem v pozici account manažera. Kromě toho provádí školení o sociálních sítích, přednáší na eventech a publikuje podcasty a newslettery o digitálních novinkách.
[Natáčení podcastu]
➡️ Jak vnímáš vývoj infuencer marketingu na trhu? Je poptávka ze strany firem vyšší? Je to stále považováno za "sexy" pro firmy. Ne každý si ovšem uvědomuje, že to není vždy to, co by měli řešit. Je to pořád buzzword, ale výrazně se to změnilo od doby, kdy jsem psal blogy. Tato oblast nabrala obrovský rozmach a nyní už pro některé představuje základ jejich příjmu. Někteří lidé se totiž živí jen tím, že propagují produkty a služby. Momentálně existují dvě hlavní formy takové spolupráce. První je, že někdo žije tou značkou, používá ji a je jejím ambasadorem. Druhou formou jsou influenceři, kteří v podstatě prodávají reklamní prostor.
➡️ Kolik výstupů bys doporučil dohodnout aby to mělo smysl? Pokud chceš jen zásah, pak má smysl i jeden příspěvek, záleží také na tom, kolik času trvá kampaň a kolik máš budget. Většina influencerů si účtuje za příspěvek, nebo mají nějaký balík příspěvků a stories. Většinou se to jen násobí. Záleží na tom, čeho chceš dosáhnout, jestli ti stačí jeden příspěvek nebo chceš kampaň táhnout déle. Pak by se možná vyplatilo uvažovat o užší spolupráci s influencerem, ne jen o „koupě reachu.“
➡️ Jak se pohybují ceny v influencer marketingu? U influencerů s 50 tisíci followery je to částka od 500 € za příspěvek. Obecně bych řekl že to začíná na 250 €. Samozřejmě se najdou influenceři, kteří ti udělají za 200 € tři příspěvky nebo tě spropagují za barter. Je to individuální, každý si své práce váží jinak.
[Tony Dúbravec ve Skillmea podcastu]
➡️ Existuje nějaká databáze, kde si umíš vyhledat relevantní influencery k navázání spolupráce? Existují také agentury, které se věnují této oblasti. Samozřejmě, za nějakou provizi. Doporučuji, pokud je to v možnostech, dělat si to sám nebo s někým, komu důvěřuješ a zná prostředí. Pokud si to člověk řeší sám, tak pozná ten svět influencerů, pochopí, že to není jako nakupování v obchodě.
➡️ Co doporučuješ měřit při influencer marketingu nebo co ty sleduješ, jaké metriky? Na Reach lze asi nejvíce spoléhat. Existují různé způsoby jak měřit výkon spolupráce, jako jsou údaje UTM nebo kupony. Avšak většinou lidi zajímají interakce. Spousta lidí však nevšímá, zda jsou to reálné interakce nebo jen nějaké boty. Autenticita tedy může být obtížně ověřitelná. Engagement rate může být důležitý, ale nemusí být relevantní. Když se provádí s více influencery, je vhodné porovnat výkony jednotlivých influencerů a podle toho se pak rozhodovat, s kým se bude dělat dál. Avšak když se provádí jen s jedním influencerem, je těžko posoudit, zda to bylo dobré nebo ne, je to spíše pocitové.
Pro více z rozhovoru s Tonym si poslechněte Skillmea podcast: #10 Jaké jsou trendy v social media marketingu?.
Vzdělávání
20.08.2021
Jaroslav Beňo
Frontend vs Backend vs Fullstack a jak se na to dívám já
Při řešení a vývoji aplikací si umíme vývoj rozdělit na dvě hlavní části – front end a back end. Front end je v podstatě to co vidíš očima - to s čím se uživatel jako prvním setká (během vysoké školy mě pucoval jeden profesor, že člověk, co kliká naši aplikaci je uživatel a ne uživatel). Následně back end je vše vzadu, co běžný uživatel nevidí, co se děje na pozadí, většinou je to zpracování dat, komunikace s databází a podobně.
Po internetu kolují desítky memes, ve kterých se tyto rozdíly mezi frontendem a backendem zobrazují. Prohlédni si pár z nich:[Image]Doufám, že máš teď tak hrubou představu o tom, co je frontend a co backend. Jak se nám snaží podsunout tyto meme obrázky, backend nemusí být a neměl by být ošklivý a špatně napsaný špagetový kód, právě naopak. Přestože backend uživatel nevidí, měl by fungovat parádně. Podívejme se nyní na to z pohledu reálné aplikace.
Reálná aplikace
Uvažuji nad webovou aplikací, která bude napojena na databázi. Jako první potřebuji znát, co se má v aplikaci dít, co má aplikace dělat, jaké jsou podmínky, co se má kdy zobrazovat a podobně.
Pro tento úkol jsou vyhrazeni specialisté jako analytik, který analyzuje aplikaci z pohledu používání a takzvané business logiky. Tedy například bankovní aplikace má jinou business logiku a podobně aplikace pro správu uživatelů má jinou logiku. Potom nastoupí architekt, který řekne, v čem se bude programovat frontend, v čem back end a vše navrhne technicky.
Následně přichází na scénu frontend programátor a backend programátor. Nebo stále více populární fullstack programátor.
Role front end developeraFrontend developer má za úkol připravit obrazovky – UI – user interface podle požadavků. Například potřebuje zobrazit všechny transakce na bankovním účtu. Připraví si obrazovku. Použije HTML + CSS na vzhled stránky plus JavaScript na funkcionalitu. Použije nejčastěji jeden z populárních frameworků – podle zadání architekta – Angular, Vue, React. Kromě toho by frontend vývojáři měli ovládat frameworky jako Bootstrap, Foundation a další, které zajišťují skvěle vypadající obsah bez ohledu na zařízení, na kterém si daný obsah prohlížíte. Pokud potřebuje data, tak podá požadavek na backend programátora nebo analytik připraví úlohu pro back end programátora. Frontendista následně poté zobrazí data, která mu poskytl backend.
“Frontend developer je zodpovědný za interiérový design domu, který postavil backend developer.”
Role back end developeraBack end developer připraví databázi, připraví si kód pro získání dat z databáze a napojení dat do programu. Následně připraví službu na poskytnutí dat do okolního světa. Ne vše, co je v databázi chceme zobrazovat na obrazovce, jen to co je třeba. Služba bývá hlavně REST rozhraní (REST api), které vypadá jako klasická url adresa na webovou stránku, ale místo web stránky vrátí data v požadovaném tvaru. Například vrátí seznam bankovních transakcí daného uživatele ve tvaru JSON.
Jako backendista bys měl znát jazyk SQL pro komunikaci s databází. Potom záleží v jakém jazyce je backend napsán – Java, C#, Python, Ruby a podobne. Potom každý jazyk má frameworky, které pomáhají při práci.
Role full stack developeraIdeální kombinace je vědět jak front end, tak back end. Fullstack developer si připraví obrazovku a pokud potřebuje data, tak si je umí i sám připravit. Podle mého názoru je dobře vědět i frontu i backend, ale trpí tím hloubka znalostí problematiky.
Dovednosti a znalosti fullstack developerů jsou potřebné ve všech fázích procesu webového vývoje, počínaje fází plánování projektu, správou databází, vytvářením uživatelských rozhraní až po strukturování údajů a řešení kritických potřeb. Fullstack vývojáři proto musí porozumět všem úrovním webových stránek a tomu, jak web funguje.
Na závěr lze říci, že učení se více webových jazyků a technologií je pravděpodobně nejlepší cesta. Je však dobré mít na paměti tento přístup: osvojte si nejpoužívanější a nejpopulárnější technologie/jazyky, protože čím větší podporu pro svůj web/produkt/službu máte, tím lépe.
Backend developer zná do hloubky problémy, které mohou vzniknout s databází, zná lépe všechny procesy na pozadí.
Frontend developer ovládá lépe javascriptový framework, ví jak udělat věci efektivněji. Fullstack developer nemusí čekat, až mu připraví data na backendu a umí si vše lépe manažovat.
Rozhovory
16.06.2022
Tím Skillmea
Veronika Čiefová: Jaká pravidla a rituály si vytvořit při práci z domova?
Veronika Čiefová se ve své firmě věnuje kariérním a psychologickým konzultacím. Člověk má často nějaký problém v kariéře, neumí se rozhodnout, kterým směrem se vydat, vidí buď více nebo žádné možnosti, zda se necítí motivovaný.
S Veronikou prostřednictvím rozhovoru hledají, co je pro člověka to pravé. Spolu si kladou otázky jako: Co vás v minulosti bavilo? Co vám dávalo energii? V jakém bodě se to změnilo? Podle odpovědí se snaží přijít na to, které části života pro něj znamenají hodně, co ho umí nadchnout a co mu odebírá energii.
V podcastu s Veronikou jsme rozebrali, co všechno má vliv na spokojenost v práci, duševní zdraví a zda je finanční ohodnocení ten nejdůležitější faktor. V tomto článku se podíváme na Veronikiny doporučení pro práci z domova.
Práce z domova se stává stále častějším trendem v dnešní době a pro mnohé zaměstnance je to skvělá možnost ušetřit čas a peníze za cestu do zaměstnání. Nicméně, práce z domova může být náročnější, není-li správně zorganizována. Aby bylo možné efektivně pracovat z domova, je důležité vytvořit si pravidla a rituály, které vám pomohou udržet produktivitu a vyhnout se stresu a vyhoření.
[Pravidlá a rituály pri práci z domu]
➡️ Jaká pravidla a rituály si vytvořit při práci z domova? 🕒 Časové odděleníZákladem je vytvořit strukturu času, kdy pracujete a kdy odpočíváte. Vytvořte si rituály přechodu z jedné fáze do druhé, jako například oblékání do pracovního oblečení před prací. Je důležité nepracovat v pyžamu. Sprcha nebo procházka po skončení práce také vytváří ideální přechod mezi prací a odpočinkem. Někteří lidé využívají také tzv. "fake commuting", kdy před začátkem a po skončení práce z domu nasednou do auta a převezou se dvě ulice.
🏠 Prostorové odděleníIdeální je mít dedikovanou místnost pro práci. Domácí pracovna by se určitě neměla nacházet v ložnici, lidé mají pak častěji problém s usnutím. Pokud není možné vyhradit na pracovnu celou místnost, postačí kout místnosti nebo třeba židle, na které sedíte pouze během pracovní doby.
🛌 Připravení mysli na spánekJe důležité nepracovat alespoň 2 hodiny před spánkem a hodinu před spaním se vyhnout dívání do počítače, mobilu nebo televize. Je lepší pomalu utišovat mysl čtením knihy nebo pobytem v méně osvětlené místnosti, aby se naladila na spánek.
🧒 Rozdělení služeb u dětíV případě, že máte děti v domácnosti během pracovní doby, doporučuje se domluvit si strukturu s partnerem nebo partnerkou, kdo bude v daném čase "na službě". Když děti budou něco potřebovat, tak se ohlásí dopoledne pouze na jednoho a odpoledne pouze na druhého partnera. Vyhradí se tak klidnější prostředí, alespoň na nějakou část pracovní doby.
[Podcast s Veronikou Čiefovou a Radovanom Debnárom]Celý rozhovor s Veronikou si můžete poslechnout ve třetí části Skillmea podcastu: Co má vliv na spokojenost v práci a jsou peníze nejdůležitější?, který najdete na našem YT kanály. Pokud vás zajímá kariérní poradenství, doporučujeme Veronikin kurz Kreativní rozhodování o kariéře.
Rozhovory
30.12.2022
Tím Skillmea
Mario Šmýkal: Jak psát dobré články a texty? Dá se psaní naučit?
Mário Šmýkal se narodil v Prievidzi a vystudoval marketingovou komunikaci v Trnavě. Aktuálně pracuje v deníku SME, kde vede obsahové studio SME Creative, píše newsletter Škola nepsaní a v Prievidzi pořádá talkshow Takové ze života a běžecké akce Brose Night Run Prievidza.
V podcastu nám prozradil jak psát i jak nepsat, jaké jsou nejčastější chyby při psaní, jaké předpoklady má dobrý autor a uvedl i několik zajímavých pisatelských úspěchů.
Mário Šmýkal: Jak psát dobré články a texty? Dá se psaní naučit?
➡️ Co jsou podle tebe takové nejčastější chyby, které dělají autoři? To je velmi náročná otázka, neboť lze říci filozoficky i velmi prakticky. Kdybych měl mluvit prakticky tak:
• nesprávně dlouhé věty
• nesprávně vyskládané věty
• nesprávné pořadí slov ve větách - to je velmi náročné
• uspořádání informací v článku - nemůžeš začít nějakou těžkou nudou nebo historickým exkurzem, to jsou právě momenty, které se mohou objevit nejdříve ve 2/3 článku
Z filozofických věcí je asi nejdůležitější psát pro čtenáře a ne pro sebe. Ve většině případů autoři píší tak, aby se to líbilo jim.
Každý jeden článek, který píšu nebo edituji, čtu nahlas několikrát. Jakmile mě přestane bavit nebo v momentě, kdy uprchne moje pozornost, si to okamžitě vyznačím a zjišťuji, co se tam vlastně stalo. Snažím se pozorovat, proč mi tam ušla pozornost. Za normálních okolností by se nemělo stát, že by člověk nevydržel číst dostatečně poutavý text.
➡️ Jaká je optimální délka standardního článku, který bys chtěl publikovat například do novin?
Závisí na formátu, například my máme:
· nejkratší odrážkový text do 4000 znaků
· střední délka textu do 6000 znaků
· nejdelší jsou kolem 9000 znaků
Napsat tak dlouhý článek, aby byl od začátku po konec dobrý, je dost náročné. Některá témata neodkomunikuješ rychle a krátce. Potřebuješ se do toho tématu ponořit jako do bahenní koupele, tak aby tě téma najednou obalilo a ty sis ho zapamatoval mnohem lépe, než kdybys o něm narychlo přečteš 5 vět.
➡️ Informace je třeba prý prezentovat formou příběhů. Co ty o tom myslíš? Jaká je podle tebe nejzajímavější forma jak podat nějakou informaci?
Ano, příběh je jednoznačně důležitý. Dělám to od začátku a pravděpodobně to budu dělat navždy. Každý jeden z našich článků musí mít nějaký příběh a to je patrné i na číslech. Nejčtenější články, které máme, jako například o kuřatech v Kauflandu, dosáhly přes 200 000 přečtení. Když jsem šel psát reportáž o kuřatech v Kauflandu, až na místě jsem začal zjišťovat, jaká je to vlastně firma a jaké má zajímavé benefity pro zaměstnance. Když jsem o tomto napsal příběh a pouze mezi řádky zmínil kuřata, dosáhl článku výrazně lepších výsledků.
➡️ Co by měl splňovat člověk, který chce psát články a dělat nativní obsah?V první řadě bychom měli být všímaví a citliví k věcem. Psaní se lze naučit, ale pouze někoho. Důležité je všímat si věcí, které jiní nevidí. Pouze 1 ze 100 lidí si všimne něčeho, co nikdo jiný když vejde do místnosti. Například, já jsem si všiml, že tramvaje v Bratislavě mají čísla 1, 3, 4, 7 a 9, což mě zaskočilo, protože číslo 4 je sudé, zatímco ostatní jsou liché. Toto je jen příklad, že nemusíte vědět odpověď na všechno, pokud se člověk naučí všímat věci, pak je snadné psát. Ale pokud si někdo nedokáže všímat věci, tak mu nic nepomůže. Ani vědět jak psát, protože bez schopnosti všímat si věcí, nikdy nebude moci napsat dobrý článek a bude klouzat pouze po povrchu.
V podcastu i na přednášce v Trnavě Mário vzpomínal, že psaní se lze naučit. Ale ne každého.
Inspiroval se citátem od Stephena Kinga: „I když je nemožné udělat ze špatného spisovatele schopného a stejně tak z dobrého spisovatele geniálního..."
.... je možné učinit ze schopného spisovatele dobrého. Je k tomu zapotřebí množství práce, nadšení pro věc a včasná pomoc. Tak jako zpěv nebo herectví nemůže dělat každý, stejně nemůže každý psát – nejlépe.
➡️ Jak probíhá výběr nového kandidáta? Tak v první řadě mě zajímá, co už napsal. Potom se pokaždé snažím vymyslet nějakou otázku nebo téma, které má kandidát zpracovat. Především se snažím objevit jeho všímavost. Je důležité umět si i domyslet (ne ve smyslu vymyslet něco vlastního). Uvedu na příkladu:
Na fotce jsou zimní běžecké závody. Tipněte si kdo vyhraje. [TIP: Všichni jsou navlečení, jen 2 mají kraťasy a krátké tričko.]⬇️ ⬇️ ⬇️
Určitě nevyhraje nikdo, kdo má dlouhý rukáv. Protože když běžíte rychle, tak vám bude vedro.
Čili při psaní je důležité umět si domyslet, pospojovat a přemýšlet v kontextu. Pro více Mariových zajímavých storiek si poslechněte Skillmea podcast: #9 Jak psát dobré články a texty? a pro hodnotné tipy pro psaní článků všemi deseti doporučujeme odběr newsletteru Škola nepsání.
Tipy a triky
30.10.2019
Skillmea
Lambda výrazy v Javě - část IV.
Funkcionální rozhraníPokud chci používat lambda výraz, tak potřebuji k tomu rozhraní s jednou abstraktní metodou. Daná metoda musí odpovídat popisu našeho lambda výrazu.
Pokud se nad tím zamyslíš, tak ve skutečnosti se dané rozhraní může jmenovat ledajak. Na názvu nezáleží. A i metoda v tom rozhraní může mít ledajaký název, pro logiku lambda výrazu to nemá žádný smysl. Jediné, co je důležité je, aby metoda seděla s lamba výrazem v tom, co vrací a to, co je na vstupu metody jako parametr.
Bylo by naprosto super, kdybychom nemuseli vždy při psaní lambda výrazu řešit vytvoření nového rozhraní, které nám bude sloužit jako typ daného lambda výrazu. Co řekneš?
Řekli jsme si, že java nevytvořila nový typ pro lambdy. Při psaní, jsme si mohli všimnout, že metody jsou často podobné. Vracím nějaký typ nebo vracím void a mám tam název metody tam jsou nebo nejsou parametry. Jsou zde nějaké paterny, nějaké vzorce, které se opakují častěji.
Java nám nabízí několik takových rozhraní, která můžeme klidně použít. Tato rozhraní jsou v balíčku java.util.function. V tomto balíčku je mnoho před připravených rozhraní, které můžeš používat. Tato rozhraní používají generika, tak si tam umíš dosadit objekty jaké potřebuješ.
Například Predicate je přesně stvořený k tomu, pokud potřebujeme vzít na vstupu objekt a vrátit boolean jako návratovou hodnotu. Takto můžeme použít toto rozhraní namísto toho rozhraní, co jsme si sami napsali, když jsme řešili předchádzající úlohu.
Jak ošetřit výjimkyUdělejme si příklad, který bude obsahovat seznam osob, které budu zpracovávat – vypíšeme jejich jména a dáme je na velká písmena.
public class ExceptionHandling {
public static void main(String[] args) {
ArrayList<Osoba> osoby = new ArrayList<>();
osoby.add(new Osoba("jano", "beno", 3));
osoby.add(new Osoba("peter", "beno", 0));
osoby.add(new Osoba("jaro", "beno", 30));
osoby.add(new Osoba("brano", "beno", 28));
processOsoby(osoby);
}
private static void processOsoby(ArrayList<Osoba> osoby) {
for (Osoba osoba : osoby){
System.out.println(osoba.getMeno().toUpperCase());
}
}
}
Přepíšeme si to na lambda výraz. Náš kód, který chceme metodě prodat jako argument je System.out.println(osoba.getMeno().toUpperCase()). Pracuji tedy jen s objektem osoba. Výsledek napíšu na konzoli. Tím pádem mám jeden argument a tento kus kódu nevrací žádnou hodnotu. Budeme k tomu potřebovat funkcionální rozhraní, které má metodu s jedním parametrem a nevrací nic. Takovým je Consumer s jeho metodou accept.
public class ExceptionHandling {
public static void main(String[] args) {
ArrayList<Osoba> osoby = new ArrayList<>();
osoby.add(new Osoba("jano", "beno", 3));
osoby.add(new Osoba("peter", "beno", 0));
osoby.add(new Osoba("jaro", "beno", 30));
osoby.add(new Osoba("brano", "beno", 28));
processOsoby(osoby, osoba -> System.out.println(osoba.getMeno().toUpperCase()));
}
private static void processOsoby(ArrayList<Osoba> osoby, Consumer<Osoba> consumer) {
for (Osoba osoba : osoby){
consumer.accept(osoba);
}
}
}
Nyní si náš seznam osob změním tak, že místo jmen dám do seznamu null. Při zpracovávání lamba výrazu nám program spadne na NullPointerException.
osoby.add(new Osoba("jano", "beno", 3));
osoby.add(new Osoba(null, "beno", 0));
osoby.add(new Osoba("jaro", "beno", 30));
osoby.add(new Osoba("brano", "beno", 28));Musíme si ošetřit tuto výjimku. Jak na to? Jedním ze způsobů je obalit volání consumer.accept do try catch bloku.
private static void processOsoby(ArrayList<Osoba> osoby, Consumer<Osoba> consumer) {
for (Osoba osoba : osoby){
try {
consumer.accept(osoba);
}catch (NullPointerException e){
//...
}
}
}Ale to je ošklivé řešení. To co přijde do consumer může být leccos možné a nemusí to dát NullPointerException, možná to bude jiná výjimka. Náš kód chceme mít jednodušší. Druhou možností je, aby byla výjimka zpracována přímo v lamba výrazu.
public class ExceptionHandling {
public static void main(String[] args) {
ArrayList<Osoba> osoby = new ArrayList<>();
osoby.add(new Osoba("jano", "beno", 3));
osoby.add(new Osoba(null, "beno", 0));
osoby.add(new Osoba("jaro", "beno", 30));
osoby.add(new Osoba("brano", "beno", 28));
processOsoby(osoby, osoba -> {
try {
System.out.println(osoba.getMeno().toUpperCase());
}catch (NullPointerException e){
e.printStackTrace();
}
});
}
private static void processOsoby(ArrayList<Osoba> osoby, Consumer<Osoba> consumer) {
for (Osoba osoba : osoby){
consumer.accept(osoba);
}
}
}Dosáhl jsem toho, že metoda processOsoby je krásnější, ale náš lambda výraz je nyní víceřádkový a ne pěkný - jednořádkový.
Na jedné straně chceme mít pěkné jednoduché lambda výrazy, na druhé straně chceme, aby bylo postaráno o výjimky.
V našem kódu se vraťme k řešení, které nepoužívá try catch blok. K odchycení výjimky použijeme wrapper metodu. Try catch blok si vyvedeme do zvláštní metody a poté obalíme náš lambda výraz, dalším lambda výrazem, který má try catch blok. Udělejme to, co jsem teď napsal.
Vytvoříme novou metodu, která bude akceptovat lambda výraz. V našem případě jsme k tomu použili Consumer rozhraní. A protože je to wrapper, tak to co mi přijde na vstup tak dám i na výstup.
private static Consumer<Osoba> wrapperLambda(Consumer<Osoba> consumer){
return consumer;
}V metodě processOsoby(osoby, osoba -> System.out.println(osoba.getMeno().toUpperCase())); zavolám místo lambda výrazu, wrapper metodu, jejíž argument bude lambda výraz. Udělá to totéž, ale použil jsem wrapper metodu.
public class ExceptionHandling {
public static void main(String[] args) {
ArrayList<Osoba> osoby = new ArrayList<>();
osoby.add(new Osoba("jano", "beno", 3));
osoby.add(new Osoba("peter", "beno", 0));
osoby.add(new Osoba("jaro", "beno", 30));
osoby.add(new Osoba("brano", "beno", 28));
processOsoby(osoby, wrapperLambda(osoba -> System.out.println(osoba.getMeno().toUpperCase())));
}
private static void processOsoby(ArrayList<Osoba> osoby, Consumer<Osoba> consumer) {
for (Osoba osoba : osoby){
consumer.accept(osoba);
}
}
private static Consumer<Osoba> wrapperLambda(Consumer<Osoba> consumer){
return consumer;
}
}Tady můžu udělat následující věc. Namísto toho abych lambdu přehnal přes wrapper metodu, tak ji ani nepoužiji, ale použijeme jen její vstupní parametr, což je osoba. Mohu udělat něco takového:
private static Consumer<Osoba> wrapperLambda(Consumer<Osoba> consumer){
return osoba -> System.out.println(osoba.getPriezvisko());
}Namísto toho, abych využil vstupní lambdu, která mi přišla přes parametr consumer, jsem na ni zapomněl a jen jsem využil vstupní parametr dané lambdy a vytvořil jsem novou lambdu.
Při volání consumer.accept(osoba); v metodě processOsoby se provede lambda výraz z wrapper metody. Toto není skutečný wrapper. Skutečný wrapper, vezme vstupní lambdu a provede co požaduje. Nyní máme jistotu, že se zavolá přesně náš požadovaný lambda výraz a zároveň můžeme přidávat kód kolem.
private static Consumer<Osoba> wrapperLambda(Consumer<Osoba> consumer){
return osoba -> consumer.accept(osoba);
}Zde přichází nářad try catch blok v wrapper metodě. Upravíme si kód, aby nám házel výjimku.
public class ExceptionHandling {
public static void main(String[] args) {
ArrayList<Osoba> osoby = new ArrayList<>();
osoby.add(new Osoba("jano", "beno", 3));
osoby.add(new Osoba(null, "beno", 0));
osoby.add(new Osoba("jaro", "beno", 30));
osoby.add(new Osoba("brano", "beno", 28));
processOsoby(osoby, wrapperLambda(osoba -> System.out.println(osoba.getMeno().toUpperCase())));
}
private static void processOsoby(ArrayList<Osoba> osoby, Consumer<Osoba> consumer) {
for (Osoba osoba : osoby){
consumer.accept(osoba);
}
}
private static Consumer<Osoba> wrapperLambda(Consumer<Osoba> consumer){
return osoba -> {
try{
consumer.accept(osoba);
}catch (NullPointerException e){
System.out.println("Null pointer exception in wrapper lambda");
}
};
}
}Pokud se zastavuješ při myšlence, že jsme nic nezjednodušili, jen jsme přesunuli kód na jiné místo, tak máš pravdu, ale! Pokud si danou metodu uděláš generickou, tak si do této metody můžeš zabalit ledajakou lambdu, jejíž typ je Consumer rozhraní. Škoda, že tvůrci jevy neudělali takové wrapper metody pro všechna funkcionální rozhraní z balíku java.util.function.
private static<T> Consumer<T> wrapperLambda(Consumer<T> consumer){
return osoba -> {
try{
consumer.accept(osoba);
}catch (NullPointerException e){
System.out.println("Null pointer exception in wrapper lambda");
}
};
}
Pokračovat s Lambda výrazy budeme opět v dalším článku. Mé jméno je Jaro Beňo a naučím tě programovat v Javě. Ahoj.
Události
06.10.2019
Skillmea
EU Code Week: Evropský týden programování
Ve dnech 5.–20. října 2019 vrcholí sedmý ročník Evropského týdne programování, tzv. EU Code Week. Dobrovolníci z řad učitelů, institucí a nadšenců z více než 70 zemí se budou snažit prostřednictvím aktivit představit nové vzdělávací možnosti a materiály, aby tak zvýšily zájem o programování a zatraktivnily jeho výuku.
Proč se zapojujeme i my?Hodiny informatiky na základních a středních školách jsou ne vždy vedeny zábavnou a poutavou formou. Jen si vzpomeň na ty své. Digitální gramotnost se však pro uplatnění na trhu práce stává klíčovou a o tom, jakou roli by měla hrát ve vzdělávání není třeba vést diskuse. Něco o tom víme iv Learn2Code, kde se nás denně obracejí lidé s otázkou, kde s programováním začít.
Proto jsme se i my s podporou spoločnosti Google opět staly součástí iniciativy EU Code Week, abychom podpořili digitální vzdělávání na školách a pomohli dětem rozvíjet znalosti a dovednosti, které jim pomohou realizovat nápady a usnadní orientaci v digitálním světě. Pokud se v něm totiž budou správně orientovat již nyní, budou lépe připraveni využívat jeho přínosů a čelit jeho nástrahám.[Image]
Tento rok sa s Learn2Code vydáváme na východ Slovenska do Košic a okolí, kde se prostřednictvím workshopů budou moci děti na více základních školách seznámit s programováním v prostředí Scratch, který se díky své jednoduchosti výborně hodí pro výuku programování, vytváření interaktivních her a animací. Kromě Scratchu máme pro děti připraveny i zážitkové hodiny s roboty Ozoboty a programování her v jazyce JavaScript pro pokročilejší. Letos jsme spojili síly is leadership programem Teach for Slovakia a některé ukázkové hodiny zorganizujeme na školách zapojených do TfS.
Pokud chceš vědět, jak to na takovém našem workshopu vypadá, můžeš si prohlédnout tento sestřih z roku 2016.
Jak se můžeš zapojit?Evropský týden programování je nezávislá iniciativa dobrovolníků s podporou Evropské komise, do které se může zapojit kdokoli, tedy i ty. Můžeš být učitel, vést programátorský kroužek nebo se zkrátka dobrovolně angažovat v digitálním vzdělávání. Stačí, když uspořádáš programátorskou aktivitu #CodeWeek a přidáš ji na mapu na stránce codeweek.eu. Na stránce navíc najdeš návod a propagační materiály, které ti s realizací pomohou.
Pokud si na něco podobného netroufáš, můžeš tuto akci podpořit i použitím hashtagu #codeweek.