Coby začínající programátor sem dodávám svůj pohled. Tento článek není pro začínající programátory. Pro úplné začátky jsou zde určeny knížky či články o základech jazyka. Tento článek je však dobrý pro to, že člověk má kde pochytit systémové třídy, metody, postupy atd. Já se učím tak, že se naučím základy syntaxe a potom projíždím zdrojové kódy a hledám metody a postupy, které zrovna potřebuji.Co se týká mých vizí pro platformu .NET a jazyk C#, vypadá to na slepou uličku, pokud se nerozšíří podpora na Linuxech a nebude vyvinut vlastní spustitelný soubor (jako u Javy .jar). Učit se pouze C# je bezpředmětné a neperspektivní. Ještě jedna otázka. Neznáte někdo grafické vývojové prostředí pro Javu, podobné Visual Studio, aby bylo JRE k instalaci rovnou s ním a nemusel bych někde zvlášť zadávat do proměnných prostředí zadávat CLASSPATH?
Díky za nový serial začínám s programováním a tak se hodí každý serial líbí se mě že nejde jen o nějaké ahoj světe jako všude ale že tu je kod kterej už něco málo umí doufam že příště bude něco složitějšího :)
C#? Co to je? Dá se to jíst?
Když tak čtu ty příspěvky, tak bych řekl, že s programováním v C# se páni redaktoři trochu netrefili. Jednak je z kódu vidět, že to nikdo z nich neumí a druhak jak už jsem tu jednou poznamenal a můj příspěvek byl označen za OT, je to čistě PR článek. A za tím si stojím.
Myslím, že dobrý příklad by byla RSS čtečka, třeba s použitím LINQ to XML. Na téma LINQ toho zatím v češtině moc není.
no tak kladně hodnotím snahu přidávat další články o programování, ncméně tohle už je trochu moc. Myslíte si, že si můžete řikat programátoři, když si naklikáte menu a jeden richtextbox? je to o programování? odpověď zní ne...vbrat položku z menu a přetáhnout jí na form umí každý.jinak proč se mě "program" (říkejte tomu tak) ptá, zda-li chci uložit prázdný text nebo proč se mě ptá, zda-li chci uložit projekt, když už jsem ho uložil? a naopak proč se mě neptá na uložení když otevírám jiný texták?takže méně keců a víc učení pane programátore
Říkal jsem si, že konečně pochopím jak programovat, ale bohužel....komponenta, instance, třída, konstruktor, a pak nějaký kusy kódu, který dokážu zkopírovat, použít, částečně interpretovat. Programátora (ani programátora začátečníka) to ze mě neudělá. Nevím, jak můžete předpokládat znalost všech pojmů a vztahů mezi nimi. Kdo je zná, zřejmě nebude zřejmě hledat takový tutoriál. Co alespoň nějaký dodatečný odkazy, aby se člověk dostal více do obrazu?btw. "Hello World" koncept mi přijde jako osvědčená metoda. Vaše kódy sice můžou být praktické a použitelné, ale kdo by si psal vlastní notepad :)
>> kdo by si psal vlastní notepadmám dojem, že se o to pokouší každý druhý, kdo zvládnul hello world .
Právě takovéhle odfláknuté články pak ještě utvrzují odpůrce Microsoftu v názoru, že .NET je pro bastliče. Není, ale musí se to umět. Autoři tohoto článku to neumí.1. Neodsazujete bloky kódu, vždyť to za vás dělá i to Visual Studio, proč to není tady v článku?2. Cpát do názvů metod či proměnných diakritiku, to je prasárna na druhou. 3. Používejte using nebo volejte na streamech Dispose, using pro začátečníky nebude matoucí ani složitý, když jim vysvětlíte, proč se má používat.4. V neposlední řadě existují metody System.IO.File.ReadAllText a System.IO.File.WriteAllText, které umí celý soubor načíst do proměnné, a pak ho zase celý do proměnné uložit.
Ad 3.To je pouze váš staromilský názor. Diakritika ve zdrojovém kódu zvyšuje čitelnost a srozumitelnost toho kódu. Při programování na .NET platformě pomocí MS nástrojů s diakritikou problém není, takže proč ji nepoužívat.Pokud je vhodné psát kód česky - a výuka programování je jedna z mála oblastí, kde výhody kódu v mateřském jazyce jednoznačně převažují - a pokud to technologie pohodlně umožňuje, jako v tomto případě - tak se nemá smysl diakritice bránit.Nicméně je potřeba studentům silně zdůraznit, že tohle není obecně platná záležitost a že na jiných platformách je nutno psát cesky. A třeba to spojit s ukázkou refaktorizace kódu do ascii nebo rovnou do angličtiny - aby se rovnou naučili, že v praxi je stejně nejlepší psát kód anglicky
Ad 2. pochopitelně
To, že nějakou funkci využít lze, ještě nutně neznamená, že by se používat měla. Začátečníci v pohodě unesou, když se metoda pojmenuje Uloz místo Ulož. Rozhodně netvrdím, že v článku pro začátečníky by se měly identifikátory a komentáře psát anglicky, ba právě naopak - česky, ale bez diakritiky. Ve většině případů se používají názvy anglické, na českých projektech se často používají i názvy české, ale bez diakritiky. Učit začátečníky pojmenovávat proměnné s diakritikou, které se nikde nepoužívají, je zhovadilost. Špatné návyky v oblasti kultury kódu se v budoucnu odbourávají dost špatně, často hůř, než když někdo nezavírá soubory, protože jednou ho to vytrestá samo.
Začátečníci unesou. Jistěže unesou. Ale s diakritikou se jim to prostě nese lépe. Zejména, když je struktura bohatší a začátečník se začíná v programu ztrácet.Že se diakritika v kódu v praxi nepoužívá, je sice pravda, ale to nevidím jako problém. Vždyť dříve se naprosto běžně učil Pascal, jehož využití v praxi bylo velmi malé - ale šlo o tom, že se v tom dobře učilo a začátečníci se v tom lépe vyznali, než když kdyby s nima někdo začínal v C.Špatné návyky se odstraňují špatně, to je pravda. Ale přejít ze stavu kdy píši s diakritikou do stavu psaní bez diakritiky není až tak velký problém. Se skutečnými špatnými návyky (kašlu na výjimky, neošetřuji vstupy, nezavírám soubory) se to opravdu nedá srovnávat. Přirovnal bych to k tomu, kdy prostě nekoho naučíte plavat s nafukovacími křidélky a pak mu je vezmete. To se prostě zvládne a za ulehčení těch těžkých začátků to rozhodně stojí.
Sorry, ale programator bez znalosti anglictiny sa dnes jednoducho neuplatni (a ked, tak len v podradnych firmach alebo profesiach) Cim skor si zacne zvykat, tym lepsie. Maximalne co bych lokalizoval v tutorialoch su komentare. Kazdemu nadejnemu otrokovi, co raz bude otrocit za jedlo, saty a vzduch to musi stacit :)... a s ostatnym suhlasim.
To je ale jiná debata, jak rychle přejít na psaní kódu v angličtině. A s tím, jestli když se kód píše česky, tak jestli ho psát s diakritikou, s tím nesouvisí.Že je pro programátora angličtina nezbytnost je jasné. Ovšem pokud někdo bezvadně anglicky neumí - tak je mnohem lepší aby se učil programovat česky - bude se to totiž učit snáze.Inu, když programátor debuguje nějaký databázový problém, tak se taky snaží debugovat zvlášť SQL a zvlášť jakyk aplikace nad tím a ne že dělá obé zaráz
Stále existují lidé, kteří nejsou schopni napsat ani email s diakritikou ;) KDYSI dávno to byl problém (tak 15 roků dozadu), a oni to mají stále v hlavě. To ale neznamená, že diakritika je špatně, na lokální projekty právě naopak.Nicméně nepoužívání diakritiky při programování má jeden dobrý důvod - řada teamů je mezinárodní, člověk nikdy neví, kdo se do kódu bude koukat, či jej po 5 letech debugovat, a nemusí být zrovna z ČR a znát či mít českou klávesnici.
Ceska klavesnica moze byt problematicka aj pre ceskeho programatora, obzvlast v jazyku plnom ampersandov, rur a bodkociarok. Ak teda nieje navyknuty zrovna na AltGr kombinacie.))Osobne by ma vsak zaujimalo, ktore ceske znaky kompilator este interpretuje ako sucast nazvu premennej. V hlbokej minulosti to byvali len A-Z,a-z,0-9 a podtrzitko...
... My se ve škole učíme v Pascalu (Delphi) a začátek bych si teda představoval trošku jinak...
Myslíte vysvětlení proměnných, direktiv, podmínek, cyklů a podobně? Takových článků je na internetu až dost. Ovšem je skok mezi tím umět základy a vyznat se ve vývojovém prostředí a mezi tím umět programovat a programovat. A učit se dnes v Deplhi je řekl bych dosti krátkozraké. Ne že bych v nich sám nedělal, ale dnes příjdete a je to buď Visual Studio nebo něco podobného. Ostatně škola vás programovat nikdy nenaučí, na to buď máte hlavu nebo se to prostě naučíte po nocích sám. Ve škole Vás většinou naučí leda (ostatně jako asi zde) udělat si kalkulačku, poznámkový blok a když máte hodně štěstí tak malování, nic víc. Ty pravé aplikace prostě přijdou až z praxe, ale někde základy nabrat musíte. A hlavně prosím kohokoliv, kdo si podle tohoto seriálu nadatlí nějaký textový editor nebo tu kalkulačku, nedávejte ji na Slunečnici a podobně pokud neumí něco opravdu závratného.
Představte si člověka, který, který o programování neví téměř nic, najednou tady uvidí tenhle článek, stáhne si ten ,,poznámkový'' blok, trošku ho pomocí náhod a internetu upraví a myslí si kdoví jakej už neni programátor... Ale určitě mi dáte za pravdu, že o tomhle programování neni. Bohužel jsem si nemohli vybírat, takže Pascal nebo nic... Počítače mě celkem baví, tak sem to chtěl zkusit,ale programátor fakt nebudu Pokud umíte alespoň jeden jazyk pořádně, neni až zas takový problém se naučit jiný, navíc zrovna znalost Pascalu (nebo Javy) je požadována na některých VŠ
Kterých VŠ, u bohů? Všechny vzorové testy které jsem viděl obsahovaly maximálně test pochopení algoritmu, znalost nějakého jazyka byla jen bonusem k dobru. A zrovna Pascal... Ne, tomu opravdu nevěřím.
Dřív se fakt učila algoritmizace na pascalu, ale že by vyžadovali jeho znalost nevím, třeba u nás se člověk buď přihlásil mezi začátečníky nebo pokud něco uměl do pokročilých.V dnešní době se od toho ale afaik spíš odpouští a učí se na javě.
Myslim že v Plzni, ale nejsem si jistej, ale ve škole nám vysí plakáty, takže je to opravdu pravda, je tam Java, Pascal a ještě něco.
podsuvat takyto clanok uplnemu zaciatocnikovi bez akehokolvek backgroundu je uplny nezmysel
Máš-li dobrý vkus, uč se C++. Ten, kdo má vkus slabší, tomu Céčko stačí. ........ co na to říct
u C/C++ mi většinu času zabralo čekání než doběhně překlad a řešení chyb linkeru... Tenhle jazyk jsem si tedy moc neoblíbil
spravny programator kod napise a pak kompiluje; ale ne po sebemensi zmene v kodu....
dobry napad tento serial, uz se tesim na dalsi dily, zvlaste na programovani doplnku
Kdyz to tak ctu (diskusi) tak se tady projevuji opravdu sama programatorska esa
Pojemnovat funkci Ulož() s diakritikou, to je fakt maso. Než takové hloupé návyky to prosím raději nikoho neučte.
v druhé lekci se naučíme vložit do zdrojového kódu animovaný smajlík XD
Za to "ulož" bych vas nejradsi nakopal do prirozeni. A to bez pardonu!Neni divu ze je v dnesni dobe je tolik programatoru - prasat, kdyz ti co to uci delaji takovehle zvrhlosti a ukazuji to celemu svetu. Vas bych vazeny pane jako kolegu v praci opravdu nechtel.
Misto flameru predemnou mam konstruktivni poznamku misto:StreamReader sr = new StreamReader(opf.FileName);richTextBox1.Text = sr.ReadToEnd();sr.Close();Je rovnou ucte spravne:using (var sr = new StreamReader(opf.FileName)){ richTextBox1.Text = sr.ReadToEnd();}Obdobne pri zapisu.
pro ty co neumějí napsat kód, který nezpůsobí vyjímku
To si M$ vymyslel další novinku - „vyjímka“? Ono to automaticky vybírá jímky ? Fůůůůůůůůůůj... Mám teda štěstí, že Delphi má výjimky .(pro šťouraly: vím, že je to hodně častá chyba, ale to rýpnutí jsem si nemohl nechat ujít )
U IO operací těžko zaručíte, že nedojde k problému. Takže odchytávání výjimek je naprosto na místě.
No zrovna začátečníky učit používat takhle var je trestuhodné.
A vis ty vlastne co to "var" znamena? Asi ne tak vysvetleni pro tebe, ve vysledku to kompilator prelozi shodne s:using (StreamReader sr = new StreamReader(opf.FileName)){richTextBox1.Text = sr.ReadToEnd();}Jediny rozdil je kratsi zapis a rychleji citelny.
Myslím, že vím a taky vím jaká se kolem toho rozpoutala horlivá diskuze jestli by tím měl MS znečišťovat jazyk, bohužel var se muselo použít hlavně kvůli LINQ a to by taky mělo být téměř jediné správné využití. Myslím, že je hovadina používat var když znám datový typ vráceného objektu a už vůbec je blbost obhajovat to kratším zápisem, to by se pak třeba nemusel zdroják odsazovat, všechno by se mohlo narvat do jednoho řádku, metody by se mohly pojmenovávat dvěma písmeny atd. , prostě čitelnost kódu je velmi důležitá.A jakmile začátečníci zjistí že nemusí uvádět přesný datový typ, že stačí použít var tak to budou používat všude kde to jde, budou čučet na hlášky kompilátoru proč jim to nefunguje a nikdo se v tom nevyzná. Naštěstí v .NETu není var takové jako v některých jiných jazycích, hlídá to kompilátor (resp. dosazuje přesný datový typ), nicméně můžou nastat situace kdy to může způsobit problémy.Prostě by se var mělo používat na to na co to bylo vytvořeno a ne jinak.
Aha tak to jsem te spatne odhadl, ty si znalec, ale zpatecnik No ani ja nejsem pro to pouzivat uplne vsude, ale v tomto pripade je to zrovna bez diskuze jasne plus, prave diky tomu ze jde o citelnost kodu a DRY (Don't repeat yourself) princip.Jinak dobra pravidla kdy var ano/ne zde: http://devlicio.us/blogs/derik_whittaker/archive/2008/06/25/the-var-war-is-brewing.aspx
No nevím, jestli jsem zpátečník, já to beru striktně podobně jako členské proměnné - nikdy je nedávám jako public (i když v tom nic nebrání a usnadnilo by mě to práci i čitelnost) a pokud je potřeba k nim přistupovat z venčí tak vytvořím property a tohle vždy dodržuji. A tak stejně striktně se stavím i k var - prostě jej používám jen tam kde nemám jinou možnost což je právě LINQ.Jen tak mimochodem, zpátečnický nezpátečnický zrovna nedávno jsem viděl porovnání výkonu různých operací nad kolekcemi, které nově přinesl LINQ implementované pomocí extension methods + Lambda Expressions s tím jak se to dělalo doposud a nedopadlo to pro LINQ moc dobře, takže novinky je potřeba brát s rezervou.Jinak stejně moc nechápu jak mě var zvýší čitelnost kódu, vždyť při použití var se naopak v kódu ZTRATÍ infomace o tom jakého typu je objekt a zejména pokud bych si zdroják vytiskl tak budu pracně hledat co se tam přiřadilo.No nic ukončeme to, já se hlavně stavím proti tomu aby se použití var ukazovalo začátečníkům jinde než při použití s LINQ.
Ja bych třeba ocenil kdyby paralerně s kodem C# byl uváděn a komentován i kod JAVA, pro srovnání.
Co uživatel MS to programátor A samí takoví odborníci co programovali rozhraní CD Computeru
oprava: DVD Computeru
Hodilo by se ukázat nějakou jednoduchou aplikaci client/server či příp. nějakou jednoduchou DB aplikaci. Tím jednoduchou myslím, že stačí: klient pošle text serveru, ten vrátí "OK, přišlo", a u DB stačí jeden DBGrid a třeba třídění a vyhledávání nebo něco - navíc oddělenej kód od návrhu DB v IDE samozřejmě.
To je ještě jednodušší než ten editor. Bohužel ale vzhledem k tomu že .NET je framework neoplývá to rychlostí ani kvalitou kódu, natož pak aby to bylo paměťově nenáročné
za jeden PR článek
http://www.sharpdevelop.com/OpenSource/SD/Když nechcete milostivý Express
podle me tahle soutez je moc spatne organizovana a moc hrrr
Ten vas codding-style je opravdu priserny. Odsazovani bloku Vam nic nerika? :-O
dalsi vyblitek...diakritika v nazvu souboru ke stazeni. tohle je fakt lamerina.
souhlas, použít diakritiku v názvu souboru, to bych čekal od blonďaté sekretářky a ne od člověka, který by se chtěl nazývat programátorem, ten by měl už umět alespoň trošku pracovat se soubory XD
Hmm.. to je najskor vlasnost (=neschopnost) redakcneho systemu. Na screenshote a v prilozenych zdrojovych kodoch je to odsadenie dobre...Kazdopadne, zip nedokaze zakodovat narodne znaky a mne to otvorilo ako "Poznámkov8 blok" :) Zavisi to od nastavenia code page (for non-unicode programs)
aneb "Vychováváme další várku budoucích kupců Microsoft Visual Studia"...Mnohem lepší by bylo zvolit programovací jazyk, který je pro začátečníky přehlednější, srozumitelnější, běží všude a pro profesionální použití není třeba zakupovat komerční editory. Takže Python.Celkem lituji lidi, kteří právě nyní začínají programovat a hned od začátku vsadí na čistě microsoftí technologie. Ano, uplatnění najdou, ale s postupem času si budou víc a víc spílat. Poptávka po otevřených a multiplatformních technologiích roste stále se zrychlujícím tempem.
Co je na .net frameworku a pripadne C# take zlozite? Prave na nom je vidno snahu MS programovanie extremne zjednodusit.Takze python? TEN jazyk, kde odsadenie rozhoduje? :) Dakujem, neprosim...
> Takze python? TEN jazyk, kde odsadenie rozhoduje? :) Dakujem, neprosim...Nj, to chapem... Mne zas strasne vadi ta mriezka v nazve
nehnevaj sa ale to je ako keby som ja povedal, ze mam znameho ktory ma prezyvku PYTHONec (mozes citaj aj pitomec) a prave preto ze on je ..... tento jazyk nemam rad... sa zamysli chlapce.
Emm... Prosim?
>>> Nj, to chapem... Mne zas strasne vadi ta mriezka v nazve <<<treba ti este aj okuliare ?
Ja uz asi aj viem, o com to melies... Ale clovece, mal by si popracovat na svojom zmysle pre humor, bo toto je vazne extrem :-/
mozno mas pravdu som extremny Cé Plôcikár ... mimo ineho (takze sorry)
C# je ako jazyk v pohode, takisto sa da vyuzit aj na Linuxoch, ale tiez nesuhlasim s vyberom IDE. Min. SharpDevelop je velmi dobre IDE, je open souce a nema limity Express studia (napr. debugovanie dll cez externu aplikaciu). Ale kedze zive je sponzorovane M$, museli pouzit aj M$ IDE.
Můžeš ještě napsat, kolik se v pythonu udělalo enterprise aplikací nebo kolik webů je dělaných v pythonu? Nebo kolik aplikací pro PDA?
zrovna před chviličkou jsem koukal na práci v Seznamu, hledají programátora v Pythonu * programování frontendů mobilních internetových aplikací* příprava podpůrných backendových služeb pro mobilní aplikace Google a jiné podobné firmičky používají Python na všelijaké drobné internetové projektíčky pro pár (stovek tisíc) lidí...V Pythonu se dá udělat opravdu ledacos... Koukněte např. na Enthought (http://www.enthought.com) a možná pak změníte pohled...
Nechtěl bych tvrdit, že python je nějak špatný a určitě se v něm dá udělat dost, ale nevím, nakolik je to jazyk vhodný pro začátečníky, a určitě bych ho neprosazoval takovým výkřikem v diskuzi. Jinak dřív se dost často učilo na pascalu, v poslední době ho nahradila spíš java. A přece jenom třeba v javě člověk určitě sežene více práce než v pythonu a možná to bude i jednodušší na pochopení. Ale python skoro neznám, tak to radši nebudu po téhle stránce hodnotit .
Python a výuka programování k sobě mají blízko. Mimochodem, na MFF UK probíhá debata o tom, jaký programovací jazyk má být zvolen pro úvodní kurz programování. Příspěvek od jednoho z nejpovolanějších (MM) je na adrese: http://mj.ucw.cz/papers/proglang.psMimořádně podnětný článek o Pythonu jako prvním jazyku je k přečtení např. na této URL: http://macek.sandbox.cz/texty/prvni-jazyk-python/Nejsem horlivým zastáncem Pythonu – jak by se možná mohlo zdát – nicméně oba tyto články, které mě dosti ovlivnily poskytují skutečně řadu netriviálních argumentů.
ááá znalec
to si nemůžete projít licenční podmínky, než pustíte takovou mystifikaci, že express edici je možné použít jen pro nekomerční účely? Pokud se podíváte na microsoftí web, najdete tam následující text: Can I use Express Editions for commercial use? Yes, there are no licensing restrictions for applications built using Visual Studio Express Editions. Bližší info na http://www.microsoft.com/express/support/faq/default.aspx
Šitek se vloudil, děkujeme za upozornění!
Jestli bylo myšlený šotek, tak koukám dorazil i jeho kámoš
Náhodou, shitek je krásná slovní hříčka.
A já děkuji za seriál, už dloho se snažím přinutit sám sebe, abych s cmřížkou začal, teď mě to konečně nakoplo.
O C# slyším asi prvně nebo jsem si to možná při letmé zmínce zaměňoval s C++. A jak se to vlastně čte, opravdu C mřížka??? Možná detail, ale důležitej, když o tom chci někomu vyprávět (programuju v c mřížce zní divně).
Vyslovuje sa to "sí šárp"
Aha, tak to je ještě horší, než cé mřížka, vlastně se mě už cé mřížka začala líbit.
Potvrďte prosím přezdívku, kterou jsme náhodně vygenerovali, nebo si zvolte jinou. Zajistí, že váš profil bude unikátní.
Tato přezdívka je už obsazená, zvolte prosím jinou.