Kaip išmokti programuoti žaidžiant?

Ar Jums nusibodo skaityti programavimo knygas ir žiūrėti mokomuosius video? Galvojote, kad tai bus įdomu ir lengva, tačiau vis kyla mintys mesti mokslus?

Žmonės dažnai ieško greičiausio būdo išmokti programuoti, tačiau greičiausias būdas ne visada efektyviausias. Knygos ir mokomieji video puikūs žinių šaltiniai, tačiau mokinantis programuoti reikia turėti pakankamai valios, kad neapleisti mokslų kai kažkas nepasiseka. Manau mokytis vien tik iš knygų gali tik labai užsispyrę ir daug valios turintys žmonės. Tie, kurie nepaisant sudėtingos ir nuobodžios teorijos sugeba susikoncentruoti ir mokytis toliau, tol kol išmoksta viską ką norėjo išmokti. Daugumai toks mokymosi būdas netinka, bet ar galima mokytis kitaip?

Laimei yra kitas laiko patikrintas būdas mokytis – žaidimai. Taip kaip maži vaikai žaisdami susipažįsta su pasauliu, taip ir mes galime išmokti programuoti žaisdami. Tai ne tik mokymasis, bet ir smagus laiko praleidimo būdas. Galbūt tai nėra optimaliausia laiko atžvilgiu, tačiau tai žymiai įdomiau ir gali išlaikyti Jūsų susidomėjimą programavimu. Štai keletas labai gerų svetainių, kuriose visos pamokos yra žaidimų forma.

Pradedantiesiems rekomenduoju https://codecombat.com. Čia galėsite išmokti programavimo pagrindus ir kitas pagrindines programavimo temas. Kodo pagalba valdysite karius, armijas ir magiškas būtybes, kad nugalėtumėte priešus ir atliktumėte įvairias užduotis. Svetainėje gausu animacijos ir įdomių užduočių!

codecombat
CodeCombat.com

Kita puiki svetainė tiems, kurie jau turi programavimo pagrindus https://www.codingame.com. Čia užduotys įvairesnės ir gana greitai tampa sudėtingos. Svetainėje galite mokintis naudodami daugybę skirtingų programavimo kalbų: C#, Java, PHP, Javascript, Python, Ruby ir t.t.

codingame
CodinGame.com

Dar viena puiki svetainė kur galite rasti programavimo užduočių žaidimų forma https://www.checkio.org/ Čia labiau akcentuojamos programavimo problemos.

Checkio.org

Neseniai atsirado lietuviškas portalas kuriame galima pasimokyti programuoti žaidžiant. https://angis.lrt.lt/

Angis.lrt.lt

Jeigu jau pavargote nuo knygų ir video pamokų išbandykite programavimą žaidžiant. Nors tai ne pats efektyviausias būdas mokytis, bet gi svarbiausia galutinis rezultatas!

Geriausios knygos pradedančiajam programuotojui

Jeigu skaitai šį straipsnį, tau turbūt nereikia įrodinėti, kad knygos yra puikus informacijos šaltinis. Gerų programavimo knygų autoriai turi daugiametę patirtį, bei yra savo srities specialistai. Tokie autoriai rašydami apie konkrečią temą, visą savo sukauptą patirtį perkelia į knygą. Vėliau šią knyga dar kartą peržiūri ir patobulina redaktoriai. Tokį kelių šimtų puslapių praktinės ir teorinės informacijos rinkinį, rašytą ir tobulintą kelis mėnesius ar metus, tu gali perskaityti per kelias dienas. Nors iš visos informacijos gausos tu įsisavinsi tik mažą jos dalį, tačiau sutaupysi daug laiko ir sužinosi tokių dalykų apie kuriuos nebūtum net pagalvojęs.

Šiais laikais, kai parašyti ir išleisti knygą yra visai paprasta, daugėja nekompetentingų knygų rašytojų. Dėl šios priežasties, prieš perkant ir skaitant knygas apie programavimą, rekomenduoju įvertinti jų kokybę ir autoriaus kompetencijas.

Šiame straipsnyje norėčiau rekomenduoti kelias knygas, kurios man asmeniškai paliko didelį įspūdį ir davė naudos gilinant programavimo žinias.

Code Complete: A Practical Handbook of Software Construction

Nors knygos apimtis ganėtinai didelė, tačiau vertingos informacijos joje daugiau negu, bet kurioje kitoje knygoje. Ji apžvelgia svarbiausias programavimo temas, kaip programų architektūra, taisyklingi pavadinimai, kodo lygiavimas ir kt. Šią knygą rekomenduočiau paskaityti visiems pradedantiesiems ir esamiems programuotojams. Naudingumas 10/10.

Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)

Jeigu išgirsti komentarų, kad tavo kodas netvarkingas ar neįskaitomas, tau būtinai reikia paskaityti šią knygą. Joje gausu paaiškinimų, kodėl kodas turi būti tvarkingas bei kaip išmokti jį taisyklingai rašyti. Duoti pavyzdžiai ir patarimai lengvai suprantami ir pritaikomi praktikoje. Naudingumas 10/10.

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman

Ši knyga nedidelė, lengvai skaitoma bei turi daug iliustracijų. Skirta pradedantiesiems programuotojams. Joje gausu praktinių patarimų, kaip spręsti vienokią ar kitokią su programavimu susijusią problemą. Šioje knygoje rasite tokius skyrius: “Your first language”, “Expose your ignorance”, “Be the worst” ir kt. Čia taip pat gausu naudingos informacijos, kaip pagreitinti savo mokymosi ir tobulėjimo procesą. Naudingumas 8/10.

The Pragmatic Programmer

Ši knyga, tai puikus programavimo patarimų ir idėjų rinkinys. Ji praktiniais patarimais primena “Code complete”, tačiau yra mažiau techninė. Skirta pradedantiesiems ir šiek tiek patirties turintiems programuotojams. Naudingumas 9/10.

Apžvelgtos knygos nėra skirtos analizuoti technologijas ar techninius klausimus. Jose gausu informacijos apie programavimo principus, kodo kokybę, programuotojo karjerą ir daugybę kitų svarbių temų. Šiose knygose esanti informacija nesensta ir yra vis dar aktuali. Todėl drąsiai rekomenduoju paskaityti bent vieną iš minėtų knygų!

Sėkmės!

Debugging. Kaip rasti klaidas savo kode?

bug-369229_1920

Dažnai parašius ir paleidus kelias kodo eilutes,  vietoje tikėto rezultato gauname tik tuščią kompiuterio ekraną arba klaidą naršyklėje. Šiame straipsnyje pamėginsiu sudėlioti planą, kaip taisyti savo kodą ir surasti pačias neįtikėčiausias klaidas.

Kaip atsiranda programavimo klaidos?

Labai dažnai programavime pasitaiko sintaksės arba rašybos klaidų. Rasti jas dažniausiai nėra sunku. Pavyzdžiui, kai rašant kodą panaudojame simbolius, kurie neturėtų būti naudojami, gauname sintaksės klaidą.

Pasitaiko, kai iškviesdami funkcijas ar kintamuosus netaisyklingai parašome jų pavadinimus, todėl gauname klaidą kuri nurodo, kad toks kintamasis neegzistuoja.

Kita, žymiai painesnė klaidų grupė, tai loginės ir mąstymo klaidos. Dažnai galvojame, kad kodas veikia vienaip, kai iš tiesų viskas veikia visai kitaip. Paaiškinti logines klaidas sunku, ypatingai mažai patirties turinčiam programuotojui. Suvokimas, kad darai netinkamai ateina tik su laiku ir patirtimi.

Loginės klaidos taip pat pasitaiko, kai veikianti programa negali susidoroti su parametrais apie kuriuos nebuvome pagalvoje. Pavyzdžiui bandome išsaugoti vartotojo vardą sistemoje ir nepagalvojame, kad laukelis skirtas įvesti minėtus duomenis turi validuoti ne tik raides, bet ir kitus simbolius.

Kaip ieškoti klaidų?

1. Pirmiausia surask tašką iki kurio programa vis dar veikė!

Pavyzdžiui: įsivaizduok, kad kuri svetainę ir kažkuri CSS taisyklė neveikia.

  • Patikrink ar užsikrovė CSS failas?
  • Ar CSS faile yra tavo CSS taisyklė?
  • Ar puslapyje atsirado elementas, kurio stilių nori pakeisti?
  • Ar CSS faile nėra kitų taisyklių, kurios bando redaguoti tą patį elementą?
  • Ar nėra JS kodo, kuris bando redaguoti tą patį elementą?

Tai tik pavyzdys, kaip galima ieškoti klaidų. Noriu pabrėžti, kad šis klaidų ieškojimo procesas turi strategiją ir nėra atsitiktinis. Pradedame nuo pačio tolimiausio taško ir po mažą žingsnelį tikriname ar kodas vis dar veikia.  Suradus vietą kur kodas veikia ne taip kaip tikimės, tampa daug lengviau išspręsti problemą.

2. Paaiškink savo problemą kitam žmogui!

Labai dažnai vien bandymas nupasakoti klaidą kitam žmogui, parodo kur yra klaidos priežastis. Jeigu tokio žmogaus nėra, kuriam galėtume papasakoti apie savo problema, galime pasinaudoti “Rubber duck debugging” metodika.

Šio metodo esminė idėja yra tokia, kad bandydami kažkam kitam logiškai paaiškinti, kaip priėjome prie esamos problemos, sukeliame sau gilesnį problemos suvokimą ir pažvelgiame į problemą iš šalies. Todėl naudodami šį metodą, į pagalbą galime pasitelkti ne tik žmogų, bet ir bet kokį daiktą. Svarbiausia logiškai dėstyti mintis, kaip gavote turimą klaidą.

3. Pasinaudok Interneto pagalba!

Jei gavai klaidos pranešimą, visada gali paieškoti informacijos internete.

Programuojant su AngularJS dažnai gauname klaidos kodą bei aprašymą naršyklės konsolėje. Paieškojus detalesnės informacijos internete, galime nesunkiai rasti patarimų, kaip išspręsti šią klaidą. Pavyzdžiui rašant Javascript kodą gauname tokią klaidą: “Uncaught TypeError: undefined is not a function.” Šios klaidos paaiškinimą ar net sprendimą labai lengva rasti internete.

Viena is populiariausių svetainių, kurioje galite rasti sprendimus įvairioms programavimo problemoms yra www.stackoverflow.com.

Klaidų išvengti sunku, todėl ypatingai svarbu išmokti jas surasti ir pataisyti. Tikimės, kad šis trumpas straipsnis padės ir užves ant kelio sprendžiant klaidas.

Sėkmingo klaidų taisymo!