Ano, to som si ako student myslel tiez.
Potom som prisiel do praxe a zistil, ze tie nadcasove programovacie principy nie su same o sebe spasonostne, pretoze kazdy jazyk je iny a kazdy vyzaduje iny pohlad a ine riesenia. Nehovoriac o tom, ze aj samotne zadania/zakazky maju kazda o sebe ine poziadavky, problemy.
no ale vš není od toho aby vychovávála programovací "dělňase" a tyhle specifika se člověk vždycky naučí lépe v praxi. Ty obecné principy mají delší platnost a i když jsem byl taky mezi těma co brblal že je málo praxe tak tu jsem dohnal v následujících letech v práci... spousta věcí mi takhle došla až zpětně.
Jistě, ale počkejte za 20 let. S počítači jsem začínal dost dávno, on-line terminál byl vzácností a málokdy uměl zobrazit malá písmena. Po tolika letech z celého IT zůstanou jen ty principy (i ty je nutno pořád aktualizovat a doplňovat). Ale z programovacích jazyků moc nezůstalo: Algol je mrtvý, nástupce Pascal taky, C nebylo, a programovat zpracování textů ve Fortranu je poněkud nepohodlné, eufemisticky řečeno.
Ale pořád na začátku 1. ročníku potkáte studenty, kteří si nejsou jistí, když mají napsat obyčejný cyklus (třeba průchod pole) a na jazyku opravdu nezáleží.
Asi mas strach, ze by si sa musel ucit nove veci, lebo rozmyslanie boli :-)
Niektori ludia su neschopni sa ucit ine veci, ini su zasa tvrdohlavi. Poznam cloveka, kltory odmieta pri programovani v Jave pouzivat eclipse z nepochopitelnych dovodov. Takato neflexibilita je samozrejme na skodu - hlavne pre dotycnych ludi, pretoze tym kazdeho naseru a druhu sancu uz nedostanu.
Nejsem si tak jistý.
PHP by mohlo být na začátky super, protože je dost benevolentní a tak se člověk v úplných začátcích opravdu zabývá jen "programováním", i prostředí a způsob běhu programu je jednoduchý, tedy žádné prekompilace, balíčkování atd., protože na začátečníky je toho i tak dost. Plus jednoduše v kombinaci s Mysql třeba uvede začátečníka do užívání databáze.
Nicméně ale PHP ve své benevolentnosti (třeba parametry funkcí například) zase nedává začínajícím programátorům náhled, zkušenost a drill už na začátku a tím je nenutí extrémně přemýšlet nad datovými typy a strukturami v kódu, paměti a programu vůbec. A taky OOP v PHP je díky způsobu běhu programu spíš jen moderní a zapouzdřující záležitost, než že by mělo skutečný význam jako OOP v Javě nebo C, resp. C++.
Osobně si myslím, že PHP v rukou začátečníka dokáže napáchat na jeho rozvoji velké škody a nakonec bude stejně jednou vystaven těm "obtížnějším" jazykům jako C, Java ...
Možná ta otázka zní špatně. Možná by měla znít: "Jaký je to výklad, kolik je na něj času a co se pak od studenta očekává? Protože když budu mít naučit programovat ajťáky a budu na to mít 3 semestry, zvolím jiný jazyk než když budu mít učit jeden nepoviný předmět na ekonomce 1 semestr.
Ukludnime sa. Nie je dovod viest s PHP vojnu. On to ako jazyk sam o sebe nie je zly a svojmu ucelu vyhovuje. Inak by nedosiahol taky stupen vyuzitia. Ma dobru krivku ucenia.
Dobremu programatorovi prestane po case stacit a sam sa posunie k dalsim jazykom, kde uz sa deju tie krajsie veci.
True story.
PHP je možná špatně navržen, ale proč se stále používá? Podle mě je prostě jednodušší a snadno použitelný. Díky němu pak lze vytvářet všemožné webové appky.
Si vezměte hotové aplikace. Různé CMS (Drupal, Joomla, Wordpress, ...), e-shopy (PrestaShop), analyzátory (Piwik), DB manažery (phpMyAdmin, Adminer) atd. Má něco takového Rails, ASP.net nebo Java atd? Možná pro ty jazyky existuji hotové řešení, ale u nich je zase problém s dostupnosti, se zprovozněním, s nastavením apod.
PHP prostě doplácí na svoji popularitu a jednoduchost. Každý jazyk má své slabiny. Já třeba nepřišel na chuť s Ruby/Rails. Pro mě je to nepřehledný, nepochopitelný jazyk/framework. A taková chuťovka jako elsif - koho by to napadlo. Já do té doby byl v přesvědčení, že Ruby nezná elseif, který se takto všude používá, a zbytečně tak rozepisoval if bloky.
Jednoduše se dá napsat, že PHP je tak dobrý jako jeho programátor. Lze napsat kvalitní kód, ale i naprosto zprasený kód.
A s tím souvisí to, o čem píše tazatel. Jako prvotní jazyk nebo jako prostředek pro začátek programování se nehodí. PHP je až moc volný, aby se z něj dalo naučit základy programování. K tomu je potřeba nějaký, který má zásady, pravidla. Proto se doporučuje jazyk C nebo jemu podobný. Já na střední škole začínal s Pascalem a i ten je dobrým příkladem pro naučení se programování.
Základním principem programování je naučit se postupy, pravidla atd. nikoli jazyk jako takový. Jakmile se naučíte principy, pak není problém přejít na jiný jazyk a aplikovat na něj stejná pravidla. A to platí i pro PHP. Znáte pravidla programování, tak je aplikujete i na PHP. Jen díky tomuto napíšete v PHP kvalitní, správný kód.
Misto jednoduchosti PHP bych to nazval falesnym pocitem bezpeci. PHP rychle doda i zacatecnikovi pocit, ze tomu rozumi a vi co program bude delat. Nicmene je to jen pocit.
K vasim poslednim vetam je nutno jeste doplnit, ze programator zna pravidla programovani, tak jich musi dost zapomenout a naucit se PHP obskurnosti (za vsechny treba to, ze == neni tranzitivni). Pak snad dovede napsat spravny kod.
To nie je novinka
Programátorské schopnosti absolventov klesajú, problémom je Java
Publikované pred 7 rokmi: 17.01.2008
Dvaja profesori z New York University sa v obšírnejšej rozprave zaoberali problémom, ktorý trápi mnohých zamestnávateľov v IT priemysle: programátorské schopnosti
nových absolventov počítačových vied sa postupne znižujú. Podľa nich za to môžu úvodné kurzy Javy a skriptovacích jazykov.
Vývoj programovacích schopností vo viacerých jazykoch potom študentov učí
automaticky používať veľké knižnice a špeciálne balíky s kódom, akoby programovali z predpripraveného receptu[kuchárskej knihy]. Výsledným negatívom pre softvérový priemysel je nedostatočná zručnosť, najmä pre bezpečnostné a ochranné účely,
ktorá je navyše prakticky na úrovni toho, čo ponúka outsourcingový priemysel
Profesori z NYU však varujú, že tento prístup má pre študentov výrazne negatívne následky. V prvom rade sa sa študentom ťažko píšu programy, ktoré nemajú žiadne grafické rozhranie; ďalej nemajú pochopenie pre vzťah medzi zdrojovým kódom a tým, čo hardvér dokáže skutočne spraviť. Nakoniec, vôbec nerozumejú
sémantike ukazovateľov (resp. smerníkov), takže majú neskôr problémy s C
pri systémovom programovaní.
http://www.itnews.sk/spravy/produkty/2008-01-17/c87894-programatorske-schopnosti-absolventov-klesaju-problemom-je-java
Zajímavý, jaký odpor PHPčko má. Ale ani se tomu nedivím. Cokoli je nejpoužívanější, tak je i zároveň nejvíce kritizované. Viz Windows, Android atd.
To jako, že kdokoli s titulem nemá používat PHP? Tak to bude problém. Znám dost lidi, co titul mají a programuji kvalitní PHP aplikace. Jeden příklad za všechny Jakub Vrána, expert na PHP, tvůrce Admineru, má VŠ. Radek Hulán programuje v PHP, i přesto, že je MS fanda a měl by spíše používat .net jazyky. A mnoho dalších.
Ať si každý používá co chce a co je mu lepší.
A jak už jsem napsal. PHP je tak dobrý jako jeho programátor. Kdo umí programovat, tak vyprodukuje i kvalitní PHP aplikaci.
Když to takto vezmu, tak i v javascriptu, BASHi, Pythonu lze napsat prasečiny, protože mají volné pole působnosti - lze tam napsat cokoli.
Ale víte co? Ony ty prasečiny jdou udělat i v Javě. Objektová struktura sice zůstává zachována, ale nic nebrání udělat prasečiny uvnitř metody.
Ale raději to ukončíme. Ty prasečiny tam dělají pouze začátečníci. Zkušený programátor žádné prasečiny nedělá a je naprosto a naprosto jedno v čem to dělá. To znamená, že i v PHP žádné prasečiny nedělá.
Ještě jednou a znovu uvádím. PHP je takový, jaký je jeho programátor. Zkušený programátor vytváří kvalitní PHP kód. Začátečník naopak udělá neefektivní kód.
Jenže nelze jen tak napsat, že PHP jako celek je prasácký, protože tomu tak není.
To je dane tou volnostou PHP, ale to neznamena, ze je to zly jazyk.
Ak by sa v nom nedal napisat dlhy kod, ktory by bol zaroven aj funkcny, citatelny a prehladny, tak by to bol zly jazyk. Lenze taky kod sa v nom napisat da.
Aj v Jave sa daju robit prasaciny... To naozaj nie je ziaden problem, vid aktualny serial o JavaFX.
Takže znáte PHP jen z rychlíku.
To co uvádíte, lze i v PHP. U PHP jde pouze o to, že není přísný a nekontroluje to. To ale neznamená, že programátor nemůže tuto přísnost sám aplikovat.
Je to jeho nevýhoda, ale také i výhoda. Nevýhoda, že to nekontroluje či není přísný, tudíž neprogramátor v tom udělá guláš. Ale zase výhoda ve volnosti. Třeba na obyčejné "Hello world" nepotřebuje nějakou objektovou strukturu, ale jen jediný příkaz. V takovém případě je jediný příkaz kvalitnější a přehlednější než nějaký několikařádkový nepřehledný objektový bordel - parafrázuji Vaši logiku k PHP. Ale pokud chcete Java konvenci, tak není problém v PHP udělat totéž co v Javě.
Argumentovat tim, ze PHP je dobry, protoze je v nem napsano nejvic pseudo-cms/frameworku je asi jako rikat, ze linux je na nic, protoze majorita pouziva Windows.
Vyhody php z pohledu zacatecnika jsou dle meho takove:
1.) Hromada dokumentace a prikladu
2.) Snadna instalace a nepotreba prilis konfigurace ke sprovozneni zakladu
3.) Benevolence v kodu
Nevyhody php z pohledu pokrocileho programatora:
1.) Odporna syntaxe a bordel ve vetsine prehistorickeho kodu, ktery po nekom opravujete
2.) Nedostatek PHP programatoru, nikoliv bastlicu tech je dost
3.) Nekoncepcnost fraworku/cms, zadne coding standards -> bordel a hniloba
Ja zacinal poradne programovat az na PHP, predtim trochu .NET a nejake to domaci bastleni na windowsi platforme. Zacal jsem s Mistrovstvim v PHP, ktere me naucilo solidne zaklady, pote s narustajici popularitou OOP jsem zacal cist 33 objektovych navrhovych vzoru, ktere vsak pouzivali jako priklad Java code. Bylo celkem uzitecne vytvaret stejne scenare v jinem jazyce, clovek se toho naucil vice a pochopil vice.
ROR ti prijde neprehledny a nepochopitelny, protoze nemas zadne poradne navyky na koncepcnost nebo programovani (nikoliv bastleni). Porovnavat RoR s PHP neni prilis stastne, je lepsi porovnavat treba RoR s Nette nebo HipHop. Na Ruby se mi libi nektere konstrukty co se daji delat.
dej_mu_facku if panacek_si_vyskakuje?
vice napr. zde: http://code.tutsplus.com/tutorials/ruby-on-rails-study-guide-blocks-procs-and-lambdas--net-29811
Prakticky od sebe PHP a Ruby nejsou az tak daleko, je jenom trochu tezssi si ochocit RoR popr. Django oproti PHP, kde netreba resit zavislosti gemu/balicku a kde si clovek udela vsechno, tak nejako jak mu to prijde pod ruku. Neumim si ale predstavit, velkou aplikaci v PHP, to musi bejt na zesileni (radku 100K+) =D Jakmile si jednou osvojite coding standards z RoR, muzete to pouzivat i jinde a uvidite, jak to najednou dava vsechno mnohem vetsi smysl a uz zadne promene $tabulka, $k, $i .... http://itsignals.cascadia.com.au/?p=7
Uznavam, ze na to domaci bastleni a na zacatek PHP neni spatny jazyk na nauceni se zakladu programovani, ale pouzivat ho na opravdove programovani mi prijde spise nestastne. Byt po mem, tak je vychozi jazyk Python, prijde mi nejuniversalnejsi jak pro zacatecniky tak pro pokrocile a lehce se da naintegrovat skoro vsude (hmmm je interpret Pythonu v Cobolu? :D)
Já také pořádně programuji. Je to několik let moje práce. A mám vrozené vlohy pro programování. Tudíž nemám problém se vyznat se v jiných jazycích. C# mi nedělá problémy, ASP.net mi nedělá problémy, Java mi nedělá problémy. Samozřejmě u těchto jde spíše o bastlení. Ostatně sekundární jazyky jsou vždy o bastlení.
Ruby mi také tak nějak nevadí, jen mám u něho nějaký divný pocit. Nevím jaký. Prostě mi nepasuje. Samozřejmě znám jeho koncepci a fungování.
Pokud jste dobře četl, tak jsem odlišoval Ruby a RoR. Vím, že ROR je to framework. Stejně tak znám a používám Nette. Ostatně, když už porovnávat, tak spíše než Nette, bych ROR porovnával se Symfony, který má skoro stejnou logiku - ovládání přes příkazový řádek, závislosti přes bundly (obdoba gemu), coding standards atd.
Tady to bude vždycky válka mezi skupinami. Třeba PHP vs Ruby. Jedni budou vychvalovat to své a odsuzovat to druhé a druzí zase naopak.
Třeba to, že Railista nepochopí velkou PHP aplikaci. Tak Phpsta zase nepochopí jak může Rails takto fungovat. Atd. ;)
Ale pokud Vás to zajímá, tak velká PHP aplikace není nic složitého ani náročného. Svým způsobem si to lze porovnat i s Rails. Kdybyste dal dohromady všechny soubory Railsu včetně gemů, tak byste měl také 100K+. Tady jde prostě o tu přehlednost. Ty gemy máte někde uložené bokem a ani do nich nesáhnete. Prostě je používáte. To lze provést, a také se to tak dělá, i u PHP. Do vendoru nebo systému nahrajete hotové knihovny, a v aplikaci je jen použijete. Takže ve výsledku kód PHP aplikace může být identický s kódem Railsu. Prostě jak už jsem psal. ROR je vlastně to samé jako Symfony. Jen má každý jinou syntaxi a logiku.
A ještě jedno o tom pseudovšeho a opravdovém programování. Tam jsem uvedl jen veřejné příklady. Tak třeba tento web root.cz. Také ho považujete za výtvor bastlení, či neopravdového programování? Vždyť root.cz je napsán v PHP. Stejně tak většina portálu či služeb.
Ja som pisal celkom narocne aplikacie v PHP (pocet riadkov 100K+) a pokial sa to urobilo dobre, objektovo, s coding standards (ano, predstav si, daju sa aplikovat) a postavi sa to na dobrej koncepcii, tak ziaden vazny problem nebol.
Vsetko je o tom aky programator to pise a aky poriadok si v tom urobi.
> Ukludnime sa. Nie je dovod viest s PHP vojnu. On to ako jazyk sam o sebe nie je zly a svojmu ucelu vyhovuje. Inak by nedosiahol taky stupen vyuzitia. Ma dobru krivku ucenia.
Pokud existuje nějaký jazyk, vůči kterému je třeba vést vojnu, tak je to právě PHP. Kdybych měl zjednodušit důvody, tak protože je špinavým trnem v oku strojového boha.
Podrobnosti viz:
PHP je ukázka toho, co se stane, když banda nekompetentních opic zkouší psát jazyk a banda dalších neschopných opic hledá něco, v čem psát web.
PHP je taky asi jedný jazyk, kde tvůrci 20 let nechápali[0], k čemu se používá BNF a kteří dodneška píšou parser vkládáním dalších a dalších ifů[1]*. Skončilo to tak špatně, že facebook si musel celý jazyk přepsat, protože se jim to začalo hroutit na hlavu. Tak konečně vzniklo BNF, které odporučuji k pročtení, na dlouhé zimní horory. Otrlejší čtenáři můžou zkusit srovnat třeba s tou pythonní, která se vejde na 150 řádek i s 43 řádky komentářů. Jenže tohle je něco, co běžná PHP opice neocení, protože ani nepochopí o čem je řeč a proč by to mělo vadit. Někteří z nich mají dokonce pocit, že nekonzistentní a nesmyslné chování není facka do tváře developera, ale standardní způsob, jakým mají programovací jazyky fungovat.
PHP by se nemělo nazývat jazyk. Je to framework na šmudlání webů. Vždyť i samotný název „Hypertext Preprocessor“ mluví za vše. Přerostlé makro, které se tvůrcům vymklo z rukou, protože se našlo dost lidí, kteří si ho spletli s programovacím jazykem. Pokroucenina, které odpovídá jen pokroucení těch, kdo v ní (dobrovolně) programují. O míře ubohosti autorů nechť vypovídá, že se jim to ani po 20 letech nepodařilo dotáhnout do použitelného tvaru.
*Jako příklad prohnilosti parseru vždy uvádím, že do PHP5.4 nešlo[2] napsat getSomeArray()[2]
. Od téhle verze to jde[3], ale zase nefunguje[4], když se to uzávorkuje (getSomeArray())[2]
. Někomu se to možná může zdát jako detail, nepodstatná blbost, ale to jen naznačuje, jak málo toho ví o konstrukci interpretrů. Ve skutečnosti se jedná o šílenství úrovně cthulhu.
A jako vždy v těhle diskuzích, md5('240610708') == md5('QNKCDZO') zdar.
Abych ještě nějak ilustroval, jak moc je PHP parodie na jazyk, tak dobrý je ten příběh, jak nezvládli ani pojmenování vlastních verzí a po PHP5 následuje PHP7:
http://news.php.net/php.internals/76254
https://www.reddit.com/r/lolphp/comments/2c4m61/and_the_winner_is/
https://wiki.php.net/rfc/php6
Jazyk resit nebudu. Nejsem programator. Jsem jen blbej systemak co jeste k tomu aby zvladl system musel neco naprgat ve strojaku a cecku.
PHPckari byli vzdy startupovi gelousi a dnes je to jeste horsi. S PHP jsem zacinal po tom co skoncil na webu nadvladu perl+CGI shell skripty. Aneb hackni si svuj web. Pak po delsi dobe jsem prebral i maintaining baliku pro jeden komercni OS. Je to humus udrzovat. Ani nestihnes otestovat a uz je tu nova verze.
Pak ti zakaznici busi holema na support proc nejsou nove verze. Nejsou, protoze nejsou testnute se zbytkem systemu. Nebo je tam takova chyba ktera potrebuje proverit a otestovat. U PHP zapomente na backporty a nejakou dlouhodobe stabilni verzi. Na produkni provoz je to proste humac.
"Pokud existuje nějaký jazyk, vůči kterému je třeba vést vojnu, tak je to právě PHP. Kdybych měl zjednodušit důvody, tak protože je špinavým trnem v oku strojového boha."
To akoze myslis vazne, hej? No dobre... Tak si bojuj. :)
K argumentom sa vyjadrovat nebudem, pretoze nie je dovod. V PHP som pisal dlhe roky a robil v nom jednoduche weby a aj komplexnejsie webove aplikacie. Ak sa zvoli dobry pristup a nerobi sa vyvoj stylom halabala kockopes, tak ziaden zavaznejsi problem nie je. Z toho co bolo uvedene mi zivot zneprijemnilo maximalne tak to, ze PHP chape aj 0 ako FALSE a poobne. Ale aj to sa da vyriesit jednoduchym sposobom.
A ano, tiez som sa chvilu potkynal kvoli tomu, ze funkcie su casto pomenovane nekonzistentne a nekonzistentne je aj poradie argumentov. Ale tie najcastejsie pouzivane funkcie som si zapamatal a ostatne som vzdy diskutoval s referencnou priruckou. Ale to koniec koncov robim pri vsetkych jazykoch a nepoznam programatora, ktory nie.
Ak potrebujes mat v zivote nepriatela, proti ktoremu chces bojovat, tak kludne bojuj proti PHP. Ale v skutocnej praxi uvedene problemy nie su tak bolestne, aby robili z PHP nepouzitelny jazyk.
Kdyby se jazyky pouzivali vzdy na co byli navrzeny a ruzne se neohybali byla by to parada, to je presne pripad php jsou veci na ktere je bozi a je tuna veci na co to proste nepouzivat. Druhym prikladem budis java, opet pokud by zustala na serveru tak se o ni dodnes pisou chvalospevy, ale ne nekoho napadlo udet v ni gui a od te doby ma nalepku pomale potvory.
Jediná dobrá vlastnost PHP je přetížení VM opkódů - https://secure.php.net/manual/en/function.uopz-overload.php . Už jen změnit jazyk samotný a bude to OK.
A podívejme, jak to mají na předních univerzitách v USA:
http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-us-universities/fulltext
Jinak Python skvělý jazyk(sice v něm nedělám) - jen ty jeho knihovny jsou trochu hůře organizované.
Môj názor je taký, že je v podstate jedno akým ajzykom sa začína, ale jedna vec je veľmi dôležitá, musí to prednášať/vyučovať niekto kto má prax (ideálne programátori po kariére) a proste upozornia a naučia študentov čo sa nemá robiť, čomu sa vyhýbať, ako správne porgramovať, ako neprasiť kód. Toto vysokoškolským profesorom väčšinou chýba a učia presný opak.
co jsem zažil já, tak se pro výuku programování používala Java, c++ bylo volitelné a na pár předmětů se učilo něco jako assembler a na výuku OS čisté C. Chraň bůh žádné php.... úroveň byla velmi dobrá snad s výjimkou enterprise technologii(spring, javaee) tam to před těmi 5 lety trochu pokulhávalo
Článek by se dal shrnout asi takto - co student, to jiný názor, takže z názorů studentů udělat závěr nelze.
K té teorii vs. praxi - vysoká škola je spíš o teorii, než o praxi. Od praxe jsou spíše střední školy. Zastávám názor, že je to střední škola, kdo by měl naučit studenty, jak co dělat, a vysoká škola pak dovysvětlit, proč to tak vlastně je.
A co se týká používání starých technologií - to může mít na svědomí akreditace. Studijní program se nějakou dobu připravuje, akreditační komise ho nějakou dobu schvaluje, takže už v době schválení studijního programu může tento být zastaralý. A ono se zrovna v IT dost blbě odhaduje, co bude populární za dva až tři roky (aby to v době schválení studijního programu bylo ještě aktuální). V tomhle má taky výhodu teorie - tak tak rychle nezastará.
Ono je to celé zavádějící. Špatně položené otázky budou nejspíše produkovat špatné odpovědi.
Přece i na vysoké škole jsou obory, které jsou více praktické a obory, které jsou více na teoretické bázi. A to záměrně. Můžou mít dokonce stejný obor pod jinými fakultami, který je koncipován jinak než ty ostatní. A to se týká i IT. Přece neexistuje 1 obor s názvem IT a neřeší se tu jestli má málo nebo moc praxe. Přece je tuna univerzit a která má IT tak aspoň 2-4 studijní programy + navazující.
Nemůže se pak ale někdo divit, že když studuje ajťárnu, nebo cokoliv, na univerzitě v nějaké horní-dolní, že tam není dostatek garantů, zkušeností, zázemí a projektů, a pak leze ze školy bez praxe, v lepším případě aspoň nabiflovaný. Ono je to totiž asi jednodušší, ale tím je to taky vykoupené.
A když se zeptáte firmy, no to je jasné. Ty by nejradši, aby jim školy vpálili už konkrétní specialisty na jejich pole působnosti. No to tak ale moc nejde. I proto, že co firma, to jiné zaměření.
S tou aktuálností je to horší, nejméně aktuální je to co bylo schváleno Akr. komisí ale přece výuka stojí na garantovi předmětu a ne na akreditaci. A konkrétně u oboru jako je IT obecně je velmi těžké držet krok. Kdo začne něco učit tak, aby to bylo aktuální za 5 let, až student leze ke státnicím?
No to samozřejmě nejde. Zde se očekává osobní invence, to ale u oborů vysokoškolských je nutností. Nejen v IT.
Ten student co rekl toto:
"Překvapilo mě na hodinách softwarového inženýrství, že metodám vývoje softwaru, které praktikujeme běžně v práci, se říká extrémní."
evidentne nevi ktera bije. Kdyz se neco jmenuje extremni, tak se to tak bude jmenovat i pote, co se to stane mainstream. By me zajimalo jesli stejnou vypovidaci hodnotu maji i ostatni komentare tech dalsich studentu. By se tak clovek mohl treba dozvedet, ze tim nepouzivanym historickym jazykem je treba Java :-).
Přesně toto jsem chtěl napsat.
Kromě toho přesně vím, jak si studenti na mojí škole stěžují. V předmětu teoretické informatiky všem chybí programování, když se má programovat, tak je to moc konkrétní a zbytečně se bazíruje na tom, že by program měl fungovat. Počítání datumů je příliš triviální, ale napsat algoritmus, který přečte z disku soubor jenom jednou je příliš komplikované. Domácí příprava je prý strašně časově náročná, ale rozvrhy ostatních kateder IT studenti nevidí.
Nemám sice VŠ a nejsem programátor. Nicméně občas něco napíšu v Pythonu, C, a PHP (vše jen jednoduché, žádné krkolomnosti). Baví mě nevíce Python. U C si troufám řící že dokážu číst kód a pochopit jak pracuje - trochu jsem si vylepšil D.J.B Qmail. Bohužel jsem začal s PHP což byla asi největšíc chyba. No nic.
Zajímalo by mě ale, jaký máte názor toto (nevím jak probíhá výuka programování na VŠ, zda tam mají nap. výuku Unix systémů apod.):
Má takový programátor plně chápat jak pracuje systém níže?
Z praxe se mi zdá, že současní programátoři netuší co se děje v systému, když se zavolá např print(), co se stane se správou paměti a co s diskem když potřebuju otevřít soubor atd. Neučí se to, nebo se to dnes navyžaduje?
Pak to může dopadnout tak, že programátor programuje a správce přiděluje více a více paměti virtuálu a CPU, protože to přece je potřeba a je kde brát (ale ono nebude donekonečna).
Poslední dobou mi to připadá, že to je jako ta pověstná digitální demence. Jen používat, používat, používat, ale jak to funguje celé (HW,SW) to je mi fuk.
Z praxe se mi zdá, že současní programátoři netuší co se děje v systému, když se zavolá např print()
1. Řada věcí není přesně specifikovaná a jedná se o implementační detail - je tedy zbytečné se je apriori učit.
2. Dále je řada věcí poměrně komplikovaná (například spuštění Hello world ve vyšším jazyce může vést na volání stovek metod virtuálního stroje).
Správně by měl vědět, co se stane, když použije příkaz nebo algoritmus. Ale realita je spíše taková, že se to neřeší. Prostě se to tam nějak hodí. Ale pokud se něco takového řeší, tak spíše formou testu, než analyzováním vnitřku. Se třeba zátěžově otestuje použití for nebo while a výsledkem je, že třeba while je rychlejší. Tak se pak jednoduše doporučí používat while než for. Jen málokdo zkoumá co je uvnitř.
Paměťové i časové náročnosti se řeší až tehdy, kdy je to hodně znát - aplikace se načítá dlouho nebo selže na nedostupnosti paměti apod. Případně, kdy lze čekat, že to bude tak náročné. Pak už řeší kdejakou optimalizaci.
Pokud ale aplikace funguje nějak normálně, tak nikdo neřeší, že by se to dalo ještě o milisekundu optimalizovat nebo ušetřit megabajty paměti.
Ono totiž předčasná optimalizace je také zlo, optimalizovat se mají evidentní průšvihy a ty další až když to funguje a teprve se ukážou. Jinak třeba strávíte hromadu hodin na optimalizaci něčeho, co nakonec průšvih není a milisekunda tam nehraje žádnou roli. V praxi jde pak o peníze vyhozené z okna.
Za nasich cias som musel vediet vsetko od toho ako sa vyraba kremikovy procesor cez je ho navh, sposob prace (rozne architektury), assembler, az po OS, uplne vsetko. Potom este samozrejme rozne druhy roznych jazykov, Pascal, C/C++, LISP, Bash, SQL, ...
Samozrejmostou boli rozne druhy IPC ako shared memory, semafory, socket, pipe, file, ... zlaty QNX.
A v tom ze dnesny programatori skutocne nic nevedia o tom ako to bezi pod nejakym rozhranim ma za nasledok ze v niektrych situaciach nechapu preco nieco nefunguje takze v bezvetri sa im dari ale za dazda to uz neustoja.
Ja je na jednu stranu chápu. Ony technologie jsou dneska hodně složité. Dneska už nevíš kolik taktu ti přesně trvá instrukce, ani embedak už nezná přesně co se děje ve svabech a vmko jazyka si jaksi samo paralelizuje provádění bajtkodu. Takovej progros ani netuší na kterým fs data pristanou a že se data hned po uložení do db nepropisujou. Že než se něco někam zapíše tak mezi drátem a diskem je 30 dalších fyzických a logických urovni. Že disky leží o 15 km dále na nakym logickým fs storage s tisíci parametrama na tuneni.
Na druhou stranu je fakt že by progros měl vědět základy. Jako že OS má jakési diskové cache a že třeba každá databáze má úplně jiné chování a že mít mezi nimi "univerzalni" framework a pak si zmigrovat třeba z sybase na Oracle a z něj na MySQL je fakt totálně mimozni nápad.
Stejně jako chtít stahování zdrojaku přes nezabezpeceny protokol, protože za éry pasnetu to taky tak dělali.
Progrosum prostě chybí dnes už základní it povedomi.
"Progrosum prostě chybí dnes už základní it povedomi."
Nechybí. On totiž (až na vyjímky) z nebe učený nikdo nespadl a dnes je všeho tolik a tak rychle se to mění, že ani není možné, aby měl člověk povědomí o všem.
Ono totiž je otázka, co je vlastně "it povědomí". Plácat o všem, to asi jde, ale mít nějaké "it povědomí" o všem na co se může kdokoliv zeptat, aby ohodnotil něčí "it povědomí", to asi ne
Progros by se nemel divit proc na projekt v rezimu utajeni nemuze stahnout vsechny zdrojaky k sobe a proc pracuje v uzavrene siti.
Progros by mel vedet ze kdyz mu rekne clovek ze na storagi neni misto, ze nemuze jit a argumentovat svemu nadrizenemu hromadou nepouzivanych desktopovych disku ve skladu na odpis.
Progros by mel vedet ze preklada produkt pokazdy na jinem pocitaci s jinymi knihovnami opravdu neni napad a ze je dobre mit jednotne build prostredi.
Progros by mel vedet ze kdyz ta masina na ktere dela neni v cesku ale u nej doma vic jak 3000km daleko, tak ze chvilku trva nez tam ti trpaslici doputuji.
Progros by mel vedet proc neprotlaci 300MB prezentaci k zakaznikovi mailem...
A muzu pokracovat dal.
Ale ma tolerance se dost snizila s praci mezi cizinci. Vazne uz nechci aby kolegove z jedne exoticke zeme zkoumali kde je vga kabel a jak ho nacpat do display portu. Uz je mi znamo ze tihle experti jsou trida v databazich, ale zapojit si dohromady uz jen predinstalovany desktop na to musi mit asistenci. To co zvladne kazda sikovnejsi sekretarka tak oni jsou v koncich.
Když napíšu na úložišti tak nebude jasně jestli je to SANKA nebo NASka což je docela důležitý detail.
IT čeština zamrzla v době salovych počítačů. Už jenom říkat volume svazek je taky nanic. Zvlášť pokud děláte v telekomunikacich;)
Když napíšu sestavovací prostredi tak to nikomu nic nerekne. To je jako co. Výrobní linka? Když napíšu prostredi na kompilaci je to dlouhý a navíc je to kombinace cizího slova takze necista cestina.
Smír se s necistou češtinou. Pro většinu těch věcí neexistují ustálené pojmy. To jestli budeš schopen osvojit si standardizovanejsi anglické pojmy totiž může rozhodnout o naditosti tvé peněženky(rozdil může být v česku I dvojnasobek/trojnasobek) a také šanci nabrat zkušenosti nebo se přestěhovat do zahranici.
Proc by člověk měl používat neustalene pocestene technické pojmy kterým stejně nikdo nerozumi?
Navíc tohle ultracestinarstvi vychází typicky z vysokých škol kde už tam nemá co dělat. Profesionálové z akademické sféry co aktivně pracuji v oboru to chápou, tezitka na židlích generujici vědecké práce nikoliv.
> Z praxe se mi zdá, že současní programátoři netuší co se děje v systému, když se zavolá např print(), co se stane se správou paměti a co s diskem když potřebuju otevřít soubor atd. Neučí se to, nebo se to dnes navyžaduje?
Učí, ale i další věci, které tohle všechno ovlivňují. Asymptotická složitost, zvolená technologie (počínaje knihovnou a konče jazykem/jeho virtuálním strojem).
Že je někdo prase navíc ještě nemusí znamenat, že je neznalý a že někdo něco naprasí ještě nutně neznamená, že je prase. Za optimální kód/technologii ve spoustě případů nedostane vývojář větší odměnu a může to být i naopak. A nezapomeň na to, že dnes spousta programů a systémů je složitějších než dřív, i když zdánlivě dělají totéž. Tím pádem se nerýpají lopatičkou ale bagrem a tomu odpovídá i ta přesnost.
> Pak to může dopadnout tak, že programátor programuje a správce přiděluje více a více paměti virtuálu a CPU, protože to přece je potřeba a je kde brát (ale ono nebude donekonečna).
Četl jsem diskusi, kde si někdo stěžoval, že mu editor Atom žere o 30 nebo kolik % rychleji baterku na notebooku než Sublime Text. Odpovědi se různily od "fakt o tolik" po "proč si to nestrčíš do zásuvky". Ten nový editor je nový (pro 21. století!), cool, používá hipsterské technologie a možná má i skutečné výhody, no ale je pomalý, žere zdroje a nedá se v něm moc pracovat s velkými soubory, no ale on je cool, je zadarmo, má nějaký potenciál, tak se používá. Časem se to o nějaké procento zlepší a lidi si zvyknou, že ta baterka prostě odchází rychleji.
Šlo by Atom napsat v C? Jo, ale za jak dlouho... Obešel by se svět bez Atomu? No, když by musel, ale proč? Mají lidi, kteří programují Atom, skutečné ponětí o "střevech" HW a OS? Někteří určitě,možná i všichni, ale to jim nezabrání dělat co dělají a jak to dělají.
podle mě je princip OOP právě o tom aby se člověk nemusel starat o tom co je "pod tím". Ne proto že programátoři jsou liné "lamy" co to neumí, ale protože i když je člověk sebelepší tak všechno najednou v hlavě mít nemůže a určité odstínění umožňuje soustředit se na konkrétní problém. To že je potřeba mít přehled o základech - složitosti a OS je bez debat. Ostatně jinak bysme všichni programovali v asembleru.
Ano, se vzrůstající složitostí problémů máme přirozenou potřebu používat vyšší abstrakce (větší bagry) a to logicky vede k tomu, že při výpočtech dochází ke zvýšené režii v podobě náročnosti na výkon procesoru, paměť atd. Není to ale jenom problém OOP, FP tím trpí minimálně stejně.
To je děs. Jak můžete vůbec srovnávat PHP a třeba Javu? Jediné co mají srovnatelné je kategorie - programovací jazyky. To je asi tak vše. Každý má jinou syntax, úplně jiný způsob kompilace a běhu programu, jinou oblast použití a vůbec jinou strukturu. (Pojmy OOP, sekvenční programování atd. beru jako obecné, ne jazykově vyhraněné, i když některé jsou jedno více a druhému zase méně.)
To je jako porovnávat jablka s hruškami a obořovat se na jablkáře, že jedině hrušky mají smysl.
Jediné smysluplné porovnání je asi jenom na konkrétním typu projektu a maximálně tak možná podle počtu používatelů a to ještě možná, protože to, že to má nejvíc lidí neznamená že je to nejlepší.
Jestli absolvent tvrdí, že má na škole málo praxe, tak v praxi řeší úlohy takové složitosti, že k jejivh vyřešení VŠ nepotřebuje. A že má code monkey VŠ titul, to jetřeba připsat dvěma věcem:
1. VS jsou tlačeny do nadbytečné produkce absolventů, abychom splnili EU kvóty ovzdělanosti
2. Vysoké (technické) školství je setrvale podfinancováno, takže se plní bod jedna
Následkem toho začíná Ph.D. znamenat to, co kdysi Ing. A pánové pracující u studia kašlou na abstrakce "vysšího" vzdělání - snaží se ho pochopittak, aby prošli - na víc nemají kvůli práci čas.
Vzdělání v těchto oborech je ztráta času. Vše si lze přečíst sám a rychleji. Koneckonců to tak funguje i na školách. Půl roku se "přednáší" a teprve během "zkoušení" si to lidé nastudují (v lepším případě, v horším se na to buď vybodnou úplně, nebo se zaseknou na nějaké banalitě, např. nekvalitních materiálech).
Částečně to lze kompenzovat, dělá-li člověk nějaké smysluplné téma, potká se s praktickými potřebami někoho a umí jako člověk s komerční praxí. Ale to je spíš výjimka a la Matt Pharr. Doporučoval bych pozornost upřít na většinu.
Pokud studovat, tak stomatologii, práva, finance, apod.
A poznámka k podfinancování školství - to snad nikdo nemůže myslet vážně. V přepočtu každá rodina platí desítky tis. ročně (se studentem, bez studenta, bezdětná) a speciálně techniky budou určitě opečovávanější, než takový výzkum tropických motýlů. Plus mají možnost významných příjmů, ale moc se jim nechce vykročit ze svého pohodlíčka (v každoročních dotaznících se největší část "chystá", "uvažuje" a "ráda by", hodně neuvažuje vůbec a málo skutečně něco dělá).
Dobrý den, je to trochu zkratka, ale ano. Vychází to 10 na "vysoké školství" a 10 na "výzkum". Ať už máte doma výzkumníka, 30letého študáka, budoucího Baťu nebo Einsteina, mladé řemeslníky nebo jenom psa. O podfinancování a přínosu zrovna těch svých tisícovek nechť si každý udělá obrázek svůj.
1. Studovat tyto obory je možná ztráta času, pokud tam člověk nedává pozor a chodí u toho do práce. Každopádně vše nelze rychleji vyčíst jinde. Tuhle hloupost by už snad v prváku měla vyvrátit povinná matematiky s integrály. V matematice i v programování jsou problémy, jejichž elegantní řešení se do knih nepíší a pro při-práci-studujícího vypadají jako nudné akademické cancy. Budiž mu přáno, že je pak v praxi nemusí řešit a dovolí si tak z v vlastní neznalosti říkat, že VŠ je k ničemu.
2. Ať si třeba přispívá i 20 tisíc, jenom vůbec neřešíte a nemáte žádnou představu o tom, kolik z toho se dostane na platy a provoz konkrétního pracoviště a jak to koreluje s počtem studentů a absolventů.
Přesně. Takové také znám a _do_jednoho_ jsou to buď ti, kteří byli vyhozeni, protože nezvládli např. matematickou analýzu nebo jiný druh - absoloventi střední školy, chytří jak rádio, kteří se jaksi dostali například k programování, cosi léta matlají a není poblíž někdo, kdo by je upozornil, jaká je to hrůza. Samozřejmě čest výjímkám - i ty se najdou, ale je jich, pochopitelně, málo.
Pohled na "programátora" nebo "ajťáka" bez solidního teoretického zázemí je zpravidla žalostný. A neskryjí to ani chytré řeči o tom, jak je nějaký jazyk nebo technologie úplně nemožná a jiná skvělá. I v této diskusi je to, myslím, vidět.
Souhlas.
Oni to totiž netuší, ale on ten diplom a vysoká škola není jenom o tom, jaký programovací jazyk a jak kvalitně studenta naučili, ale absolvent předložením diplomu také ukazuje, že je schopen něco začít a dokončit, že je schopen nastudovat nějakou problematiku a samostatně vytvořit nějaký výsledek v nějaké kvalitě a taky že je chopen si to pak nějakým způsobem obhájit ( samozřejmě se to liší škola od školy ale proti chytání za slovíčko píši hned, že snad nikdo nepochybuje o VUT, ČVUT, VŠB a pár dalších tahounech technického vzdělání v ČR. )
To že někdo nemá VŠ neznamená, že musí být neschopný, ale někde se to taky naučit stejně musí.
Jako naučit se třeba C/C++, pár let vyvíjet pro WIN a pak říkat, že mít VŠ je na prd, protože nikdo o WIN absolvent nic moc neví, je hodně zcestné. Je to taková obdoba tunelového vidění ...
Pokud se dobře pamatuju, tak v našem ročníku na mat. analýze vyletěla zhruba polovina. Člověk si ale aspoň hned v prváku uvědomí, o čem VŠ je a na jaké úrovni se tam studuje.
O "kvalitě" pracovníků v IT bez patřičného vzdělání není třeba diskutovat, myslím, že smutné zkušenosti s nimi máme všichni. Na druhou stranu někdo musí dělat i rutinní práci.
Tak to nemáte brát lidi z plzeňských práv ;-)
Ale teď vážně.
Ono totiž to, že je někdo vysokoškolák neznamená, že musí umět všechno, na co si kde kdo vzpomene. Já to třeba umím jakž-takž v excelu, protože v excelu jsme měli statistiku (jako semestr matematiky). Kdyby jsme to ovšem dělali jako většinu věcí v Matlabu, tak jsem na Excel ani sáhl, protože to nebylo potřeba. A to ani doteď.
To jako abych byl "na úrovni" jako vysokoškolák musím umět kdejakou hovadinu v programu od Microsoftu, resp. libre.....? Umět sum v excelu je spíš kritérium na sekretářku ne?
Ok, takze vysokoskolak muze byt negramot => 100% vysokoskolaku jsou potencielni negramoti => prijmout nekoho takovyho do zamestnani muze leda stejnej negramot. Proto chodej delat pokladni do marketu, tam to za ne secte kasa.
Stejne jako od kazdyho ocekavam, ze umi (aspon trochu) malovat ty divny veci kterym se rika pismena, a (aspon trochu) je umi i lustit, tak od kazdyho kdo se nehlasi jako senkrubni potapec cekam, ze umi obsluhovat textovej editor, umi zakladni veci s tabulkama ...
A nejakej matlab je mi naprosto uprdele, to je znalost zcela khovnu (99%).
Tak portál mě vysloveně odradil.
Pro vstup je okamžitě vyžadovaná registrace jak pro firmy, tak pro studenty. Nemohu najít žádný seznam referenčních projektů, výsledků případně i příkladů řešených opensource projektů.
Alespoň něco o projektu jsem našel na ČVUT Wiki, ale hned tam na mě vybafne vysvětlení důležitosti NDA.
Zaregistrovat, zavázat NDA, skrývat na čem se pracuje.
4. Student je povinen zachovávat mlčenlivost o všech skutečnostech, o nichž se dozvěděl
v souvislosti s používáním Portálu, zejména o Obchodním tajemství a o činnosti, kterou bude
v návaznosti na používání Portálu pro Průmyslové partnery vykonávat (dále jen „Informace“).
5. Student se zavazuje, že Informace nevyužije pro svůj vlastní prospěch či prospěch třetích osob.
8. Student prohlašuje, že pokud tak Průmyslový partner bude vyžadovat, bude s ním jednat o
uzavření další dohody o mlčenlivosti, která by mohla rozšířit povinnosti Studenta dle této Dohody.
9. Povinnost mlčenlivosti platí i po ukončení používání Portálu a pro činnosti, které bude v
návaznosti na používání Portálu pro Průmyslové partnery vykonávat, a Student jí může být
zproštěn pouze dohodou s Univerzitou po konzultaci s Průmyslovým partnerem.
10. Strany prohlašují, že Dohodu uzavřely na základě své svobodné vůle, přečetly si ji a s jejím
obsahem souhlasí, což stvrzují svými vlastnoručními podpisy:
Takže znalosti získané z projektů (a množná i ve výuce) se smí použít jen se souhlasem Fakulty informačních technologií a ve smlouvě není žádné časové omezení. Pokud by byla uzavíraná podle zákoníku práce, tak pracovníka chrání - podnikání v oboru blokované max na jeden rok a s dohodou dopředu a platem dohodnutého příjmu, myslím min 80% platu. Ale je možné, že student ani ZP chráněn není.
Jsem také z ČVUT ale tohle se mi opravdu nelíbí, že se někde na ČVUT děje.