Jazyk pro úplného začátečníka

Flasi

Re:Jazyk pro úplného začátečníka
« Odpověď #45 kdy: 12. 07. 2013, 20:12:49 »
Bude to boj,  to nerikam, ale alespon z nej nebude blbec (a prosim zadny flame). Co se tyka toho uceni, tak sem hodim jenom tento odkaz http://mj.ucw.cz/papers/proglang.html (sice se to tyka vyuky...). Ja jsem osobne taky zacinal (samouk) s C (K&R kniha ;-)) a byl to boj, ale dalo mi to mnoho.

Bude to boj. A proč pro něj chcete boj, když se může třeba v Pythonu dostat v programování dost daleko bez boje?
Články v odkazu jsem už před lety zběžně pročetl - a pokud tam někdo vyzdvihuje C jako jazyk pro prvotní výuku programování, tak hlavní důvody jsou vždy to, že:
- Je to to těžké, takže lidé, kteří nemají na to, aby získali titul v computer science, odpadnou hned.
- Člověk, který má titul z computer science, musí ovládat nízkoúrovňový přístup.

Fakt máte pocit, že některý z těch argumentů je relevantní pro toho našeho začátečníka a SAMOUKA (!!!)? Takže vy osobně jste se dokázal jako začátečník a samouk prokousat K&R? Tak to jste fakt dobrý, bez ironie. Ale myslíte, že ostatní budou taky tak dobří? A myslíte, že není dneska lepší cesta? Že vám to hrozně pomohlo? No to nepochybně - když někdo napoprvé zaběhne celý marathon, tak pak hravě zvládá ostatní tratě. Ale doporučovat to ostatním - to snad fakt ne :-)

K C a assembleru jako vyuce programovani se v dnesni dobe vraceji take univerzity a vedi proc. Programator neni jen clovek, co dokaze volat nejake funkce ci metody a pouzivat frameworky. Ale musi taky vedet, jak jeho toustovac funguje, jak nastavit 15 bit v promenne X apod, jak vypada datovy typ float v pameti (ptam se vas, vite to?). Svete div se, ze pak napriklad programatori nenapisou kousek procedularniho kodu, protoze umi jen OOP.

O tom, že by nějaká významná univerzita učila úvodní kurz programování v ASM tedy nevím, můžete uvést konkrétní příklad?
Jenže to je váš ideál programátora, že ví jak funguje jeho toastovač a umí nastavit bit v proměnné a ví jak vypadá float v paměti.
Člověk může napsat opravdu hodně kódu, který dělá, to co chce - a tohle všechno nevědět.
Mohli bych se tu bavit o tom, jestli je správné, že se takoví lidé progamováním i živí, ale to je úplně jedno.
Tenhle člověk se chce naučit programovat. Jestli začne v C, tak z něj možná jednou bude kvalitní a všestranný programátor - ale nejspíš se nenaučí nic a nenaprogramuje nic. Jestli začne v něčem vysokoúrovňovém, tak se relativně snadno dostane na hobby úroveň, kdy si pro sebe naprogramuje, co bude chtít. A fakt mu nebude chybět, že neví nic o tom, kolik bitů zabírá mantisa a kolik exponent. A možná se časem dostane i na tu profi úroveň - rozhodně s větší pravděpodobností, než když začne s C.

Jak vypadá float v paměti se vždy raději podívám do dokumentace. Nejčastěji totiž programuji v assemblerových jazycích na různých ne-x86 platformách a není to na každé stejné. Pokud si píši nějakou utilitku pro sebe, tak ji většinou píši v pythonu. A jak je tam nakládáno s čísly se mi moc líbí - ale mám skvělý pocit z toho, že je mi to může být úplně ukradeno.
Vůbec ale nechápu, jak je tohle relevantní v diskuzi, čím by měl zdejší začátečník začít.


kdosi4

  • ***
  • 136
    • Zobrazit profil
    • E-mail
Re:Jazyk pro úplného začátečníka
« Odpověď #46 kdy: 12. 07. 2013, 20:20:08 »
Bude to boj,  to nerikam, ale alespon z nej nebude blbec (a prosim zadny flame). Co se tyka toho uceni, tak sem hodim jenom tento odkaz http://mj.ucw.cz/papers/proglang.html (sice se to tyka vyuky...). Ja jsem osobne taky zacinal (samouk) s C (K&R kniha ;-)) a byl to boj, ale dalo mi to mnoho.

Bude to boj. A proč pro něj chcete boj, když se může třeba v Pythonu dostat v programování dost daleko bez boje?
Články v odkazu jsem už před lety zběžně pročetl - a pokud tam někdo vyzdvihuje C jako jazyk pro prvotní výuku programování, tak hlavní důvody jsou vždy to, že:
- Je to to těžké, takže lidé, kteří nemají na to, aby získali titul v computer science, odpadnou hned.
- Člověk, který má titul z computer science, musí ovládat nízkoúrovňový přístup.

Fakt máte pocit, že některý z těch argumentů je relevantní pro toho našeho začátečníka a SAMOUKA (!!!)? Takže vy osobně jste se dokázal jako začátečník a samouk prokousat K&R? Tak to jste fakt dobrý, bez ironie. Ale myslíte, že ostatní budou taky tak dobří? A myslíte, že není dneska lepší cesta? Že vám to hrozně pomohlo? No to nepochybně - když někdo napoprvé zaběhne celý marathon, tak pak hravě zvládá ostatní tratě. Ale doporučovat to ostatním - to snad fakt ne :-)

K C a assembleru jako vyuce programovani se v dnesni dobe vraceji take univerzity a vedi proc. Programator neni jen clovek, co dokaze volat nejake funkce ci metody a pouzivat frameworky. Ale musi taky vedet, jak jeho toustovac funguje, jak nastavit 15 bit v promenne X apod, jak vypada datovy typ float v pameti (ptam se vas, vite to?). Svete div se, ze pak napriklad programatori nenapisou kousek procedularniho kodu, protoze umi jen OOP.

O tom, že by nějaká významná univerzita učila úvodní kurz programování v ASM tedy nevím, můžete uvést konkrétní příklad?
Jenže to je váš ideál programátora, že ví jak funguje jeho toastovač a umí nastavit bit v proměnné a ví jak vypadá float v paměti.
Člověk může napsat opravdu hodně kódu, který dělá, to co chce - a tohle všechno nevědět.
Mohli bych se tu bavit o tom, jestli je správné, že se takoví lidé progamováním i živí, ale to je úplně jedno.
Tenhle člověk se chce naučit programovat. Jestli začne v C, tak z něj možná jednou bude kvalitní a všestranný programátor - ale nejspíš se nenaučí nic a nenaprogramuje nic. Jestli začne v něčem vysokoúrovňovém, tak se relativně snadno dostane na hobby úroveň, kdy si pro sebe naprogramuje, co bude chtít. A fakt mu nebude chybět, že neví nic o tom, kolik bitů zabírá mantisa a kolik exponent. A možná se časem dostane i na tu profi úroveň - rozhodně s větší pravděpodobností, než když začne s C.

Jak vypadá float v paměti se vždy raději podívám do dokumentace. Nejčastěji totiž programuji v assemblerových jazycích na různých ne-x86 platformách a není to na každé stejné. Pokud si píši nějakou utilitku pro sebe, tak ji většinou píši v pythonu. A jak je tam nakládáno s čísly se mi moc líbí - ale mám skvělý pocit z toho, že je mi to může být úplně ukradeno.
Vůbec ale nechápu, jak je tohle relevantní v diskuzi, čím by měl zdejší začátečník začít.

Čili rozumím dobře, že mi doporučujete Python ? Chtěl bych se zeptat - Python vs. Java vs. C.

Splitman

Re:Jazyk pro úplného začátečníka
« Odpověď #47 kdy: 12. 07. 2013, 20:23:02 »
Objevil jsem materialy ze skoly: http://uloz.to/xvmjmtT/pa1-uos-cvut-fit-rar budou se ti hodit osobne znam lidi z fitu i felu a felaci se uci v jave, ale jen prodecuralne (neobjektove!). Na fitu zase zacinali od zakladu Cecko potom C++ a kdo si co potom vybral (Python, Java, ..) nicmene ti z felu predmet dali v pohode (javu), ale nic jim to nedalo. Naopak z fitu proklinali Cecko, ale kdyz si tim prosli tak nemeli vubec potom problem s Javou, C# atd. Navic se ted opet rozmahaji projekty v C++, takze urcite za me Cecko mohu jen doporucit. Java ti stavi mantinely a pokud si neprojdes zaklady v C (osetreni vstupu, typove konverze) tak toho nebudes umet moc navic jako takovy prumer. Pointry jsou jednoduche, stejne jako objekty potom vyse. Chce tomu ale porozumet a neslepovat jen kody. Mrkni na ty materialy, jsou fakt zlate a pomohli mi na moji skole projit C/C++, potom s Javou mi pomohla hodně stranka: http://www.algoritmy.net/article/22351/Cykly-8 a jinak celou dobu pouzivam NetBeans (pochazi z CR z MatFyzu) jen pro C musis doinstalovat MinGW (napis a poradim ti) a pridat jeho cestu do PATH v systemu. Pod UNIXem ti pro Cecko staci GCC, ktere je soucasti snad kazde distribuce a muzes si zaklady zkouset primo v terminalu ;)

kdosi4

  • ***
  • 136
    • Zobrazit profil
    • E-mail
Re:Jazyk pro úplného začátečníka
« Odpověď #48 kdy: 12. 07. 2013, 20:28:08 »
Objevil jsem materialy ze skoly: http://uloz.to/xvmjmtT/pa1-uos-cvut-fit-rar budou se ti hodit osobne znam lidi z fitu i felu a felaci se uci v jave, ale jen prodecuralne (neobjektove!). Na fitu zase zacinali od zakladu Cecko potom C++ a kdo si co potom vybral (Python, Java, ..) nicmene ti z felu predmet dali v pohode (javu), ale nic jim to nedalo. Naopak z fitu proklinali Cecko, ale kdyz si tim prosli tak nemeli vubec potom problem s Javou, C# atd. Navic se ted opet rozmahaji projekty v C++, takze urcite za me Cecko mohu jen doporucit. Java ti stavi mantinely a pokud si neprojdes zaklady v C (osetreni vstupu, typove konverze) tak toho nebudes umet moc navic jako takovy prumer. Pointry jsou jednoduche, stejne jako objekty potom vyse. Chce tomu ale porozumet a neslepovat jen kody. Mrkni na ty materialy, jsou fakt zlate a pomohli mi na moji skole projit C/C++, potom s Javou mi pomohla hodně stranka: http://www.algoritmy.net/article/22351/Cykly-8 a jinak celou dobu pouzivam NetBeans (pochazi z CR z MatFyzu) jen pro C musis doinstalovat MinGW (napis a poradim ti) a pridat jeho cestu do PATH v systemu. Pod UNIXem ti pro Cecko staci GCC, ktere je soucasti snad kazde distribuce a muzes si zaklady zkouset primo v terminalu ;)

Díky za materiály, už je stahuju  ;)
jak jsem psal - již jsem zkoušel Javu - NET Beans mám a zarazilo mě, že "podporuje" C ovšem mi to nešlo - rád bych se zeptal jak to rozchodit  :)

Díky moc za odkazy a názory.

Splitman

Re:Jazyk pro úplného začátečníka
« Odpověď #49 kdy: 12. 07. 2013, 20:29:52 »
ASM se bere i na fitu, je to opravdu zaklad, alespon si to osahat.

Co se tyka literatury tak jednoznacne na zacatek je najlepsi toto:

Java i C = Herout

Python = http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf


kdosi4

  • ***
  • 136
    • Zobrazit profil
    • E-mail
Re:Jazyk pro úplného začátečníka
« Odpověď #50 kdy: 12. 07. 2013, 20:32:34 »
ASM se bere i na fitu, je to opravdu zaklad, alespon si to osahat.

Co se tyka literatury tak jednoznacne na zacatek je najlepsi toto:

Java i C = Herout

Python = http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf

Ještě jednou děkuji  ;) pokusím se ty knížky od Herouta nějak sehnat.

Pokud se neshodeme/te napadá mě seřadit jazyky od základů po pokročilé - resp. v jakém pořadí bych se je měl učit - rád bych byl všestranný programátor.

Splitman

Re:Jazyk pro úplného začátečníka
« Odpověď #51 kdy: 12. 07. 2013, 20:39:23 »
Urcite zacit proceduralne, je jedno jestli C / JAVA / Python, potom po osvojeni syntaxe se podivat na slozitejsi veci a obecně algoritmizaci, tady uz zalezi na co by ses chtel zamerit, jestli embedded zarizeni, webove aplikace, mobilni aplikace, databazove systemy atd. no a potom se ponorit do OOP tedy C++ / Java / Python / C#, naucit se pouzivat knihovny, ktere ti usnadni praci a programovani beznych rutin, o kterych uz budes vedet jak funguji, coz ti potom usnadni praci pri hledani chyb.

Nakonec nezapomen i na nejake to GUI, Swing, Qt, WPF apod.

Flasi

Re:Jazyk pro úplného začátečníka
« Odpověď #52 kdy: 12. 07. 2013, 20:45:30 »
ASM se bere i na fitu, je to opravdu zaklad, alespon si to osahat.

Co se tyka literatury tak jednoznacne na zacatek je najlepsi toto:

Java i C = Herout

Python = http://knihy.nic.cz/files/nic/edice/mark_pilgrim_dip3_ver3.pdf

ASM se bere všude možně. Otázka byla, kde se ASM bere jako 1. jazyk. Jako jazyk ve kterém vás učí programovat. Jazyk ve které vám vysvětlují algoritmizaci. Tuto pozici ASM na FIT rozhodně nemá.

Pro člověka u kterého nevíte, jak daleko s programováním dojde, je úplný nesmysl tvrdit, že by si měl osahat ASM. Něco jiného je IT univerzita, která se nechce stydět za to, že někomu dala titul.

Urcite zacit proceduralne, je jedno jestli C / JAVA / Python, potom po osvojeni syntaxe se podivat na slozitejsi veci a obecně algoritmizaci, tady uz zalezi na co by ses chtel zamerit, jestli embedded zarizeni, webove aplikace, mobilni aplikace, databazove systemy atd. no a potom se ponorit do OOP tedy C++ / Java / Python / C#, naucit se pouzivat knihovny, ktere ti usnadni praci a programovani beznych rutin, o kterych uz budes vedet jak funguji, coz ti potom usnadni praci pri hledani chyb.

Nakonec nezapomen i na nejake to GUI, Swing, Qt, WPF apod.

To jsou rady, které jsou začátečníkovi k ničemu. Navíc psát, že je jedno jestli C nebo Java nebo Python je jako snažit se tvrdit, že je jedno, jestli někdo, kdo v životě neřídil auto, sedne za volat auta, co má automatickou převodovku, nebo manuální převodovku bez synchronů a řadí se s meziplynem.

Splitman

Re:Jazyk pro úplného začátečníka
« Odpověď #53 kdy: 12. 07. 2013, 20:55:05 »
Zrovna u techto je to jedno, jeden ma garbagecolector, druhy slabou (zadnou) typovou kontrolu, dalsi svou specifickou syntaxi.. ale rozhodne lepsi nez zacinat v ASM (nehlede nikde jsem nepsal, ze se s nim zacinalo jako 1.) nebo v Delphi či Pascalu, jako radili kdesi na zive.cz .. to byla flame na cely tyden, kdy se hadali stari kmetove s mladsi generaci.

Nemyslim si, ze bych daval nejake spatne rady. Rozhodne to rady jsou, oproti tve opozici vutci vsemu. A vubec, nebavi me, kdyz si tu akorat honite trika, kdyz se tu nekdo jen zepta .. mnohdy diky tomu nedostane ani kloudnou odpoved, to by odradilo potom kazdeho druheho...

kdosi4

  • ***
  • 136
    • Zobrazit profil
    • E-mail
Re:Jazyk pro úplného začátečníka
« Odpověď #54 kdy: 12. 07. 2013, 20:56:02 »
Zeptám se tedy trochu jinak.

Napište každý prosím 1 - 3 jazyky, které byste mi doporučili k naučení popř. stručně proč - já si to proberu  ;)

Flasi

Re:Jazyk pro úplného začátečníka
« Odpověď #55 kdy: 12. 07. 2013, 20:56:42 »

Ještě jednou děkuji  ;) pokusím se ty knížky od Herouta nějak sehnat.

Pokud se neshodeme/te napadá mě seřadit jazyky od základů po pokročilé - resp. v jakém pořadí bych se je měl učit - rád bych byl všestranný programátor.

Hele, položil jsi otázku a tady se spustil kolotoč různých lidí, kteří ti radí vyloženě protichůdné věci. Já považuji za nejlepší volbu python - ale ber to tak, že moje nejdůležitější pointa je to, že máš začít v čímkoliv kromě C (nebo ASM, nebo C++).
Možná to zkus jinak. Máš nějakého kamaráda, který umí programovat a je ochoten ti pomáhat a věnovat ti nějaký čas? Ano? Pak programuj v tom, co ti on doporučí - i kdyby to bylo C (pak se ale ujisti, že na tebe má fakt dost času :-))

A ZAPOMEŇ na nějaké žebříčky podle kterých se budeš ty jazyky učit.
Teď se nauč v tomhle pořadí:
- základy jednoho jazyka
- obecně programovat (v tom jazyce, kde umíš ty základy)
- pokročilejší věci daného jazyka a ovládnout více jeho vestavěných funkcí (něco, čemu se říká knihovna daného jazyka)

Až budeš umět tohle, tak zapřemýšlej, jak ti to šlo, jak tě to bavilo, kam bys chtěl dál směřovat a můžeš řešit, jestli budeš ještě více rozvíjet daný jazyk, nebo se budeš učit nějaký druhý - a jaký by to případně měl být. A pokud nejsi génius, tak jako samouk se na víc než na podprůměrnou úroveň nedostaneš. Takže budeš řešit i na jakou školu jít, případně na jaké kurzy chodit.

kdosi4

  • ***
  • 136
    • Zobrazit profil
    • E-mail
Re:Jazyk pro úplného začátečníka
« Odpověď #56 kdy: 12. 07. 2013, 21:00:52 »

Ještě jednou děkuji  ;) pokusím se ty knížky od Herouta nějak sehnat.

Pokud se neshodeme/te napadá mě seřadit jazyky od základů po pokročilé - resp. v jakém pořadí bych se je měl učit - rád bych byl všestranný programátor.

Hele, položil jsi otázku a tady se spustil kolotoč různých lidí, kteří ti radí vyloženě protichůdné věci. Já považuji za nejlepší volbu python - ale ber to tak, že moje nejdůležitější pointa je to, že máš začít v čímkoliv kromě C (nebo ASM, nebo C++).
Možná to zkus jinak. Máš nějakého kamaráda, který umí programovat a je ochoten ti pomáhat a věnovat ti nějaký čas? Ano? Pak programuj v tom, co ti on doporučí - i kdyby to bylo C (pak se ale ujisti, že na tebe má fakt dost času :-))

A ZAPOMEŇ na nějaké žebříčky podle kterých se budeš ty jazyky učit.
Teď se nauč v tomhle pořadí:
- základy jednoho jazyka
- obecně programovat (v tom jazyce, kde umíš ty základy)
- pokročilejší věci daného jazyka a ovládnout více jeho vestavěných funkcí (něco, čemu se říká knihovna daného jazyka)

Až budeš umět tohle, tak zapřemýšlej, jak ti to šlo, jak tě to bavilo, kam bys chtěl dál směřovat a můžeš řešit, jestli budeš ještě více rozvíjet daný jazyk, nebo se budeš učit nějaký druhý - a jaký by to případně měl být. A pokud nejsi génius, tak jako samouk se na víc než na podprůměrnou úroveň nedostaneš. Takže budeš řešit i na jakou školu jít, případně na jaké kurzy chodit.

Bohužel nikoho takového neznám, ale díky za názor   :)

Flasi

Re:Jazyk pro úplného začátečníka
« Odpověď #57 kdy: 12. 07. 2013, 21:08:50 »
Zrovna u techto je to jedno, jeden ma garbagecolector, druhy slabou (zadnou) typovou kontrolu, dalsi svou specifickou syntaxi.. ale rozhodne lepsi nez zacinat v ASM (nehlede nikde jsem nepsal, ze se s nim zacinalo jako 1.) nebo v Delphi či Pascalu, jako radili kdesi na zive.cz .. to byla flame na cely tyden, kdy se hadali stari kmetove s mladsi generaci.

Nemyslim si, ze bych daval nejake spatne rady. Rozhodne to rady jsou, oproti tve opozici vutci vsemu. A vubec, nebavi me, kdyz si tu akorat honite trika, kdyz se tu nekdo jen zepta .. mnohdy diky tomu nedostane ani kloudnou odpoved, to by odradilo potom kazdeho druheho...

1. Píšeš tak, že není jasné na co aa koho odpovídáš. To je tvoje volba a důsledky jsou tvoje chyba. Poslední otázka na výuku ASM byla moje a byla to otázka na to, kde se ASM bere jako 1. jazyk, jako jazyk pro výuku programování. Takže jsem hádal, že je to reakce na to. Každopádně tady ve sporu nejsme.

2. Pokud nevidíš zásadní rozdíl v komfortu pro začátečníka mezi C a Pythonem, tak by bylo pro lepší, abys mlčel. Než se začneš rozčilovat, tak se zamysli, nakolik oba jazyky opravdu znáš a nakolik znáš práci se začátečníky. A pak sem případně napiš něco dalšího, díky.

3. To, že jsou tvoje rady začátečníkovi k ničemu jsem psal k jednomu konkrétnímu odstavci, který jsi napsal. To je totiž odstavec, který začátečník vůbec nepochopí, cos mu chtěl sdělit a co jsou všechny ty věci o kterých píšeš. Pokud máš pocit, že já jsem v opozici vůči všemu, tak si mě asi s někým pleteš. Zatím to vypadá, že odrazen není tazatel, ale spíše jsi odrazen ty. Což vzhledem k bodu 2, není tak úplně špatně.

Re:Jazyk pro úplného začátečníka
« Odpověď #58 kdy: 12. 07. 2013, 21:34:22 »
Zeptám se tedy trochu jinak.

Napište každý prosím 1 - 3 jazyky, které byste mi doporučili k naučení popř. stručně proč - já si to proberu  ;)

Stiahni si Python tu: http://www.python.org/getit/
Pusti si prvu prednasku z MIT tu: http://www.youtube.com/watch?v=k6U-i4gXkLM
Pozri si domace ulohy k tomu kurzu z MIT tu: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/

HF

Re:Jazyk pro úplného začátečníka
« Odpověď #59 kdy: 12. 07. 2013, 21:38:40 »
Zeptám se tedy trochu jinak.

Napište každý prosím 1 - 3 jazyky, které byste mi doporučili k naučení popř. stručně proč - já si to proberu  ;)

Stiahni si Python tu: http://www.python.org/getit/
Pusti si prvu prednasku z MIT tu: http://www.youtube.com/watch?v=k6U-i4gXkLM
Pozri si domace ulohy k tomu kurzu z MIT tu: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/

HF

Este som zabudol: ten MIT kurz sa da v pohode dat za mesiac ked robis kazdy den. Takze po mesiaci mozes prejst na nieco ine.
Na C/C++  ma Stanford celkom dobre veci, najprv tento http://see.stanford.edu/see/courseInfo.aspx?coll=11f4f422-5670-4b4c-889c-008262e09e4e a potom tento http://see.stanford.edu/see/courseinfo.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee.
Alebo mozes ist na Javu, atd.