Jaký jazyk zvolit pro začátečníka

bubavanek

Jaký jazyk zvolit pro začátečníka
« kdy: 14. 10. 2010, 18:41:09 »
Ahoj, chtěl bych se seznámit do hloubky s programovacími jazyky. Tudíž se vás ptám, jestli byste mi mohli poradit v čem začít. A jestli by pro mě jako pro začátečníka bylo výhodnější si nainstalovat Linux. Plánuji si samozřejmě koupit nějakou tu literaturu pro začátečníky, ale zajímalo by mě zda-li byste mi nějakou mohli doporučit. Tak trochu jsem se zaobíral PHP, HTML, CSS (velmi okrajově), Delphi samozřejmě ve škole, Visual Basic trošku.
Budu rád za jakoukoliv objektivní radu.
Předem děkuji.


Logik

  • *****
  • 1 046
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #1 kdy: 14. 10. 2010, 18:55:54 »
Linux imho nepotřebuješ.... zatim. Jakej jazyk je taky dosti sporny, jen ne to php. Osobně bych na učení algoritmů doporučil pascal, na učení objektovosti třeba javu, na to abys něco napsal rychle a přitom furt hezky python, na to abys zjistil něco o vnitřnostech počítače tak C, abys ses naučil něco z funkcionálních paradigmat tak třeba javascript (ale v tom se dá dosti prasit, čili ten rozhodně ne na začátku).... IMHO začni s libovolnym z tědle jazyků a časem vždy nějakej přiber...

bubavanek

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #2 kdy: 14. 10. 2010, 19:20:30 »
No je mi jasný že vše se nedá dělat jen v jednom a každý je dobrý na něco. Počítám že nejspíš začnu s Pythonem, většina lidí se přiklání k němu, jako jazyku pro nováčky. Děkuji za odpověď. Jinak přemýšlím, že bych šel studovat Informatiku, tak by mě ještě zajímalo kdo jste co kde vystudoval, či je zatím samostudium.

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #3 kdy: 14. 10. 2010, 19:40:57 »
Počítám že nejspíš začnu s Pythonem, většina lidí se přiklání k němu, jako jazyku pro nováčky.

Jestli se přikláníš k Pythonu, tak se zkus podívat na jazyk Boo (http://boo.codehaus.org/) - u něj je veliká výhoda, že běží nad .NET frameworkem, takže se zároveň naučíš std. knihovnu, jejíž znalost potom můžeš zpeněžit (C#). Znalost Pythonní  std. knihovny se zpeněžuje podstatně hůř.

bubavanek

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #4 kdy: 14. 10. 2010, 19:53:41 »
Díky za rady ;) :)


bubavanek

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #5 kdy: 14. 10. 2010, 19:57:44 »
Ještě jsem se chtěl zeptat na nějakou ,,povinnou,, literaturu. Pokud byste něco věděli

Kill_Bill

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #6 kdy: 14. 10. 2010, 22:18:47 »
Pis si -
Pavel Herout
Ucebnice jazyka C
KOPP, 1992

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #7 kdy: 14. 10. 2010, 23:04:23 »
Take zdravim.

Pokud bych Vam mel doporucit z vlastni zkusenosti, tak zacnete s C. Muzete i s C++, ale na tridy a na nich zalozenych abstrakcich se vrhnete az si osvojite zaklady jazyka, algoritmizace, funkci a teoreticke zaklady OOP (objektove orientovane programovani). Ucebnice Jazyka C od Pavla Herouta je vyborny pruvodce timto jazykem a pro C++ je dobra kniha C++ programovaci jazyk od pana Bjarneho Stroustrupa (nakladatelstvi Ben, 1997 ). Uvidite, ze je to mocny nastroj.

Muzete zkusit i Pascal. rozhodne bych Vam nedoporucoval se ze zacatku zabyvat jazyky jako je java, C#, Python a pod, protoze tyto jazyky vysi urovne uz pred programatorem skryvaji nektera uskali programovani (sprava pameti, kontroluji rozsah poli, atpd..) coz by mohlo vest ke spatnym, nebo nevhodnym navykum.     

Je zajimave jak dlouho pretrvavaji nektere myty, jako napr. ten, ze Linux je platforma vhodna jen pro programatory. Stejne jako muzete pohodlne pouzivat Linux na Desktopu, treba v kanclu, nebo doma, muzete pohodlne programovat treba i na Windows: pokud chcete open Source vyvojove prostredi, zkuste se poohlednou po programu Code::Block, nebo wxDev-C++ (pro C/C++). Myslim, ze i MS nabizi nejakou (pravdepodobne silne orezanou) verzi Visual Studia pro nekomercni pouziti...   

jehovista

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #8 kdy: 14. 10. 2010, 23:24:49 »
Je zajimave jak dlouho pretrvavaji nektere myty, jako napr. ten, ze Linux je platforma vhodna jen pro programatory.
Imho neni jenom pro programatory, ale na spoustu programatorskych cinnosti je proste Linux tisickrat lepsi, nez cokoliv jineho. "aptitude install sun-java6-jdk maven netbeans postgresql tomcat...." a jede se. Ve windows je to prace na dva dny.
P.S. Priklad je samozrejme trochu zjednoduseny, ale jakozto java developer, ktery je nucen pracovat ve windows, tento system z celeho srdce nenavidim a proklinam.

Logik

  • *****
  • 1 046
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #9 kdy: 15. 10. 2010, 00:11:10 »
jehovista: no, já zas ve windows na notebooku třeba rozchodím dva monitory a hybernaci, v linuxu nikoli. Každej systém má svoje plus a svoje mínus. Pro C/C++ by zas člověk proklínal linux, protože MS Visual studio imho nemá v IDE konkurenci (byť díky eclipse, emacs apod. je situace daleko lepší než dřív). Trochu nadhledu to chce...

tiger: Souhlasím. POokud se to chce dělat pořádně, tak aspoň nejakej čas na Cčku to chce. Akorát si nejsem jistej, že ze začátku, první co je potřeba je do sebe dostat programovací paradigma, a to jde v čemkoli. A špatné náviky se dají získat i z Cčka
- díky neexistenci objektů (respektive ne zrovna ideální implementaci v C++) se člověk
učí bastlit místo dělání čistýho návrhu.
Osobně myslím, že C/C++ rozhodně ano, a poměrně brzo, ale nevím, jestli bych s ním začínal...


D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #10 kdy: 15. 10. 2010, 00:36:07 »
jehovista : Jasne, o tom zadna. jen jsem chtel naznacit tu myslenku, ze Linux neni proste nezbytnou podminkou, a ani z nikoho programatora sam o sobe neudela.

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #11 kdy: 15. 10. 2010, 01:35:06 »
tiger: Souhlasím. POokud se to chce dělat pořádně, tak aspoň nejakej čas na Cčku to chce. Akorát si nejsem jistej, že ze začátku, první co je potřeba je do sebe dostat programovací paradigma, a to jde v čemkoli. A špatné náviky se dají získat i z Cčka
- díky neexistenci objektů (respektive ne zrovna ideální implementaci v C++) se člověk
učí bastlit místo dělání čistýho návrhu.
Osobně myslím, že C/C++ rozhodně ano, a poměrně brzo, ale nevím, jestli bych s ním začínal...

Myslim, ze pokud bude postupovat od zacatku, je jedno jaky kompilator pouziva. Mezi ANSI C a C++ zas tak markantni rozdily nejsou. Navic je prece v poradku, kdyz se bude hned od zacatku ucit trose te zdrave neduverivosti (ze za nej vsechny problemy nekdo, nebo nejaky nastroj resi). Navic snad se vyhne tomu dneska tolik oblibenemu nutkani pouzivat letdlovou lod na komara (na problem ktery resi par radek v shellu, nebo v main( ) v C, pouzit rovnou moloch v C#, nebo Pythonu) - uz jen proto bych volil C/C++

Teorii se stejne nevyhne - pokud bude chtit jit dal, nez na obligadni "Hello world". Driv ci pozdeji stejne si bude muset zjistit o cem OOP vlastne je... pravdou je, ze spatne navyky muze ziskat i v C/C++, ale je tam taky velmi velka pravdepodobnost, ze s trochou stesti a snahy brzy prijde na jejich nasledky.

C++ NENI objektovy jazyk, presto ze principy OOP podporuje a pracuje s nimi. Je to typovy jazyk - programator v podstate hlane definuje datove typy. Objekty jsou v C++ az konkretni instance trid (s trochou drzosti: hodnoty v pameti). Je jednou veci vytvorit datovou strukturu a definovat k ni mnozinu operaci (datovy typ) a pak ji bez nutnosti do ni jakkoliv zasahovat nebo ji upravovat pouzit na nekolik ruznych aplikaci jen tim, ze ji predam odpovidajici data ( napr. mejme tridu Graficke_udelatko. A hned muzeme vytvorit objekty letadylko, pozadi, zamerovac, exploze, tlacitko...). A kdyz k tomu prictu sablony a moznosti OOP, pak me napadaji takove veci jako jsou treba tovarny na obekty, strategie, a pod... Ale to uz je asi trochu mimo ramec zacatecnika.
« Poslední změna: 15. 10. 2010, 02:15:20 od D.A. Tiger »

ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #12 kdy: 15. 10. 2010, 07:49:32 »
Na běžné pochopení programování opravdu stačí Pascal (jazyk vyvinut pro výuku programování), z MS projektů bych možná doporučil Visual Basic (pořád je to ještě Basic). Pokud to ale myslíte s programováním vážně, pak rozhodně C a C++. S objekty začít co nejdřív, seznámit se s tím aspoň teoreticky paralelně při výuce jazyka. Jako že prakticky zkoušet programovat běžné algoritmy, jako řazení polí, hledání a podobně, ale vedle toho se seznamovat s tím, co to vlastně ty objekty jsou. A opravdu se připravit na to, že to je hlavně teoretické procvičování, kde než člověk napíše do kódu klíčové slovo class, měl by mít povědomí něco o tom, co to objekt je, mít ale také povědomí aspoň o jazyce UML, aspoň vědět k čemu to je a jak se v tom modelují třídy. Na začátku to může být otrava, ale mnohonásobně se to vrátí. V dnešní době všichni co programují v nějaké Javě, v Pythonu nebo v C++ umí sice vyrobit objekt, ale OOP to není ani náhodou.

Ještě se vrátím k C / C++. Jak psal předchozí diskutující, možná jsou dneska jazyky, které umí řešit správu paměti, a spoustu věcí dělají za programátora, ale přesto je dobré si to vyzkoušet ručně. Vědět, že se program musí umět postarat o přidělené zdroje, musí je umět alokovat, včas uvolňovat, sdílet je tak aby nebyl v konfliktu s ostatními aplikacemi ... a není to jen paměť, byť je to prostředek, který se nejvíc používá. Právě proto. Na tom se nejlépe cvičí správa zdrojů. Když se to člověk nenaučí, pak jeho programy budou alokovat systémové prostředky jako otesánci (soubory, sockety, sdílenou paměť,  atd), budou pomalé, těžkopádné a v extrémních situacích budou jako první vypovídat službu.

David Strejc

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #13 kdy: 15. 10. 2010, 07:58:35 »
Muzes brat drogy. Muzes hulit travu od rana do rana. Muzes ... co chces. Ale zaprve:

http://www.catb.org/esr/faqs/hacker-howto.html

Zadruhe:

http://catb.org/esr/writings/unix-koans/ten-thousand.html

a za treti - NA LINUX SE VYSER! ;o)) To byla nejlepsi rada, kterou jsem kdy dostal.

Nainstaluj si FreeBSD (dva az tri roky budes brecet, ale ... tezko na cvicisti ...). Nainstaluj si tam ztko. A tam si hraj s Pythonem. Na nejaky .NET ... > .NOT!!!! Java? Proc proboha? Python je super na uceni se programovani. A pokud budes chtit jit fakt uplne k jadru kudla, tak pak je to o Ccku a Assambleru. Je to fakt docela drina naucit se prgat. Ma to neuveritelne mnoho aspektu. Poradne si precti a pochop ten druhy link, co jsem posilal ;o)

Fakt se to vyplati. A na Wydle ... uplne zapomen - to neni pro programatory. Taky zapomen na mys. Nesmysly, ktere nebyly vymysleny pro programovani ale pro lidi, kteri programovat nechteli.


ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #14 kdy: 15. 10. 2010, 08:02:05 »
C++ NENI objektovy jazyk, presto ze principy OOP podporuje a pracuje s nimi. Je to typovy jazyk - programator v podstate hlane definuje datove typy. Objekty jsou v C++ az konkretni instance trid (s trochou drzosti: hodnoty v pameti). Je jednou veci vytvorit datovou ...
Nechci zabředávat do flame, takže jen poupravím. Nerad bych začátečníkovi radil, aby používal plnohodnotné OOP jazyky (myslím zejména smalltalk), tedy pokud si pro svůj první sexuální zážitek nevybral sadomasochistické praktiky  :) Ostatní OOP jazyky se od OOP v C++ zase až tak moc neliší. Pokud bych chtěl jít až do krajnosti, tak v každém jazyce je objekt nějaká kolekce hodnot v paměti  ;)

Ty věci, které OOP programátora v C++ omezují mohou naopak hodně pomoci začátečníkovi. Například v tom, že se nebude pokoušet posílat zprávu objektům, které je neumí zpracovat (díky typovosti to překladač zjistí hned). Přitom mu nijak nebudou bránit v pochopení toho, jak se v objektech modeluje svět. Dokonce i taková nutnost, jako vytvářet ke každému flusu rozhraní je spíš přínosem, protože si člověk uvědomí, že něco jako rozhraní existuje (rozhraní je i třeba klika na dveřích, šňura na splachování na WC) a právě typová kontrola zajistí, že nám překladač nedovolí tahat za kliku na dvěří, nebo se snažit otevřít dveře splachováním na záchodě.

Šablony jsou pak určitým kompromisem při návrhu generických algoritmů, kde se typy mohou být velkou přítěží.