CTM #10 – Developer Horror Stories

Da li ste čuli …

… da je veštački satelit NASA Mars Climate Orbiter bukvalno izgubljen u svemiru, zato što programeri koji su pisali program nisu mogli da izvrše jednostavnu konverziju iz imperijalnog u metrički sistem mera?

… da se letelica bez ljudske posade Ariana 5 Flight 501 srušila zato što je računar pokušavao da spakuje 64-bitnu vrednost u 16 bitni registar i pritom doveo do otkaza glavnog i pomoćnog računara zbog konstantnog ulaska u overflow stanje?

… da je priliom otvaranja, za 10 dana izgubljeno 42.000 komada prtljaga, kao i da je 500 letova otkazano na Terminalu 5 aerodroma Heathrow u Londonu, zato što programeri nisu predvideli jednu situaciju iz realnog života, a to je da prilikom transporta kofera kroz beskonačne trake može da dođe neka osoba i da pomeri ili prebaci kofer ručno negde.

… za programera koji je pokušao da programira na kafi bez kofeina?

Kao što znamo biti programer je u većini slučajeva zanimljivo i interesantno, sve do momenta dok ne shvatimo da nečiji biznisi i/ili životi zavise od koda koji pišemo. U tim situacijama, pred programera se postavlja težak zadatak da se izbori sa stresom koje ovakva odgovornost nosi sa sobom, kao i da posao odradi ispravno do kraja. Ponekad je dovoljan mali propust oko neke u tom trenutku potpuno nebitne činjenice, da izazove posledice koje mogu biti katastrofalne. Ovakve stvari ponekad dovode programere u situacije koje mogu biti strašnije od najstrašnijeg horor filma.

Za vas smo okupili ekipu strašnih profesionalaca koji krvavo zarađuju svoj hleb, sve u skladu sa naslovom događaja. Oni će učestvovati na panel diskusiji u kojoj će podeliti svoja horor iskustva koja su doživeli, kao i da diskutuju na temu da li možemo i na koji način možemo ovakve stvari da izbegnemo. Svi oni imaju višegodišnje iskustvo u programiranju i svako od njih ima najmanje jednu svoju horor priču koju će podeliti sa posetiocima.

Na panelu za vas će pričati:

Dinu Drakula Dragan
PhD, Assistant Professor @ FTN & COO @ RealMarket
https://www.linkedin.com/in/dinu-dragan/

Nenad Creeper Mitrović
CTO @ Hooloovoo
https://www.linkedin.com/in/nenad-mitrovic-9693a5115/

Srđan Pennywise Vranac
Chaos Tamer, Consultant, occasional Speaker with love of message brokers and workers @ Code4Hire
https://www.linkedin.com/in/vranac/

Ivan Belrog Kockarević
CTO & Co-founder @ Marble IT
https://www.linkedin.com/in/ivan-kockarevi%C4%87-b334b6113/

Dejan Chucky Miličić
Director of Platform Engineering @ Shyft
https://www.linkedin.com/in/dejanmilicic/

Aleksandar Pinhead Sabo
Founder @ Code Tailor
https://www.linkedin.com/in/alxsabo/

Koje su to najstrašnije horor priče koje su izazvali programeri u istoriji i kroz kakve horor situacije su prošli naši gosti saznajte na našem sledećem okupljanju: Developer Horror Stories, 31. oktobra 2019. u 18h u prostorijama Poslovnog Inkubatora Novi Sad.

* Ako imate svoju strašnu priču, pridružite nam se na događaju i podelite je sa nama, mi jedva čekamo da je čujemo.

CTM #8 – SOLID u praksi

Svi znamo one top-shop reklame u kojima spiker “amerikanizovanim” glasom kaže: “KO JOŠ VOLI MASNO?“, a mi vas u istom stilu pitamo: “KO JOŠ VOLI LOŠE NAPISAN KOD?

Da ne biste više pisali loš kod, dođite na naše novo predavanje da čujete kako to možete da sprečite.

Kao loš kod često definišemo kod koji ne može da se održava. Ovakav kod neretko postaje ključni uzrok neuspeha projekta i vodi vas u propast. Da bismo izbegli da pišemo loš kod tu su određeni principi koje bismo trebali da poštujemo. Najpoznatije principe dobrog programiranja prikupio je i sastavio Robert C. Martin, među developerima poznatiji kao Uncle Bob. Nekoliko godina kasnije je Michael C. Feathers primetio da ako ove principe poređa u određenom redosledu, može da se dobije akronim SOLID. Od tada pa do danas ovaj akronim predstavlja pet opšte prihvaćenih principa dobrog programiranja.

Upravo su SOLID principi naša nova tema, a predavač koji će nam o njima pričati je Dejan Miličić, Software Craftsman u San Francisco startup-u Shyft. Tokom predavanja Dejan će ući u suštinu ove popularne skraćenice, razotkriti motive koji stoje iza ovih principa i pokazati kakve sve tragične posledice može imati njihovo nepoštovanje pri realizaciji projekta.

Neke od tema kojih će se Dejan dotaći u svom izlaganju su:

kratak istorijat i motivacije za nastanak SOLID principa,
– zašto je kvalitet bitan za uspeh jednog projekta,
– Agile razvoj pored metodologije obuhvata i tehničku stranu koja je često zanemarena
– objašnjenje SOLID principa
– demonstracija posledica nepoštovanja svakog od ovih principa.

Ako vas zanima kako da počnete da pišete dobar kod ili da unapredite svoj postojeći stil dođite da zajedno čujemo Dejana.

Čekamo vas u Poslovnom inkubatoru Novi Sad u sredu, 7. novembra 2018. u 18h.

Predavanje je besplatno, ali je potrebno registrovati se na događaj putem Meetup platforme na ovom linku.

NAPOMENA: primenljivo u svim programskim jezicima.

Najbolji YouTube kanali za učenje programiranja

U poslednje vreme moj omiljeni vid učenja programiranje je gledanjem raznih YouTube kanala koji se bave ovom tematikom. Video u kojem autor predstavlja određeni koncept i/ili prikazuje kako je rešio neki problem, postao je veoma popularan u poslednjih nekoliko godina i sve je više autora koji prelaze na ovakav vid prezentacije.

U moru raznih video kanala na koje možete da naletite na internetu koji se bave programiranjem, ima onih boljih a ima i onih čije gledanje predstavlja čisto gubljenje vremena. Za potrebe ovog teksta izdvojio sam tri kanala koja želim da preporučim. Smatram da se će vam ovi kanali omogućiti da besplatno saznate informacije o programiranju koje nisu uvek lako dostupne, a ponajviše zato što autori umeju da prezentuju koncepte i probleme na jednostavan, razumljiv i ponekad zabavan način.

Pa da počnemo.

FunFunFunction

FunFunFunction

Autor kanala je Mattias Peter Johansson, koji je ujedno i JavaScript developer u firmi Spotify. Teme koje možete pronaći na njegovom YouTube kanalu su funkcionalno programiranje u JavaScriptu, top 8 navika developera, ES6, live-coding projekti i slično. Primećuje se da su teme koje obrađuje prvenstveno vezane za JavaScript, ali ima i onih koje nisu vezani ni za jedan programski jezik, već su u pitanju koncepti koji važe kod svih programera i zato vam mogu biti korisne bez obzira da li programirate u javi, php-u, JS-u ili u nekom drugom programskom jeziku, pa makar bio on i C++.

Na ovaj kanal mi je pre nekog vremena skrenuo pažnju jedan poznanik i gledajući objavljeni materijal shvatio sam koliko je sjajan.

Šta je to što me je oduševilo na ovom kanalu?

  • autor veoma dobro razume problematiku koju objašnjava
  • odlično ume da pojednostavi stvari i prenese znanje gledaocima
  • vreme trajanja videa – svaki video traje između 15 i 20 minuta, što je vreme koje je dovoljno kratko da se video pogleda uz jutarnju kafu, ali takođe i dovoljno dugačko da se sažeto i jezgrovito zaokruži neka celina koju autor predstavlja
  • koncept videa – autor predstavlja 3 pojma iz programiranja, koja su direktno ili indirektno povezana i na taj način gradi jasniju sliku o problematici koju obrađuje
  • humor – autor često poseže za humorističnim elementima u okviru videa, što je veoma efikasno u situacijama kada se priča o nekoj važnoj temi koja je često dosadna
  • kvalitet snimka – kvalitet snimka je na zavidnom nivou, što daje dodatnu vrednost celoj priči, jer se vidi da autor vodi računa i o najsitnijim detaljima
  • konzistentnost u objavljivanju – ono što je najbitnije u celoj priči, novi video nas čeka svakog ponedeljka u 8h ujutro.

Zato sve preporuke za ovaj kanal.

The Coding Train

The Coding Train

Kreiranje tutoriala, primera i biblioteka za Processing, programski jezik namenjen za učenje programiranja, je osnovno zanimanje Daniel Shiffman. Jedan od vidova promocije ove biblioteke je i u sklopu YouTube kanala The Coding Train. Možda Processing i korišnjenje jednoroga sa duginim bojama koji odaju prisustvo psihodelične atmosfere, nije nešto zbog čega bi ste posetili ovaj kanal, ali sve ostalo što se nalazi na njemu definitivno jeste.

Na kanalu možete pronaći sve od osnovnih tutorijala HTML, CSS, JS i korišćenje Git-a, preko web soketa, kreiranje twitter bota, pa sve do naprednih procesuiranja slika, animacija i interakcija. Deo koji se meni lično najviše svideo na ovom kanalu je vezan za Coding Challanges. To je deo gde autor postavi sebi neki programerski zadatak koji treba da reši u zadatom vremenskom intervalu. Zadaci koje rešava su uglavnom neki poznati problemi koji se javljaju u programiranju, kao što su generisanje terena, kreiranje engina za poznate igrice poput Space Invaders, Nokijine Zmije i sl.

Stvar koju smatram najkorisnijom na ovom kanalu je deo gde nam autor omogućuje da vidimo kako neke konkretne probleme, koji se javljaju u programiranju, uz pomoć malo matematike i dobro osmišljenog koncepta možemo da uprostimo i svedemo na trivijalno rešavanje u samo nekoliko linija koda.

Derek Banas

Derek Banas YouTube channel

Za kraj želim da vam predstavim jedan YouTube kanal koji je konceptualno čista suprotnost od prethodna dva predstavljena. Ako je u prva dva kanala akcenat stavljen na pojavljivanje autora u okviru videa, kako bi se jasnije iskomunicirala poruka koju želi da prenese, ovde je iz istog razloga autor izostavljen iz videa i akcenat stavljen isključivo na prezentovanom materijalu.

Derek Banas, za sebe kaže da je marketing konsultant koji želi da pomogne ljudima da besplatno reše svoje svakodnevne probleme. Radio je u razvojnom odeljenju firme Apple, kao broker za firmu Morgan Stanley i pokrenuo više svojih bizisa tokom proteklih godina. Ovi poslovi su mu obezbedili veliko iskustvo koje on sada pretače u tutoriale na svom YouTube kanalu.

Materijali prezentovani na ovom kanalu su u formi kurseva, prezentacija i live koding sesija, tokom kojih autor objašnjava neku oblast. U okviru ovog bloga autor obrađuje razne teme programiranja, od osnova crtanja UML diagrama, dizajn paterna i pravljenja web sajta, preko programiranja za iPhone i Android, učenje raznih programskih jezika poput Python-a, Cotlina, Jave i drugih; pa sve do tutoriajla vezanih za elektroniku, a i mnogih drugih koji nemaju baš neke direktne veze s programiranjem, kao što su spremanje veganske ishrane i tutorijali iz psihologije.

Kada imate potrebu da se upustite u neku novu oblast, kao što je na primer programiranje u Javi, odvojite vreme da pogledate Derekove tutoriale. Oni će vam oni dati odličnu početnu osnovu, neophodnu da brzo krenete sa savladavanjem željene problematike.

Za kraj spomenimo da postoji još mnogo kanala koji se bave programiranjem, neki kvalitetnije, a neki manje kvalitetnije. Ukoliko znate za još neki dobar besplatan video kanal koji se bavi programiranjem podelite tu informaciju sa nama i napišite dole u komentarima.

Ovo su moji favoriti, a koji su vaši?