Fórum Root.cz
Ostatní => Odkladiště => Téma založeno: Airywave 12. 04. 2012, 23:21:18
-
Zdravím všechny čtenáře tohohle fóra,
Jsem student IT oboru na jedné z Pražských VŠ, konkrétně ČZU 1. ročník, protože je studium silně teoreticky zaměřený a je docela rozházený rozhodl jsem se že se pokusím dostudovat ale ne za každou cenu a radši se budu více věnovat věcem se kterými na trhu práce spíše uspěji.
projel jsem si jobs.cz nabídky práce pro programátory a mám docela dobrou představu co je žádané a co bych měl umět.
(Rozhodl jsem se naučit se pořádně C/C++ a poté přejít na C# nebo Object C/Cocoa, ale chci umět i alespoň nadstandartně HTML, PHP a CSS)
teď ta hlavní otázka na kterou jsem zatím nikde nenašel odpověď -> Jaké verze se mám učit?
třeba u HTML jsem nikde v požadavcích nenašel verzi, je mi jasné že 4ka pomalu končí ale 5ka ještě nemá dokončený standardy.
Pak u C/C++ když jsem otevřel učebnice případně www stránky pokaždé jsem našel i u nejzákladnějších programů lehce odlišnou syntaxi (např. C++ - std::cout co mi vyhodí jako vzorovej příklad devC a samotné std co mi vyhodí code:blocks).
možná se ptám zbytečně pro nedostatek znalostí ale hodily by se mi co možná nejaktuálnější zdroje (www i knihy) ze kterých bych měl čerpat abych se neučil zastaralé věci a neškodil si tak.
má někdo k tomuto tématu dobrou radu?
-
Začínat jako samouk na C/C++ ... bude to boj :). Jinak C a C++ jsou rozdílné jazyky, raději začni s C, ten jazyk je jednodušší. Až pak se dívej na C++. C++ je jeden z nejsložitějších jazyků, který se v dnešních dobách používá. (Ale práce v něm je podle mne o mnoho příjemnější, oproti C má spoustu věcí, které Ti usnadní život, jen o nich musíš vědět a vědět jak je použít.)
std::cout vs cout neřeš. "std" je tzv. "namespace" (prostor pro jména) a buď můžeš před každé cin, cout, cerr, string ... psát std:: nebo můžeš na začátek souboru napsat "using namespace std;" a už nemusíš. Tohle je jedna z těch věcí, které C++ přidává k Cčku.
Umět nadstandardně PHP, HTML, CSS a ještě k tomu C/C++ a C#? Tak jestli tohle všechno zvládneš sám po večerech během vysokoškolského studia, tak (alespoň v prvních letech) nebudeš mít problém s tím, aby po Tobě firmy pokukovaly. Umět pořádně C++ začíná být u běžných programátorů nadstandard (pokud děláš běžné desktop/web aplikace, tak to nepotřebuješ). Pokud C# myslíš jen jako naučit se jazyk, pak po zvládnutí C++ nebudeš mít problém. Ale znalost jazyka C# Ti bude celkem k ničemu, pokud nebudeš mít přestavu o knihovnách v Microsoft .Net, což je opět celkem rozsáhlé téma. Aby C++ bylo použitelné v praxi, taky musíš mít v hlavě přehled o mnoha knihovnách (alespoň Boost a Qt).
Podle mě si bereš moc do nůše. Nevím, jak je náročné studium informatiky na ČZU (upřímně, ani nevím, co ta zkratka znamená; já jako rodilý Ostravák a obrovský ostravksý patriot studuji samozřejmě v Brně :-D ), ale všechno to, co jsi psal, je dost těžké zvládnout. Vyber si, co bys chtěl v životě dělat - podle toho se rozhodni.
Co se týká "prvního" jazyka, vedou se spory a šíleně dlouhé diskuse. Na internetu se většinou dočteš flame mezi Python a Ruby, javisti říkají že Java, akademici že Assembler, u nás ve firmě většina lidí začínala na Perlu, tak by Ti řekli, že Perl ještě nebyl ničím překonán.
Můj osobní názor je ten, že začít se má jednoduchým jazykem, na kterým je možné demonstrovat principy a mít dobrého učitele (nebo alespoň učebnici) programování a ne jazyka. Např. http://www.htdp.org/ . (Dlouho se podle toho učilo programovat na MIT). Potom teprve něco šaškovat s "běžně používanými technologiemi" - v praxi se často projevuje princip "good enough", což znamená, že to, s čím se běžně setkáš, je strašná sračka a spíš Tě to znechutí (nedávno jsem narazil na neopravený kritický bug v .Netu, reportovaný v roce 2002. Do teď nebyl opravený s oficiálním vyjádřením, že na to naráží málo lidí. Mně trvalo půl dne, než jsem to obešel...)
-
ČZU je zemědělka :) máme tu It zaměřený až moc na matiku a logiku, celej první semestr jsme měli prakticky jenom logiku a algoritmizace a teď jedeme jenom matiku/logiku a k tomu hrozně moc teorie.
ty základy programování právě nepotřebuji protože ty mi nedělají problém (Algo z 1. semestru nám učitelka vysvětlovala na Cčku).
proto taky chci v C a C++ pokračovat (spíš se zaměřit k C++ protože Objekty :)),
Javu sem k tomu připojil protože jsem si o ní něco málo přečetl a není podle mě tak složitá, spíš než syntaxe se bojim že si budu motat jednotlivý příkazy ze všech jazyků dohromady. A to HTML,...,... podle pracovních nabídek je o to velkej zájem takže aspoň ty základy - pokročilou úroveň bych rád zvládl ale jak už jsem psal spíš se chci zaměřit na C a jeho následovníky.
ale i tak díky za radu že to je nad síly většiny z nás :) Samo ne všechno se chci naučit perfektně, šlo mi spíš o nějakej názor kam se vydat a kde brát co nejaktuálnější informace.
-
Toho motání jednotlivých příkazů dohromady se moc bát nemusíš. Nejhorší je to právě v C/C++ nebo Java/Scala, kde si musíš zvyknout na to, že místo printf máš použít std::cin . Vě většině ostatních jazycích nebývá problém.
Nejaktuálnější informace ... s těma je vždy potíž. V praxi se ne vždy používají nejaktuálnější věci (no, ehm, spíš málokdy) a co se učit kvůli nejlepšímu pracovnímu uplatnění je to snad ještě horší. Spíš se změř na to co Tě zajímá a baví než "nejvíce peněz dostávají programátoři v Cobolu, tak se naučím Cobol".
-
A to HTML,...,... podle pracovních nabídek je o to velkej zájem takže aspoň ty základy - pokročilou úroveň bych rád zvládl ale jak už jsem psal spíš se chci zaměřit na C a jeho následovníky.
Základy HTML dneska umějí děti na ZŠ a není těžké se to naučit za cca týden i se základy PHP, kaskádových stylů etc. a taková znalost hledače multibastličů za oříšky uspokojí a tobě bohatě stačí, pokud se tomu nechceš vyloženě věnovat a chceš získat jen jakýsi "přehled". Samozřejmě nemůžeš od sebe očekávat vývoj profi webů, ale na porozumění kódu s kamarádem googlem při ruce a sem tam nějaká ta úprava určitě. S nadstandartem bez praxe nepočítej, kámoš je webař a je to dost honička být na trhu jednička stejně jako v jakémkoliv oboru. Na druhou stranu je pravda že to, že dneska dělá weby každej posunuje laťku standartu dost nízko takže to asi takovej problém zase nebude.
Co se týče výběru jazyka, tak nejsem programátor a ani jím být nechci. Dělal jsem v Pascalu, Delphi, C, Java etc. a ve všech jsem lama i když něco sbastlim ale orientovat se ve zdrojácích často dokážu bez problému tak úplně gumovej taky nejsem. Momentálně dost používám python, kterej ovšem, jako skriptovací jazyk považuji spíše za geniální kalkulačku. S perlem osobní zkušenost nemám ale lidé co znám a zejména BSD komunita se o něm vyjadřuje podobně jako o microsoftu :). Spíše si ale řekni co chceš vyvíjet a na jaké platformě a podle toho pak vybírej nástroj/jazyk ve kterém budeš dělat. Je trochu nesmysl učit se C# kdýž chceš dělat v unix-like etc.
Každopádně dělej to a v tom co tě baví, jinak to nemá smysl. Vykašli se na všechny inzeráty typu: "Hledáme člověka co umí všechno. Značka: Motivující platové podmínky" protože ty potom motivují pouze k výměně zaměstnání. Je lepší umět pár věcí velmi dobře až výborně nežli hodně průměrně až slabě.
Co se týká zdrojů tak tady pár co mě napadne:
http://www.cprogramming.com/
http://www.w3schools.com/html/
http://www.pythonchallenge.com/
-
Mne kdysi s C strasne pomohl/naucil clanek od pana Šalouna http://melkor.dnp.fmph.uniba.sk/~zenis/prirucky/c/obsah.htm . Tazatel ma zjevne dobre teoreticke znalosti, tak mu staci takovyto kratky uvod a pak uz to je hracka.
-
1. Nevím vůbec nic o IT studiu na ČZU. Ten kdo ví, ti bude schopen poradit konkrétněji, aby se tvé samostatné úsilí se školou lépe doplňovalo, já ti poradím jenom obecně.
2. Vůbec nevím, co teď kolem programování umíš a jak jsi své vědomosti nabyl, takže předpokládám, že tak nějak programovat umíš a máš nějaké znalosti nějakého jazyka ze střední školy, ale elektroprůmka, že to nebyla.
Velmi obecně - pročetl sis inzeráty, co je žádané? Proč ne. Ale nezapomeň na důležitou věc. V těch inzerátech se to explicitně nepíše, ale rozumí se to implicitně - firmy chtějí lidi, co umí:
1. PROGRAMOVAT a současně
2. programovat v KONKRÉTNÍM JAZYCE, ve kterém zrovna dělají.
Programovat znamená pochopit zadaný problém. Navrhnout pro ten problém řešení na úrovni algoritmů a datových struktur. A zapsat to řešení v programovacím jazyce. Programování je řemeslo, které vyžaduje nějaké nadání, nějakou vlastní píli a nějakého učitele. Tyhle věci se mohou do jisté míry vzájemně nahrazovat, ale jenom do jisté míry.
Znalost jak algoritmizovat problémy by tě snad měli naučit na škole, tohle je pro samouka dost problematická věc. Naučit se konkrétní jazyk se můžeš sám - ale pořád musíš myslet na to, že umět nějaký jazyk je jenom ČÁST tohoto řemesla. A to ta snazší část.
Proto bych ti důrazně doporučil se začít sám učit nějaký vysokoúrovňový jazyk. A čím víc nad ním budou různí "jediní správní programátoři" ohrnovat nos, tím lépe pro tebe. Takže např. Java, C# (obojí je komerčně žádáno), nebo Python (komerčně téměř žádán není, ale na výuku je výborný).
C je nízkoúrovňový jazyk, který vůbec není pro samostudium začátečníkem vhodný. A nenech se přesvědčit tím, že sem určitě pár lidí napíše, že oni to zvládli. Začít jazykem C, je výborný způsob, jak si samostudium znechutit a ztratit se v nízkoúrovňové volnosti, kterou jazyk nabízí. C tě natolik zahltí jinými problémy, že ti nezbude tolik času na to obecné algoritmické přemýšlení.
C++ vychází z C a jak už tu psali - je to nejspíš nejtěžší široce používaný jazyk. Pro tebe to bude znamenat spojení toho horšího ze světů vysoké a nízké úrovně. Na C++ na dlouho zapomeň.
Co se týká webu, tak tam neváhej HTML se uč, protože jeho znalost se bere jako samozřejmost. Pokud tě zajímá verze, tak 4.0, ale uč se z čehokoliv, co není 10 let staré. A až to budeš umět, tak k tomu přidej nějaký jazyk pro web. Klidně PHP. Ale v principu to můžeš spojit i s tím "pořádným" vyšším jazykem, co se budeš učit. S Pythonem bys tak zabil dvě mouchy jednou ranou. Web se dá programovat i v C# (ASP.NET), ale to bych viděl jako zbytečně komplikovanou věc, pokud není programování webů tvůj hlavní zájem. A programovat weby jdou i v Javě, ale tam platí totéž co pro ASP.NET, plus to nebude pro začátečníka tak snadné rozjet.
HTML s důrazem na verzi 5 začni řešit, až budeš dobře umět HMTL 4 + nějaký programovací jazyk.
-
Já bych ještě k NoFlame doplnil že začít s vysokoúrovňovým programováním a s HTML má navíc tu výhodu, že snadno produkuje "osahatelné" věci které jsou použitelné takže se člověk snáze dokope k učení a posunová se dále ve vlastním problému než při řešení nízkoúrovňových dílčích záležitostí které potřeba vyřešit předtím než vůbec začne řešit svoje.
-
"Co se týká webu, tak tam neváhej HTML se uč, protože jeho znalost se bere jako samozřejmost."
...
to samé alespoň základy JavaScriptu. (Prosím, neplést s Javou, jedná o dva rozdílné světy a lidi si to často pletou ... na přijímacím pohovoru na Java programátora jsem dostal otázku "a umíte v Javě skriptovat? jako JavaScript?" - kdyby se neptel personalista ale někdo, kdo o tom něco ví, tak bych asi hned odešel)
-
Ono se dá považovat skupina HTML, PHP, CSS, JavaScript asi nejběžněji MySQL za jednotnej celek, kde jedno bez druhého moc nemá smysl a alespoň základy by měl znám každý kdo v IT dělá.
S tím JavaScrptem to plně chápu. Zrovna nedávno jsem jako neprogramátor vysvětloval člověku, co udělal webový firemní informační systém, že to je něco úplně jiného. Koukal na mně jak vyoraná vrána a nakonec jsem mu zachránil 140 euro, které se chystal vyhodit za jakousi java certifikaci, o které si myslel, že jí má v kapse, i když se nechal přesvědčit až po absolvování první přednášky kurzu běžícího na místní univerzitě.
-
všem moc díky za rady hlavně příspěvěk od noFlame mi dal dost,
jen nechápu proč se teda na školu učíme C a C++ a ještě nám říkaj že je tím nejlepší začít když vy mi tady radíte až vysokoúrovňový jazyky, na druhou stranu věřim tomu že máte víc zkušeností s praxe než naši učitelé.
(C sem se převážně plánoval naučit samostudiem pomocí příkladů a hotových projektů protože na škole máme opravdu jen základy protože máme nedostatek času).
na střední jsem se učil visual basic (ve VS ne for application) ale ten mě nijak nevzal. Tady jsem zatím pochytil strukturogramy, práci s algoritmy, matematickou logiku a s tím spojený převádění zadání do stylu podle kterého se dá něco napsat. Plus to C a C++.
mimochodem s matikou ani logikou nemám potíže jsem schopen hodně počítat i jen z hlavy bez pomoci papíru nebo počítače (včetně derivací, integrálů apod.)
Každopádně dám na vás a seženu si učebnice Javy, každopádně zkusim si to C++ projet a uvidim třeba mi sedne třeba ne ale je to muj vytyčenej cíl ke kterýmu se chci jednou dostat.
ještě jednou moc dík všem hodně stem i pomohli, doufám že jednou takhle taky někomu pomůžu :)
-
Já myslím že je to spíše myšleno pro úplné začátečníky co namjí ponění o algoritmech, procedurách, funkcích, proměných, konstantách či třídách, ukazatelých a jiných věcech. Pokud už si v něčem dělal, jako že jo tak není problém dělat s čímkoliv. Jen se v jistých jazycích jisté věci vysvětlují lépe bych řekl a v jiných jsou zase téměř nepochopitelné :)
Po nás zase chtěli Javu a já nadával že chci C, asi věděli kde bude dneska trh nejvíce strádat.
Jináč s céčkem mi dost pomohlo na doporučení bývalého kolegy studium zdrojáků k unixovým aplikacím etc. člověk si to může trošku poštelovat pohrát si s tím a vydí jak fungují hotové věci a jak se vlastně tvoří. Výhodou open source je, že je open source :) takovéhohle luxusu se ti na MS platformě téměř nedostane a je to asi nejlepší škola.
-
Tak já netuším, proč se učíte C/C++, důvodů může být celá řada. Od toho, že na škole není prostor naučit vás více jazyků, tak se musí začínat hned tím produkčním. Ovšem netuším, jak má být profilovaný IT absolvent ČZU, jestli C/C++ skutečně jsou produkční jazyky pro tento typ absolventů.
C se jako první jazyk učí na mnoha elektrofakultách, protože ten jazyk je potřeba na hrátky s HW, ale to asi taky nebude případ ČZU :-) C se učí jako první jazyk na některých fakultách, co se profilují jako elitní - aby hned v prváku měli síto na ty, co nezvládnou abstrakci nějakého algoritmu a současně abstrakci pointerů. Ale to mi k ČZU taky nesedí.
Možná vás učí C/C++, protože tam není dost lidí, kteří umí něco novějšího. Nebo jsou líní předělávat osnovy, když mají něco, podle čeho jedou už 15 let :-)
Ne, fakt nevím.
Jestli se C/C++ ve škole učíte, tak ti holt nic jiného nezbývá, než se ho učit - a může být dobrý nápad se v něm samostudiem zdokonalovat. Bude ovšem otázka, jak moc budou učitelé ochotní se zabývat něčím, co jde za rámec předmětu.
A je velká otázka, jestli když C/C++ musíš, jestli je dobré tříštit síly a učit se současně C/C++ a k tomu HTML (+JS + CSS) a ještě k tomu nějaký vysokoúrovňový jazyk jako Java/C#/Python.
Asi bych se teď soustředil na C/C++ a HTML (+JS + CSS).
-
jen nechápu proč se teda na školu učíme C a C++ a ještě nám říkaj že je tím nejlepší začít když vy mi tady radíte až vysokoúrovňový jazyky, na druhou stranu věřim tomu že máte víc zkušeností s praxe než naši učitelé.
Jsou 2 základní přístupy k výuce programování: Od strojového kódu k vysokoúrovňovým jazykům a druhý je od vysokoúrovňových jazyků směrem ke strojovému kódu. Oba přístupy mají své výhody a nevýhody, oba mají své zastánce i odpůrce. Začínat s C++ mi připadá jako začínat zprostředka.
Vysokoúrovňové jazyky umožňují řešit úkoly velmi rychle, motivuje to k dalšímu studiu. Nejlépe asi uvedený Python. Nevýhodou tohoto přístupu je velký odstup od HW, některá řešení mohou být neúnosně pomalá, protože autor nepomyslí na fyzické možnosti počítače. Může to však být i naopak.
Pro nízkoúrovňové jazyky je obvyklá mnohem delší doba vývoje a výsledek nejistý. Očekává se rychlejší zpracování (i řádově), ale nemusí se dostavit vždy. Autor se také může utopit ve složitostech vlastní aplikace a převzetí projektu jiným programátorem bývá často problematické, ne-li nemožné.
Požadavkem doby jsou aplikace rychle vyvíjené a snadno udržovatelné. Ve vyšších jazycích se logické chyby často hledají mnohem lépe. Navíc často nabízí škálování. Nedostatek výkonu se dá snadno nahradit použitím více strojů.
-
Rozhodl jsem se naučit se pořádně C/C++ a poté přejít na C# nebo Object C/Cocoa, ale chci umět i alespoň nadstandartně HTML, PHP a CSS)
Podle mě to bereš moc hopem. Základy sice můžeš pochytit během relativně krátké doby, ale zvládnout jazyk včetně celého ekosystému kolem(patterny, frameworky, přidružené technologie, ...) na profi úrovni trvá několik let praxe. C/C++ mi osobně do začátku nepřijde jako nejlepší volba, volil bych něco jednoduššího na pochopení. Zvlášť pokud to chceš míchat dohromady s naprosto odlišně koncipovanými jazyky jako je PHP, tak v tom za chvíli můžeš mít docela bordel. Určitě stojí za zvážení rozhodnout se mezi desktopem a webem a teprve až po zvládnutí jednoho se případně učit druhé. Je lepší ovládat jednu věc pořádně, než umět od všeho něco a mizerně.
teď ta hlavní otázka na kterou jsem zatím nikde nenašel odpověď -> Jaké verze se mám učit?
třeba u HTML jsem nikde v požadavcích nenašel verzi, je mi jasné že 4ka pomalu končí ale 5ka ještě nemá dokončený standardy.
Pokud chceš mít jenom základní přehled, tak je to celkem jedno. Pokud se ale chceš webu věnovat na profi úrovni, tak bys měl znát HTML4, XHTML i HTML5. Začni čtyřkou a pak postupně další. V současnosti je nejpoužívanější XHTML. U CSS bys zase měl dokonale znát dvojku a po jejím zvládnutí trojku. No a jak už tady padlo, v moderních webech si moc neškrtneš bez znalosti JavaScriptu. S jmenovaným si vystačíš jako kodér - pokud bys chtěl zároveň dělat i backendy aplikací, tak spolu s PHP(nebo jiný jazyk použitelný na backendu) to chce zvládat i SQL a návrh databáze.
možná se ptám zbytečně pro nedostatek znalostí ale hodily by se mi co možná nejaktuálnější zdroje (www i knihy) ze kterých bych měl čerpat abych se neučil zastaralé věci a neškodil si tak.
Do začátku sice může pomoct nějaká dobře zpracovaná učebnice/fórum/google, ale osobně dávám přednost přímo dokumentaci, vyhneš se tak různým dezinformacím a zjistíš plno věcí, o kterých se autor ani neobtěžoval zmínit.
-
Proč se na VŠ učí jako základ C/C++ ?
To je poměrně jasné, protože programátor by měl znát svuj počítač. Copak by jste si představovali jako základ?? Smalltalk aby se učili programátoři programovat na
Pejsek1 zastekej;
Kocicka3 zamnoukej;
Nebo snad java aby se učili studenti hledat na googlu potřebnou třídu a poté udělat:
import;
problem.solve() ?
Každý z vás jistě ví že se nealgoritmuje v jazyce nýbrž na papir a v každém paperu, kde se nějaký algoritmus vysvětluje se abstrahuje od jakéhokoliv programování a šahá se tedy spíše po pseudokodu / matematice. Tím je tedy i naprosto vysvětlitelné, proč se zaměřuje IT výuka hodně na matematiku, logiku, stringologii, grafy ... Přepsat to potom do konkrétního jazyka je práce pro kodéry (honosně pojmenované "Softwaroví inženýři" = kreslíře ) a to je potom vyloženě mechanická práce.
Ti nejlépe placení nejsou soft. inženýři co to jen naťukají v tom konkrétním jazyce ale manažeři a lidé co tomu skutečně rozumí
(znalost teorie složitosti, diskrétní matematiky, lineární algebry, grafových algoritmů) a opravdu znalci (ASM, JVM znalci, HW,..)
Začít v C je opravdu o hodně těžší než začít v něčem HLL a potom nevědět co je to paměť (Java, C#). Ale to tam se naučí člověk správně programovat...
-
to Lege:
Ze zkusenosti muzu rici ze na vetsine IT fakult drtive vetsine skol se uci programovani v prvnich rocnicich spise jako zaklady algoritmizace a pro tyto ucely neni C/C++ úplně nejvhodnější. Programátor by měl znát svůj počítač, ale od toho jsou tady software development obory a to bych řekl, že zadavatel příspěvku tak úplně nestuduje vzhledem k ústavu do jehož stáda patří.
Nikdo tady nemluví o extrémech typu robot Karel, Baltík etc. ale vysokoúrovňové jazyky jsou pro vysvětlení principů algoritmizace daleko vhodnější z již v předchozích příspěvcích uvedených důvodů.
-
to Lege:
Ze zkusenosti muzu rici ze na vetsine IT fakult drtive vetsine skol se uci programovani v prvnich rocnicich spise jako zaklady algoritmizace a pro tyto ucely neni C/C++ úplně nejvhodnější. Programátor by měl znát svůj počítač, ale od toho jsou tady software development obory a to bych řekl, že zadavatel příspěvku tak úplně nestuduje vzhledem k ústavu do jehož stáda patří.
Nikdo tady nemluví o extrémech typu robot Karel, Baltík etc. ale vysokoúrovňové jazyky jsou pro vysvětlení principů algoritmizace daleko vhodnější z již v předchozích příspěvcích uvedených důvodů.
Kvalitní názor. A ohledně ČZU to tak asi bude. Co vím tak tam stejně do studentů vší silou perou (především nejmenovaný "Ovoce" profesor ) smalltalk ze všech sil. Nevidím ale příliš výhodu třeba Javy oproti C++ snad kromě memory managementu, prototypovat se dá stejně dobře v C++ jako v Javě a objektový model mi také přijde poněkud rozumější než se zabývat podivným a poněkud nekoncepčním řešením přes boxing primitivních typů, interfacy a další věci..
Záleží ale hodně na tom jakým způsobem se ta algoritmizace v Javě vyučuje, znám 2 fakulty, kde to probíhá stylem "Tady použijete .sort() tamhle compareTo() tady použijte tuto metodu, tamhletu.." To potom opravdu neučí lidi programovat. Pokud je to ale tak, že se opravdu učí algoritmy tak je to zřejmě v pořádku.
-------------------------------
Sem odchovaný ProgTestem
-
Ono je to těžké, ty potřebuješ získat hodně dobré návyky na myšlení. Potřebuješ algoritmizovat a to tak, abys tomu nějak rozuměl "po svém". Na tohle mi třeba hodně pomohl jazyk Scheme potažmo Common Lisp. Ty jazyky mají nejjednodušší syntaxi (jedinými synt. symboly jsou závorky).
Give it a try.
-
ad Lege
Nezáleží na tom co která škola vyučuje za jazyk, ale měla by to umět svým studentům vysvětlit a odůvodnit a to se zjevně neděje.
Lidi které programování baví se s ním seznámili už dávno a v těchto předmětech se dostaví pouze na první cviko pro zadání semestrálky a pak na další ji odevzdat. Ostatní se pak snaží semestrem prokousat smolením testů v podobě najdi zapomenutý středník a přepiš, aby fungovalo, a to si myslím, že v nikom moc chuť programovat nevzbudí jelikož chybí vysvětlení zásadního problému a to PROČ vůbec programovat a proč v TOMTO určitém jazyce.
Dnesni doba je ovsem s prominutim natolik zku_vena, ze podporuje generovani dutejch hlav s diplomem a prehlizi fakt, ze k zisku titulu je potřeba reálných znalostí použitelných v praxi a zrovna IT je toho zarnim prikladem. Dodnes si pamatuju prvni prednasku jisteho profesora ktery rekl: "Ti z Vás, kteří chcete studovat jste tady správně. Vy co chcete být úspěšní a vydělávat peníze tady ztrácíte čas." Až s odstupem času a zkusenostmi cloveku dochazi jak moc velkou pravdu vlastne mel.
-
kazdy na to ide po svojom.
ja som vecny amater a programujem vtedy ked potrebujem ulahcit kazdodennu opakujucu sa cinnost.
po urcitom case sa z kuskov scriptov stavaju vacsie celky a mnohe casti kodu sa opakuju.
Najskor staci prikazovy riadok ale postupom casu to treba prezentovat v grafike alebo prostrednictvom web stranky , grafu atd.
Zrazu clovek pride na to ze potrebuje napisat nieco komplexnejsie , vykonnejsie , v threadoch a pripajajuce sa na oracle,ldap, mysql
a este komunikovat cez SSL.
Tym som chcel povedat ze nech nemlatis prazdnu slamu a nevybijas sa len tak do vzduchu najdi si ciel ktory chces vyriesit.
Na ten si zvol najvhodnejsi prostriedok (Perl je ako pomocnik nenahraditelny) , rozhodni sa ake platformy by si chcel zastresit a podla
toho sa zariad.Ako budes projekt rozsirovat, vylepsovat , ladit budu pribudat skusenosti z roznych oblasti (grafika, databazy,web...).
Kombinacia dvoch jazykov mi pride optimalna. Pouzivaj veci na to na co sa hodia najlepsie.
Mne pride ako dobra volba prave C++ / QT4 / QML ale ci je to komercne do buducnosti dobra volba bohuzial neviem .
-
Neni to jednoduche, na skole sa sice ucis algoritmy, napriklad triedenie poli roznymi metodami. Lenze v praxi nikoho toto nezaujima aky si dobry z teorie, ale ci vies, alebo nevies rychlo riesit veci z praxe.
Takze lepsie je ked pouzijes vysokourovnovy jazyk, naimportujes si prislusny modul a napises list.sort() a mas program hotovy za 2 hodiny, ako ked si ten sort() sam v C 2 dni programujes a hladas chyby.
Ja som sa na skole naucil iba Pascal, C a na numerike Fortran ale v praxi som spoznal skriptovacie jazyky ako REXX, Perl, Tcl, Python, Ruby, Groovy (poradie uvadzam podla veku - nie podla mojej oblubenosti) a tieto mi pomahaju riesit kazdodenne problemy.
Podla mna ked sa v skole ucis algortmizaciu v klasickom jazyku ako je C/C++ je to super. Ale ak to s programovanim myslis vazne kukni sa popri tom aj na nieco ine ako napr. Java a hlavne horeuvedene skriptovacie jazyky - su to neocenitelni pomocnici.
Pomaha citat diskusne fora a zapajat sa do nich. Ja ked mam cas, tak si formu udrzujem tu:
http://www.tek-tips.com/userinfo.cfm?member=mikrom
-
No, já tedy nejsem programátor, ale fakt mně zaujalo, že nejsi první od koho slyším, přišel jsem na školu, jsem tam 1-2 semestry a automaticky přemýšlím o tom, jak uspět na trhu práce. Před deseti lety, kdy jsem byl asi v tvým věku většina z nás přišla do školy, prvních pár přednášek a cvičení se snažila pochytit "wo co jako gou", pak nafasovala zadání semestrálek a po zbytek semestru (ano, nějaké to vylejvání hlavy mezitím taky proběhlo) se snažila stmelit tu akademickou srágotku, aby dostali alespoň zápich...
Z praxe ti řeknu jedno. Jestli tě nebaví teoretické věci, tak jsi na VŠ zbytečně. Když půjdeš rovnou do praxe a budeš mít chuť a touhu, tak na tom budeš po pěti letech zaručeně líp, než budoucí Ing.
Jinak já se kdysi učil programovat v C, pěknou učebnici na C napsal Herout.
-
>>> http://en.wikipedia.org/wiki/The_C_Programming_Language <<<
...is all you need.
-
sice jsem v programování stále lama (IT není hlavním oborem mého studia), nicméně jsem si už pár jazyky prošel a mohu sdělit své zkušenosti
C - výborný low level jazyk pro low level záležitosti, před programátorem se nesnaží žádným způsobem skrývat železo, na kterém program běží, pokud plánujete pozdější přechod k C++ je vhodný i jako jazyk pro osahání základů na command line aplikacích , pro začátečníka může být díky své striktní typovosti a nulové automatizaci trošku náročnější, nicméně lze se ho naučit - sám jsem se ho učil ihned po BASICu, na gymnáziích bývá většinou prvním jazykem, ke kterému studenty posadí
C++ - jak již bylo řečeno nejpokročilejší a nejkomplikovanější plně objektový kompilovatelný jazyk - na jedné straně umožňuje použití mnohých elegantních technik, na straně druhé umožňuje v některých místech low level kontrolu nad programem po vzoru C, před příchodem šidítek typu .NET byl prakticky standardem pro tvorbu desktopovývh aplikací, pro začátečníka nicméně nevhodný - abyste se v něm neutopil, musíte již mít něco odprogramováno, společně s C++ je zároveň vhodné se učit i nějaký GUI toolkit, abyste mohl vytvářet grafické aplikace
Java - výborný jazyk pro výuku (převážně OOP), ze zkušeností, co mám z J2ME navíc Java obsahuje velice přehledné API pro ovládání GUI aplikací (očekávám, že klasický desktop na tom bude podobně), bohužel aplikace napsané v Javě jsou na desktopu mnohdy neskutečně pomalé
Pascal - společně s Delphi nejjednodušší cesta, jak začít psát grafické aplikace pro win (na vejšce nás naučili základy prakticky za jeden semestr - a to tak, že v první hodině pochopíte základní filozofii win api a samotný jazyk se učíte až později, kdy už si vytváříte klikací aplikace), bohužel doba Pascalu zkončila někdy s koncem 90. let a dnes se již prakticky nepoužívá - proto nepovažuji příliž za vhodnou variantu
HTML/CSS/PHP/JS/MySQL - kombinace, která vám umožní vytvářet webové aplikace, její znalost se hodí, PHP je pro začátečníky celkem lehce stravitelné, nicméně musíte mít na paměti, že prostředí webu je naprosto jiný svět, než ten desktopových aplikací
ke zdrojům bych vám doporučil se podívat na seriály o programování zde na rootu a případně na http://builder.cz/ nicméně počítejte s tím, že jakákoliv kniha o programování se stává zastaralou ve chvíli, kdy je vydána, proto taktéž studujte aktuální znění manuálů k programům, které budete používat a nebojte se hledat aktuální informace na diskusních fórech (např. u HTML již ani žádná verze 5 neexistuje a standardizace probíhá v živém režimu)
-
C++ ... nejpokročilejší ... plně objektový ... jazyk ...
( s timhle vam opravdu zkuseni programatori souhlasit nebudou )
-
Jeslti chces najit dobre placenou praci nauc se JavuSE/JEE, hibernate, spring, udelej si vlastni web aplikaci, nasad ji na tomcat pripadne nejaky full aplikacni server (JBoss, WebLogic/Oracle AS), nauc se zakladni moznosti jejich konfigurace, design patterns, jaky je project lifecycle (bugovaci systemy, buildovaci systemy, tzv. continous integration) zakladni metodiky v testovani (junit, typy testu (napr. integracni. regresni)), zakladni podpurny knihovny (napr Apache family) zakladni frontend framewroky (wicket, jsf, tapestry, gwt..aspon neco z toho) zaklady concurrency (knihovny/tridy a best practices), zaklady performance (nastavovani garbage collectoru, zakladni prepinace virtulani masiny, zaklady best practice jako zavirani streamu etc.) dal zaklady SQL a relacnich databazi pripadne i noSQL ays vedel kdy ktery pouzit, zaklady faiolver mangementu (co to je replikace sessiony etc.), zaklady HTML, javascriptu, CSS, zaklady HTTP protocolu, seznam se s moznosti debugovani programu, jak nastavit logovani v programu, jak resit bezbecnost v aplikacich (knihovny, autentikace vs autorizace), zaklady prace s XML (SAX vs DOM, JAXB) transakcni mechanismy (optimistic/pesimistic locking) code quality coverage tooly a v neposledni rade se hodne dobre nauc nejake IDE/Editor v kterym tohle vsechno (resp. 99%) budes delat (napr. Eclipse). Nastuduj si to, zazij si to, nauc se anglicky a nebudes mit problem.
-
koukám že se to tu nějak rozjelo :)
každopádně díky i za další názory a rady - rozhodl jsem se že dojedu C do levelu abych zvládl udělat zkoušku, a jak už tady někdo napsal tak i základy Smalltalku díky (i když je to muj oblíbenej učitel) Merunkovi.
pak se vrhnu na C++ a Javu, a k tomu si přidám to co budeme dělat v dalších semestrech plus ty základy html, xhtml a toho co k tomu patří :)
s tou angličtinou - nedělá mi problém mluvit s gramatikou jako rodnej mluvčí, to je spisovně i nespisovně bez chyby , rychle a s přízvukem :) Dlouho jsem si myslel že takhle umí anglicky každej ale pak jsem si začal všímat že lidi naopak anglicky neumí skoro vůbec což nechápu a asi ani nepochopim...
Do toho se učím Dánsky a Německy a ovládám trochu ruštinu a protože jazyky kterejma se mluví jsou vlastně stejný jako jazyky kterými se programuje tak věřim že nebudu mít potíže se naučit jakejkoliv programovací jazyk když k tomu přidám že s matematikou nemám nejmenší problémy
ale to je odbočka, to co jsem potřeboval vědět původně jsem se dozvěděl. Low-level aplikace mě moc nezajimají proto pro mě C nebo assemblery vhodný moc nebudou. C++ se chci naučit už jen protože je to můj sen a jeden z cílů co jsem si určil a k tý Javě jsem stejně chtěl směřovat, ještě si rozmyslím platformu kde bych se chtěl orientovat (Jasně jsem na rootu ale musím to napsat že mě táhne Apple jak Mac tak iOS)
takže ještě jednou díky moc všem za vaše postřehy :)
-
a protože jazyky kterejma se mluví jsou vlastně stejný jako jazyky kterými se programuje
;D ten byl dobrej
ale jinak ti závidím. My debilové se to musíme drtit a beztak to na nás stopy zanechává jen nevelké :). Lidi skutečně anglicky neumí a to co se v ČR a SK považuje za fluent s tím by člověk v zahraničí neobstál.
-
a protože jazyky kterejma se mluví jsou vlastně stejný jako jazyky kterými se programuje
;D ten byl dobrej
Mě to tak fakt přijde :) Syntaxe == gramatika, Slovní zásoba == příkazy, k tomu aby člověk mluvil potřebuje slova setřídit pomocí gramatiky no a u programování k tomu použije logiku :)
-
Ok, když myslíš :). Někdo má holt na jazyky talent. Na druhou stranu ale znám i experty s certifikátama co o sobě hrdě hlásají že jsou fluent a fakt si ani neumí objednat pití v restauraci a těch je bohužel velká spousta ;D Já osobně se anglicky domluvim dobře a taky s přízvukem :) ale pořád se považuju za pokročilého. Je to asi otázkou pohledu.
Ta tvoje analogie má jednu vadu. Lidská řeč není na gramatice závislá existenčně. Pokud uděláš gramatickou chybu v mluvené nebo psané řeči tak pořád příjemce rozumí. V programování máš syntax error a bílej tesák ti brazilskyho fotbalistu na to jestli, máš algoritmus správně či ne. V jazyce dokonce plati, ze cim vic delas chyb tim spise si in a cool a tim spise ti ostatni rozumi.
-
Ok, když myslíš :). Někdo má holt na jazyky talent. Na druhou stranu ale znám i experty s certifikátama co o sobě hrdě hlásají že jsou fluent a fakt si ani neumí objednat pití v restauraci a těch je bohužel velká spousta ;D Já osobně se anglicky domluvim dobře a taky s přízvukem :) ale pořád se považuju za pokročilého. Je to asi otázkou pohledu.
Ta tvoje analogie má jednu vadu. Lidská řeč není na gramatice závislá existenčně. Pokud uděláš gramatickou chybu v mluvené nebo psané řeči tak pořád příjemce rozumí. V programování máš syntax error a bílej tesák ti brazilskyho fotbalistu na to jestli, máš algoritmus správně či ne. V jazyce dokonce plati, ze cim vic delas chyb tim spise si in a cool a tim spise ti ostatni rozumi.
Get out froom here's
regards
uncle dolan
-
Get out froom here's
regards
uncle dolan
[/quote]
Gooby wil yu mek me pregant?
-
Get out froom here's
regards
uncle dolan
Gooby wil yu mek me pregant?
[/quote]
Wait a sec are u trying to cheat me again?