Jak efektivně studovat programování?

Jak efektivně studovat programování?
« kdy: 20. 10. 2020, 11:03:58 »
Zdravím, chtěl se zde místní komunity zeptat na pár rad ohledně studia programování.

Moje zkušenosti:

Java (začátečník) - na úrovni semstrálního projektu (základní syntaxe, OOP, okenní aplikace, IO operace, vyjímky)
HTML a CSS (začátečník) - opět jen na úrovni semestrálky (jednoduchý web)

Chtěl bych (alespoň pro začátek) se naučit:
- efektivně skriptovat (jak ve win a v linuxu), myslím tím různé automatické práce se soubory, hromadné úpravy atd.
- vytvářet jednoduché webové aplikace (například něco jako požadavkový systém s napojením na DB apod.)

Podle toho co jsem hledal existuje spousta jazyků ale vyznat se v tom jaký který je lepší na to nebo na to je už horší, určitě budu muset alespoň částečně zůstat u Javy kvůli škole.

Zároveň mě zajímá jaké znalosti k tomu rozvíjet? Má smysl se vracet například k jazyku C? Jakým způsobem jste se učili programovat a čemu se vyhnout?

Budu rád za každou radu, tip případně i zdroje na nějaké materiály k studiu. Díky


Mlocik97

  • ****
  • 318
  • In love with Linux
    • Zobrazit profil
    • E-mail
Re:Jak efektivně studovat programování?
« Odpověď #1 kdy: 20. 10. 2020, 11:25:16 »
Osobne C a Python sú na začiatok asi najlepšie, Python kvôli krivke učenia, a C pretože je nižšej úrovne než Java, Rust, Kotlin, Haskell a pod. C je ťažší, ale když sa to naučíš, už nebudeš mať väčšie problémy naučiť sa aj iné jazyky. Navyše pochopíš ako sa pracuje s pamäťou, ako optimalizovať aplikácie, na čo si dávať pozor. Určite by si si mal pozrieť aj základy JavaScriptu, ktorému sa vo webovom vývoji len ťažko vyhneš.

Začínať s Javou ako s prvým jazykom si nemyslím že je dobré, keď sa ju naučíš, tak potom procedurálne a funkcionálne jazyky sa budeš učiť skoro ako od nuly.

Re:Jak efektivně studovat programování?
« Odpověď #2 kdy: 20. 10. 2020, 11:50:38 »
Vyber si oblast, která tě baví a snaž se pro ni vytvořit nějaký program. Když jsem začínal, tak jsem si chtěl vytvořit program na zkoušení otázek autoškoly.

Programovací jazyk je asi jedno. Každou chvíli budeš potřebovat nějaký jiný.
Zmínil jsi skriptování. Na skriptování pro sysadminy ve windows asi budeš chtít použít powershell, na skriptování v linuxu bash, zsh ....

Pokud máte ve škole javu, tak ji používej i na svoje další projekty. Ze začátku bych se snažil naučit jeden jazyk velmi dobře s celým ekosystémem. Je málo oblastí, pro které by java byla vyloženě špatné řešení.
Pokud chceš něco opravdu jiného, pak bych zvolil programování robotů a Arduino, Edison 2.0 podporuje Python, Lego Javu (ale moc to do detailu neznám)

Processing je další zajímavý jazyk na učení. Psal jsem tady o tom dřív, tak dávám jen dva linky
https://processing.org/ a https://natureofcode.com/

Pokud opravdu trváš na dalších jazycích, tak místo Pythonu bych k Jave pridal něco funkcionálního. Zeptej se učitele, jestli nějaký funcionální jazyk zná - používá. Zkus ten, protože v případě problémů tě může postrčit.

Nezapomínej na jazyky jako Angličtina a Němčina. Těm bych dal stejnou prioritu jako učení se programován. Dá se to i kombinovat, když budeš používat jen anglickou dokumentaci k učení se.

Hodně štěstí.

Re:Jak efektivně studovat programování?
« Odpověď #3 kdy: 20. 10. 2020, 12:53:55 »
jestli jsi soutezni typ, zacal bych treba s leetcode, codewars, codingame, hackerrank a podobnymi strankami. Muzes prohlizet reseni od jinych uzivatelu, stranka automaticky vyhodnoti tve reseni, hodne se naucis.

ne kazdeho bavi vytvaret nejaky hobby projekt, ktery stejne nikdo nebude pouzivat
« Poslední změna: 20. 10. 2020, 12:55:35 od A.P.Hacker »

_Jenda

  • ****
  • 466
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Jak efektivně studovat programování?
« Odpověď #4 kdy: 20. 10. 2020, 13:30:49 »
Má smysl se vracet například k jazyku C?
V uvedeném (jednoduché weby, skriptování a jednoduché okenní aplikace) je C k ničemu, ale pokud budeš dělat něco složitějšího (interakce s hardware nebo nějakými knihovnami co nemají binding pro tvůj jazyk, kód co musí být rychlý (i když javový JIT je relativně rychlý taky)), tak se tomu nevyhneš.

Jakým způsobem jste se učili programovat a čemu se vyhnout?
Učil jsem se strašně živelně -- když bylo něco potřeba udělat, tak jsem to vždycky nějak vygooglil a zbastlil. Pak mi strašně pomohla spolupráce na několika projektech s kamarády a potom je velmi přínosné dělat code review s někým kdo tomu rozumí. A pak jsem šel na matfyz, kde jsem se naučil různé algoritmy a datové struktury. Můžeš si o tom přečíst slidy a knížku: http://ktiml.mff.cuni.cz/~cepek/vyuka.html (ADS 1 a 2), http://pruvodce.ucw.cz/, kuchařky a vzorová řešení na https://ksp.mff.cuni.cz/.