Učebnice Moderní programování z webu moderniprogramovani.cz? Měl jsem je v ruce, prolistoval, a připadá mi to spíš jako seriál pro vytahání co největší sumy peněz z kapes rodičů. Ale třeba se mýlím, autor učil na Vysoké škole manažerské informatiky a ekonomiky. Není to zrovna ta škola jejíž skripta tvrdí že procesor je "hybná síla počítače"? Je to jen můj dojem, ale já bych se z nich programovat asi nenaučil.
(Víte proč na matfyzu nemají jarní prázdniny? Aby v tom čase matfyzáci nestihli vystudovat ekonomku!)Autorovy kurzy, konající se v budově společnosti Microsoft, jsou doporučené společností Microsoft. Také banda specializující se na vytahání co největšího množství peněz z kapes lidí... Před pár lety se spřáhli se Software602 aby mohli lépe dojit český stát, třičtvrtě miliardy ročně z našeho rozpočtu je jim málo.
Asi bych spíš dal přednost Programování pro děti na webu
http://programovaniprodeti.cz/start které určitě není jen pro děti

A nehrozí tam "vendor lock", zato se snadno naučíš základy strukturovaného programování bez toho, abys musel instalovat několikagigabajtové vývojové prostředí.
A teď k věci. Jde o to, jestli se chceš učit C#, nebo se chceš učit programovat. To jsou totiž dvě úplně rozdílné věci. Jestli chceš za nějakých deset, patnáct let mistr v programování, nastuduj si tohle:
http://knihy.cpress.cz/umeni-programovani.html Není to sice zrovna učebnice, ale nic lepšího v téhle části galaxie neexistuje. Troufám si dokonce tvrdit že až tu sérii Knuth koncem příštího století dopíše, bude to největší kompendium těch nejlepších programátorských technik a algoritmů minimálně na další dva tisíce let.
Na programování ti skutečně stačí jen středoškolská matematika, ale musíš jí opravdu umět. Jenže nestačí mít našprtané poučky, ale chápat je! Základ matematiky i programování je
logika, a kdo se naučí používat víc než deset procent šedé kůry mozkové, ten si nepotřebuje pamatovat vzorečky. Když pochopí základní principy, tak si je prostě na počkání odvodí. Já nikdy nepřestanu být vděčný učiteli, který nám ukázal jak z obyčejného pravoúhlého trojúhelníku odvodit libovolný vztah pro veškeré výpočty zrychlení a zpomalení (a potom ještě spoustu dalších složitějších věcí), na rozdíl od fyzikářky, která chtěla abysme se všechno biflovali nazpaměť.
V těchhle věcech strašně pomáhá soustava SI, protože je naprosto geniálně navržená - už z pouhých definic jednotek se dá většina vzorců vyjádřit. Takže si k tomu seznamu přidej i fyziku, také proto, že až budeš programovat nějakou hru, budeš tam muset vytvořit určitý fyzikální model, i u blbé dvourozměrné hopsačky je totiž potřeba spočítat jak vysoko panáček může vyskočit a jak daleko dopadne... Samozřejmě byla spousta her kde se dalo spadnout z jakékoliv výšky bez úrazu, i dnes takové jsou, jenže to je na úrovni arkád které jsme hráli před třiceti lety v maringotkách na pouti. Přitom už v té době existovaly hry simulující reálný svět mnohem lépe než kosmické souboje ve Star Wars, vzbuzující v pilotech život ohrožující záchvaty smíchu.
Ten spojový seznam jsi opravdu nepochopil, víš vůbec co je struktura? Ve smyslu proměnné, obsahující několik různých položek současně? Kromě dat ta struktura obsahuje také odkaz na další strukturu, které je na ní připřažená jako vagon ve vlaku. Takže si představ jak průvodčí nastoupí do vlaku prvními dveřmi, a prochází vagon po vagonu, dokud tam nějaký je. A aby za posledním vagonem neotloukal hlavou pražce, má poslední dveře zamčené, což se v té struktuře udělá tak, že odkazuje nikam, přesněji na adresu nula (NULL, NIL, záleží jak se to v tom kterém jazyku jmenuje). Jediné co potřebuješ znát je odkaz na první položku, všechno ostatní se během běhu programu vytváří dynamicky.
Tedy, jaké typy dat jste se už naučili používat? Jen pár základních (integer, float), nebo trochu složitější jako jsou pole?
A pak jsou ještě jiné struktury, ty programové. Dokonce se podle nich jmenuje strukturované programování. Těch je jen pár, složený příkaz a podprogram s lokálními proměnnými, větvení úplné a neúplné, cyklus počítaný nebo podmíněný, s podmínkou na začátku, na konci nebo uvnitř. To je vlastně všechno.
Objektové programování je jen další sada technik na tímhle, usnadňující zvládnutí větších a větších programů. Je to příliš široký pojem, a jeho možnosti různé jazyky poskytují v menším či větším množství, nebo se je aspoň snaží nějakým způsobem napodobit. Viz objektové programování v C++, které zase tak moc objektové není, na rozdíl třeba od Smalltalku, kde je objekt úplně všechno.
Podobně jako v LISPu, kde je zase všechno seznam

A jak píše tobruk, což je sice prcek co nikdy nic nenaprogramoval, ale má pravdu v tom že C# je shit do Micro$oftu. Jediné co na něm funguje dobře je optimalizace za běhu, zbytek nestojí za moc. Říká že mu také C/4, protože je to půlka Javy, a Java je zase půlka Céčka

Koukni se po učebnici
Algoritmizace od Jany Pšenčíkové, ta se hodí pro jakýkoliv jazyk, vyjde tě podstatně levněji než ten seriál, a hned na začátku tě naučí ty nejběžnější algoritmy a techniky, bez kterých neuděláš vůbec nic. Navíc docela příjemným stylem, porovnával jsem řadu knih a skript od šedesátých let do současnosti (mám jich docela slušnou sbírku), a připadá mi že ženské umějí vysvětlovat lépe než chlapi.
Když už v tom knihkupectví budeš, v těch lépe zásobených bys měl najít učebnice nebo knihy o C# minimálně tři nebo čtyři, tak si je prohlédni a zkus odhadnout sám, která by ti mohla nejvíc vyhovovat. Nemusí to být nutně ta nejtlustší, spíš hledej něco co budeš moci sám pochopit, bez vysvětlování od někoho znalejšího.