
Sign up to save your podcasts
Or


(00:00) – Úvod
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
Gamifikácia znamená aplikovať herné mechaniky do aplikácii, ktoré nie sú samé o sebe hry. Medzi najznámejšie herné mechaniky, resp. gamifikačné prvky patrí napríklad skóre hráča, odznaky či rôzne levely. Tieto prvky sú v rôznych aplikáciách – vo fitness aplikáciách, vzdelávacích, v discorde, v todo aplikáciách či dokonca aj v meditačných aplikáciách.
Vývojári vedia, prečo to chcú mať vo svojej aplikácií. Hoci vzdelávacia aplikácia vôbec nepotrebuje mať v systéme zabudované skóre, tabuľku najlepších či nebodaj aj in-game currency, resp. vlastnú aplikačnú menu (zlatky), ale tým, že aplikácia tieto prvky má, tak bude mať pravdepodobne oveľa viac používateľov. Prečo to tak je?
Gamifikácia funguje kvôli našej psychike a kvôli dopamínu. Chceme mať neočakávané odmeny, baví nás sa hrať či zbierať veci. Chceme sa porovnávať a zvyšovať svoj level, čo nám prináša uspokojenie, hoci len na malý moment.
Gamifikácia je predovšetkým o motivácií, o túžbe a ochote spraviť niečo. Tento pocit je poháňaný dopamínom, chemickým signálom, ktoré dostáva náš mozog. Dopamín dostávame, keď zažívame niečo príjemné alebo uspokojivé. A dostať odmenu je veľmi uspokojivé.
Gamifikácia nie je nič nové a funguje aj v reálnom živote. Niektorí rodičia motivujú svoje deti, aby mali lepšie známky tak, že im dajú za to odmeny. Hoci tento prístup je určite lepší, ako trestať za zlé známky, neviem, ale či je najlepší. Rodič by mohol nastaviť pravidlá svojmu dieťaťu, že za každú jednotku dostane 5 eur, za dvojku 3 eurá a za trojku, štvorku a pätku už bude musieť platiť dieťa. Navyše ak dieťa dostane tri jednotky za sebou, tak získa bonus, a tiež ak si peniaze nevyberie, ale nechá si ich u rodiča, tak sa mu budú úročiť. Znie to zaujímavo, dieťa resp. študent bude týmto motivovaný a možno bude mať naozaj lepšie známky. Ale bude motivovaný zo správnych dôvodov? Bude to robiť preto, aby dostalo lepšie známky alebo preto, aby bolo múdrejšie?
Gamifikácia určite nie je vždy zlá, napríklad v takej fitness appke si myslím, že je výborná. Málokomu sa chce cvičiť. Veľa ľudí sa potrebuje rôznymi formami motivovať, aby cvičilo. A cvičiť pravidelne vôbec nie je ľahké, sám to poznám. Ak mi aplikácia gamifikačnými prvkami pomôže cvičiť pravidelnejšie, pretože si chcem v aplikácií udržať skóre, považujem to za dobrý príklad gamifikácie.
Ďalším dobrým príkladom je napríklad pečiatkový systém v mojom obľúbenom podniku. Pri platbe dostaneš papierik, v ktorom musíš nazbierať 10 pečiatok. Za každých 7 eur čo zaplatíš v tom podniku, dostaneš jednu pečiatku. Ak ich nazbieraš 10, čo sa ti podarí po niekoľkých návštevách, tak si môžeš vybrať za plný papierik s pečiatkami odmenu. Odmena je napríklad karafa vína alebo syrový tanier. Takýto systém nikomu neškodí, obe strany víťazia.
Kedy je gamifikácia ale problémom? Keď aplikácie vytvárajú závislosť, keď spôsobujú úzkosť a tiež, keď kvôli tomu robíš veci z nesprávnych dôvodov.
Napríklad keby si používal aplikáciu na učenie sa programovať a začneš byť viac sústredený pre získavanie odmien a odznakov ako na naozajstné učenie sa, tak potom vlastne budeš prechádzať nové účivo preto, aby si dosiahol tie odmeny, avšak učiť sa pri tom veľmi nebudeš.
Daľší problém je porovnávanie. Porovnávanie implikuje, že sú víťazi a porazení, silní a slabí. Potom tí slabí môžu byť smutní a môžu byť depresívny.
Sam Harris vo svojej meditačnej aplikácii Waking up odstránil funkciu streaks. Ak dnes budeš meditovať, tak budeš mať streak 1, ak aj zajtra, tak streak 2, a tak ďalej. Ak by si ale jeden deň nemeditoval, tak sa ti poruší streak a stratíš ho. Toto ale nemá byť dôvodom, prečo si niekto sadne a ide meditovať. Ľudom to tiež spôsobovalo úzkosť a Sam Harris reagoval odstránením tohto gamifikačného prvku a ospravedlnil sa.
Cieľom gamifikácie je používateľov motivovať k určitému chovaniu. Povedzme si o motivácii trochu viac.
Existujú dve rôzne motivácie, interná motivácia a externá. Interná, ktorá sa nazýva aj vnútorná motivácia, vzniká vo vnútri nás. Príkladom je, keď robíme niečo, čo nám prináša radosť. Napríklad pre spisovateľa je vnútornou motiváciou vytvárať príbehy z jeho vlastných nápadov. Interná motivácia vzniká z vlastného záujmu o danú činnosť bez akéhokoľvek vonkajšieho vplyvu. Naopak externá motivácia nás núti konať na základe nejakej vonkajšej sily. Vtedy túžba tvoriť nevzniká prirodzene v nás, ale kvôli nejakému následku resp. odmeny.
V Street of Code tvoríme obsah, pretože nás to baví a chceme ho tvoriť. Napĺňa nás, ak dostávame pozitívny feedback a tešíme sa, ako nám rastie komunita. Ale keby nám niekto platil za každé video čo urobíme, keby chcel ovplyvňovať kedy a aké video máme spraviť, keby sme boli odmenený za každý článok čo napíšeme, tak už sa z toho stáva externá motivácia a už by sa nám to nechcelo robiť, lebo by to bolo pre nás ako práca.
Neznamená to, že robiť to, čo ťa baví má zmysel iba vtedy, keď to robíš zadarmo. Je veľmi príjemné, ak z tvojej tvorby dostaneš nejakú odmenu. Málo ľudí by pracovalo zadarmo. Aj keď si to nechceme priznať, tak plat, ktorý dostávame je veľkou externou motiváciou, prečo tú prácu robíme.
Najšťastnejší by sme však boli, ak by sme pracovali na tom, čo nás baví, na tom čo naozaj chceme robiť, a ešte by sme k tomu boli aj zaplatení. Príkladom by mohol byť maliar, ktorý maľuje podľa svojich pocitov, vtedy, kedy sa mu chce, a zároveň dokáže predať svoje diela, aby zarábal na živobytie. Ak by ale maliar pracoval pre firmu a maľoval by jej reklamné plagáty, už by to pre neho nebolo to pravé orechové.
Hovoril som, že gamifikácie nás ma motivovať. Je zrejmé, že gamifikácia je práve príkladom externej motivácie. Naháňať sa za bodmi, za lepším skóre. Interná motivácia je však lepšia, pretože ťa to robí šťastnejším, viac sa zabávaš a nerobíš to preto, lebo ťa nútia vonkajšie okolnosti, iní ľudia, či gamifikačné prvky v aplikácii. .
Bohužiaľ nie vždy je ľahké mať internú motiváciu. Často sa deťom vôbec nechce učiť, nezaujíma ich matematika či dejiny a učia sa len preto, aby mali dobrú známku. Nie je vôbec jednoduché vychovať dieťa, ktoré sa chce učiť či čítať knihy. Sám netuším ako sa s týmto niekedy ako rodič vysporiadam, avšak budem sa veľmi snažiť, aby moje dieťa robilo veci zo správnych dôvodov.
O internej a externej motivácii som sa prvykrát dozvedel na vysokej škole od docenta Martina Drozdu na prednáške. Povedal aj dva príbehy, ktoré som si zapamatal.
Prvý príbeh súvisel s problémom na škôlke. Rodičia pravidelne meškali s deťmi. Škôlke to samozrejme vadilo. Apelovali na pracujúcich rodičov, aby doniesli svoje deti do škôlky načas, ale nestačilo to. Škôlka zaviedla pokutovací systém. Ak prišiel rodič s dieťaťom do škôlky neskoro, musel zaplatiť pokutu. Fungovalo to? Nefungovalo. Výsledok bol ešte horší. Po novom pre rodiča prísť načas do škôlky nebolo až tak ovplyvňované vnútornou motiváciou byť správnym rodičom, ale skôr vyhnúť sa pokute. Navyše pre rodičov s peniazmi to už nebol žiadny problém prísť neskôr a mohli to robiť ešte častejšie, pretože len zaplatia pokutu a život ide ďalej.
Druhý príbeh bol o internetovej stránke, na ktorú sa hocikto mohol pýtať všelijaké otázky a registrovaní používatelia resp. dobrovoľníci na tieto otázky odpovedali. Niečo ako stackoverflow, ale pre všetko možné. Tvorcovia stránky chceli zvýšiť počet dobrovoľníkov a vymysleli systém odmien. Za každú schválenú odpoveď dostali nejaký peniaz. Fungovalo to? Vôbec nie. Prečo nie? Spýtajme sa najprv, prečo tí dobrovoľníci v prvom rade odpovedali v podstate zadarmo? Pretože ich to nejakým spôsobom napĺňalo. Cítili sa potom dobre. Jednoducho mali vnútornú motiváciu. Ako však prišiel nápad s peniazmi za odpovede, už sa to zmenilo na externú motiváciu, a už to bolo v podstate pre nich ako práca. Počet dobrovoľníkov/zamestnancov sa radikálne zmenšil, pretože sa im neoplatilo strácať čas s odpoveďami za malý peniaz. Je to celkom ironické a nie až tak logické, ale tak funguje naša psychika.
Ďalším veľmi silným príkladom gamifikácie sú nepravidelné odmeny. Implementáciou v aplikáciách je napríklad nekonečný feed na instagrame či koncept lajkov a srdiečok. Nekonečný feed znamená, že môžeš skrolovať donekonečna. Používateľ skroluje niekoľko hodín a raz za čas na neho vybehne niečo zaujímavé, nejaká odmena. Táto odmena je nepravidelná, nevieš kedy príde, rovnako ako aj keď si v kasíne – nevieš kedy vyhráš.
Lajky a srdiečka predstavujú zaujímavú výzvu pri každom novom poste. Koľko lajkov dostaneš? Máš viac ako tvoj kamaráť? Máš viac ako si mal pred týždňom? Napreduješ?
Toto nám podľa mňa neprospieva. Aplikácie ale majú tieto prvky v sebe, pretože vďaka nekonečnému feedu budú predsa používatelia viac hodín používať aplikáciu. Aplikácie využívajú bugy v našej psychike, a vďaka tomu budeme aplikáciu používať viac, budeme jej venovať našu pozornosť. Táto pozornosť je bohužial kľúčový element úspešnej aplikácie. Keďže budem viacej hodím na instagrame skrolovať, tak instagram mi stihne ukázať viacej reklám, tým pádom viacej zarába, a z toho teda vyplýva, že sa vývojárom oplatí do aplikácie vsunúť čo najviac podobných gamifikačných prvkov a nepravidelných odmien, aby bola aplikácia čo najúspešnejšia. To však vôbec nemusí znamenať, že to pre používateľov dobré či zdravé.
Je ale naozaj úspech z pohľadu instagramu, keď tvoji používatelia strácajú čas a majú depresie z toho, že majú málo lajkov? Pomáha to ľudstvu? Nebolo by nám lepšie bez lajkov? Potrebujeme sa porovnávať? Kto má aké skóre, kto má aký odznak? Je to skutočne dôležité? Ako nám to vlastne pomáha?
Čo som vlastne týmto všetkým chcel povedať? Neboj sa, nič radíkálne. Nemusíš sa vymazať zo sociálnych sietí, ani ja sa nechystám. Jednoducho porozmýšľaj, či robíš veci zo správnych dôvodov alebo len naháňaš body. A tiež, ak budeš v budúcnosti programovať nový instagram, tak sa zamysli, či funkcionality, ktoré robíš, slúžia alebo škodia používateľovi.
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 03:18) – Úvod – kedy sme začali robiť z domu?
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 01:50) – Úvod
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
Naša historicky prvá úvaha programátora (a snáď nie posledná). Poviem ti, prečo by si mal/a byť ako hrčiar a teda prečo je refaktorovanie dôležité a prečo by si mal/a refaktorovať svoj kód.
Táto úvaha je dostupná aj vo forme videa na YouTube a aj ako krátky podcast napr. na Spotify normálne v rámci nášho podcastu.
Veľmi zriedka sa ti ako programátorovi stane, že kód, ktorý napíšeš, je dokonalý na prvý pokus. Hm, tvoj kód vlastne možno nikdy nebude dokonalý. Ale na to, aby si sa k dokonalosti aspoň ako tak vedel alebo vedela priblížiť je tu refaktorovanie.
Toto sú úvahy programátora.
Predstav si hrnčiara. Na jeho hrnčiarskom kruhu sa mu točí nejaká kopa hliny. Táto kopa hliny reprezentuje myšlienky, ktoré sa tebe točia v hlave o tom, ako nakódiš tvoju aktuálnu úlohu. Jemným pritláčaním na správne miesta tejto kopy hliny hrnčiar postupne vytvorí niečo, čo sa trošičku podobá na krčah. Je to taký ošarpaný, hrboľatý a divný možno-krčah. Tento ošarpaný, hrboľatý a divný možno-krčah je ako tvoj prvotný kód, ktorý by mal byť akože to, čo si plánoval alebo plánovala nakódiť.
Dobrý hrnčiar sa však neuspokojí s ošarpaným, hrboľatým a divným možno-krčahom. Dobrý hrnčiar, chce mať pekný a uhľadený jednoznačne-krčah. Preto sa dobrý hrnčiar nevzdáva. Využije svoju jemnú motoriku a z ošarpaného, hrboľatého a divného možno-krčahu spraví pekný a uhľadený jednoznačne-krčah.
Asi už aj stačilo všetkých tých prídavných mien. Poďme ďalej.
Tak, ako sa dobrý hrnčiar neuspokojí s možno krčahom, tak by si sa ani ty nemal alebo nemala uspokojiť s tým prvým, čo nakódiš. A možno ani tým druhým. Mal alebo mala by si svoj kód upraviť. Ako som už povedal, proces upravovania kódu do prijateľnej podoby nazývame refaktorovanie.
Nie nadarmo sa v programovaní hovorí, že prvých 80% práce spravíš za 20% času a zvyšných 20% práce spravíš za 80% času. Vyprodukovať funkčný kód je väčšinou pomerne jednoduché. To je tých prvých 80%. Funguje ti to. Trvalo ti to deň. Celý natešený alebo natešená si hovoríš aký alebo aká si super a že už to iba trošičku doladíš a zajtra ráno robíš PR-ko.
Ako tak ale postupne prechádzaš cez tento tvoj prvotný výplod, začínaš si všimať, že ten tvoj kód je ako ten možno-krčah – ošarpaný, hrboľatý a tak trochu divný. Začneš upravovať. Upravuješ celý deň. Prichádza panika, lebo šak už to malo byť pushnuté a už si pomaly mal alebo mala riešiť pripomienky z code review.
Upravuješ ďalej. Zrazu si uvedomíš, že tam máš nejaký ten nepokrytý edge case. Opravuješ edge case. By the way – áno, aj jemné úpravy alebo fixy môžu byť súčasťou refaktorovania nového kódu. Ďalšieho pol dňa fuč. Ale zároveň sa tešíš lebo tvoj kód je zase o čosi hladší. Pokračuješ.
A nejak podobne sa ti toto upravovanie (refaktorovanie) natiahne na 4 dni, kedy konečne vytvoríš PR-ko s tvojim takmer dokonalým kódom. Hej, reálne to nemusí trvať štyri dni, ale potreboval som sa dostať na to, aby mi sedelo to 80-20 rule. Čo som týmto chcel hlavne povedať, je to, že buď ako dobrý hrnčiar – refaktoruj svoj kód. Zamysli sa nad tým, ako sa tvoj kód dá možno ešte vylepšiť. Veľmi zriedka sa totiž stane, že ti žiadne zlepšenie nenapadne.
A už to možno skoro znie aj ako záver môjho rozprávanie. Ale ešte nekončíme.
Je tu ešte druhý druh refaktorovania – refaktorovanie starého a/alebo cudzieho kódu. V prvom rade treba povedať, že čo je to vlastne ten starý kód? To môže byť akýkoľvek kód, ktorý už bol mergnutý do mastera (alebo main-u alebo akokoľvek nazývate svoju hlavnú branchu) a ty sa na tento kód z nejakého dôvodu znova pozeráš. To je starý kód. A čo je to ten cudzí kód? To je starý kód, ktorý si možno písal alebo písala aj ty.
Prečo by trebalo starý kód refaktorovať? Pretože do tohto kódu sa postupne pridávali ďalšie a ďalšie veci a nikto sa nepozeral na tzv. velký obraz – big picture. Každý sa pozeral iba na tie svoje malé zmeny, ktoré síce boli refaktorované, čiže takmer dokonalé, ale v tom big picture to postupne prestalo byť takmer dokonalé. A to nie je zlé. To nie je krivda tomu tímu, ktorý to dopustil. To sa proste tak stane.
Avšak dobrý hrnčiar (alebo aj programátor alebo programátorka) tento kód zoberie a pozrie sa naň z toho big picture a nájde tam nejakú peknú príležitosť na refaktorovanie. Ale zároveň to nesilí. Zamyslí sa nad tým, či ten refaktor stojí za to. A keď áno, nezlakne sa a odvážne tento refaktor spraví, aby sme mali opäť pekný a uhľadený jednoznačne-krčah. Hm, teda kód, sorry.
Pri refaktorovaní treba však dávať pozor aj na to, aby sme náš krčah nedoľaďovali až tak, že zrazu v ňom budeme mať diery. To znamená, aby sme to proste nepreháňali. Pretože ďeraví krčah je nám na nič. Podobne ako nám je na nič aj kód, ktorý je tak zrefaktorovaný, že sa v ňom ťažko naviguje, ťažko sa číta, má jednoriadkové funkcie a ani hrnčiar netuší, čo to vlastne celé robí a hlavne ako. Aj v tomto prípade treba nájsť balans – nejakú rovnováhu.
Rovnováhu medzi tým, čo sa ešte oplatí refaktorovať a čo už by bolo fakt priveľa. Rovnováhu aj medzi tým, koľko času ma toto refaktorovanie stojí a koľko času mi možno ušetrí alebo stratí v budúcnosti. Rovnováhu medzi tým, koľko ďalších úloh som mohol počas tohto refaktorovania urobiť. A ešte rovnováhu medzi tým, koľko peňazí je ten, kto ma platí, ochotný za toto refaktorovanie minúť.
A preto buď dobrý hrnčiar. Mysli na hrnčiarov, ktorý budú tvoj krčah upravovať po tebe. Hm, ak sa moja analógia s hrnčiarom doteraz nerozbila, tak teraz som ju už rozbil. Prečo by niekto po mne upravoval krčah? Snáď ale chápeš, čo tým chcem povedať. Možno práve ty budeš ten alebo tá, kto bude upravovať tvoj kód v budúcnosti a budeš sa čudovať, aký neschopný hrnčiar toto nakódil. A až Git Blame ti odhalí, že si to bol alebo bola vlastne ty a vtedy si uvedomíš, že si mal alebo mala refaktorovať.
Ak si sa dostal alebo dostala až sem, tak sa veľmi teším. To znamená, že sa ti táto úvaha programátora páčila, alebo si čakal alebo čakala na pointu, ktorá neprichádzala. Ak ti napadajú nejaké otázky k hocičomu, kľudne sa môžeš pridať na náš Discord a spýtať sa tam, alebo hodiť otázku do komentára.
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 01:10) – Úvod
článok – https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 01:25) – Úvod
Pohovor programátora
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 01:40) – Úvod
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 01:16:43) – Epizóda
Okrem týchto podcastov rozoberáme aj to, kedy podcasty počúvame, či sa to oplatí, koľko si z nich pamätáme a ďalšie veci.
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
(00:00 – 00:40) – Úvod
Zaujímavý článok, ktorý sa venuje častým mýtom okolo C
Why You Shouldn’t Learn C
Viac epizód nájdeš na https://streetofcode.sk/podcast
Pridaj sa na Discord tu - https://streetofcode.sk/discord
From the publisher's feed

34 Listeners
![DEEP TALKS [CZE] by Petr Ludwig](/_next/image?url=https%3A%2F%2Fpodcast-api-images.s3.amazonaws.com%2Fcorona%2Fshow%2F403745%2Flogo_300x300.png&w=640&q=75)
20 Listeners

29 Listeners

5 Listeners

13 Listeners

14 Listeners

7 Listeners

10 Listeners

0 Listeners

14 Listeners

13 Listeners

3 Listeners

0 Listeners

6 Listeners

0 Listeners