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!