Diskuze: Rady
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 38 zpráv z 38.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Přečetl jsem http://knihy.cpress.cz/…-c-2010.html?… a je celkem dobrá, od začátku rychle k pokročilému. Nicméně je to pro starší verzi 2010. Dnes je novější verze této knihy akorát zatím není přeložena. http://www.amazon.com/…p/0735668019
A bude to mít velký vliv 2010 a 2012? Přeci jen studio má z 85% stejné
funkce a jsou tam jen přidělané vychytávky a něco navíc. Já právě
používám Visual 2012
Také tuto knihu mám. A je jak říkáš vcelku dobrá. Teď když se na to kouknu zpětně, zaráží mě že autor knihy vlastně zaěžuje hned s WF.
Ono to není o Studiu ale o jazce. Myslím že v nové verzi se bude autor zaobírat novinkami jako nový způsob async programování apod
Hm, že bych si taky někdy nějakou knížku o C# nebo .NET někdy
přečetl?
Pokud se chceš naučit C#, tak se hlavně nauč OOP. Nejlépe i z jiných zdrojů. Bez znalosti principů OOP budeš v C# jen patlalem.
Jasně, právě proto se ptám na celou vazbu (knihu), kde je to pohromadě,
abych OOP pořádně pochopil. Zde nevím proč, pořádně to nepobírám, bude
chyba někde ve mě Tak
hledám jinde i a kompletní niha by byla asi dobrý přínos
Jinak radíte tedy Visual 2010, krok za krokem ?
Zasekl jsem se u OOP, to se mi stalo taky, ale jelikož dělám Javu, sáhl
jsem po Pecinovském a jeho knize Myslíme objektově v jazyku Java, v úvodu
jsem však zjistil, že učí OOP a ne Javu - tu pouze využívá k naučení
toho OOP, tak ho zkus, mezi C# a Javou zas tolik rozdílů není a to OPP se
naučíš - já už ho docela chápu jenom díky němu
Myslel jsem to jinak. Aby ses naučil nejprve OOP a teprve potom C#.
Skvělá je i kniha Bruce Eckel: Myslíme v jazyku Java. Naučíš se v ní i TDD.
Nekoukej na to, že ti tady nabízíme knihy o Javě. Jsou to knihy hlavně o OOP. Java je v nich podružná.
Java a C# jsou z pohledu OOP skoro stejné jazyky. Pro C# však není taková motivace učit kvalitní OOP, ale spíš schopnosti a detaily C#.
Nejsem si úplně jistý, že je dobrý nápad učit někoho nejdřív OOP a pak až nějaký jazyk. Nemůže si to vyzkoušet a opravdu pochopit a ta spousta teorie před tím, než něco opravdu naprogramuje člověka spíš znechutí.
OOP je samo o sobě zábavné. Když se však nejprve začneš učit syntaxi nějakého jazyka, je to pro někoho peklo.
Viděl jsem tu knížku a také se mi to nelíbilo.
Vím, jak bylo pro mne obtížné naučit se OOP. A to jenom proto, že jsem příliš dlouho používal imperativní styl. Pak to bylo jako přepnutí: Najednou jsem věděl, jak na to a jak jsou ty různé návody na OOP chybné ve své podstatě. A to jenom proto, že jsou ve svých myslích stále vězněni imperativním stylem.
Problém je v tom že ty porovnáváš vlastní zkušenost s něčím co si vydedukoval. Dvakrát ses programovat neučil.
IMHO je to správné tak, jak jsi se to naučil. Problém je jen v tom, že
jsi imperativně psal moc dlouho a nevěděl jsi, že je to jen mezikrok. Po
přečtení pecinovského víš, že třída je jako tvar a instance jako
kosočtverec a že uděláš stromeček, ale nenaprogramuješ sám nic
Kdybys tušil, kolikrát jsem musel zbořit základy toho, co jsem už znal... Zkusil jsi někdy Prolog nebo Lisp? A co XSLT? S imperativním stylem jsi v těchto jazycích zcela mimo a neuděláš v nich vůbec nic.
Jak vidíš, tak názor má každý jiný. Nejlépe to pro tebe vyjde tak, když zkusíš všechny možnosti.
Avšak vždy to bylo programování. Chápal jsi, jak to tam funguje, jen jsi se přizpůsoboval jinému jazyku. Vždy jsi měl k dispozici ty stejné zdroje, pouze jsi je jinak používal. Algoritmizace je vždy také stejná. V tom je ten rozdíl. Programovat se učíš jen jednou od začátku. Pak už je to jen určitý mezikrok při přechodu. Samozřejmě, že OOP je úplně jiný styl vymýšlení programu, ale jednoduše interpretativní programování je základ bez těch věcí okolo. Nevím, k čemu ti bude návrh tříd bez toho, aniž by jsi uměl jednoduchou algoritmizaci. Pokud samozřejmě nebudeš využívat pouze možností jazyka. Ale to už (alespoň pro mně) nejsi pravý programátor.
Právě proto se mi Pecinovský nelíbí, abys mohl použít OOP, musíš umět programovat. On to vysvětluje na nekonkrétních věcech, kde je neúplná implementace. Samozřejmě to jinak nejde, ale když na to jde člověk opačně a učí procedurální základ a pak přejde na OOP, je to plynulé.
Jenže v OOP je algoritmizace podružná. Nepotřebuješ podmínky ani cykly na to, abys popsal realitu. Při nepochopení podstaty OOP se často píší konstruktory tam, kde jsou zbytečné a naopak chybí tam, kde jsou potřebné. A to i tady na Devbooku.
Tak to ti nezávidím tvá omezení. Jako programátor máš algoritmy vymýšlet... Ne jen používat daný jazyk. Jsi poté příliš vázaný na daný jazyk a nedostaneš nikdy nic víc. To si mám stahovat knihovny třetích stran, vázat se na ně...? OOP je sice pěkné, nerad píši bez něj, ale nedržel bych se ho tak striktně. Původní myšlenka OOP byla pohlížet nejdříve na data a až poté na algoritmy. Tím se mělo přiblížit k realitě. Ne tím, že tě omezuje na "realitu vytvořenou programátory před námi". Nikam bychom se pak neposunuli. Navíc tak můžeš porušit architekturu... A zbytečné používání objektů navíc...
Nepochopil jsi mě. Nestahuji knihovny třetích stran. Jen výjimečně, pokud musím dodržen nějaký formát dat, např. Markdown nebo XML a usoudím, že je zbytečné vynalézat kolo. A můj odpor k uznávaným frameworkům je snad známý.
Nevím jak u tebe, ale u mě nestačí napsat do třídy název funkce, aby
něco dělala.
Musím ji obvykle naplnit nějakým algoritmem, aby se něco
dělo.
Je hezké že si načmáráš model reality, ale když ho nebudeš moct bez algoritmů uvést do praxe, tak ti bude k čemu? To už radši znát algoritmy a neznát OOP než obráceně.
Pro mě je důležitá algoritmizace a podružné je OOP.
OOP používám ke zpřehlednění programu, kód rozčleněný do funkcí a
tříd je mnohem přehlednější a příjemnější než neobjektový, ale
funkční program napíšeš i bez OOP.
Co uděláš se znalostí OOP, bez znalosti algoritmizace?
Přesně tak. I bez znalostí OOP dokázali programátoři vymyslet úžasné věci. Ale bez algoritmizace to asi moc nepůjde. Vždyť samotná algoritmizace je dost přibližitelná realitě. Pouze je moc rozkouskovaná. Algoritmem je i to, že jdu na záchod...
Ono od chvíle, co jsem se OOP naučil, bych už bez OOP nic většího (resp. ani menšího) programovat nechtěl, ale OOP není samospásné.
Dřív jsem se na OOP díval s podobným despektem. Také jsem používal statické třídy a statické metody. Zřejmě si tím musí projít každý programátor.
Nestavil bych se nad ostatní... Je to pouze styl. A nedá se s jistotou říci, co je lepší a co horší. Každý má svůj názor.
Neměl jsem v úmyslu se stavět nad ostatní. Luboš Běhounek Satik mě prostě
dráždí, když tvrdí, že používá OOP v C++
Ano, OOP v C++ má jinou definici než novodobé. Existují čistě OOP jazyky jak jsi někdy psal, ale v jiných jazycích se jednoduše musí dělat kompromisy
"Dřív jsem se na OOP díval s podobným despektem. Také jsem používal statické třídy a statické metody. Zřejmě si tím musí projít každý programátor."
Ego++?
Na OOP se nedívám s despektem, to jen ty ho považuješ za svatý grál
.
Statické třídy a metody používám tam, kde je to pohodlné, nejsem masochista, abych si referenci na třeba logovací třídu předával po celé aplikaci, ale jinak samozřejmě používám většinou nestatické třídy.
V C++ nic většího než maximálně pár funkcí neprogramuji, C# je pro mě pohodlnější.
A OOP používám hlavně v C#, čímž se už 5 let úspěšně živím (4 roky vývoj hry sponzorované z dotací EU), teď v jiné firmě rok weby v ASP.NET / desktop aplikace ve WinForms.
Ještě něco chceš k mému názoru na OOP vědět?
Čím se třeba živíš ty, když jsi tak sečtělý a víš všechno nejlépe?
Já mám tady tuhle - http://knihy.cpress.cz/…azyce-c.html
Zobrazeno 38 zpráv z 38.