Škola programovania zadarmo. Krásne kampusy, nadupaný curicculum a skvelý namotivovaný kolektív s rovnakým mindsetom. To je 42.
Rýchlostné programovanie alebo competitive programming. Čo to je? Načo to je? Ako sa dá v tejto oblasti zdokonalovať na Slovensku? Sú súťaže iba o súťažení? Tieto a ďalšie témy rozoberáme s Michalom Anderlem, ktorý vedie algoritmický predmet na MatFyz-e, pracuje part-time vo Vacuumlabs a popri tom sa venuje programátorským a matematickým súťažiam – teraž už hlavne ako organizátor.
Na nete sa dá často počuť o programátoroch, ktorí programujú od dvanástich rokov, keď sa dostali k prvému počítaču, tak ich to extrémne fascinovalo, chceli zistiť, ako to celé funguje a postupne sa dostali k programovaniu, ktoré ich úplne pohltilo. V tejto epizóde sa rozprávame o tom, že ťa nemuseli od mala baviť počítače, aby si bol/a programátor/ka.
Na ceste začínajúceho programátora je veľa prekážok a úskalí. O niektorých budeme rozprávať v tomto podcaste. Povieme, čo nás môže stretnúť. a ako sa tomu vyhnúť, hoci nie vždy sa to dá.
Sú nejaké veci, ktoré nám uľahčujú programovanie? Veci, vďaka ktorým nakonci dňa vieme ušetriť drahocenný čas? Ako programovať efektívnejšie?
Teória je jedna vec, ale prax môže vyzerať úplne ináč. Ako dodržiavame clean code v osobných projektoch, spoločných projektoch a v práci? Vnímajú všetci programátori clean code podobne?
V predchádzajúcich epizódach sme sa venovali algoritmom a v tejto epizódke algoritmy konečne uzavrieme. Povedali sme si, čo to algoritmy vlastne sú, na čo sú, čo sú to dátové štruktúry a aké by si mal/a poznať a to isté v sme si povedali aj o algoritmoch.
Ako som už spomenul, dnes to uzavrieme. V trochu filozofickejšom podcaste rozoberáme, či algoritmy teda potrebuješ vedieť. Prípadne do akej miery. Alebo vôbec? Na to si už budeš musieť vypočut našu epizódu.
(00:00 – 40:00) – Diskusia o algoritmoch
Algoritmus je niečo, s čím sa začínajúci programátor alebo začínajúca programátorka stretne veľmi rýchlo. Chceš vypísať pole? Použíješ algoritmus. Chceš nájsť prvok v poli? Použiješ algoritmus. Chceš zistiť aká je najkratšia cesta z Bratislavy do Košíc? Použiješ Googlu, ale ten na pozadí využíva nejaký algoritmus (keby len jeden). Aké známe algoritmy by si si mal/a naštudovať a vyskúšať naprogramovať? V podstate o tom je táto epizóda.
(00:00) – Úvod
(02:15) – Lineárne a binárne vyhľadávanie
(07:40) – Sortovacie algoritmy
(19:19) – Grafové algoritmy
(27:46) – Brute force algoritmy
(30:00) – Dynamické programovanie
(37:50) – Greedy algoritmy
(43:00) – Umelá inteligencia
(46:21) – Genetické algoritmy
(53:12) – Záver
Dátové štruktúry sú základným stavebným prvkom programovania. Predstavujú rôzne spôsoby reprezentácie dát. Opíšeme si najzákladnejšie dátové štruktúry a rozdiely medzi nimi. Algoritmy spomínať nebudeme, to až v ďalšej epizóde.
(00:00) – Úvod
(02:35) – Čo su dátové štruktúry?
(05:59) – Polia (Arrays)
(12:39) – Zreťazený zoznam (Linked list)
(19:46) – Hash set
(27:44) – Hash map / Dictionary
(32:34) – Zásobník (Stack)
(35:17) – Rada (Queue)
(37:26) – Grafy
(43:07) – Stromy
(44:59) – Nečakaná zmena plánov
(46:47) – Záver
https://wp.streetofcode.sk/podcast/ep-46-datove-struktury/
Čo je to algoritmus? Ako sa meria efektivita algoritmov? Načo to vlastne celé je?
Touto epizódou začíname neoficiálnu sériu o algoritmoch. V ďalších dvoch (viac ich asi nebude) epizódach sa budeme baviť o konkrétnych algoritmoch, dátových štruktúrach a povieme si aj, načo to je celé dobré a čo z toho je dôležité vedieť pri bežnom programovaní.
(00:00) – Úvod
(03:00) – Čo je to algoritmus?
(07:16) – Ako sú zadefinované algoritmy?
(13:32) – Vlastnosti algoritmov
(17:11) – Ako porovnať efektivitu algoritmov?
(18:48) – Asymptotická zložitosť
(23:31) – Načo je asymptotická zložitosť dobrá?
(24:49) – Trade-off medzi pamäťou a rýchlosťou
(27:27) – Načo nám teda treba algoritmy?
(31:11) – Záver
Kedy, ako, ale hlavne prečo treba testovať softvér? V škole nás to neučili, ale aj tak to treba robiť, či? O typoch testovania a o tom, ako my denno denne testujeme softvér, vám povieme v 44. epizóde Street of Code podcastu.
(00:00) – Úvod
(02:09) – Prečo treba testovať softvér?
(06:06) – Testovanie na príklade s piškvorkami (Unit testy)
(16:51) – Integračné testy
(27:56) – Akceptačné testy
(36:01) – End-to-end testy
(38:01) – Koľko trvá písanie testov?
(39:06) – Endurance testy
(42:06) – Kedy píšeme testy?
(43:43) – TDD – Test driven development
(45:38) – Ako sa môžeme naučiť písať testy?
(50:01) – Zhrnutie a záver
https://wp.streetofcode.sk/podcast/ep-44-preco-treba-softver-testovat/
Môže sa každý stať programátorom? Alebo programátorkou? Nie je to predsa len trochu náročné a len pre vyvolených? To sa dozvieš v tejto epizódke!
(00:00 – 01:18) – Úvod
(01:19 – 02:25) – Čo znamená byť programátorom/kou?
(02:26 – 03:50) – Môže byť každý programátorom?
(03:51 – 05:26) – Je to pre každého tá správna cesta?
(05:27 – 10:28) – Môže programovanie baviť?
(10:29 – 12:30) – Potrebuješ na programovanie talent?
(12:31 – 16:18) – Ako to celé súvisí s matematikou a logickým myslením?
(16:19 – 20:28) – Čo talent?
(20:29 – 22:54) – Je to pre každého tá správna cesta? (po druhé)
(22:55 – 26:01) – Nemám to radšej ani skúšať?
(26:02 – 26:49) – Motivačný talk nakoniec?
(26:50 – 29:24) – Prečo sa toho ľudia tak boja?
(29:25 – 29: 24) – Záver
https://wp.streetofcode.sk/podcast/ep-43-moze-byt-kazdy-programatorom/
Ako vyzerajú programátorské úlohy? Čo je v nich napísané? Čo robiť ak potrebujem pomôcť? Kto mi ju odobrí? Toto všetko a kopec ďalsích sránd sa dozvieš v tejto krásnej epizódke.
(00:00) – Úvod
(02:11) – Čo je to úloha/task?
(03:52) – Prečo úloha vznikne a kto ju vytvorí?
(17:21) – Z čoho sa skladá popis úlohy?
(27:26) – Ako mám začať robiť na úlohe? Čo robiť ak nerozumiem zadaniu?
(40:33) – Čo keď s úlohou potrebujem pomôcť?
(44:14) – Čo robiť, keď si myslím, že som úlohu dokončil?
(48:51) – Doplňujúce Gabkove otázky
(50:41) – Ukončenie úlohy, vytvorenie nového releasu
(1:00:31) – Rôzne kecy a záver
https://wp.streetofcode.sk/podcast/ep-42-zivotny-cyklus-ulohy/
Ako sa vyvíja softvér vo firme? V čom je to iné ako nejaké školské zadanie? Čo je to waterfall? Čo je to agilný vývoj? Reálne sa to aj využíva?
(00:00) – Úvod
(00:42) – Prečo na tom záleží?
(03:08) – Metodológie vývoja softvéru
(04:21) – Waterfall
(11:16) – Agilný vývoj
(18:41) – Ako to teda funguje reálne? (Jakub)
(23:41) – Ako to teda funguje reálne? (Gabo)
(26:40) – Ako vybrať metodológiu?
(29:00) – Záver
Návrhové vzory boli pre mňa ďalšia taká dosť mätúca vec, ktorú sme na vysokej škole preberali. Nevedel som pochopiť, na čo mi to je. Buď nám to nebolo dobre vysvtlené, alebo je to taká vec, na ktorú človek jednoudcho musí praxou dozrieť. A tak sme o nich nahrali epizódu, ktorá ti snáď pomôže návrhové vzory pochopiť.
(00:00) – Úvod
(00:40) – Čo sú to návrhové vzory?
(03:00) – Na čo sú dobré?
(05:50) – Singleton
(07:03) – Čo sú to návrhové vzory? – zhrnutie
(07:30) – Na čo sú dobré? V.2
(09:21) – Najprv sa nauč základy OOP
(11:22) – Neuč sa ich naspamäť
(12:30) – Využitie v praxi
(15:56) – Delenie návrhových vzorov
(17:31) – Facade
(19:39) – Máš sa ich učiť? Môžu sa vyskytnúť na pohovore?
(22:39) – Nevýhody návrhových vzorov
(27:33) – Zhrnutie
(29:22) – Rada do života ohľadom návrhových vzorov
(30:27) – Záver
https://wp.streetofcode.sk/podcast/ep-35-navrhove-vzory/
Veľa z nás robilo podobné chyby, keď sme začínali s programovaním. V tejto epizóde sme vybrali 10 najzávažnejších chýb, ktoré začínajúci programátori robia. Dozviete sa nie len veci, na ktoré si treba dať pozor, ale aj to, ako týmto chybám predísť. Chyby nie sú zoradené.
(00:00) – Úvod
(00:32) – Chaotické programovanie
(04:14) – Strach z debugovania / nepoužívať debugger
(05:59) – Skopírovanie riešenia bež premýšľania a preštudovania
(08:51) – Implementovanie prvého riešenia, ktoré mi napadne
(10:33) – Jazyk / Framework nie je navždy
(12:54) – Keď mi to funguje, tak je dobre
(14:33) – Učenie sa / Skúšanie všetkého naraz
(16:29) – Neviem, čo vlastne používam. Nepoznám jazyk alebo knižnicu
(19:16) – Vyhýbanie sa testom
(21:43) – Strach, vzdávanie sa
(24:06) – Rekapitulácia
(25:00) – Chyby, ktoré sa nedostali do zoznamu
(28:10) – Záver
https://wp.streetofcode.sk/podcast/ep-32-chyby-zacinajuceho-programatora
Epizóda 30 nášho podcastu je určená začínajúcim programátorom, alebo ľuďom, ktorí uvažujú, že začnú s programovaním. Taktiež môže slúžiť ako návod pre programátora, ktorí by chcel vedieť, ako odpovedať, keď sa ho niekto spýta, ako sa naučiť programovať. V epizóde spomíname prečo by mal človek začať s programovaním, či to dokáže aj len tak z domu, alebo potrebuje učiteľa. V druhej časti epizódy rozoberáme veci, ktoré by mal človek vedieť, aby mohol tvrdiť, že vie programovať.
(00:00) – Úvod
(01:03) – Prečo začať s programovaním?
(04:58) – Ako začať s programovaním?
(11:48) – Čo všetko by si si mal na začiatok pozrieť?
(20:58) – Mal by začínajúci programátor vedieť matiku?
(24:00) – Mal by začínajúci programátor ovládať binárne čísla?
(26:52) – Čo všetko by si si mal na začiatok pozrieť? – pokračovanie
(31:23) – Čo ak sa chcem naučiť robiť webové stránky?
(33:44) – Čo všetko by si si mal na začiatok pozrieť? – pokračovanie 2
(34:32) – Je výber jazyka naozaj taký dôležitý?
(37:29) – Záver
https://wp.streetofcode.sk/podcast/ep-30-ako-zacat-s-programovanim/
Keď si prebehneš pracovné ponuky pre programátorov, tak si môžeš všimnúť, že sa v nich často spomínajú slová Frontend a Backend. Keď sme začínali s programovaním, tak sme si ani my neboli istí, čo tieto dva pojmy znamenajú. A tak sme sa rozhodli, že ti ich skúsime aspoň trochu priblížiť.
(00:00) – Úvod
(00:33) – Stručne – rozdiel medzi Frontendom a Backendom
(02:45) – Patrí klasický Javascript do Frontendu alebo do Backendu?
(04:05) – Je backend, ktorý využíva iný backend, frontendom pre ten backend?
(05:11) – Má androidová aplikácia frontend a backend?
(09:39) – Aké jazyky viem na čo použiť?
(11:35) – Sú jazyky striktne frontend alebo backend?
(15:15) – Musím byť dizajnér, ak chcem byť frontend developer?
(19:03) – Je backenďak viac ako frontenďák?
(20:56) – Kam spadá robenie stránok vo Wordpresse?
(22:46) – Majú frontenďáci a backenďáci nejaké charakteristické črty?
(24:48) – Záver
https://wp.streetofcode.sk/podcast/ep-27-frontend-vs-backend/
Dáme si trošku uvoľnenejšiu epizódu. Porozprávame sa o tom, čo máme a nemáme radi na programovaní. Obaja sme si pripravili 5 pozitívnych a 5 negatívnych, ale nevieme, čo napísal ten druhý.
https://wp.streetofcode.sk/podcast/5-veci-programovanie/
(00:00) – Úvod
(01:31) – 1. pozitívum – Kreativita
(04:16) – 2. pozitívum – Riešenie od základov
(05:56) – 3. pozitívum – Refaktorovanie
(06:54) – 4. pozitívum – Analytické úlohy
(09:35) – 5. pozitívum – Unit testy
(11:46) – 6. pozitívum – Debugovanie
(13:55) – 7. pozitívum – Výsledok
(15:04) – 8. pozitívum – Nekonečné možnosti
(17:56) – 9. pozitívum – Učenie sa nových vecí
(19:11) – Zhrnutie pozitívných vecí
(20:40) – 1. negatívum – Úlohy, ktoré su ľahké naprogramovať, ale treba sa s veľa ľudmi dohodnút, že čo
(21:55) – 2. negatívum – Problémy s vývojovým prostredím
(23:06) – 3. negatívum – Úlohy, ktoré nie sú dostatočne vyšpecifikované
(24:23) – 4. negatívum – Tutoriály, ktoré sa nedajú urobiť
(27:13) – 5. negatívum – Programovanie pod stresom
(28:48) – 6. negatívum – Špagety kód/kód iných ľudí
(30:49) – 7. negatívum – Keď sa niekto pozerá ako programujem
(32:56) – 8. negatívum – Náročnosť
(34:35) – 9. negatívum – Meetingy
(37:11) – 10. negatívum – Milión spôsobov ako niečo urobiť a nevieš, ktorý je správny
(42:20) – Zhrnutie negatívných vecí
(44:36) – Záver
V epizóde číslo 24 sa pozrieme na to, či programátor potrebuje ovládať databázy. Najprv si v skratke povieme, čo to databázy vlastne sú.
(00:00) Úvod
(00:52) Čo sú to vlastne databázy?
(02:56) Typy databáz
(04:20) Prečo relačná databáza? Čo je to tá relácia?
(05:34) Prečo mi nestačí iba súbor?
(09:20) Kto by mal ovládať databázy?
(10:21) Relačné vs. nerelačné databázy
(13:12) Čo sa z databáz oplatí vedieť?
(15:58) Načo SQL, keď za mňa všetko spraví ORM?
(17:27) – Záver
https://wp.streetofcode.sk/podcast/ep-24-potrebujem-vediet-databazy/
Ako programátor by si na sebe mal stále pracovať. V tejto epizóde ti prezradíme nejaké spôsoby, ktorými sa ako programátor môžes stať lepším programátorom.
(00:00) Úvod
(00:39) Knihy
(05:24) Side projects
(09:44) Dokumentácia
(11:25) Videá, podcasty
(12:41) Konferencie
(14:02) Code training stránky
(15:43) Záver
https://wp.streetofcode.sk/podcast/ep-8/