Naučite programiranje
Ova knjiga će vam pomoći da naučite programiranje – i da pri tom uživate.
Računari su svuda oko nas, skoro u svakom aspektu našeg života, ipak većina nas u stvari ne shvata kako oni funkcionišu, niti znamo kako da ih nateramo da rade za nas. Pošto se svet sve više oslanja na računare, umeće programiranja će biti bitno za svakoga, ne samo za profesionalne softverske inženjere i programere.
Pomoću ove knjige izgradićete osnove programiranja koje će vas pripremiti za postizanje svih vaših programerskih ciljeva. Ako želite da postanete programer profesionalnog softvera, treba da naučite kako efikasnije da komunicirate sa programerima, a ako ste prosto radoznali da saznate kako programiranje funkcioniše, ova knjiga je odličan prvi korak koji će vam pomoći da to postignete. Učenje programiranja će i dalje biti teško, ali će biti moguće – a nadamo se da može da bude zabavno, a ne frustrirajuće.
SADRŽAJ
Uvod
Zašto sam napisao ovu knjigu 1
Zašto bi trebalo da pročitate ovu knjigu 3
Vaš projekat 3
1 „Hello, World!” pisanje prvog programa 5
Biranje tekst editora 5 Osnovne funkcije 6
Biranje 8
Sublime Text 9
TextMate 9
Notepad++ 9
Gedit 9
Vim 10
Eclipse 10
IntelliJ 11
Xcode 11
Visual Studio 11
Napravite direktorijum za projekat 12
Počnite od malog: napravite fajl za testiranje 12
Kako HTML i JavaScript sarađuju u pretraživaču 13
Značaj malih promena 15
Gradite na svom uspehu 17
Referencirajte svoj JavaScript u fajlu manifest.json 20
Neka radi! 20
Veča moč, veča odgovornost 21
Rezime 21
2 Kako softver radi 23
Šta je to „softver”? 23
Životni ciklus softvera 24
Izvorni kod - tu sve počinje 25
Skup instrukcija 25 Programski jezici 26
Od izvornog koda do nula i jedinica 31
Prevedeni i interpretirani jezici: kada izvorni kod postaje binaran? 31
Izvršno okruženje 32
Izvršavanje u procesoru 34
Ulaz i izlaz 34
Korisniji softver (za višekratnu upotrebu), pomoću ulaza 34
Odakle ulaz stiže? 35
Kako softver pribavlja ulaz 36
Vrste izlaza 36
Đubre ušlo, đubre izašlo 37
Stanje 38
Dodavanje stanja u Kittenbook 39
Memorija i promenljive 41
Promenljive 41
Skladištenje promenljive 42
Konačan resurs 44
Curenje memorije 44
Rezime 45
3 Upoznavanje računara 47
Vaš računar je glup 47
Vaš računar je čaroban 48
Stajanje na ramenima džinova 48
Unutrašnjost računara 48
Procesor 48
Kratkoročna memorija 49
Dugoročna memorija 49
Korišćenje računara 50
Sistem fajlova 50
Komandna linija: preuzimanje kontrole 52
Rezime 62
4 Alatke za izgradnju 63
Automatizujte (skoro) sve 63
Instalirajte Node
64 Instalirajte Grunt 66
Softver koji pomaže da se pravi softver 69
Izbegavanje grešaka 70
Raditi brže 70
Zadaci koje treba automatizovati 71
Prevođenje 71
Testiranje 71
Pakovanje 72
Postavljanje 72
Izgradite svoju vlastitu izgradnju 73
Gruntfile.js 73
Dodatni moduli za Grunt 73
Učitavanje dodatnih modula za Grunt 76
Registrovanje zadataka 76
Pazite ovo! 78
Rezime 80
5 Tipovi podataka, strukture podataka, baze podataka 83
Tipovi podataka 83
Zašto postoje različiti tipovi podataka 84
Osnovni tipovi podataka 84 Složeni tipovi podataka 89
Dinamički i statički tipizirani jezici 96 Strukture podataka 96
Skup 99
Stek 99
Stablo 100
Graf 101
Kako izabrati efikasnu strukturu podataka 104
Baze podataka 104
Dugotrajno (postojano) skladištenje 104
Relacione baze podataka 104
Kratak uvod u SQL 106
Rezime 107
6 Regularni izrazi 109
Ctrl+F na steroidima: traženje uzoraka 109
Upotreba regularnih izraza u JavaScriptu 110
Ponavljanje 111
Specijalni znakovi i izlazne sekvence 112
{1,10}: pravite vlastite super moći 113
Upariti bilo šta, tačka 114
Ne budite gramzivi 114
Uglaste zagrade od [A-Za-z] 115
Liste znakova 115
Rasponi 115
Negacija 116
Šablon za brojeve telefona 116
Treba mi s 119
Prečice za uglaste zagrade 119
Ograničenja 121
Hvatanje oznake 124
Napredno traženje i zamena 125
Početak i kraj (reda) 126
Indikatori 126
Global 126
Ignore Case 126
Multiline 127
Da li ćete ikad koristiti Regex? 127
grep 127
Menjanje koda 127
Provera ispravnosti 128
Izdvajanje podataka 128
Rezime 129
7 if, for, vvhile i when 131
Operatori 131
Operatori poređenja 131
Logički operatori 132
Unarni operatori 134
Binarni operatori 134
Ternarni operatori 136
Istinitost 139
„Sintaksne poslastice” 140
Petlja nad nizom 142
Petlja nad slikama 142
Ugnežđene petlje 143
Potreban vam je prekid 143
Beskonačne petlje 145
Još jedan prekid 146
Ako ne znate kada da stanete 146
VVhen 147
Događaji 147
Osluškivači 147
Cron zadaci 148
Vremensko odlaganje 149
Catch kada nešto nije u redu 150
Pisanje robustnog koda 151
Rezime 151
8 Funkcije i metodi 153
Struktura funkcije 153
Definicija 154
Pozivanje 154
Argumenti 155
Stek poziva 157
Enkapsuliranje koda 158
Uradi jednu stvar kako treba 158
Podeli pa vladaj 159
Mesto za svaku stvar i svaka stvar na svom mestu Višekratno koriščenje koda 163
Rešavanje opšteg problema 163
Uraditi više sa manje 163
Ne ponavljaj se 165
Opseg 166
Globalne promenljive 167
Lokalne promenljive 168
Kako se promenljive traže 168
Rezime 171
9 Programski standardi 173
Konvencije kodiranja 173
Određivanje standarda 174
Hakerisati ili ne hakerisati 174
Platiti na mostu ili na ćupriji 175
Pisanje održivog koda 175
Formatiranje koda 176
Neka bude konzistentno 177
Beline 178
Neće se desiti samo: uvedite pravila 178
Upotreba tuđeg rada 180
Radite brže 180
Softver otvorenog koda 181
Napravila zajednica 181
Kada da pravite sami 182
Oprobana praksa 182
Dokumentacija 182
Planiranje 183
Testiranje 183
Rezime 183
10 Dokumentacija 185
Dokumentovati nameru 186
Samodokumentovan kod 186
Ne dokumentujte ono što je oćigledno 189
Opasnost od zastarele dokumentacije 190
Pronalaženje grešaka uz pomoć dokumentacije 191
Dokumentujte za sebe 191
Koliko dobro pamtite? 191
Dokumentujte da biste ućili 192
Dokumentacija van komentara 192
Dokumentacija za druge 196
Dokumentujte svoje odluke 196
Dokumentujte svoje resurse 197
Dokumentacija kao lekcija 197
Rezime 198
11 Planiranje 199
Razmišljajte pre nego što gradite 199
Napravite specifikaciju 200
Projektovanje arhitekture 200
Crtanje dijagrama 201
Pokušajte da oborite svoj sistem 202
Iterativno planiranje 203
Projektujte proširivanje 203
Koji su vaši prioriteti? 204
Doživljaj korisnika 204
Performanse 204
Bezbednost 205
Skalabilnost 205
Rokovi 205
Kompromisi 206
Utvrdite i postavite ograničenja 206
Saznajte šta možete i šta ne možete 206
Rezime 207
12 Testiranje i otklanjanje grešaka 209
Ručno testiranje 209
Testirajte dok radite 210
Probajte nešto ludo 210
Jedite vlastitu pseču hranu 211
Automatizovano testiranje 211
Jedinično testiranje 212
Napravite testove za kittenbook 215
Velika greška! 218
Špijuni kao mi 219
Integraciono testiranje 221
Hvatajte probleme što pre 222
Otklanjanje grešaka 222
Poruke o greškama 223
Evidencije 224
Tačke prekida 224
Inspekcija, osmatranje i konzola 228
Koračanje kroz kod 229
Stek poziva 231
Pronađite osnovni uzrok 231
Kodirajte, testirajte, otklanjajte greške, pa opet 231
Rezime 232
13 Naučite da pecate: kako da steknete znanje programiranja za ceo život 233
Kako se traži 234
Biranje pravih izraza 235
Tražite unazad 236
Prepoznavanje kvalitetnih resursa 236
Lični blogovi: skrivene dragocenosti 237
Gde, kada i kako postavljati programerska pitanja 237
Gde 237
Kada 240
Kako 241
Učite tako da podučavate 241
Rezime 242
14 Gradite svoje veštine 243
Napravite vlastiti kittenbook 243
Preoblikujte Facebook 243
Dodajte novu funkcionalnost 244
Podelite vašu verziju Kittenbooka 245
Smislite vlastiti projekat 246
Rešite vlastiti problem 246
Budite ambiciozni 246
Tražite pomoč, pružajte pomoč 247
Projekti otvorenog koda 247
GitHub 247
Pronalaženje projekta 248
Različiti načini na koje možete da date svoj doprinos 248
Napravite vlastiti projekat 249
Besplatno onlajn obrazovanje 249
Project Euler 249
Udacity 250
Coursera 250
codecademy 251
Khan Academy 251
Obučavanje 251
Plaćeno obrazovanje 252
Pročitajte knjigu 252
Udacity i Coursera 252
Treehouse 253
Rezime 253
15 Napredne teme 255
Kontrola verzija 255
Zašto da se koristi kontrola verzija? 256
Rad u timu 257
Subversion 260
Git 260
00P (objektno orijentisano programiranje) 265
Klase 266
Nasleđivanje 266
Primerci 267
Uzorci za projektovanje 268
PubSub 268
Mediator 269
Singleton 270
Rezime 270
Glosar 273
Indeks 293
Detaljni podaci o knjiziNaslov: Naučite programiranje
Izdavač: CET
Strana: 336 (cb)
Povez: meki
Pismo: latinica
Format: B5
Godina izdanja: 2015
ISBN: 978-86-7991-382-1