14 resursi programmēšanas pamatu apguvei
Pēdējos pāris mēnešus (ar nelieliem pārtraukumiem) esmu veltījis programmēšanas pamatu apguvei. Mans mērķis bija un ir spēt patstāvīgi būvēt web aplikācijas. Būvēt darbojošos produktu prototipus. Ja arī Tev ir vēlme programmēt, bet nezini, kur sākt, es Tev piedāvāju pārbaudītus resursus programmēšanas pamatu apguvei, tādējādi, iespējams, atvieglojot Tavu mācību procesu. Tu uzzināsi, kuri resursi man palīdzēja visvairāk, kā arī to, kuri bija mazāk noderīgi.
Apgūstot programmēšanas pamatus, Tu iemācīsies terminoloģiju, iemācīsies “lasīt” kodu, apgūsi programmēšanas valodas sintaksi, gūsi ieskatu izplatītākajās programmēšanas koncepcijās, kā arī mācēsi uzrakstīt vienkāršas datorprogrammas (piem., spēles “Gribi būt miljonārs?” digitālo versiju vai valūtu kalkulatoru). Programmēšanas pamati Tev vēl neļaus veidot apjomīgas programmas, bet pamatīgs solis pretim mērķim būs sperts.
Piezīme: lai pilnvērtīgi spētu sekot mācību resursiem, Tev ir jāzina, kā darbojas HTML (mājaslapu strukturēšanas valoda) un CSS (mājaslapu noformēšanas valoda). Ja Tev šie termini ir sveši, tad iesaku vispirms apgūt šīs tēmas un tad atgriezties pie programmēšanas. HTML un CSS pamatu apgūšanai Tev būs nepieciešama 1 nedēļa intensīvas pašapmācīgas. Ieteicamie resursi: HTML Dog (HTML), HTML Dog (CSS), HTML5 Doctor (HTML), Codecademy (HTML & CSS).
Grāmatas
Es iesāku ar grāmatām un Tev iesaku darīt tā pat. Grāmatas ir lielisks veids, kā salīdzinoši ātri un kompakti apgūt lielu daudzumu informācijas. Sākot mācīties jaunu prasmi, Google Tev nepalīdzēs atrast atbildes uz to, ko Tu nezini. Kāpēc lai Tu uzmeklētu terminu “JavaScript events”, ja Tev nav nekādas nojausmas par tā esamību un par to, kā tas varētu palīdzēt atrisināt Tavu problēmu? Papildus tam, lasīt garus tekstus grāmatā ir daudz patīkamāk, nekā datora vai citas ierīces ekrānā.
Learning PHP, MySQL, JavaScript, and CSS, 2nd Edition
Šī bija pirmā programmēšanas grāmata, ko es izlasīju. Tā salīdzinoši vienkāršā valodā paskaidro visas programmēšanas pamatnostādnes. Tomēr Tev neiesaku sākt ar šo grāmatu, kā arī neiesaku ņemt PHP kā pirmo apgūstamo programmēšanas valodu. Lai arī PHP un MySQL ir populāra kombinācija web aplikāciju izstrādē, iesācējiem tas ir nevajadzīgs noslogojums. Lai “darbinātu” PHP programmu, Tev būs nepieciešams papildus uzstādīt serveri un tikai tad sāksi rakstīt PHP kodu. Tas ir nevajadzīgs sarežģījums iesācējiem. Izvēlies JavaScript kā pirmo programmēšanas valodu. Lai darbinātu JavaScript, Tev ir tikai jāatver interneta pārlūks.
PHP un JavaScript ir dažādi rīki, dažādu problēmu risināšanai. Vienojošais ir tas, ka vairums programmēšanas koncepciju abās valodās pārklājas—abas izmanto mainīgos, funkcijas, cilpas, utt. Apgūstot šos programmēšanas konceptus JavaScript valodā, PHP apgūšana būs daudz vieglāka. PHP ir spēcīgs rīks dinamisku web aplikāciju izstrādē, bet iesācējiem šis “spēks” drīzāk kļūst par apgrūtinājumu.
JavaScript: The Definitive Guide.
Pēc PHP pagaidu nolikšanas malā, šī bija nākamā grāmata par programmēšanas tēmu. Šoreiz par JavaScript. JavaScript ir programmēšanas valoda, ko pamatā izmanto tīmekļa vietnēs.
Grāmata ir bieza (1080 lpp.), visaptveroša, mazliet garlaicīga “enciklopēdija” par tēmu. Lai sekotu līdzi ir jālasa lēnām, pamatīgi jāpiepūla domāšana, kā arī regulāri jāpārlasa vēlreiz. Informācijas gūzma, lai arī labi strukturēta, ir milzīga. Tāpēc neiesaku šo grāmatu, kā pirmo JavaScript resursu. Bet noteikti atgriezies pie tās, kad pamatzināšanas būs nostabilizējušās.
Head First JavaScript
Grāmata ir salīdzinoši īsa, tā lasās ātri un ir pārpildīta ar grafiskiem attēliem. Pirmajā mirklī šie grafiskie elementi liekas bērnišķigi, bet tie ir šīs (Head First) grāmatu sērijas pamatā. Viņuprāt (un tam var piekrist), attēli ir daudz vairāk atmiņā paliekoši nekā vārdi. Tehnisku grāmatu lasīšana ir nogurdinošs process. Nogurums rada uzmanības zudumu. Attēli palīdz noturēt uzmanību. Noteikti iesaku, kā pirmo izlasāmo JavaScript grāmatu.
Professional JavaScript for Web Developers
Grāmata, kas biezumā un informācijas apjomā līdzinās iepriekš apskatītajai “enciklopēdijai” (JavaScript: The Definitive Guide), bet ir daudz draudzīgāka lasītājam. Nosauksim to par “populārzinātnisko JavaScript enciklopēdiju”. Viegli saprotama pat tad, ja angļu valoda nav dzimtā valoda. Izvēlies šo grāmatu pēc “Head First JavaScript” izlasīšanas.
JavaScript: The Good Parts
Grāmata rekomendējama tiem, kas jau ir pazīstami ar JavaScript valodu. Autors neapraksta valodas iespējas, bet gan piedāvā labākos risinājumus dažādu programmēšanas problēmu risināšanai. JavaScript valodā ir daudz veidu, kā atrisināt vienu problēmu. Autors, izmantojot savu pieredzi, piedāvā, viņaprāt, labākos šo problēmu risinājumus. Šo varētu nosaukt par viedokļu nevis mācību grāmatu. Grāmata ir īsa—170 lpp. Noteikti iesaku izlasīt.
JavaScript and jQuery The Missing Manual 2nd Edition
Lai paveiktu pat pašus elementārākos programmēšanas uzdevumus, Tev nereti nāksies uzrakstīt vairākas JavaScript koda rindiņas. Vēl vairāk JavaScript rindiņas Tev nāksies uzrakstīt, ja vēlēsies, lai programma vienlīdz labi darbojas dažādos interneta pārlūkos. JavaScript funkciju bibliotēta jQuery, atvieglo šo uzdevumu, piedāvājot iepriekš definētas JavaScript funkcijas, kas ar mazāk koda rindiņām Tev ļaus izdarīt vairāk. Piemēram, lai atlasītu HTML elementu ar id="footer"
Tev būtu jāuzraksta šāds JavaScript kods:
ar jQuery to pašu var izdarīt šādi: jQuery pamatu apguvei Tev pietiks ar šo grāmatu. Grāmatas saturs ir viegli uztverams, piedāvātie koda piemēri ir noderīgi. Tās izlasīšanai man bija nepieciešami 4 darbadienu vakari. Slikais: grāmatas saturs vietām ir novecojis, kā arī grāmatas autors pārāk daudz izmantot jQuery pluginus savos piemēros. Tā vietā, lai iemācītu nolādēt citu veidotas programmas, daudz vērtīgāk būtu bijis piedāvāt lasītājiem tās veidot pašu spēkiem.
Video apmācības
Labākai vielas apguvei vēlams izmantot dažādus resursus un dažādas to formas. Piemēram, es papildus grāmatām izmantoju video apmācības. Zemāk atrodams saraksts ar tām video lekcijām, kuras noskatījos es. Video lekcijas iesaku skatīties pēc augstāk minēto grāmatu izlasīšanas.
Piezīme: Sekojošo video apmācību veidotāji nepiedāvā kursu vāku grafikas. Zemāk redzamie “vāki” ir manis veidoti. Neapjūc, ja kursa oficiālajā vietnē neko tādu neredzi.
JavaScript Foundations (Treehouse)
Šo video kursu varētu nosaukt par grāmatas “Head First JavaScript” video versiju. Lektors vienkāršā valodā paskaidro populārākās JavaScript valodas iespējas. Taču, atšķirībā no grāmatām, video materiāli ir ierobežoti laikā, tāpēc daudzas tēmas tajos netiek apskatītas.
Advanced JavaScript Fundamentals (Tuts+)
Šim video kursam ir viens trūkums—tā video lekcijas ir mazliet par garu (katra lekcija ilgst vidēji 20 min.). Pie 10 minūšu robežas, lai kā arī es centos, uzmanība pamazām sāk zust. Treehouse piedāvāto kursu video lekcijas ir sadalītas mazākos nogriežnos—vidēji 8 minūtes.
Object Oriented Javascript (Tuts+)
JavaScript ir objektorientēta programmēšanas valoda. OOP ir programmēšanas paradigma, kurā programma tiek veidota izmantojot objektus un klases. Ar OOP terminu Tu būsi jau saskāries ieteiktajās grāmatās, taču šis video kurss padziļināti apskata OOP izmantošanas iespējas un trūkumus, veidojot JavaScript programmas. Tavas nākotnes programmas (lai arī kādā valodā Tu programmēsi) sastāvēs no objektiem, tāpēc noteikti atrodi laiku un noskaties šo kursu.
Foundations of Programming Object-Oriented Design (Lynda.com)
Lai arī kursa nosaukums liekas vilinošs, tā saturs lika vilties. Netērē laiku un izvēlies citu kursu vai grāmatu.
Introduction to Computer Science and Programming. MIT (2008. gads)
Šīs video lekcijas ir īpašas ar to, ka tās ir īstas lekcijas no īstas universitātes. Šajā gadījumā tas ir ievadlekciju kurss datorzinātnēs no Masačūsetas Tehnoloģiju intutūta (MIT). Interesetas tēmas, interesanti pasniedzēji un interesantas vielas pasniegšanas metodes. Šī kursa skatīšanās, lai arī vērtīga, aizņem ļoti daudz laika, kā arī lekciju skatīšanās/klausīšanās ir nogurdinoša.
Neilgi pēc tam, kad es biju kursu noskatījies, tika publicēta šī paša kursa 2011. gada versija. Jaunākās versijas video kvalitāte ir labāka, tāpēc iesaku izvēlētes to.
Codecademy.com
Codecademy ir interaktīva platforma, kas piedāvā bezmaksas programmēšanas apmācību 6 dažādās programmēšanas valodās (JavaScript ieskaitot). Šajā vietnē programmēšana tiek paskaidrota ar interaktīviem uzdevumiem, un katrs “students” tiek atalgots ar nozīmītēm par katru paveikto programmēšanas uzdevumu. Ļoti noderīgs resurss, kur iespējams uzreiz praktiski pielietot iegūtās zināšanas. Manā Codecademy profilā Tu vari apskatīt, kā vielas apguvē ir veicies man.
Google.com
Sākot patstāvīgi veidot programmas, noderīgāki par grāmatām būs internetā pieejamie resursi. Galvenais ir uzdot pareizos jautājumus.
Mentors
Pieredzējuša programmētāja atbalsts ir neatsverams. Pogrammētāji ir atvērti cilvēki, kas labprāt nodod savas zināšanas citiem. Atrodi savu mentoru un mācību process būs daudz patīkamāks.
Pēc pamatu apguves ir tikai viens loģiskais solis—produktu būvēšana. Lai arī ļoti noderīga, programmēšanas pamatu apgūšana var šķist kā garlaicīgs darbs. Tikai būvējot produktus Tu patiesi iemīlēsi programmēšanu un sapratīsi, ka process var būt aizraujošs un gala rezultāts lietderīgs! Sāc būvēt produktus, kas risina Tavas problēmas. Ja Tev vēl nav savas mājaslapas—uzbūvē to. Nekad nav laika apmācīt jaunos kolēģus? Izveido interaktīvu testu jauno darbinieku apmācībai (līdzīgu CSDD teorijas eksāmenam).
Esi pacietīgs. Jaunas prasmes apgūšana prasa laiku. Programmēšanu nevar apgūt vienā nedēļas nogalē. Bet Tu noteikti pamēģini.
Nebaidies no neveiksmēm. Mācību procesa laikā Tu saskārsies ar problēmām. Daudzām problēmām. Nereti Tev būs nepieciešams stundām ilgi risināt vienu problēmu, bet, atrisinot to, pats sev skaļi aplaudēsi.
Atkārto. Izlasot kādu programmēšanas koncepciju, Tev nereti būs vairāk jautājumu nekā atbilžu. Izpēti un atkārto sarežģītākās koncepcijas vismaz 3 reizes. Un vēlams no dažādiem informācijas avotiem.
Lai programmēšana aizrauj un kļūst par Tavu ikdienu. Ja mācību procesā rodas jautājumi, droši raksti man uz m.mihailovs@gmail.com, un es mēģināšu palīdzēt.