Jak efektivně studovat programování?

Re:Jak efektivně studovat programování?
« Odpověď #15 kdy: 25. 10. 2020, 22:04:15 »
Záleží čemu se chcete věnovat. Pokud nechcete dělat systémy nebo mikrořadiče tak vám bude C možná jen jako výlet do historie.
Když máte zkušenosti s Javou, podíval bych se možná na Kotlin, ten vypadá dobře. Pokud se chcete zaměřit na webové služby tak je perfektní jazyk Go. Chcete mít v dnešní době nekompromisní rychlost, skvělé abstrakce tak tu máme Rust. Znalost Pythonu jak na skripty tak na programy užitečná.

Efektivní učení. To záleží na vás co vám vyhovuje. Buď číst dokumentaci, blogové přízpěvky nebo z příkladů. Já když jsem se nějaký jazyk učil, tak jsem si našel nějaký "boilerplate" kód například Gtk aplikace a experimentovat na tom.


Re:Jak efektivně studovat programování?
« Odpověď #16 kdy: 25. 10. 2020, 22:44:09 »
...Pokud se chcete zaměřit na webové služby tak je perfektní jazyk Go. ...

Go bych nedoporučoval. Tazatel má nutnost ještě chvíli pracovat v Java pro studium, a mohlo by se mu to zprotivit.  ;D

Re:Jak efektivně studovat programování?
« Odpověď #17 kdy: 26. 10. 2020, 00:21:17 »
...Pokud se chcete zaměřit na webové služby tak je perfektní jazyk Go. ...

Go bych nedoporučoval. Tazatel má nutnost ještě chvíli pracovat v Java pro studium, a mohlo by se mu to zprotivit.  ;D

Tak alespoň Rust. Ten uvede tazatele do trošku nižších úrovní, trochu do FP (krásný oxymoron) a navíc si na Javu zuby nebrousí.

Go tedy až po Javě. Myslím že přechod ze špatného něco dobrého se dělá dobře, opak je horší ;)

Re:Jak efektivně studovat programování?
« Odpověď #18 kdy: 26. 10. 2020, 01:20:23 »
Z pohledu uceni je vicemene jedno, jaky jazyk pouzijes, budes to stejne v budoucnu menit.

Osobne doporucuju javu,C# pro pochopeni mainstream OOP, Python na skriptovani, Rust pro lowlevel veci. Na webu Javascript, posledni verze uz nejsou uplne zoufalstvi.
Tohle jsou jazyky s potencialem, zbytek je na niche oblasti nebo vicemene  k nicemu.
Stare C je nyni pouzitelne jenom pro mikrokontrolery.

GO 1.x je nepouzitelny zprasek, do 2.0 uz se aspon snazi pridat generika. Je to domenove soecificky jazyk googlu pro stateless kontejnery s velice snadnou paralelizaci pres kanaly a korutiny, jinak to nic neprinasi. Naopak to zpatky vraci davno vyreseny  bordel z osmdesatych let jako je error handling tupym ifem nad retvaly.
Vsade je spousta verozvestu, jak je GO zachrana lictva, realita je prostsi. GO je tak tupej jazyk, ze se to nauci gibbon za odpoledne a pak zacne hrde hejtovat javu, ktere nerozumi.

Jazyk je stejne jenom mala cast potrebne problematiky. Dulezite je taky nastudovat ekosystem jako je maven,pip,nuget, a hlavne IDE. Vzdycky me berou mory, kdyz vidim idioty nadsene z Kotlin syntaktickeho cukru (ne ze by byl Kotlin spatny, ma par peknych ficur), ze je java ukecana. OMG, javi ukecanost za me napise IDE vcetne generovani getteru a toString(), boilerplate zafolduje a vysledek je krasne lidsky citelny kod.
Sveho casu byli propagatori "usporneho zapisu" perl verozvesti. Kod vypadal jak chyba na lince telexu, prase se v tom nevyznalo a kdo napsal kratsi zapis ve vimu byl king.
Ti uz ale vymreli.

Akorat java je nebezpecna v tom, ze za leta jsou v ni nanosy bordelu, ktery uz nikdo nepouziva a je tam z compatibility duvodu. Javu je nutno ucit se z tutorialu minimalne pro verzi 8, starsi ucebni materialy budou zavadejici.

Re:Jak efektivně studovat programování?
« Odpověď #19 kdy: 26. 10. 2020, 07:54:59 »
GO 1.x je nepouzitelny zprasek, do 2.0 uz se aspon snazi pridat generika. Je to domenove soecificky jazyk googlu pro stateless kontejnery s velice snadnou paralelizaci pres kanaly a korutiny, jinak to nic neprinasi. Naopak to zpatky vraci davno vyreseny  bordel z osmdesatych let jako je error handling tupym ifem nad retvaly.
Vsade je spousta verozvestu, jak je GO zachrana lictva, realita je prostsi. GO je tak tupej jazyk, ze se to nauci gibbon za odpoledne a pak zacne hrde hejtovat javu, ktere nerozumi.

Nejsem Go fanatik, rád dělám v Rustu, ale ten jazyk má své využití. Jazyk má slušnou konkurenci (ve smyslu ne ekonomickém, ale počítačovém) a standardní knihovnu. Syntakticky ten jazyk není nejlepší, jazykové konstrukce if err != nil jsou děsivé věci ale má specifické využití (ten jazyk).


Re:Jak efektivně studovat programování?
« Odpověď #20 kdy: 26. 10. 2020, 08:36:53 »
...

 Vzdycky me berou mory, kdyz vidim idioty nadsene z Kotlin syntaktickeho cukru (ne ze by byl Kotlin spatny, ma par peknych ficur), ze je java ukecana. OMG, javi ukecanost za me napise IDE vcetne generovani getteru a toString(), boilerplate zafolduje a vysledek je krasne lidsky citelny kod.

...

Kdyz ctes cizi kod tak taky nechas gettery a toString zafoldovany?
Kde mas jistotu, ze nekdo jiny se nerozhodl, ze treba ten getter bude sahat do databaze?

IDE za me kod sice napise, ale udrzovat uz ho musi clovek. A to napsani je celkem levny a dela se to jednou. Problem je to cteni a upravy. To se dela mockrat a IDE to za me neudela.

Re:Jak efektivně studovat programování?
« Odpověď #21 kdy: 26. 10. 2020, 09:12:04 »
GO 1.x je nepouzitelny zprasek, do 2.0 uz se aspon snazi pridat generika. Je to domenove soecificky jazyk googlu pro stateless kontejnery s velice snadnou paralelizaci pres kanaly a korutiny, jinak to nic neprinasi. Naopak to zpatky vraci davno vyreseny  bordel z osmdesatych let jako je error handling tupym ifem nad retvaly.
Vsade je spousta verozvestu, jak je GO zachrana lictva, realita je prostsi. GO je tak tupej jazyk, ze se to nauci gibbon za odpoledne a pak zacne hrde hejtovat javu, ktere nerozumi.

Nejsem Go fanatik, rád dělám v Rustu, ale ten jazyk má své využití. Jazyk má slušnou konkurenci (ve smyslu ne ekonomickém, ale počítačovém) a standardní knihovnu. Syntakticky ten jazyk není nejlepší, jazykové konstrukce if err != nil jsou děsivé věci ale má specifické využití (ten jazyk).

Souhlas, Go ma pekne niche pouziti pro stateless kubernetes containery. Nezere moc resources, start binarky srovnatelny s C, oproti C toho nabizi vic. Korutiny pekne navrzene a snadno uchopitelne.
Pro container s jednoduchou mikroservicou skvele. Na cokoliv jinyho zadna slava

Re:Jak efektivně studovat programování?
« Odpověď #22 kdy: 26. 10. 2020, 09:32:07 »
...

 Vzdycky me berou mory, kdyz vidim idioty nadsene z Kotlin syntaktickeho cukru (ne ze by byl Kotlin spatny, ma par peknych ficur), ze je java ukecana. OMG, javi ukecanost za me napise IDE vcetne generovani getteru a toString(), boilerplate zafolduje a vysledek je krasne lidsky citelny kod.

...

Kdyz ctes cizi kod tak taky nechas gettery a toString zafoldovany?
Kde mas jistotu, ze nekdo jiny se nerozhodl, ze treba ten getter bude sahat do databaze?

IDE za me kod sice napise, ale udrzovat uz ho musi clovek. A to napsani je celkem levny a dela se to jednou. Problem je to cteni a upravy. To se dela mockrat a IDE to za me neudela.

Ne, osobne to zafoldovany nemam, gettery jsou zkratka odsunuty dole.
A pokud ctu cizi kod, staci proscrollovat blok getteru, oko jenom proskenuje behem sekundy tvar toho bloku, hned jde poznat, ze to jsou normalni gettery a ze to neni zadna dobytcina s logikou v getterech. Naopak, pokud je tvar jiny nez ocekavany, okamzita reakce "ou jeee", mame co do cineni s prasaty.
A pokud ma nekdo s gettery trauma, nalinkuje si z mavenu Lombok. Tim samozrejme ale prije o vyhody explicitniho getteru jako je moznost strceni debug hooku do nej.

Ukecanost javy je naopak velka vyhoda, kod je samopopisny, v jave v IDE se rozhodne necte cely text. Oko jenom skace po barvickach, bold, italic syntax highlightingu a po tvaru bloku kodu -  nacteni informace je velice efektivni. Ctenar se pouze sosustredi na pro nej zajimavou cast. Kdyz reim business logiku, vsecko je v try bloku, kdyz resim error handling, vsecko je v catch bloku, ne zmatlany maglajz na jedny hromade jak v Go.

Problem je, ze java se da efektivne pouzivat jedine s podporou IDE a jejiho ekosystemu typu maven. Je tam o dost vetsi prah pro nauceni.
A tutorialy to nijak nezduraznuji.

Chapu, ze kdyz kluk po skole dostane zadani, udelej to a to, jak chces, vcera bylo pozde, mas na to 2 dny, tak zakonite skonci u nejakeho quick and dirty copypaste ze StackOverflow, kde nekdo ukazuje popis parcialniho reseni a okoli resi jenom nejnutnejsim praseckym zpusobem. A spousta lidi se tohoto marasu nikdy nevymani, pak vznikaj veci jako pristu do databaze v getteru.

Re:Jak efektivně studovat programování?
« Odpověď #23 kdy: 26. 10. 2020, 14:47:20 »
Tak jsem si to ještě jednou hezky promyslel, kouknul na různé jazyky a tipy co jste mi tady davali a rozhodl jsem se ze zustanu u Javy (po pravdě některým věcem co jste tu psali jsem ani nerozuměl  :D).

Ve škole v tom mám dělat další semestrální projekt + v tom vyučují zálkady počítačové grafiky (algoritmy na vykreslování přímek, tvarů apod.). Zároveň se dají pomocí Javy dělat webové aplikace, sice zatím nevim jak ale k tomu bych se dostal asi postupně :-). Začal jsem tedy s tutoriálem přímo od oracle kde to mám zatím jako takové opakování ale přijde mi to dobře zpracované takže si to projdu celé abych něměl mezery někde v základech.

Napadlo mě že bych si udělal při učení Javy udělal nějakou dokumentační webovou stránku kam bych si psal zápisky, zároveň bych si osvěžil html,css (nebo použít bootstrap?).

Re:Jak efektivně studovat programování?
« Odpověď #24 kdy: 26. 10. 2020, 16:48:53 »
...
 Zároveň se dají pomocí Javy dělat webové aplikace, sice zatím nevim jak ale k tomu bych se dostal
...

Bud hodne opatrny a overuj si stari zdroju na ktere narazis.
V jave se na webu delali ruzne obskurnosti kterym je asi lepsi se dneska vyhnout.

_Jenda

  • *****
  • 700
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Jak efektivně studovat programování?
« Odpověď #25 kdy: 26. 10. 2020, 18:06:30 »
...
 Zároveň se dají pomocí Javy dělat webové aplikace, sice zatím nevim jak ale k tomu bych se dostal
...

Bud hodne opatrny a overuj si stari zdroju na ktere narazis.
V jave se na webu delali ruzne obskurnosti kterym je asi lepsi se dneska vyhnout.
On nemluví o Java apletech, ale o Java EE.

Re:Jak efektivně studovat programování?
« Odpověď #26 kdy: 26. 10. 2020, 20:52:44 »
...
 Zároveň se dají pomocí Javy dělat webové aplikace, sice zatím nevim jak ale k tomu bych se dostal
...

Bud hodne opatrny a overuj si stari zdroju na ktere narazis.
V jave se na webu delali ruzne obskurnosti kterym je asi lepsi se dneska vyhnout.
On nemluví o Java apletech, ale o Java EE.
Kdo vi... ale ja bych se dneska treba nehrnul ani do gwt. Ani jsp a jsf bych dneska nevolil jako prvni.

Re:Jak efektivně studovat programování?
« Odpověď #27 kdy: 26. 10. 2020, 23:17:15 »
Možná pro Javistu bych doporučil Kotlin. Osobně se mi moc líbí, běží to pod JVM ale je tu i LLVM backend (ale není zase tolik populární).

Go je pěkný jazyk ale hodně oškrábaný a i když se mi líbí tak dělat v něm veliký projekt je za trest (asi proto se hodí pro mikroslužby).

L..

  • ***
  • 120
    • Zobrazit profil
    • E-mail
Re:Jak efektivně studovat programování?
« Odpověď #28 kdy: 27. 10. 2020, 07:55:05 »
Kdo vi... ale ja bych se dneska treba nehrnul ani do gwt. Ani jsp a jsf bych dneska nevolil jako prvni.

Přesně tak. V GWT jsem sice nedělal, nicméně JSP(F) je hrozný sh*t. Pokud už bych chtěl dělat webový FE v Javě, tak jedině Wicket.

Re:Jak efektivně studovat programování?
« Odpověď #29 kdy: 27. 10. 2020, 08:56:06 »
Kdo vi... ale ja bych se dneska treba nehrnul ani do gwt. Ani jsp a jsf bych dneska nevolil jako prvni.

Přesně tak. V GWT jsem sice nedělal, nicméně JSP(F) je hrozný sh*t. Pokud už bych chtěl dělat webový FE v Javě, tak jedině Wicket.

No to je presne jak jsem psal nahore, v jave je za leta hromada bordelu a je potreba vedet, jak to pouzivat.

Puvodni JSP se scriptlety je peklo.
Udelat ale web postaveny ja bootstrap+jQuery, kde v Jave servlet pripravi data, strci je jako Java objekty do response, v e vlastni JSP strance jenom predam tyto data jQuery a jinym javascript widgetum - elegantni a ciste reseni.
Nedavno jsem delal jednoduchy CRUD postaveny kolem https://datatables.net/

Puvodni JSF arcipeklo, JSF2 peklo. Kdyz ale to JSF nekdo umravni ve stylu https://www.primefaces.org/showcase/ , da se s tim velice pekne pracovat. Backend na Java SpringBoot. A porad se jedna o klasickou servlet/JSP aplikaci se session na serveru, coz ma hromadu vyhod, treba citlive data jsou neviditelne pro browser.

No a dneska bych se pro nove veci snazil udelat v Angularu, Java jenom na REST API backend