Detailní postup při vzdělávání - začátečníci

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod EnMC 18. 2. 2007 15:04

Threadů o tom "Jak začít programovat?" a stále opakujících se otázek je tu zajisté nespočet. Nedávno jsem projevil zájem začít programovat a rád bych, když už se o to budu zajímat trochu detailněji (jak začít, s čím začít, co je důležité...) napsal a upravoval první stranu tohoto threadu se získanými informacemi a možná pokud by za to stál, by byl i sticky. Nechám to na lidech, co na to mají privilegia. Ano, přečetl jsem sticky topicy, ale stále mi chybí několik důležitých bodů a hlavně přehlednost. Začněme.

Je mi jasný, že následující poznatky budou ovlivněné člověkem a jeho přístupem k tomu jazyku, ale bylo by dobré se zdržet zbytečných poznámek a psát pouze výhody/nevýhody onoho programovacího jazyku a stručný popis k čemu slouží. Byl bych vděčný kdyby si na to někdo udělal vůbec čas. Nedělám si iluze. :)

Krok 1

Četl jsem v jednomu threadu aby se začalo s knížkou o algoritmech a přišlo mi to jako rozumný nápad. Seznámit člověka s tím, co vůbec je programování, jak to pracuje. Tak sem bych zařadil literaturu, rady ostatních. Co přečíst ze začátku aj.

Krok 2

Jaké znalosti jsou nutné pro programování? Matematika, fyzika? Je nutné jít na školu s informatikou, jde se naučit programovat sám ? Jak dlouho trvá naučit se jazyk na průměrnou úroveň (je to relativní, ale každého potěší alespoň přibližný čas).

Krok 3

Seznámení s jazyky. Zde bych napsal seznam jazyků s popisy a nějak rozumně rozčlenit. Dále: Čím začít. Jaký jazyk je doporučován? Jistě je mnoho druhů program. jazyků. Jak dlouho trvá přechod z jednoho na druhý jazyk? Jde to u všech jazyků?

Mockrát děkuji všem, kteří se rozepíší s objektivním popisem a radami.
EnMC
Junior

Odeslat příspěvekod ppetr 18. 2. 2007 15:21

1) pokud zatim v nicem nedelas je zbytecny cist o algoritmizaci. Myslim ze by ti to k nicemu nebylo. Co to je a jak to pracuje se dozvis ve vetsine ucebnic nejakyho jazyka (tech azcatecnickejch)

2) Samozrejme ze se to jde naucit sam. Spis bych rekl ze ve skole se to nenaucis (jak kde..) Jak dlouho... fakt tezko rict jde o to ceho chces dosahnout.... A matika, fyzika- souvisi to spolu. Ale naky extra znalosti na zacatek nepotrebujes. Spis se mi stalo ze diky programovani sem pochopil matiku .. jak co

3)Cim zacit na to ti kazdej rekne neco jinyho. Ja reknu asci C a pak az znas zaklady tak C++
O prechodu z jazyka na jazyk psat nebudu, nemam s tim zkusenosti.
ppetr
Junior

Odeslat příspěvekod EnMC 18. 2. 2007 15:33

Znám C# (sharp), C++. Ono je pak i jen C ?
EnMC
Junior

Odeslat příspěvekod Wikan 18. 2. 2007 15:45

1) ano, znat algoritmy a zakladni datove struktury je pro programovani dulezitejsi nez znalost konkretniho jazyka.
2) urcite veci z matematiky potreba jsou (minimalne logika), ostatni uz spise zalezi na tom, co budes programovat. Pokud ucetni programy, tak urcite musis mit alespon zaklady ucetnictvi atd. Samozrejme zalezi na jaky urovni budes pracovat. Jestli jako analytik nebo radovy programator.
3) pokud umis programovat, tak naucit se konkretni programovaci jazyk uz je celkem jednoduchy. A i kdyz s tim asi nekdo nebude souhlasit, tak mezi beznejma jazykama nejsou az zas tak zasadni rozdily, aby jsi s nejakym udelal velkou chybu. Snad krome lispu, prologu a a tak. V tom ale dela malokdo :-)
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Nargon 18. 2. 2007 15:59

1) ano algoritmy jsou velice dobry zaklad, ale chce si to rovnou zkouset. Napriklad nejaky algoritmus na razeni, kdyz v podmince misto < napisu > tak sledovat co se stane, pravdepodobne to bude radit v obracenem poradi.
2) matematika, fyzika. Vzorecky budes potrebovat vzdy. Protoze kdyz chces treba program, kterej ti vypocita obsah kruhu z polomeru, tak musis vedet jakej vzorecek ti to vypocita a ten zapsat do programu. Ale existuje google a wikipedia, a diky tomu vetsinou naleznes vzorecek co hledas a nemusis ho znat.
3) Nejlepsi je zacit s C++ (je to vlastne objektove C, ale objekty si stejne pouziva jen kdyz je to potreba, takze muzes psat to same jako v C) a tady si asi zkouset ty opsane algoritmy z knizky a zkouset to trochu menit, co to bude delat. A pak prejit na nejaky vyssi jazyk treba C#
Prechody mezi jazyky nejsou zase tak tezke, kdyz umis algoritmy. Vetsinou ti staci program typu "hello world" a zbytek si nejak otestujes a vyzkousis.
Napriklad pri prechodu C++ na C# misto "#include<>" bude psat "using", misto "cout <<" to bude "Console.Write()"
Jen prechod mezi jazyky typu Pascal a C je trochu obtiznejsi. Je tam jedna zmena. v pascalu cyklus "do while()" se cykli dokud je podminka nesplnena. V C/jave se cykli dokud je podminka splnena. Takze je potreba i trochu jinak premyslet.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod Madcap. 18. 2. 2007 18:20

Doporučuju přečíst si tohle:

Jak se naučit profesionálně programovat? --- Radek Hulán ---
Madcap.
Junior

Odeslat příspěvekod EnMC 18. 2. 2007 19:12

Madcap. píše:Doporučuju přečíst si tohle:

eurl=http://radekhulan.cz/item/jak-se-naucit-profesionalne-programovat][color=red]Jak se naučit profesionálně programovat?a/color][/url] [i]--- Radek Hulán ----/i]


A je to stále aktuální ? Např. nyní Radek prosazuje MySQL, protože se leccos změnilo podle něj. Občas zavítám na jeho blog. :)
EnMC
Junior

Odeslat příspěvekod WebmasterForum.sk 18. 2. 2007 19:25

1. Knižku o algoritmoch si prečítať môžeš, ale pre začiatok to nie je potrebné. Základy algoritmov sa naučíš spolu s programovacím jazykom.

2. Pokiaľ neprogramuješ niečo veľmi špecializované, tak v 95% prípadov stačí stredoškolská matematika. Fyzika myslím si potrebná nie je, opäť ak nerobíš niečo špeciálne, čo s fyzikou súvisí. Ale to platí vždy, že si musíš naštudovať a pochopiť niečo z tej oblasti, pre ktorú programuješ. Mať školu je dobré, ale nie nutné. Dôležitejšia je prax, tá prichádza časom a skúsenosťami. Za ako dlho sa dostaneš na priemernú úroveň je individuálne, ak nemáš žiadne skúsenosti, budeš na to potrebovať aspoň rok praxe.

3. Jazyky, ktorými sa oplatí zaoberať sú hlavne C++, C# pre programovanie pre Windows, Java pre platformovo nezávislé programovanie a profesionálne business webové aplikácie, PHP alebo ASP pre webové aplikácie a bežné weby. Časom určite narazíš na potrebu práce s databázami, preto sa neskôr ešte naučíš niečo o relačných databázach a SQL.
WebmasterForum.sk
Junior
Uživatelský avatar

Odeslat příspěvekod logout 21. 2. 2007 13:29

Ahoj,
1) podle mě algoritmizaci určitě ano. Bez algoritmizace budeš dělat věci nešikovně a za roh. Jen bych k ní doplnil (někdo to zahrnuje) datové struktury.
2) Matyka, fyzika - z matematiky logika (ale tu spíš než nějakým studiem buď máš, nebo nemáš, ale matika ji pocvičí :-)), pokud chceš programovat opravdu dobře, pak i nějaké vyčíslitelnosti, složitosti, ale to je už na úrovni VŠ studia, to nejsou základy, na druhou stranu si tam uvědomíš limity programování, takže dobrej programátor by o tom měl mít ponětí (byť třeba rozsah tědlech předmětů na MFF je pro běžný programování zbytečnej).
Samozřejmě pak na konkrétní programy musíš vědět o tom, co píšeš - tzn. na CAD musíš zvládat deskriptivní geometrii, na účetnictví ekonomii atd... Ale spíš platí, že jak Ti jde matyka, fyzika je indikátor, jak Ti půjde programovat. A procvičování matiky Ti procvičuje buňky i na programování.

Je ale potřebná znalost počítačové architektury a architektury programovacích jazyků a operačních systémů.
Ani ne tak konkrétního harware (jestli je 1950XT rychlejší než 7900GX2), jako spíš principů: ale jak to chodí v procesoru, co jsou registry, stack, segmenty, jak funguje virtuální paměť, co je integer, float, SSE instrukce, jak funguje cache (a důsledky toho), jak jsou ukládány pole, řetězce, vícedimenzionální pole.
A pak takové věci jako rozhraní, virtuální metody, jak bývá implementovaná dědičnost, message driven programování,
co jsou zámky, kritické sekce, thready, alepsoň základní povědomí o assembleru atd...

3) Programovací jazyk: Pro učení doporučuju nějakej nižší (z důvodů výše) ale je možný, že proto,. že jsem se sám na něm naučil. Pokud možno typovej a s typovou kontrolou, pokud možno objektovej - i když na úplné základy je IMHO lepší procedurální styl,
nejlépe je, když lze plynuyle přejít do objektů.

4) R.H. prosím nezmiňujte, např. čtením manuálů z Tebe nebude
programátor, ale aplikační lepič-bastlič. A kromě toho jeho jméno je ve slušné společnosti sprostým slovem :-) :-).

Hezký den,
Matyáš
logout
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků