Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: lopata 15. 08. 2018, 10:19:47

Název: Jak se efektivně učit programovat?
Přispěvatel: lopata 15. 08. 2018, 10:19:47
Ako ste sa zacali ucit programovat a postupne sa vtom rozvijali? Uz som sa skusal ucit HTML a CSS, C++ a Python. No moj problem je ze vzdy sa naucim zaklady skusam nejake jednoduche priklady. A postupne stratim motivaciu. V podstate to mam takto vo vsetkom. Ked nepracujem na nejakom vyuzitelnom projekte. Zadat si ako novacik nejaky zlozitejsi projekt mi pride nerealne. Nejake napady? Popripade postupy ako ste zacinali?
Název: Re:Ako sa efektivne ucit programovat?
Přispěvatel: balki 15. 08. 2018, 10:28:48
Ako ste sa zacali ucit programovat a postupne sa vtom rozvijali? Uz som sa skusal ucit HTML a CSS, C++ a Python. No moj problem je ze vzdy sa naucim zaklady skusam nejake jednoduche priklady. A postupne stratim motivaciu. V podstate to mam takto vo vsetkom. Ked nepracujem na nejakom vyuzitelnom projekte. Zadat si ako novacik nejaky zlozitejsi projekt mi pride nerealne. Nejake napady? Popripade postupy ako ste zacinali?

Na pmd 85-2 sme sa ucili programovat v jazyku basic jednoduche vypoctove ulohy a vykreslovat rozne obrazky na displej - maly televizor zn tesla. Potom o trosku neskor sme sa ucili algoritmizovat v jazyku turbo pascal a vytvarali sme si male aplikacie (hry) pre zabavu na pocitacoch PP06.

Neviem, kde sa pmd 85-2 a PP06 daju dnes zohnat ale je to jedna z moznosti, ako sa naucit programovat.
Název: Re:Ako sa efektivne ucit programovat?
Přispěvatel: grgs 15. 08. 2018, 10:29:05
Tak si vymysli nejaky jednodussi vyuzitelny projekt, ktery pro tebe dava smysl a mohli by ho pouzivat i ostatni (u me to byl spravce financi v C# (WPF), protoze od mala rad pocitam penize :D). Hod ten tvuj vymysl jako open source na github.
Název: Re:Ako sa efektivne ucit programovat?
Přispěvatel: DragonMaster 15. 08. 2018, 10:51:15
Ty vole a proč se chceš naučit programovat? Abys vydělal prachy? Tak na to se vyser, když k té práci nemáš vztah, tak nikdy nebudeš dobrý a ani nebudeš mít motivaci se učit.

Nebo se chceš naučit programovat, abys mohl něco vytvořit? Tak to zkus vytvořit. Já si vždycky přál vytvořit nějakou počítačovou hru, tak se učím tak, že tvořím jednoduché hry. Není to sice žádný Far Cry ani GTA, ale jednoduché hry, při kterých musím řešit mnoho zajímavých problémů. Dokonce si myslím, že při programování her se člověk naučí programovat nejlépe, protože musí řešit atypické i komplexní problémy, se kterými se např. při tvorbě blogů, eshopů, tabulkových systémů nesetká (tam je to jen nakouknout do databáze, něco z ní vzít a vrátit). U her je potřeba aplikovat mnoho různých algoritmů - path finding, zkoumání vítězného tahu, kooperace agentů, kontrolování neplatných stavů hry. Na hru musí nahlížet z více konceptů - hra jako systém, hra jako stavový automat, hra jako objekt.

Já tvrdím, že programátor, který si vytvořil dvě, tři hry, tak dovede řešit v komerčních projektech typu eshop, internetové bankovnictví 95 % problémů, protože i u her, zejména browserových, či multiplayerových server/klient řeší databáze a podobné věci.
Název: Re:Ako sa efektivne ucit programovat?
Přispěvatel: DragonMaster 15. 08. 2018, 10:53:24
A ještě něco. Efektivní učení je takové, kdy i produkt (projekt) má nějaký smysl a neskončí v šuplíku (jako na VŠ). Při učení se ptej, jak to tam funguje, proč to tak je. Google ti to zodpoví, a pokud ne Google, tak v nějaké poradně určitě.
Název: Re:Ako sa efektivne ucit programovat?
Přispěvatel: Ondra Satai Nekola 15. 08. 2018, 11:18:29
A ještě něco. Efektivní učení je takové, kdy i produkt (projekt) má nějaký smysl a neskončí v šuplíku (jako na VŠ). Při učení se ptej, jak to tam funguje, proč to tak je. Google ti to zodpoví, a pokud ne Google, tak v nějaké poradně určitě.

Ne nutne.

Trebas code retreaty nebo katy jsou postavene na tom, ze kod se zahodi. A je to dobre - umozni ti to ozkouset praci s nejakym omezenim, ktere bys v "praktickem" zadani nemel.

Samozrejme je "prakticke" zadani lepsi pro motivaci. Ale ne nutne pro mnozstvi veci, ktere se naucis.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: karel 15. 08. 2018, 11:28:45
Ja doporucuju taky pro pochopeni napast si nejaky kod pro mikrokontroler, on clovek pak ledasco pochopi.
A nebo nejaky pekny projekt v nejakem vysim jazyku, ja zacinal s php a delphi kde jsem si vytvarel roboty aby za me hrali online hry.
Dnes je mi jedno v cem delam, je to jen o zmene syntaxe a trosku uprave mysleni pro dany jazyk, ale podle me pokud si programator tak jazyk ve kterem pracujes je az na druhe koleji.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Leoš 15. 08. 2018, 12:07:04
Já jsem od začátku prázdnin u známého na brigádě ve firmě a dělám v C# SW pro ovládání průmyslových robotů (interface, algoritmy...). Nevadilo mu, že jsem na začátku toho moc neuměl, počítal s tím a teď už to jde líp, sám cítím, že jsem udělal velký pokrok a baví mě to. A teď jsem si dal za cíl vytvořit jednoduchou aplikaci na Android, kterou využiju, takže další motivace
Název: Jak se skutečně naučit programovat
Přispěvatel: Miloslav Ponkrác 02. 09. 2018, 17:31:36
Programování není nic těžkého. Zvládnout programovací jazyk je jednoduché, to co je nejtěžšího na programování je algoritmizace.

***

Jsou dvě cesty: Buď 1) chcete nějaký výsledek nebo vás 2) programování baví samo od sebe. Pokud neplatí ani 1) ani 2), nechte toho a o programování se vůbec nepokoušejte.

Ad 1) Nejlépe je najít si nějaký cíl/problém, který by člověk chtěl naprogramovat. Ale ten cíl by měl být reálný pro začátečníka.

***

Programování a programovací jazyky jsou záludné v jedné věci. Programování je trochu běh na dlouhou trať. Algoritmizaci se naučíte tak za 2-3 roky, pokud půjdete lážo plážo. V programování existují dva druhy programovacích jazyků:

a) Programovací jazyky, které dají na začátku rychlé výsledky, a pak to začne drhnout. Jinak řečeno, jednopduchý program je v cukuletu. Čím složitější program/problém, tím více vám ten jazyk hází klacky pod nohy. Až vás zcela znechutí.

b) Programovací jazyky, které dají výsledky pomaleji od začátku. Potřebují, abyste překonal začátek, ale pak vám ten jazyk více a více pomáhá při složitějších úlohách.

Velice mnoho lidí jde cestou ad a). Rychle udělají první program, který je tak jednoduchý, že je vlastně k ničemu. A když chtějí pokračovat, začíná být problém. Záměrně nejmenuji, který jazyk je který - vznikla by z toho diskuse plná spamu a trolů.

***

Pak další modifikace:

i) Někteří lidé se chtějí rovnou učit jazyk a prostředky, které budou používat v praxi. Takoví si musejí vybrat praktický jazyk. Obvykle sklouzávají k tomu, že "myslí v jazyce" a nedokáží "myslet na problém/úlohu". Typičtí zástupci jsou velice často javisté.

ii) Lepší je začít s dobrým učebním programovacím jazykem, který člověka naučí "štábní kultuře". Kdysi takovým jazykem býval Pascal, a tuto úlohu plnil velmi dobře. Pak je ale nutné časem přejít na praktičtější jazyk.

***

Každopádně webové programování (HTML, CSS, JavaScript, PHP) není moc motivační. Musíte vynaložit poměrně hodně úsilí, aby byl nějaký výsledek (rozumná webová stránka). Kromě toho webaři a lidé kolem vypouštějí vlčí mlhu, jak strašně složité to je, protože jim jde o prachy od klientů. Je v tom moc a moc dogmat a urban legend. Začátečník by se měl vykašlat na spousty ptákovin, jako je sémantický web, nutnost HTML5, m2l by začít jen s HTML4 bez CSS - protože i bez toho to jde. Nakonec dostat se do stavu, kdy dokážete víc než po instalaci Wordpressu je těžké.

Každý obor programování chce své. Je třeba začít nějakým směrem. Jiné věci chce systémové programování, jiné hry, jiné web, jiné klasické programy, atd. Musíte si alespoň na začátek zvolit.


Název: Re:Jak se efektivně učit programovat?
Přispěvatel: agent 02. 09. 2018, 19:38:34
Já kdysi začínal psaním jednoduchých her v Basicu na IQ151 - mělo to 100-200 řádků, spousta GOTO, jen textová grafika, ale dalo se to třeba 4 klávesami ovládat, hýbalo se to a fungovalo to. Pěkné zadání je třeba "had" (ten co žere puntíky a nesmí sežrat sebe), "zajíc a pes" - (ovládáš šipkami rychlejšího zajíce a honí tě pomalejší ale neúnavný pes), "přistání na Měsíci" (raketa klesá gravitací a ovládá se jen tah motoru s omezeným množstvím paliva) atd.
 
Dnes se sice programuje pro jiné prostředí, ale to vcelku není důležité - důležité je najít si podobný dosažitelný cíl, který tě zaujme a pak se ho snažit dosáhnout jakýmikoliv vhodnými prostředky.
A až to bude fungovat, tak si od někoho ochotného schopnějšího nechat vysvětlit, co všechno je v téhle první verzi blbě, jak by se to mělo psát správně (z hlediska funkčnosti, srozumitelnosti a udržovatelnosti kódu) a zkusit to napsat podruhé znovu a lépe.
Já takhle některé aplikace psal i 3x po sobě s tím, jak se rozšiřoval okruh toho, co jsem znal. I první verze fungovala, ale byla zvenku i zevnitř ošklivá a nepřehledná a když přišel požadavek na vylepšení, byl to problém, že bylo vhodnější začít znova a lépe.
Ale tohle se dá naučit jen praxí, ne čtením si v učebnici nebo posloucháním na školení. 
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Vlado 02. 09. 2018, 19:46:49
Citace
Začátečník by se měl vykašlat na spousty ptákovin, jako je sémantický web, nutnost HTML5, m2l by začít jen s HTML4 bez CSS - protože i bez toho to jde.

To akože vážne??? Ty prosím ťa radšej nikomu neraď...
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: anonym 02. 09. 2018, 21:02:58
Ja kdybych byl malej jako ty, tak bych si hral s Arduinem. Tam se ti to hybe, sviti, blika a tak a je to samo-zabavne. Udelej samobalancujiciho robota, ve smylu segwaye - tam potrebujes 2 krokove motorky, arduino a mpu6050 coz je akcelerometr s gyroskopem. A potrebujes se podivat, jak funguje PID, to je jednoducha regulace ktera ti to bude balancovat. Casem muzes pridat i dalkove ovladani a co ja vim co jeste, muzes tomu treba udelat pindoura na servo nebo co.  :D
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: anonym 02. 09. 2018, 21:04:54
Nebo pokud ses mladej a hulis travu, ty cune jedno, tak si muzes s Arduinem udelat automatizovanou pestirnu. Kupuj tu elektroniku na dx.com, je levna.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Miloslav Ponkrác 03. 09. 2018, 03:34:00
Citace
To akože vážne??? Ty prosím ťa radšej nikomu neraď...

To myslím naprosto vážně.

***

Stejně jako si začátečník v elektronice může dát za cíl postavit třeba superpočítač, ale nejspíše to nedokáže ani když moc bude chtít. Stejně tak ten kdo začíná s webem těžko udělá hned na začátku vše dokonale.

Možná to není známo, ale web může fungovat jen na HTML. Dokonce i bez CSS. Vzhled většiny věcí se dá určit atributy v HTML značkách. Pro začátečníka dobrý cíl číslo jedna. A hlavně, má něco fungujícího a užitečného. Že to není špičkové a podle poslední módy webových technologií? No a co! Je to začátečník, a první krok, dokonce fungující, je lepší, než se snažit o virtuózní dokonalost a nikdy neuspět.

Pak jako další cíl může zkusit přidat CSS. Postupně po malých dávkách. Pak teprve až zvládne CSS plně, může klidně zkusit sémantický web a další.

***

Zkrátka nikdo na světě (kromě supermana Vlada, ten je jediná výjimka v celém vesmíru) se nenarodil jako špičkový odborník. Odborníkem se člověk stává tak, že začne prvním krokem, a postupně se zdokonaluje. Pokud si za cíl prvního kroku dáte být naprosto dokonalý - tak selžete. Ne nadarmo se říkají dvě přísloví:

1) Každá cesta, i dlouhá tisíc mil, začíná prvním krůčkem.

2) Odborník je člověk, který si v oboru vyzkoušel už udělat všechny chyby, které jdou.

Já bych si hlavně přál, aby lidé jako Vlado nikdy neradili začátečníkům, protože jsou k tomu absolutně a totálně nevhodný. Jsou dobří pouze a jedině k tomu, aby odradili začátečníka, všechno mu znechutili. Namísto postupných kroků po něm chtěli absolutní dokonalost. Takoví lidé jako Vlado jsou totálně škodliví, pokud někomu v čemkoli radí.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Pavel Stěhule 03. 09. 2018, 06:43:31
Ako ste sa zacali ucit programovat a postupne sa vtom rozvijali? Uz som sa skusal ucit HTML a CSS, C++ a Python. No moj problem je ze vzdy sa naucim zaklady skusam nejake jednoduche priklady. A postupne stratim motivaciu. V podstate to mam takto vo vsetkom. Ked nepracujem na nejakom vyuzitelnom projekte. Zadat si ako novacik nejaky zlozitejsi projekt mi pride nerealne. Nejake napady? Popripade postupy ako ste zacinali?
Začínal jsem tak, že jsem opisoval programy z VTM, Abíčka, elektroniky. Pak jsem si koupil knížku o assembleru, a přepsal a pochopil příklady. A pak jsem napsal jednu knihovnu v assembleru. Pak na výšce už člověk musel napsat kód pro semestrálky, a diplomky. Zápočet je docela dobrá motivace. Nicméně relativně rychle jsem se dostal do praxe a napřed psal prográmky (makra) ve VBA pro lidi, co potřebovali automatizovat office (většinou pár set řádek). Pak jsem do jednoho většího projektu nastoupil jako junior a tak jsem se dostal k reálnému programování.

Žádný učený z nebe nepadá, a psát si doma do šuplíku větší projekty je nesmysl. Navíc doma se sám člověk až tak toho nenaučí - může to být dost velká nuda, a navíc si člověk může zafixovat špatné návyky. Ale od toho jsou juniorské pozice - dají se najít firmy, které vezmou juniora bez praxe, co chce programovat. Samozřejmě, že pokud si řekne o nereálný plat, tak neprojde pohovorem. Musíte to brát tak, že junior (bez zkušeností na reálných projektech) je pro firmu ekonomicky spíš zátěž. Nicméně jsou už firmy, které chápou, že bez juniorů nejsou senioři.

Moje první roky v IT jsem si vydělával tak na nájem a na pivko. Ale dostal jsem se k technologiím, k reálným projektům. Něco jiného dnes mají studenti z VŠ. Tam si je odchytávají už ve škole firmy a samy usazují na juniorské pozice.

Programování má dost dimenzí - od vlastního kódování (což je docela jednoduché), zvládnutí API (což může trvat), po sociální dimenzi (komunikace se zákazníkem, uživatelem, zaměstnavatelem) až po psychologickou dimenzi (je to kreativní práce, ale ne vždy člověk píše kód, který ho baví, ne vždy je v pohodě, ale termíny se musí plnit, a kód se musí napsat, ať se člověku chce nebo nechce).

Jakmile člověk zvládne příklady, tak je nejlepší jít rovnou do praxe (brigáda, částečný úvazek, ...). Samozřejmě, že se člověk musí adekvátně ocenit, by si rovnou nezavřel vrátka. V juniorské pozici by člověk měl zůstat rok, dva, a pak se vše restartuje, takže to není o vyjednávání do konce života.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Cikáda 03. 09. 2018, 07:51:37
Citace
To akože vážne??? Ty prosím ťa radšej nikomu neraď...

To myslím naprosto vážně.

Tak to je pěkně blbej nápad. Pokud začne s HTML5, tak ho nikdo do CSS nenutí. Imo pětka dělá dost věcí lépe. Je to jako radit, aby začal s Pythonem 2.

Jinak dotaz směřoval k programování, takže HTML jde trochu mimo... Fajn je JavaScript, když chceme zůstat na webu, nebo Haskell, má-li tazatel kladný vztah k matematice.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Miloslav Ponkrác 03. 09. 2018, 08:25:49
Citace
Tak to je pěkně blbej nápad. Pokud začne s HTML5, tak ho nikdo do CSS nenutí. Imo pětka dělá dost věcí lépe. Je to jako radit, aby začal s Pythonem 2.

Právě že nutí - úplně stejně HTML5 i HTML4. Každý webař ho bude nutit do HTML na strukturu a CSS na vzhled. Všude si to přečte, takže pak se na to vykašle.

Protože každý je směrem k začátečníkovi chytrý jako rádio. Ať to začátečník v prvním kroku dělá stejně dokonale jako senior profesionál, a používá stejnou množinu tehcnologií jako profeisonál co se to učil 10 let. To je gró toho, co jsem napsal.

Citace
Jinak dotaz směřoval k programování, takže HTML jde trochu mimo... Fajn je JavaScript, když chceme zůstat na webu, nebo Haskell, má-li tazatel kladný vztah k matematice.

Umíte číst? Umíte chápat psaný text. Nebo jste si chtěl jen do mě kopnout?

Zkuste si znovu přečíst původní dotaz tazatele. Já nemůžu za to, že neumíte přečíst v jeho první otázce slova HTML, CSS a další. To je váš handicap že neumíte číst a chápat text, ne můj. Já za vaší neschopnost číst nemohu, opravdu ne.

***

Problémem dnes pro začátečníky je, že se vyskytuje bazilión rozumbradů, kteří chtějí, aby to hned dělal dokonale a profesionálně.

Před 20 lety se lidé učili programovat hry. Ale to byly hry typu někde běhá pár čtverečků, ne dnešní dokolané hry.

Před 20 lety se lidé učili web. Naučili se prostě HTML a jeli. Za hodinu až dvě mohli dělat webovou stárnku. Ale dnes se vyskytne spousta rozumbradů, kteří mu to zesložití tak, že 1) to vzdá, 2) ho to nebaví.

Název: Re:Jak se efektivně učit programovat?
Přispěvatel: František Ryšánek 03. 09. 2018, 08:30:03
Možná se měl OP "lopata" zmínit, co má do začátku k dispozici. Počítač s Windowsama? Eventuelně Linux? Nebo nějaký kus železa, kde se dá Linux rozjet? (Začínat v DOSu se asi dneska nikomu chtít nebude.)
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Miloslav Ponkrác 03. 09. 2018, 08:37:35
Citace
Možná se měl OP "lopata" zmínit, co má do začátku k dispozici. Počítač s Windowsama? Eventuelně Linux? Nebo nějaký kus železa, kde se dá Linux rozjet? (Začínat v DOSu se asi dneska nikomu chtít nebude.)

Jeho dotaz je jasný. Chce se učit programovat tak, aby to byla řada k něčemu užitečnému využitelných programů, co naprogramovat netrvají dlouho. Aby ho to bavilo a motivovalo.

Má ovšem smůlu, že se tu vyskytuje spousta chytráků, co mu radí, jak se učit programovat co nejdéle, absolutně dokonale - tak aby ztratil motivaci a nadobro na programování zanevřel. Jeden chytrák mu dokonce před chvílí poradil Haskell. Dokonalá medvědí rada v tomto případě.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Cikáda 03. 09. 2018, 09:27:27
Citace
Tak to je pěkně blbej nápad. Pokud začne s HTML5, tak ho nikdo do CSS nenutí. Imo pětka dělá dost věcí lépe. Je to jako radit, aby začal s Pythonem 2.

Právě že nutí - úplně stejně HTML5 i HTML4. Každý webař ho bude nutit do HTML na strukturu a CSS na vzhled. Všude si to přečte, takže pak se na to vykašle.

Tak potom nemá smysl začínat s HTML4. To, do čeho kdo nutí, je teď celkem irelevantní.

Citace
Jinak dotaz směřoval k programování, takže HTML jde trochu mimo... Fajn je JavaScript, když chceme zůstat na webu, nebo Haskell, má-li tazatel kladný vztah k matematice.

Umíte číst? Umíte chápat psaný text. Nebo jste si chtěl jen do mě kopnout?

Zkuste si znovu přečíst původní dotaz tazatele. Já nemůžu za to, že neumíte přečíst v jeho první otázce slova HTML, CSS a další. To je váš handicap že neumíte číst a chápat text, ne můj. Já za vaší neschopnost číst nemohu, opravdu ne.

Chápu, že zamyslet se je těžší než nadávat, ale zkus to. ;) Do nikoho jsem nekopal, tak se zklidni.

HTML i CSS zmiňuje, že to zkoušel. Tvrdím někde, že ne? Ne. Chce se tazatel "naučit programovat"? Chce. Je "HTML a CSS" "programování"? Není. O co ti jde? Chápat text tu očividně máš problém ty. Tak se zklidni a chovej se slušně. Dík.

Jinak poznámky k Haskellu si odpusť, začít s ním není problém.
Název: Re:Jak se skutečně naučit programovat
Přispěvatel: jouda 03. 09. 2018, 09:41:28
Začátečník by se měl vykašlat na spousty ptákovin, jako je sémantický web, nutnost HTML5, m2l by začít jen s HTML4 bez CSS - protože i bez toho to jde.
Tak tady nesouhlasim. Jestli je smyslem, aby se naucil s hodne malem, tak HTML/3.2 a pak plynule prejit na HTML5.
Ctyrkou (jakoukoli) bych mu rozhodne hlavu motal.
Název: Re:Jak se skutečně naučit programovat
Přispěvatel: Pako 03. 09. 2018, 10:33:59
Začátečník by se měl vykašlat na spousty ptákovin, jako je sémantický web, nutnost HTML5, m2l by začít jen s HTML4 bez CSS - protože i bez toho to jde.
Tak tady nesouhlasim. Jestli je smyslem, aby se naucil s hodne malem, tak HTML/3.2 a pak plynule prejit na HTML5.
Ctyrkou (jakoukoli) bych mu rozhodne hlavu motal.

Já bych člověku co chce naučit programovat (ne dělat weby) hlavně nedoporučil začínat s HTML/CSS/JS - protože si odnese akorát špatné návyky toho že browsery snesou ledacos a nakonec to ňák dopadne a něco dělá. Následky toho že lidé začínají při programování s webem vidíme denně při snaze těchto lidí přenášet (zlo)zvyky (špatného, leč fungujícího) webového programování i do jiných oblastí protože tak se to přeci dělá.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: František Ryšánek 03. 09. 2018, 10:53:47
Citace
Možná se měl OP "lopata" zmínit, co má do začátku k dispozici. Počítač s Windowsama? Eventuelně Linux? Nebo nějaký kus železa, kde se dá Linux rozjet? (Začínat v DOSu se asi dneska nikomu chtít nebude.)

Jeho dotaz je jasný. Chce se učit programovat tak, aby to byla řada k něčemu užitečnému využitelných programů, co naprogramovat netrvají dlouho. Aby ho to bavilo a motivovalo.

Má ovšem smůlu, že se tu vyskytuje spousta chytráků, co mu radí, jak se učit programovat co nejdéle, absolutně dokonale - tak aby ztratil motivaci a nadobro na programování zanevřel. Jeden chytrák mu dokonce před chvílí poradil Haskell. Dokonalá medvědí rada v tomto případě.

Ale jo, v tom se shodneme. Já spíš abychom mu tady neradili "začni v Delphi" když on má na stole Amigu...
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: senior 03. 09. 2018, 11:02:28
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Petr Mach 03. 09. 2018, 11:03:23
Zkus začít s rasbrerry pi a do začátku třeba sense hat a pak podle toho co tě bude víc bavit, jestli spíš čistý sw nebo sw&hw přes gpio. Užitečné je i programovat na rpi zero jen v textovém režimu, u něj se rychle projeví zbyteční plýtvání výkonem. Můžeš začít s pythonem, který už znáš a pak přejít na C.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Bacsa 03. 09. 2018, 11:09:09
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
A jak se ten talent pozná?
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Skier 03. 09. 2018, 11:53:56
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
Definuj talent nutný k programování.

Podle mne je to spíš tak, že velká část populace, a to bez ohledu na své formální vzdělání, je schopná se naučit programovat. Otázkou je, kdy narazí na své limity a dále už nebudou schopni pokračovat. Pro někoho to bude na úrovni pokročilých maker v různých aplikačních programech, pro dalšího složitější aplikační logika, pro jiného zase sofistikovaná matematika.

Obecné proklamace typu "nenaučíš se programovat bez talentu" se používají většinou jen k honění vlastního ega a pocitu jedinečnosti.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: senior 03. 09. 2018, 11:58:40
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
A jak se ten talent pozná?
Musíš mít určitý cit pro logiku a organizaci. Musíš o věcech přemýšlet, tím ti vypadne tak 80 % lidí. To se pozná poměrně brzy. Záleží také na věku. U starších lidí (20+) se stačí podívat na jejich zájmy a když nejsou žádné, tak už to lepší nebude.

Bohužel u programování neexistuje něco jako poloviční programátor. Prostě buď jsi patlal a nebo to umíš.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Pavel Prchal 03. 09. 2018, 12:52:39
Vem něco nejběžnějšího. C# nebo Java a k tomu IDE (Netbeans / VisualStudio)
Pro začátečníka je nejdůležitější pohodlí a možnost spustit si debugger.
Po roce sám zjistíš co tě baví.

Rady typu bez gpio hwswgw nemůžeš loudovat fajly strímovaný do claudů... No někdo honí triko.

Sám jsem začínal v pascalu, c++, .net, java, js
A s klidným svědomím můžu říct, že C# je na naučení nejlepší. Java je ... no Java. Ale to už je jiná pohádka o multiplatformnosti.

Hlavně to vydržet - jako u čehokoliv
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: František Ryšánek 03. 09. 2018, 13:11:40
Ako ste sa zacali ucit programovat a postupne sa vtom rozvijali? Uz som sa skusal ucit HTML a CSS, C++ a Python. No moj problem je ze vzdy sa naucim zaklady skusam nejake jednoduche priklady. A postupne stratim motivaciu. V podstate to mam takto vo vsetkom. Ked nepracujem na nejakom vyuzitelnom projekte. Zadat si ako novacik nejaky zlozitejsi projekt mi pride nerealne. Nejake napady? Popripade postupy ako ste zacinali?

Z mých vlastních zkušeností největší problém je právě nedostatek inspirace, "co zpracovat" - skutečně šťavnatá témata se u mě totiž vynořila až v pracovním procesu. Do té doby se člověk snaží hrát si s tím či oním, ale tak nějak pořád "není o čem". V práci najednou začnou vyvstávat "mezery které by šlo programováním zalepit" a motivace toto řešit, aby si člověk ušetřil rutinní práci s nějakou evidencí, nebo aby dořešil jeden-dva dílky skládačky v nějakém integračním zadání apod.

On taky teprve problém o určitém stupni obtížnosti nechá člověku nahlédnout "krásu nahého těla" všelijakých technologií / algoritmů / metod práce. Zhruba v tom smyslu, že na "hello world" nebo blikání LEDkami těžko někomu zjevíte krásu OOP nebo dependency injection.

Možná je problém v tom, že největší radost mám z tvorby věcí, které budou nějak užitečné. Což samoúčelné hračky nejsou, a školní úlohy nejsou o moc lepší :-(
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: optimizer 03. 09. 2018, 13:29:19
všichni tu radí začít s vlastním větším projektem. To podle mě není efektivní způsob, jak se rychle zlepšovat. Lepší začít s malými utilitami a skripty, které v rozumné době dokončíte.

Programování se skládá ze dvou disciplín, řešení problémů a programování ve velkém. Řešení algoritmických problémů se na reálných projektech nenaučíte, protože se nesetkáte s dostatečným množstvím netriviálních problémů. Více se naučíte řešením soutěžních úloh a studiem cizích řešení. Programování ve velkém se nejlépe naučíte přispíváním do projektů a studiem cizího kódu, spoluprací se zkušenějšími.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: František Ryšánek 03. 09. 2018, 13:38:14
Bohužel u programování neexistuje něco jako poloviční programátor. Prostě buď jsi patlal a nebo to umíš.

Není to trochu moc binární vidění světa? Já mám naopak zkušenost, že existuje dost široká paleta "programátorů" a v širším slova smyslu všelijakých systémáků, jejichž schopnosti souvisí s délkou praxe a "výživností polévky", tzn. nakolik měl člověk prostor k vyšší intelektuální činnosti vs. nakolik vedle toho programování musel taky papírovat, běhat po poradách, tlačily ho termíny, hora rutinní práce apod. Dále není v lidských silách umět všecko, takže se různí programátoři specializují na různé oblasti. A pravda je, že různí lidé dostali do vínku různou míru talentu - i v rámci kategorie "jsem programátor". Toto v kombinaci s délkou praxe vede k tomu, že vnímám lidi třeba ze sedmi lig, od novice po astrálního černokněžníka. A dokonce bych řekl, že v různých firmách je místo jak pro seniory koketující s černou magií, tak pro pracovité lidi typu "pečlivý údržbář" - na práce, u kterých černokněžník cítí, že by mrhal svým časem a talentem.

Pak je problém, že ve spoustě firem "lidi pracovití a poslušní" trpělivě dupou podle not, čímž promrhají příležitost, posunout se někam dál (a ne, nemyslím do managementu). K odbornému postupu je užitečná schopnost, kašlat na tlak vedení ke šlapání podle not, a namísto toho si trochu cílevědomě studovat / tvořit / posouvat se, třeba tím, že tu rutinní dřinu nějak zautomatizuju... tzn. technický tvořivý talent, zároveň ale svědomitá pečlivost, to vše kombinováno s jistou mírou punku = neposlušnosti, neúcty k autoritám...
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Skier 03. 09. 2018, 13:46:31

Bohužel u programování neexistuje něco jako poloviční programátor. Prostě buď jsi patlal a nebo to umíš.

A co je to "TO"?

Jednoduché programování (a mnoho lidí nic jiného nedělá) ain't no rocket science...
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: optimizer 03. 09. 2018, 13:50:43
Řešení algoritmických problémů se na reálných projektech nenaučíte, protože se nesetkáte s dostatečným množstvím netriviálních problémů.

tohle platí dvojnásobně o SQL. 90% dotazů je triviálních. Ty netriviální si musíte natrénovat na modelových úlohách, v praxi se s nimi nesetkáte dostatečně často.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 14:01:04
Řešení algoritmických problémů se na reálných projektech nenaučíte, protože se nesetkáte s dostatečným množstvím netriviálních problémů.

tohle platí dvojnásobně o SQL. 90% dotazů je triviálních. Ty netriviální si musíte natrénovat na modelových úlohách, v praxi se s nimi nesetkáte dostatečně často.

Nemyslim, ze zrovna SQL je v tomhle zas takova vyjimka.

Ale urcite souhlasim s tim, ze dobra treningova uloha muze leckdy naucit vic nez tydny praxe.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Bacsa 03. 09. 2018, 14:30:34
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
A jak se ten talent pozná?
Musíš mít určitý cit pro logiku a organizaci. Musíš o věcech přemýšlet, tím ti vypadne tak 80 % lidí. To se pozná poměrně brzy. Záleží také na věku. U starších lidí (20+) se stačí podívat na jejich zájmy a když nejsou žádné, tak už to lepší nebude.

Bohužel u programování neexistuje něco jako poloviční programátor. Prostě buď jsi patlal a nebo to umíš.
Každý začíná jako patlal. Pak si projde vzdělávacím procesem a praxí a přerodí se v profíka. (Nebo neprojde a nepřerodí.) Stačí málo, v podstatě jen snaha.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Urvustrop 03. 09. 2018, 14:56:44
Řešení algoritmických problémů se na reálných projektech nenaučíte, protože se nesetkáte s dostatečným množstvím netriviálních problémů.

tohle platí dvojnásobně o SQL. 90% dotazů je triviálních. Ty netriviální si musíte natrénovat na modelových úlohách, v praxi se s nimi nesetkáte dostatečně často.
Podle mě je to u SQL přesně naopak. 90% dotazů je natolik triviálních, že je v praxi nikdo neřeší, protože je k dispozici rozumný nástroj, který dotaz generuje a není potřeba na něj sáhnout. Podstatná náplň práce je právě řešení těch třešniček.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: jman 03. 09. 2018, 16:23:41
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
A jak se ten talent pozná?
Musíš mít určitý cit pro logiku a organizaci. Musíš o věcech přemýšlet, tím ti vypadne tak 80 % lidí. To se pozná poměrně brzy. Záleží také na věku. U starších lidí (20+) se stačí podívat na jejich zájmy a když nejsou žádné, tak už to lepší nebude.

Bohužel u programování neexistuje něco jako poloviční programátor. Prostě buď jsi patlal a nebo to umíš.
Každý začíná jako patlal. Pak si projde vzdělávacím procesem a praxí a přerodí se v profíka. (Nebo neprojde a nepřerodí.) Stačí málo, v podstatě jen snaha.

Takhle se rodí lopata. Bohužel ani po školách a praxi to z tebe vývojáře neudělá.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 16:33:14
Programovat se hlavně naučit nedá, pokud není dostatek talentu. Pro většinu lidí je to mimo jejich možnosti. Takže bude asi lepší začít spíše s tím.
A jak se ten talent pozná?
Musíš mít určitý cit pro logiku a organizaci. Musíš o věcech přemýšlet, tím ti vypadne tak 80 % lidí. To se pozná poměrně brzy. Záleží také na věku. U starších lidí (20+) se stačí podívat na jejich zájmy a když nejsou žádné, tak už to lepší nebude.

Bohužel u programování neexistuje něco jako poloviční programátor. Prostě buď jsi patlal a nebo to umíš.
Každý začíná jako patlal. Pak si projde vzdělávacím procesem a praxí a přerodí se v profíka. (Nebo neprojde a nepřerodí.) Stačí málo, v podstatě jen snaha.

Takhle se rodí lopata. Bohužel ani po školách a praxi to z tebe vývojáře neudělá.

Skola a praxe z tebe mistra neudelaji, ale pomuze to. Hodne moc.
Název: Re:Jak se efektivně učit programovat?
Přispěvatel: Jano7 04. 09. 2018, 12:09:27
K tomu, aby sme sa naučili programovať existuje celá rada rôzne kľukatých ciest. Pre efektívnu cestu, teda maximum znalostí za minimálne možný čas je podľa mňa potrebné: