Portál AbcLinuxu, 3. května 2025 05:17

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
17.11.2006 17:59 lefti | skóre: 18 | blog: OneAndOnlyTrueBlog
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud chces programovat end-user aplikace, tak sis vybral velice spatne.
freshmouse avatar 17.11.2006 18:04 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Nevím, co chci programovat.
msk avatar 20.11.2006 10:59 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Podla vyberu kernelove drivery. Dnes napisat cokolvek vacsie v neobjektovom jazyku je samovrazda.
freshmouse avatar 20.11.2006 16:18 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Tak 3x hurá! :-D
17.11.2006 18:31 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Odpovědět | Sbalit | Link | Blokovat | Admin
C není na výuku programování vůbec vhodný. On je s demokracií a s hlasem lidu trochu potíž v tom, že ti může radit i člověk, který tomu nerozumí, jenom někde slyšel, že unix je v C a C je pro hackery a je cool. A jeho rada má stejnou váhu jako rada člověka, který v tom pár let dělá (teď nemluvím o sobě :-)).

Než C, tak bych doporučil Pascal a možná i Javu. Proč se máš jako začátečník zajímat o to, jak v C fungují řetězce, proč se porovnávají řetězce pomocí strcmp() a né normálně (aha, tak Javu taky nebrat :-D), jaký je rozdíl mezi const char* a const char[], proč se starat o malloc a free? To ti všechno vlastní výuku zatemňuje ...

Výuka programování (alespoň podle mě) není o znalosti toho kterého jazyka, ale o výuce správného způsobu myšlení. Vzhledem k tomu, že momentálně cvičím programátorské začátečníky v C a další ve Visual Basicu .NET, dovolil bych si ti doporučit cokoliv z trojice Python, Ruby, anebo můj černý kůň Logo (po tom, co jsem recenzoval Imagine Logo, tak mi ten jazyk přijde pro začátečníky jako úplně perfektní, přestože tam jsou želvičky a barvičky a není tak super hackerský, jako třeba C).
When your hammer is C++, everything begins to look like a thumb.
freshmouse avatar 17.11.2006 18:55 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Na to se dá říci jediné: pozdě! :-) Ne, teď vážně...

S tím, že mi mohli radit i lidé, co o programování vědí ještě méně než moje babička, se musí počítat. Já nemůžu všem koukat přes rameno, jak moc jim to programování jde nebo nejde.

Je tu otázka, jestli začít u Pascalu a pak se přepytlíkovat na C (anebo jiným směrem: třeba Python atd.), nebo začít rovnou na tom těžším, tedy C.

"Výuka programování (alespoň podle mě) není o znalosti toho kterého jazyka, ale o výuce správného způsobu myšlení." -- s tím souhlasím a doufám, že mi toto céčko poskytne. Doufám, že mi C poskytne nadhled nad to všechno.

A za poslední: doufám, že se mi fakt, že jsem se kdysi učil céčko, nijak nepromítne do obličeje, takže v případě změny jazyka nebude problém... :-)
freshmouse avatar 17.11.2006 18:57 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
"Výuka programování (alespoň podle mě) není o znalosti toho kterého jazyka, ale o výuce správného způsobu myšlení." -- s tím souhlasím a doufám, že mi toto céčko poskytne. Doufám, že mi C poskytne nadhled nad to všechno.
Abych to ještě doplnil, hodně mě k C postrčil právě ten názor, že po C se naučím všechno. Řeklo mi to více lidí a mně nezbývá než doufat, že měli pravdu.
17.11.2006 19:05 sorrow_soul
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
A za poslední: doufám, že se mi fakt, že jsem se kdysi učil céčko, nijak nepromítne do obličeje, takže v případě změny jazyka nebude problém... :-)
Ne, do obličeje se ti C nepromítne. Zato se promítne na tvém programátorském stylu. Až tě potká nějaký skutečný objektový jazyk (a teď zrovna nemyslím Smalltalk ;-)) tak podle mého názoru spláčeš. Ale něčím se začínat musí. Moje volba by byl Python..
USE="brain google" || rftm -vv
freshmouse avatar 17.11.2006 19:07 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Přesně o tomhle jsem přemýšlel.

A došel jsem k názoru, že začít je lepší bez OOP.
msk avatar 20.11.2006 11:09 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
A došel jsem k názoru, že začít je lepší bez OOP.

Ja som bol pred par rokmi v podobnej situacii. Zo skusenosti s assemblerom na Z80 a naslednej dlhej odmlke, ked som sa na pc len hral som sa rozhodol pre C s tym, ze casom prejdem na C++. Dlho mi trvalo, kym som pochopil, o com oop je a kym som si odvykol od niektorych C-ckarskych navykov, ktore potom v C++ narobia viac skody ako uzitku. Zacinat dnes znovu so znalostami co mam, vyberiem si c++ alebo python.
Heron avatar 17.11.2006 19:10 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy

aha, tak Javu taky nebrat :-D

Já čekal, že s tím přijdeš ;-).

Výuka programování (alespoň podle mě) není o znalosti toho kterého jazyka, ale o výuce správného způsobu myšlení. Vzhledem k tomu, že momentálně cvičím programátorské začátečníky v C a další ve Visual Basicu .NET, dovolil bych si ti doporučit cokoliv z trojice Python, Ruby, anebo můj černý kůň Logo (po tom, co jsem recenzoval Imagine Logo, tak mi ten jazyk přijde pro začátečníky jako úplně perfektní, přestože tam jsou želvičky a barvičky a není tak super hackerský, jako třeba C).

Nemůžu soudit, co je vhodnější pro výuku, protože kromě Javy jsem jiný programovací jazyk neučil. Ale pro pochopení, jak to vlastně funguje "vevnitř" bych doporučil právě C (pokud ne rovnou assebler). Podle mě je prostě mimořádně důležité, aby člověk věděl, co se děje "pod pokličkou" a k tomu má C nejblíž. Pak může klidně programovat v něčem vyšším daleko efektivněji, když ví, co se vlastně nakonec musí všechno provést. Už to tu někdo kdysi psal, že i v C# jde poznat, jestli daný programátor někdy zakusil C. Je samozřejmně otázka, jestli je C vhodné na učení algoritmů apod. Na to je samozřejmně vhodnější jazyk, kde se člověk nemusí zabývat např takovými věcmi jako správa paměti a může se věnovat přímo algoritmu.

Na LOGO mám poněkud nostalgické vzpomínky, když jsem coby 8leté dítko chodil na kurs do domu dětí a mládeže na špičkovou technologii PMD80. Ach, krásná to revoluční doba ;-).

17.11.2006 20:38 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy

aha, tak Javu taky nebrat :-D

Já čekal, že s tím přijdeš ;-).

Nezlob se, ale pokaždé, když napíšu str.equals(str2), mám pocit, že jsem v C. Navíc díky podobným featurkám není možné používat string (a ani cokoliv jiného) v konstrukci switch. Bohužel znám i jazyky, kde to jaksi není žádný problém, proto u Javy vždycky brblu, protože to beru jako nesmyslné omezení jazyka (je jich i víc, například pojmenované parametry, omezení jedna třída jeden soubor, ...). Proto jsem rád za verzi 1.5, která mi ovšem v podstatě dává za pravdu. Škoda, že není možné si vybrat mezi silnějším a slabším jazykem.
Ale pro pochopení, jak to vlastně funguje "vevnitř" bych doporučil právě C (pokud ne rovnou assebler). Podle mě je prostě mimořádně důležité, aby člověk věděl, co se děje "pod pokličkou" a k tomu má C nejblíž.
Skutečně nevím, k čemu ti ve výuce programování bude znalost rozdílu mezi char* a char[], nebo se učit používat reentrantní funkce ze standardní knihovny. Navíc C nemá výjimky a správné ošetření chyb je v něm složité i pro profíky a co teprve pro začátečníky. Výuka v C (ale i v jiných jazycích) většinou znamená spoustu starostí s řetězci, formátovacími řetězci, překladem, ukazateli, malloc a free a samotná podstata - výuka programování se v tom ztratí. To stejné ve Visual Basic .NET (v Javě by to bylo vesměs podobné), přes všechny deklarace typů, inicializace, metody a rozvláčnou syntaxi se mi ztrácí ta hlavní myšlenka. V tomto souhlasím s Yettim, který zastával názor, že by první jazyk mohl být také ten, který potom člověk může reálně používat, pokud se další už učit nebude. C toto sice splňuje, ale pro tohoto člověka je takový jazyk defakto nepoužitelný.
When your hammer is C++, everything begins to look like a thumb.
Heron avatar 17.11.2006 21:40 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy

Výuka programování je dost široký pojem. Zahrnuje to vše od pouhé syntax nějakého jazyka, přes algoritmy po složitou optimalizaci a přenositelnost. Zastávám názor, že C je jazyk vhodný pro výuku. Ano je možná složitý, resp. je nutné v něm vše ošetřit "ručně" (většinou znamená spoustu starostí s řetězci, formátovacími řetězci, překladem, ukazateli, malloc a free), ale přesně tohle jsem měl na mysli tím "ví, co je pod pokličkou". Myslím si, že pokud je člověk nucen se naučit sám pracovat s pamětí, pointerovou aritmetikou atd. tak nakonec bude schopen daleko lépe programovat ve kterémkoliv jiném jazyku, i když se o tito věci nakonec nebude muset starat.

18.11.2006 01:04 Morrew | blog: mujBlok
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Hmmm... tak začít v C je rozumná volba. Určitě pro člověka, který to s informatikou myslí vážně. Pascal jako takový je v dnešní době přežitek a s potěšením můžu říct, že konečně i střední školy přechází na jazyky jiné. Jistě, na jazyku pascalovského typu se dají bez problému učit a vysvětlovat principy, ale proč? Když už, tak alespoň na nečem, co je trochu perspektivní. O parních mlátičkách si myslím své, dělá to z lidí idioty. (Tohle neberte doslova - hold je to rychlejší)
18.11.2006 01:35 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
preco? errory z borland c++ 3.1 dokazu byt naozaj tuhe problemy. tak si ja pamatam (je ale pravda, ze som stvaral vselico a nemuseli to byt velmi standardne situacie - ked sa do toho zamiesa dos, inline assembler a tak :))

na strednej som mal 1 rok C, ucitel dokazal hovno naucit (no, mna nemal co, ale ostatnych) a pochyboval som o jeho schopnostiach... netvrdim, ze je to lahke, ja by som nevedel ucit, ale ktovieako nevysvetlil ani iteratory, vobec nevysvetlil syntax. bez toho sa neda robit nic... u ludi, ktorych to nezaujimalo sa da pochopit, ze netusili o com to je, ale vysledky neboli slavne ani u inych. nedavno som jednemu z nich hovoril ako sa da nieco naprogramovat, pise teraz nejaky program pre jednocip...
18.11.2006 11:00 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Ale proč C? Kde jsou ty výhody takového jazyka pro výuku? Nezlob se, ale já vidím pouze jeho nevýhody, protože C je složitý jako sviňa a navíc je to takový makroassembler :-D.

Jaký je (z hlediska uvažování programátora) rozdíl mezi efektivní implementací iteračního algoritmu pro výpočet sin(x) v C, nebo v Pythonu? Jaký je rozdíl mezi efektivní a neefektivní implementací Fibonnaciho posloupnosti v C, nebo v Ruby? Kde je ta podstatná výhoda C jako výukového jazyka (tedy počet zabraných bytů v paměti ani počet instrukcí v tomto případě skutečně není argument), pro kterou ho všichni doporučujete?

Pro mě znamená výuka programování toto:
  • Používání základních konstrukcí jako podmínky, cykly, ...
  • Algoritmizace - aneb jak problém co nejlépe naprogramovat
  • Modularizace - jak se nezbláznit při úpravách a jak oddělovat logické celky
  • Efektivní implementace (ovšem z hlediska výpočetní složitosti algoritmu, ne o šetření s byty v paměti, nebo instrukcemi v procesoru)
Nevýhoda C je, že pracuje místy na příliš nízké úrovni a začínající programátor se musí potýkat s (pro něj) nepodstatným balastem jako řetězce, správa paměti, kompilace, ... . To se týká i enterprise jazyků s bohatou syntaxí jako je Java, C#, nebo Visual Basic, kde se tito lidé ztrácejí v deklaracích a podobných věcech.
O parních mlátičkách si myslím své, dělá to z lidí idioty.
Dr. Peringera náhodou neznáš, co ;-)? Ale v tomto případě posouváš diskusi úplně jinam, než je. O RAD a IDE prostředích se tu nebavíme.
When your hammer is C++, everything begins to look like a thumb.
18.11.2006 11:43 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
C je složitý jako sviňa
a vzapati ho nazves makroassemblerom :) ty vtipkar, assembler je to najprimitivnejsie co moze byt...
Kde je ta podstatná výhoda C jako výukového jazyka
mat hlboke znalosti z C nie je programatorovi na skodu. je vela schopnych programatorov a stavil by som sa, ze vacsina (ak nie vsetci) maju bohate znalosti C a bol to jeden z ich prvych jazykov (samozrejme, ze tomu pomohla dostupnost a pod.). mas nejake informacie o velkom pocte ludi, ktori sa ucili programovat (dajme tomu) v pythone a potom sa ucili C (vo velkom rozsahu)?
začínající programátor se musí potýkat s (pro něj) nepodstatným balastem jako řetězce, správa paměti, kompilace, ... .
sorry, ale ja podla mna to prehanas. praca s pamatou (vratane retazcov) ma velmi jednoduche pravidla, debugger je fajn vec a ja v tom vazne nevidim problem. aspon ho to nauci poriadku :) ale tiez mozno trosku inak vnimam slovo "zacinajici" - a to ako cloveka, ktory uz chape o com to je, len rozvija svoje znalosti implementaciou (a vtedy mu C da vela).
18.11.2006 13:22 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
a vzapati ho nazves makroassemblerom :) ty vtipkar, assembler je to najprimitivnejsie co moze byt...
Assembler je jednoduchý? Syntaxe možná, ale programovat v něm je teda pěkně složité!
mas nejake informacie o velkom pocte ludi, ktori sa ucili programovat (dajme tomu) v pythone a potom sa ucili C (vo velkom rozsahu)?
Jenže tohle nemůžeš srovnávat. C je mainstreamový jazyk starý asi 30 let, kdežto Python je daleko mladší (a první verze příliš použitelné nebyly). Proto nemůžeš mít hromadu lidí, co se učili v Pythonu, protože ta prostě ani neměla kdy vzniknout :-)
ale tiez mozno trosku inak vnimam slovo "zacinajici" - a to ako cloveka, ktory uz chape o com to je, len rozvija svoje znalosti implementaciou (a vtedy mu C da vela).
Jenže člověka, co ví o co jde, už těžko nazývat začátečníkem. Já se naopak setkávám s lidmi, kteří většinou vůbec neví o co jde ;-) Proto jsem taky sepsal 4 body, které považuji za výuku začátečníků.

A také jsi přešel moji otázku : Jaký je (z hlediska uvažování programátora) rozdíl mezi efektivní implementací dejme tomu iteračního algoritmu pro výpočet sin(x) v C, nebo v Pythonu?

V obou případech je základem to, že si člověk musí uvědomit, že implementace podle vzorce je neefektivní a daleko rozumnější je si hodnoty mocnin a faktoriálů z jednotlivých iterací pamatovat a snížit tak složitost algoritmu. Což je to podstatné a to, co funguje v úplně všech jazycích stejně. A navíc tě k tomu žádný jazyk nevede ;-) Proto beru jako velké plus, když takový jazyk nezdržuje zbytečným balastem, ale umožňuje se soustředit právě na podstatu výuky.

Ad hluboké znalosti C: nevím, možná si to jenom neuvědomuji, ale podle mě jsou hluboké znalosti z C dobré jenom pro to C a to proto, že každý jazyk vyžaduje trochu jiný přístup. Navíc je C dost odlišné od zbývajících jazyků (v Javascriptu jsou closures, Python má silné builtin typy, v Javě prakticky nejdou dělat statické inicializace a vše je na haldě, ...), které používám a C přístup je v nich spíše na škodu.
When your hammer is C++, everything begins to look like a thumb.
18.11.2006 13:59 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Assembler je jednoduchý? Syntaxe možná, ale programovat v něm je teda pěkně složité!
ano, je velmi primitivny. ako pises, je to len C rozlozene na instrukcie. len je tu vacsia sanca spravit chybu, tak ako je vacsia sanca spravit chybu v C oproti high-level jazykom...
Jenže člověka, co ví o co jde, už těžko nazývat začátečníkem.
takemu staci aj robot karel
V obou případech je základem to, že si člověk musí uvědomit, že implementace podle vzorce je neefektivní a daleko rozumnější je si hodnoty mocnin a faktoriálů z jednotlivých iterací pamatovat a snížit tak složitost algoritmu.
dolezite je to najprv napisat tak aby to fungovalo - co najjednoduchsie a nejprehladnejsie. az ked sa ukaze, ze je to velmi neefektivne, vtedy sa tym treba zaoberat.
C přístup je v nich spíše na škodu.
nehovorim o pristupe, ale o tom co ta jazyk nauci. ja za seba mozem povedat, ze C ma na dalsie jazyky pripravilo dobre (ale mna to bavi, takze nejaky python by ma nezlakal ani dnes).
18.11.2006 14:13 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
dolezite je to najprv napisat tak aby to fungovalo - co najjednoduchsie a nejprehladnejsie. az ked sa ukaze, ze je to velmi neefektivne, vtedy sa tym treba zaoberat.
Bláznům se nemá odporovat :-D
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
18.11.2006 14:21 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
whatever. FYI hovori sa tomu premature optimizations a byva to oznacovane za root of all evil...
18.11.2006 14:30 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
FYI reagoval jsi tak na alg. vyčíslení sin(x) :-D
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
18.11.2006 14:41 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
FYI to bol len priklad.
18.11.2006 17:17 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
Odpovědět | Sbalit | Link | Blokovat | Admin
Co pořád řešíš, programování není o jazyku. To nejdůležitější mají všechny jazyky společné.
Later --- Lukáš Zapletal
freshmouse avatar 18.11.2006 17:26 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Třetí písmeno abecedy: moje první glosy
To zní dost záhadně, jako by to psal Otec Fura. :-D :-D

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.