Jak se naučit programovat?

iwtu

Re: Jak se naučit programovat?
« Odpověď #45 kdy: 09. 12. 2012, 14:52:04 »
Skus trebars tento odkaz: http://howto.py.cz/index.htm
To je uz trosku out-of-date. Na python pokial knizku tak odporucam tuto: http://knihy.cpress.cz/python-3.html 8) pripadne nejaky tutorial na internete. Tiez odporucam ucit sa python 3 a nie 2 (je lepsi ;) ).

Moze byt lepsi.. ale ako sa pise vo famoznej knizke, Learn Python The Hard Way, citujem: "
Citace
A programmer may try to get you to install Python 3 and learn that. You should tell them, “When all of
the python code on your computer is Python 3, then I’ll try to learn it.” That should keep them busy for
about 10 years."
Svet funguje na Python 2. V Red Hate tusim frcia na Python 2.4, co v 2.6 je dost syntatickych krajsich veci.. Vo firme mame 2.6. Najnovsi dvojkovy Python ak sa nemylim je 2.7.


iwtu

Re:Jak se naučit programovat?
« Odpověď #46 kdy: 09. 12. 2012, 15:02:05 »
Nerozumiem otazke. Ja sa na to divam tak. Alebo sa chcem ucit programovat obecne. V tom pripade je asi volba OS uplne irelevatna. Alebo uz obecne zaklady ako tak zvladam a chcem sa ucit nieco konkretne. Ak clovek zavlada obecne zakladny programovania a chce programovat pre linux, tak bez C sa velmi nezaobide. Ja odporucam literaturu z MFF http://mff.devnull.cz/.

Ak tazatel nevie co a ako, tak nech zacne s tym, co si mysi, ze ho bude bavit. Moznosti je vela. Problem vybrat je vzdy problem.

iwtu

Re:Jak se naučit programovat?
« Odpověď #47 kdy: 09. 12. 2012, 15:04:01 »
@lennin dik za ten messaging. Kuknem na to. Pomaly prichadzam na to, ze mainstream je priemer a ani nie tazky.

Lenin POWER!

  • ****
  • 434
  • Nekecat a delat!
    • Zobrazit profil
    • Tribut Leninovi
    • E-mail
Re:Jak se naučit programovat?
« Odpověď #48 kdy: 09. 12. 2012, 23:45:22 »
Ty pocty naprogramovanych radek co uvadim a kterym neverite pod tim se mysli pocet zmenenych radek, ne novych SLOC radek.

Pokud vam u vetsiho projektu zacnou nenadale narustat radky, tak to znamena ze lidi obvykle pisi neco co uz tam mate. Taky je potreba znat knihovny, dost tragedie je kdyz lidi neznaji apache commons lang to si pak kazda skupinka programatoru v projektu zacne psat svoje utility.

yad

Re:Jak se naučit programovat?
« Odpověď #49 kdy: 10. 12. 2012, 00:04:01 »
Niekde som tu zachytil, že je dôležitý dať si cieľ, čo naprogramovať. Pokiaľ sa nejedná o učenie algoritmizácie (ktorú človek tak často zasa nevyužije), tak tam mám imho dobrý tip.

1. Spraviť si jednoduchú aplikáciu na ukladanie kontaktov, todo list a pod.
2. Nejaké ukladanie CSV, XML, SQL.
3. Ešte jedno ukladanie...
4. Spraviť z toho servlet s binárnym protokolom.
5. Pridať http protokol.
6. Vlákna/procesy do serveru.
6. Pre výpis dlhých dát pridať streaming.
7. Klienta prerobiť z konzoly do GUI.
8. Pridať do serveru asynchrónnu podporu (klient sa zavesí a čaká na zmenu; napríklad todo listu).

Je to skôr tip ako si osvojiť ako-tak danú platformu. Človek tak naberie širší rozhľad. Taktiež odporúčam čítať vecí o architektúrach aplikácií, analýze, "trikoch" v jazyku/technológií, best-practices atď.

Algoritmizácia je kapitola sama o sebe a vyžaduje skôr matematické myslenie (z ničoho niečo) ako čisto technické (z niečoho niečo).


Vertex

Re:Jak se naučit programovat?
« Odpověď #50 kdy: 10. 12. 2012, 00:23:22 »
Ty pocty naprogramovanych radek co uvadim a kterym neverite pod tim se mysli pocet zmenenych radek, ne novych SLOC radek.

Pokud vam u vetsiho projektu zacnou nenadale narustat radky, tak to znamena ze lidi obvykle pisi neco co uz tam mate. Taky je potreba znat knihovny, dost tragedie je kdyz lidi neznaji apache commons lang to si pak kazda skupinka programatoru v projektu zacne psat svoje utility.

Lenine, celkom ma zaujíma, aké máš vzdelanie resp. matematické znalosti? Viem, že vo svojich príspevkoch si voči matike\teórií celkovo v informatickej praxi skeptický, ale zaujíma ma práve to, čo si ty z matematiky a teórie konkrétne využil v rámci svojej kariéry, nech mám predstavu, čo je využiteľné.

KapitánRUM

Re:Jak se naučit programovat?
« Odpověď #51 kdy: 10. 12. 2012, 01:47:31 »
Nejlíp se člověk naučí programovat, když to učí ostatní.
Obecně opakování dělá mistra.

Re:Jak se naučit programovat?
A) Chce to začít s něčím, co má budoucnost, obecně vidím budoucnost v jazycích typu C#/Java, čím přísnější jazyk je, tím lepší pro začátečníka (JavaScript/PHPlike fujky fujky). Cčko tě nutí dělat voloviny s pamětí, což zbytečně odvádí od problému samotného.
Java (která je mrtvá) je krásná a čistá, není krásnějšího jazyka než Java! C# se vyvíjí, ale začíná byt poněkud zprasený a pořád se přidávají nové funkce, které z toho dělají pěkně složitou obludu. Někdy je méně více.

B) Je lepší vědět, co chci dělat, tedy jestli programovat pro web nebo pro mobil / desktop, zní to blbě, ale pokud se člověk neučí produktivně, výsledek není produktivní. A chce to znát knihovny, což někdy znamená rozdíl 3/4 práce, tj. neznáš knihovnu=děláš to blbě 4 hodiny, znáš knihovnu = děláš to 1 dobře. Myslíte si, že i když knihovnu neznáte, že to můžete udělat dobře? Blbost, možná na vašem malém hello_vole.php, jak na projektu dělá řada lidí, je extrémně problematické když někdo používá knihovní funkce a druhý si píše knihovnu vlastní ze všech hledisek.

C) Je lepší začít programovat od začátku pod dohledem někoho dobrého, mít vedení zkušeného člověka, protože při samodomo-prasení si bohužel člověk zažije řadu zlozvyků (čti prasáren), kterých se pak jen velmi těžko zbavuje. Tady budu zase kritizovat naše školství, protože i když se u nás na VŠ učí programování, neučí se tam programovat, protože většina těch uživatelů zná řekněme slova, ale nezná stavbu věty. Tj. většina těch magorů ti řekne, že co je prefix a co je sufix, ale už ti neřeknou, že takhle se to dělat nemá. Někteří mají to štěstí, že se alespoň dozví co je getter/setter. 

D) Chce to se učit čtením cizích programů, nejlépe od mistrů. Bohužel to chce vědět, jak vypadají návrhové vzory, chce to vědět jak to je správně a jak je to špatně. Chce to zkušenosti a cit. Umělci se také učí od ostatních umělců. Stejně tak to chce mít chuť dělat věci perfektně, přemýšlet o kódu co píšeš a zkoumat ho od shora dolů, tím se vytváří umělecké dílo. Genialita je v jednoduchosti, čím jednodušší a čistší kód, tím lepší. Plus to chce přidávat komentáře, ale obecně je nejlepší, pokud komentář není potřeba, protože vše je jasné z názvu funkce! private int _SectiDveInt(int a, int b){return a+b;}
Chce to klid, klídeček, mít dobrou náladu, nestresovat se, nenechat se hnát do termínů a psát krásný kód. Všechno si promysli a klidně než začneš psát samotný kód funkce, napiš si pro to unit testy.

Jsou tři druhy programátorů:
A) Umělci, ZEN programátoři, kteří používají hlavu, kteří píší umění.
B) Kodéři, něco jako pisálci z webů jako novinkykyky nebo ivčera.
C) Čuňata, jejich hlavní zbraní je CtrlC+CtrlV.

Pamatujte si, že když začnete programovat bez vhodného vedení, jen bůh Vás ochrání před tím, spadnout do kategorie C.
Bohužel řada zaměstnavatelů v zásadě chce programátory typu A, vyžaduje po nich alespoň výsledek typu B, ale podmínky jim vytváří typu C.

KapitánRUM

Re:Jak se naučit programovat?
« Odpověď #52 kdy: 10. 12. 2012, 01:57:40 »
Krásný příklad z praxe:
Boss: "Hele, ta knihovna musí být hotová do 14-ti dnů!"
Programátor: "Hele, co to je za píčovinu? Vy kreténi jste se o tom hádali půl roku, než se to rozhodlo a já to teď mám za čtrnáct dní udělat? Ještě ani není hotová analýza!"
Boss: "Zbytečně to dramatizuješ, uvědom si, kdo tě platí!"
Programátor: "Hele, ten kód bude stát za píču!"
Boss: "To je jasný, ale hlavně když to bude fungovat, jo a fakt s tím mákni, vím že na to máš jen 14 dní, ale přespříští týden se musíš začít seznamovat s tím dalším projektem, který se bude dělat pak!"

Výsledek?
Ten kokot programátor nemá čas na rodinu, bouchá 12 hodin denně v práci i doma, v hlavě má totální zatmění, je vyřízenej a žere prášky.

Jak má den programátora vypadat?
8:00 až 9:00 vytváření plánu na dnešní den, stanovení si cílů, seznam funkcí, které se dnes musí dokončit
9:00 až 12:00 psaní testů a samotných funkcí
13:00 až 15:00 oprava chyb, testování, zjednodušení funkcí až na samotnou hranici funkčnosti a zlepšení čitelnosti
15:00 až 16:00 kochání se vlastním kódem, diskuze nad kódem s kolegou, probírání postupu, případně učení se nových věcí
16:00 odchod domů za rodinou, do přírody, s úsměvem na tváři, nezatížený problémy, relaxující.
Že to u Vás takhle nevypadá?
Tak za to si můžete sami!

KapitánRUM

Re:Jak se naučit programovat?
« Odpověď #53 kdy: 10. 12. 2012, 02:03:03 »
PS: Možná to někdo nepochopil, ale ta poslední hodina každý den by opravdu měla být věnována tomu, abyste se učili nové věci.
A to beze srandy, fakt se musíte učit nové věci a zlepšovat se. A kdo říká, že se zlepšovat nemusí, je buď namyšlený prase nebo lhář.

Lenin POWER!

  • ****
  • 434
  • Nekecat a delat!
    • Zobrazit profil
    • Tribut Leninovi
    • E-mail
Re:Jak se naučit programovat?
« Odpověď #54 kdy: 10. 12. 2012, 04:49:21 »
Lenine, celkom ma zaujíma, aké máš vzdelanie resp. matematické znalosti? Viem, že vo svojich príspevkoch si voči matike\teórií celkovo v informatickej praxi skeptický, ale zaujíma ma práve to, čo si ty z matematiky a teórie konkrétne využil v rámci svojej kariéry, nech mám predstavu, čo je využiteľné.

Z matyky mi byla nejuzitecnejsi geometrie a prace s maticema. Bezne zivotni potreby pokryva tabulka v Excelu. Daleko uzitecnejsi nez matyka mi byla fyzika a to i v obchodnich zalezitostech.

Squirrel

Re:Jak se naučit programovat?
« Odpověď #55 kdy: 10. 12. 2012, 07:56:06 »
To Lenin POWER:

kde doporucujete sehnat v CR "Extreme Programming Explained" ?
P.S: na vety tipu: UTFG moc nereaguju, muzu si to vygooglit ale je lepsi se nekoho zeptat, pac uz s tim ma zkusenosti...
P.P.S: <rejp>matyka? :-P</rejp>

xxx

Re:Jak se naučit programovat?
« Odpověď #56 kdy: 10. 12. 2012, 09:56:52 »
Jak má den programátora vypadat?
8:00 až 9:00 vytváření plánu na dnešní den, stanovení si cílů, seznam funkcí, které se dnes musí dokončit
9:00 až 12:00 psaní testů a samotných funkcí
13:00 až 15:00 oprava chyb, testování, zjednodušení funkcí až na samotnou hranici funkčnosti a zlepšení čitelnosti
15:00 až 16:00 kochání se vlastním kódem, diskuze nad kódem s kolegou, probírání postupu, případně učení se nových věcí
16:00 odchod domů za rodinou, do přírody, s úsměvem na tváři, nezatížený problémy, relaxující.
Že to u Vás takhle nevypadá?
Tak za to si můžete sami!

Jak má den programátora vypadat?

8:00 až 9:00 čtení root.cz
9:00 až 12:00 psaní kydů na root.cz
13:00 až 15:00 čtení root.cz
15:00 až 16:00 psaní kydů na root.cz
16:00 odchod domů, kde můžu pokračovat v psaní kydů na root.cz

Že to u Vás takhle nevypadá?
Tak za to si můžete sami!

KapitánRUM

Re:Jak se naučit programovat?
« Odpověď #57 kdy: 10. 12. 2012, 10:14:10 »
Posláno « kdy: Dnes v 09:56:52 »
Že to u Vás takhle nevypadá?
Tak za to si můžete sami!

To máš samozřejmě pravdu, řada lidí ve státní správě to tak má zařízené. (Možná i ty ne?)
Nicméně ne všichni mohou pracovat ve státní správě.
Za většinou musí být vidět kus práce.

xxx

Re:Jak se naučit programovat?
« Odpověď #58 kdy: 10. 12. 2012, 10:39:25 »
Já jen že kam se podívám, tam vidím příspěvky od KapitánRUM. Tak mi bylo divný, jak to jde dohromady s tou tvojí osnovou ;-) Jinak ve státní správě nepracuju, dělám sám na sebe, takže kus práce za mnou být vidět musí, jinak bych taky snadno mohl skončit na dlažbě - super motivace, doporučuju.

Mirek

Re:Jak se naučit programovat?
« Odpověď #59 kdy: 10. 12. 2012, 12:12:16 »

Jsou tři druhy programátorů:
A) Umělci, ZEN programátoři, kteří používají hlavu, kteří píší umění.
B) Kodéři, něco jako pisálci z webů jako novinkykyky nebo ivčera.
C) Čuňata, jejich hlavní zbraní je CtrlC+CtrlV.


S vaším rozdělením programátorů moc nemohu souhlasit. Pokud bych to měl rozdělit tak následovně.

  • Lidé kteří se nedokáži naučit vůbec programovat. A používají pro svou spokojenost maximálně např. WYSIWYG Editor
  • Lide kteří se dokáží naučit aspoň základy programovacího jazyka (HTML,CSS,PHP,ASP.net), ale pouze do úrovně statického webu. Pro svoji spokojenost používají některá hotová řešení např.Joomla, Drupal apod.. Jsou schopný se vyznat v kodu a drobnější úpravy.   
  • Lidé kteří se dokáží naučit jakýkoliv programovací jazyk na úroveň profesionála. Tvoří všechno sami od nuly. 

Pokud se chceš programovací jazyk naučit na úrovní profesionála. Je dobré aby tě ho naučil někdo kdo ve vybraném jazyce profesionálně programuje.

Podle mě mají budoucnost  a často i vyskytují inzeráty na PHP, ASP.NET / C#, Java , C#.