Vodič za apsolutne početnike.
(Napomena prev.: ovo su saveti autora-indusa, ali izgleda korisno. Dopunite u komentarima.)

Mesec je mnogo vremena. Ako se na obuku potroši 6-7 sati svaki dan, može se puno toga naučiti.
Cilj za mesec:
- Upoznati se sa osnovnim pojmovima (promenljiva, uslov, lista, petlja, funkcija)
- Savladati praktično više od 30 problema programiranja
- Prikupiti dva projekta kako biste primenili nova znanja
- Upoznati se bar sa dva frejmvorka
- Započeti rad sa IDE (integrisanim razvojnim okruženjem), Githubom, hostingom, servisima itd.
Tako ćete postati junior Python programer.
Sada plan po nedeljama.
Članak je preveden uz podršku kompanije EDISON Software, koja , kao i .
Prva nedelja: upoznajte se sa Pythonom
Razumite kako je sve organizovano u Pythonu. Proverite što više stvari.
- Dan 1: 4 osnovne koncepta (4 sata): ulaz, izlaz, promenljiva, uslovi
- Dan 2: 4 osnovne koncepta (5 sati): lista, petlja for, petlja while, funkcija, uvoz modula
- Dan 3: Jednostavni problemi programiranja (5 sati): zamena mesta dve promenljive, pretvaranje stepena Celzijusa u stepen Fahrenheit, sabiranje svih cifara u broju, provera broja na prostost, generisanje slučajnog broja, uklanjanje duplikata iz liste
- Dan 4: Problemi programiranja srednje težine (6 sati): obrtanje stringa (provera na palindrom), pronalaženje najvećeg zajedničkog delitelja, spajanje dva sortirana niza, pisanje igre u pogađanju brojeva, izračunavanje starosti itd.
- Dan 5: Strukture podataka (6 sati): stek, red, rečnik, tuplovi, povezane liste
- Dan 6: OOP — Objektno-orijentisano programiranje (6 sati): objekat, klasa, metoda i konstruktor, nasleđivanje u OOP-u
- Dan 7: Algoritmi (6 sati): pretraga (linearno i binarno), sortiranje (metodom balončića, izborom), rekurzivna funkcija (faktorial, Fibonacci red), vremenska složenost algoritama (linearnih, kvadratnih, konstantnih)
Nemojte instalirati Python:
Razumem, zvuči kontradiktorno. Ali verujte mi. Poznajem gomilu ljudi koji su izgubili svaku želju da uče nešto nakon što nisu mogli da instaliraju razvojno okruženje ili softver. Savetujem vam da odmah instalirate aplikaciju poput ili na stranicu i počnite istraživati jezik. Nemojte si postavljati zadatak da prvo instalirate Python ako niste baš tehnički potkovani.
Drugi tjedan: započnite razvoj softvera (pripremite projekt)
Steknite iskustvo u razvoju softvera. Pokušajte upotrijebiti sve što ste naučili za stvaranje pravog projekta.
- Dan 1: Upoznajte razvojno okruženje (5 sati): Razvojno okruženje je interaktivno okruženje u kojem ćete pisati kod za velike projekte. Trebali biste dobro poznavati barem jedno razvojno okruženje. Preporučujem da započnete s ili Jupyter notebook
- Dan 2: Github (6 sati): Učite o , napravite repozitorij. Pokušajte commitovati, pushati kod, izračunati razliku između dva Git stabla. Također se upoznajte s grananjem, spajanjem i pull requestovima.
- Dan 3: Prvi projekt: Jednostavni kalkulator (4 sata): Upoznajte se s Tkinterom. .
- Dan 4, 5, 6: Osobni projekt (5 sati svaki dan): Odaberite jedan od projekata i počnite raditi na njemu. Ako nemate ideja za projekt, pogledajte ovu listu:
- Dan 7: Hosting (5 sati): Upoznajte se sa serverom i hostingom kako biste . Postavite Heroku i deployajte gradnju vaše aplikacije.
Zašto projekt:
Samo slijedeći korake u lekcijama ili videima nećete razviti sposobnost razmišljanja. Morate primijeniti svoje znanje u projektu. Čim potrošite svu energiju tražeći odgovor, zapamtićete ga.
Treći tjedan: ovladavanje kao programer
Vaš cilj treći tjedan je steći opće razumijevanje procesa razvoja softvera. Neće vam biti potrebno usavršavati svoje vještine. Ali morate znati neke osnove, jer će one utjecati na vaš svakodnevni rad.
- Dan 1: Osnove baza podataka (6 sati): Osnovna SQL naredba (Create Table, Select, Where, Update), SQL funkcija (Avg, Max, Count), relacijska baza podataka (Normalizacija), unutarnje spajanje, vanjsko spajanje itd.
- Dan 2: Koristite baze podataka u Pythonu (5 sati): Koristite okvir za baze podataka (SQLite ili Pandas), povežite se s bazom podataka, stvorite i dodajte podatke u nekoliko tablica, čitajte podatke iz tablica
- Dan 3: API (5 sati): Naučite kako pozivati API, učite JSON, mikroservise, REST API
- Dan 4: Numpy (4 sata): i vježbajte njegovo korištenje na
- Dan 5, 6: Portfelj web stranice (5 sati svaki dan): Naučite Django, , također pogledajte okvir Flask
- Dan 7: Jedinični testovi, logovi, debagiranje (4 sata): Razumijte jedinične testove (PyTest), naučite raditi s logovima, provjeriti ih i koristite breakpointove
Realna vremenska skala (Tajna):
Ako ste strastveni po toj temi i posvetite joj sve, možete sve završiti za mjesec dana.
- Kontinuirano učite Python. Počnite u 8 ujutro i radite do 5 poslijepodne. Napravite pauzu za ručak i grickalice (ukupno sat vremena)
- U 8 ujutro sastavite popis stvari koje ćete učiti danas. Potom posvetite sat vremena da se prisjetite i primijenite sve što ste naučili jučer.
- Od 9 ujutro do 12 sati učite i vježbajte manje. Poslije ručka povećajte ritam. Ako se suočite s nekim problemom, potražite rješenje na mreži.
- Svaki dan posvetite 4-5 sati učenju i 2-3 sata praksi. (maksimalno, možete si priuštiti jedan slobodan dan tjedno)
- Vaši prijatelji će pomisliti da ste ludi. Ne razočarajte ih — uskladite se s imidžem.
Ako radite puno radno vrijeme ili studirate na fakultetu, trebat će vam više vremena. Kao studentu, trebalo mi je 8 mjeseci da završim sve na popisu. Sada radim kao viši programer (senior). Mojoj supruzi, koja radi u središnjoj banci SAD-a, trebalo je pola godine da završi sve zadatke na popisu. Nije važno koliko vremena će vam trebati. Završite popis.
Četvrti tjedan: shvatite ozbiljno potrazi za poslom (pripravnikom)
Vaš cilj četvrtog tjedna je ozbiljno razmisliti o pronalaženju posla. Čak i ako ne želite dobiti posao odmah, mnogo ćete naučiti tijekom procesa intervjua.
- Dan 1: Životopis (5 sati): Napravite jednostrani životopis. Na vrhu životopisa navedite kratke informacije o svojim vještinama. Obavezno dodajte popis svojih projekata s linkovima na Github.
- Dan 2: Portfelj web stranice (6 sati): Napišite nekoliko blogova. Dodajte ih u prethodni portfelj web stranice koji ste napravili.
- Dan 3: LinkedIn profil (4 sata): Kreirajte profil na LinkedInu. Prenesite na LinkedIn sve što imate u svom životopisu.
- Dan 4: Priprema za intervju (7 sati): Pretražite najčešća pitanja koja se postavljaju na intervjuima. Vježbajte rješavanje 10 problematičnih zadataka iz programiranja koji se postavljaju na intervjuima. Radite to na papiru. Pitanja sa intervjua možete pronaći na web stranicama poput Glassdoor, Careercup.
- Dan 5: Umrežavanje (~ sati): Izađite iz ormara. Počnite ići na meetupe, sajmove poslova. Upoznajte regrutere i druge programere.
- Dan 6: Jednostavno se prijavite na ponude za posao (~ sati): Pretražite “posao Python”, pogledajte koje su ponude na LinkedInu i lokalnim stranicama s oglasima o poslu. Odaberite 3 ponude na koje ćete se prijaviti. Prilagodite svoj životopis za svaku od njih. Pronađite 2-3 stvari u popisima zahtjeva koje ne poznajete. Potrošite sljedeća 3-4 dana da ih razumijete.
- Dan 7: Učite na temelju odbijanja (~ sati): Svaki put kada dobijete odbijanje, odredite za sebe 2 stvari koje trebate znati kako biste dobili posao. Zatim potrošite 4-5 dana na usavršavanje u tim pitanjima. Na taj način, nakon svakog odbijanja, postat ćete bolji kao programer.
Spremnost za rad:
Istina je da nikada nećete biti 100% spremni za posao. Sve što trebate je vrlo dobro naučiti 1-2 stvari. I upoznati se s drugim pitanjima kako biste prebrodili prepreku na intervjuima. Kada dobijete posao, puno ćete naučiti na njemu.
Uživajte u procesu:
Učenje je proces. Na vašem putu će sigurno biti izazova. Što ih je više — to ste bolji kao programer.
Ako uspijete završiti popis za 28 dana, vi ste veliki. No čak i ako ostvarite 60-70% popisa, razvijat ćete potrebne osobine i vještine. One će vam pomoći da postanete programer.
Gdje učiti:
Ako još uvijek ne znate odakle početi,
- (zabavna Android aplikacija za učenje Pythona)
- (besplatni resursi za učenje u web verziji)
- (gledajte video i učite)
Želim vam uzbudljivo putovanje. Budućnost je u vašim rukama.
Prijevod: Dijana Šeremjova
Izvor: habr.com
