Jaký je stav v IT teď a výhledově do budoucna co se týká schopných lidí?

Ivan Nový


Oblíbená chybka.

"Dostatečně high level kód pochopí i uklízečka"

Ne. Opravdu ne. Použiju příměr z AI. Každýmu kdo vyšel základku a není po lobotomii je princip neurálních sítí jasný. Samozřejmě, nemyslím matemaický background, spíše ten intuitivní základ, ale takřka nikdo je neumí využít. Kdyby jo, každej už by tady na rootu měl vlastní AI engine na burzovní obchodování  a mohli by sme se tady hádat na fulltime ...

Elegatní systém neznamená nekomplikovaný systém!
Úroveň abstrakce se může mění s úrovní programu. Kdysi na prumce jsem byl nucen učit se Pascal. Učitel byl asi tak hodinu napřed před žáky a asi 5 let za mnou. Zatímco všichni patlali grafiku ve standartních pomalých knihovnách v 16ti barvách, já jem měl napsaný vlastní knihovny pro svga a na nich napsaný další knihovny pro kompletní GUI ala Windows, v té době kompletně v ASM. Když jsem programoval v asm pod pascalem přímo, učitel si stěžoval, že to není pascal a že nemám ASM používat. Nicméně pro různé práce bylo povoleno používat libovolné knihovny, vlastní, nebo cizí. Výsledkem bylo něco jako
Kód: [Vybrat]
program mojeblbost;
uses mojewindows;
begin
  mujprogram;
end.
No uznej, že to pochopí i uklízečka  ;)
Ale samozřejmě, je to extrém a bylo to myšlený spíš obrazně ;)
Elegantní systém, znamená snadno modifikovatelný  a udržovatelný systém. Rychlost zpracování je až na druhém místě, pokud to není aplikace, která rychlost vyžaduje.


Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Elegantní systém, znamená snadno modifikovatelný  a udržovatelný systém. Rychlost zpracování je až na druhém místě, pokud to není aplikace, která rychlost vyžaduje.
Myšlenka je to krásná a já s ní souhlasím, jen to "pokud to není aplikace, která rychlost vyžaduje" v praxi velmi často pokulhává. Respektive je to tak, že aplikace nikdy výkon nevyžaduje, výkon vyžadují uživatelé. Pokud ho nedostanou, aplikace je v tom samozřejmě nevinně a vždy za to může pomalý HW- :(

Ivan Nový

Ne elfek fakt vážně ne, možná tak skřetic.

Osobně se umím pohybovat jak ve vysoké abstrakci, tak i na nízké a můžu říct, všechno má své místo. Vést válku proti abstrakci je vadný, díky abstrakci jsi schopen v pro klienta přijatelném časovém horizontu dovalit výsledek. Díky vysoké abstrakci si schopen udělat i nějaký trošku větší osobní projekt dřív než se dostaneš do důchodu. Naopak pokud někde něco dře, a děláš v C++, můžeš to kupříkladu napsat v ASM. Kompilery ale obvyke uměj to ASM umění líp, takže se chytneš maximálně při použití SIMD instruktcí, protože s těma se kompilery zatím moc nemuckaj.
Záleží na situaci. Jak jsem psal, všechno má svoje místo. Problém je v tom, že dneska nikdo neřekne, můžeme to napsat rychle, levně a zpraseně, každého půl roku potom stačí přihodit pár jader a něco RAMky a pojede vám to krásně, nebo to bude trvat dýl, napíšeme to líp, bude to dražší, zoptimalizujeme to a dalších pár let na to nemusíte sáhnout. Pro nějaký osobní one man show, kde nehrozí, že za rok bude 10x víc uživatelů a 20x víc dat je to v pohodě. Co se týče používání ASM ve vyšších jazycích... jak kdy. Už to nikdy nebude multiplatformní, ale také to má význam. Například, pokud se jedná o nějakou hromadnou úpravu dat, konverze atd, dá se to udělat slušně i v C++, C#, Javě, ale taky se dají vzít data řádek po řádku, pěkně si to zobjektovat, v rámci přehlednosti si triviální úkon rozdělit do 20ti ještě triviálnějších kroků a pak se divit, že to běží několik hodin. Nebo se to dá přepsat do ASM, vynechat zbytečnosti a ejhle, najednou je to v řádu minut a potřebuje to 5x míň paměti. Ano, já vím, paměť nestojí nic a CPU je levnější, než slušný programátor, ale když něco takového chcete řešit na nějakých big data na pořádným clusteru, tam už může jít jeden node do milionů a spotřeba taky není zanedbatelná. A to je přesně místo, kde skončí 95% mladých všeználků a nastupují mistři za úplně jiné peníze, ze kterých si zaslouží každou korunu a kteří se nakonec i vyplatí.
Programovat v assembleru ale přece není složitější, než programovat v Javě, spíše naopak, je to jednodušší, ale méně výkonné, protože musíte napsat a odladit mnohonásobně více řádků a je to náročnější na pozornost a mechanické opakování šablon. Proto taky vznikly vyšší programovací jazyky, aby se ušetřila rutinní práce. Ne jako nějaký vyšší/nižší level IT magie.
Jinak instrukční sady Intelu nevynikají nějakou krásou logického návrhu, tu mělo PDP.

Ivan Nový

Elegantní systém, znamená snadno modifikovatelný  a udržovatelný systém. Rychlost zpracování je až na druhém místě, pokud to není aplikace, která rychlost vyžaduje.
Myšlenka je to krásná a já s ní souhlasím, jen to "pokud to není aplikace, která rychlost vyžaduje" v praxi velmi často pokulhává. Respektive je to tak, že aplikace nikdy výkon nevyžaduje, výkon vyžadují uživatelé. Pokud ho nedostanou, aplikace je v tom samozřejmě nevinně a vždy za to může pomalý HW- :(
Adaptace na změny, je taky součástí výkonu aplikace. K čemu je vám rychlá aplikace, které nedělá to co potřebujete a rozšířit ji prakticky nejde.

čumil

Ne elfek fakt vážně ne, možná tak skřetic.
A ještě mě napadá, jestli někdo programuje a HW pod svým programem považuje za něco ošklivého, otravného a dokonce nežádoucího, tak to mluví za vše... Možná je jednodušší na zpracování dat pořídit halu plnou polic se šanonama, k tomu 100 Indů a místo programování vymýšlet metodické pokyny, jak mají Indové efektivně běhat. Vlastně ne, to by byla příliš nízká abstrakce, raději jim jenom říct, co člověk potřebuje a oni si nakonec sami najdou ideální algoritmy, minimalizují kolize atd. A pokud dostanou nějakou finanční motivaci, trvalý pokrok bude zaručen.
Eleganci vidím ve vysoké abstrakci a kvalitním OOP/FP návrhu. To je ale záležitost vkusu.
Jenže kdo má ten návrh dělat, když OOP pro drtivou většinu programátorů znamená dědičnost a v FP tak nanejvýš 2% procenta znají a umí používat monády (s tím, že nemalá část si myslí, že se říká "ten monád").
A další FP zasvěcenci vědí, že monáda není samospasitelná a jejich využití (a přeužití) vede často ke kryptickému kódu ...
Proto se má používat právě na těch místech, kde je užitečná. Kdo monády nezná, nemůže je použít nikde, pročež jeho funkcionální kód bude k ničemu. A to nezmiňuju komonády.

"Kryptický" kód jakože kryptomonády (pun intended)?
Kryptický == skoro jako po zakryptování ...

Monádá je jenom jeden matematický konstrukt z mnoha využitelných ve FP, znalost či neznalost monád není závyslá proměnná kvality FP návrhu ...

Monády se třeba hodí na parser kombinátory (ale to taky arrows). Nebo pro označení side efektů. V plno případech se ale monáda absolutně nehodí, bohužel je ale tendence je strkat opravdu všude, takže je potom z těch monad transformerů nad dalšíma transformerama na blití ...


čumil

Elegantní systém, znamená snadno modifikovatelný  a udržovatelný systém. Rychlost zpracování je až na druhém místě, pokud to není aplikace, která rychlost vyžaduje.
Myšlenka je to krásná a já s ní souhlasím, jen to "pokud to není aplikace, která rychlost vyžaduje" v praxi velmi často pokulhává. Respektive je to tak, že aplikace nikdy výkon nevyžaduje, výkon vyžadují uživatelé. Pokud ho nedostanou, aplikace je v tom samozřejmě nevinně a vždy za to může pomalý HW- :(
Adaptace na změny, je taky součástí výkonu aplikace. K čemu je vám rychlá aplikace, které nedělá to co potřebujete a rozšířit ji prakticky nejde.
Rozšiřitelnost je v dnešní době alfa a omega, pravdu díš

čumil


Oblíbená chybka.

"Dostatečně high level kód pochopí i uklízečka"

Ne. Opravdu ne. Použiju příměr z AI. Každýmu kdo vyšel základku a není po lobotomii je princip neurálních sítí jasný. Samozřejmě, nemyslím matemaický background, spíše ten intuitivní základ, ale takřka nikdo je neumí využít. Kdyby jo, každej už by tady na rootu měl vlastní AI engine na burzovní obchodování  a mohli by sme se tady hádat na fulltime ...

Elegatní systém neznamená nekomplikovaný systém!
Úroveň abstrakce se může mění s úrovní programu. Kdysi na prumce jsem byl nucen učit se Pascal. Učitel byl asi tak hodinu napřed před žáky a asi 5 let za mnou. Zatímco všichni patlali grafiku ve standartních pomalých knihovnách v 16ti barvách, já jem měl napsaný vlastní knihovny pro svga a na nich napsaný další knihovny pro kompletní GUI ala Windows, v té době kompletně v ASM. Když jsem programoval v asm pod pascalem přímo, učitel si stěžoval, že to není pascal a že nemám ASM používat. Nicméně pro různé práce bylo povoleno používat libovolné knihovny, vlastní, nebo cizí. Výsledkem bylo něco jako
Kód: [Vybrat]
program mojeblbost;
uses mojewindows;
begin
  mujprogram;
end.
No uznej, že to pochopí i uklízečka  ;)http://forum.root.cz/Themes/root-reseller/images/bbc/divider.gif
Ale samozřejmě, je to extrém a bylo to myšlený spíš obrazně ;)
A bude ta uklízečka schopná upravit tvůj kód podle zadání klienta (učitele) ? Asi ne hele ...

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Ne elfek fakt vážně ne, možná tak skřetic.
A ještě mě napadá, jestli někdo programuje a HW pod svým programem považuje za něco ošklivého, otravného a dokonce nežádoucího, tak to mluví za vše... Možná je jednodušší na zpracování dat pořídit halu plnou polic se šanonama, k tomu 100 Indů a místo programování vymýšlet metodické pokyny, jak mají Indové efektivně běhat. Vlastně ne, to by byla příliš nízká abstrakce, raději jim jenom říct, co člověk potřebuje a oni si nakonec sami najdou ideální algoritmy, minimalizují kolize atd. A pokud dostanou nějakou finanční motivaci, trvalý pokrok bude zaručen.
Eleganci vidím ve vysoké abstrakci a kvalitním OOP/FP návrhu. To je ale záležitost vkusu.
Jenže kdo má ten návrh dělat, když OOP pro drtivou většinu programátorů znamená dědičnost a v FP tak nanejvýš 2% procenta znají a umí používat monády (s tím, že nemalá část si myslí, že se říká "ten monád").
A další FP zasvěcenci vědí, že monáda není samospasitelná a jejich využití (a přeužití) vede často ke kryptickému kódu ...
Proto se má používat právě na těch místech, kde je užitečná. Kdo monády nezná, nemůže je použít nikde, pročež jeho funkcionální kód bude k ničemu. A to nezmiňuju komonády.

"Kryptický" kód jakože kryptomonády (pun intended)?
Kryptický == skoro jako po zakryptování ...

Monádá je jenom jeden matematický konstrukt z mnoha využitelných ve FP, znalost či neznalost monád není závyslá proměnná kvality FP návrhu ...

Monády se třeba hodí na parser kombinátory (ale to taky arrows). Nebo pro označení side efektů. V plno případech se ale monáda absolutně nehodí, bohužel je ale tendence je strkat opravdu všude, takže je potom z těch monad transformerů nad dalšíma transformerama na blití ...
Ono jde o to, že spousta věcí se dá implementovat monádami, nejen IO a parsery, i například continuations nebo futures. Když někdo monády zná a nějaký koncept se dá namodelovat jako monáda, můžu mu dát jednoduše unit a bind a on si bude schopen podle potřeby odvodit např. join a příslušný funktor apod. Kdo je nezná, bude v ř..i (a právě znalost a hlubší porozumění konceptům odlišuji profíka od patlala).

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
A bude ta uklízečka schopná upravit tvůj kód podle zadání klienta (učitele) ? Asi ne hele ...
Asi úplně stejně, jako dokáže průměrný javista opravit bezpečnostní díry v Javě :D

Ivan Nový

A bude ta uklízečka schopná upravit tvůj kód podle zadání klienta (učitele) ? Asi ne hele ...
Asi úplně stejně, jako dokáže průměrný javista opravit bezpečnostní díry v Javě :D
Jedny díry opravíte, jiné vzniknou. To si nepomůžete.

javaman

Zkratka se domnivam, ze potencialni studenti VS by meli byt sobecky motivovani vidinou vetsich prilezitosti (coz uz povetsinou jsou) a zaroven nest naklady sami - aby byli nuceni vyhodnotit riziko navratnosti takove investice. To by snad svepravny dospely clovek, aspirujici na VS vzdelani zvladnout mohl.

Tím bys ale znemožnil jeden z největších podvodů posledních let. Najednou bys zjistil, že cpát peníze do studia se vyplatí jen pár procentům lidí a zbytek může dělat někde na poli. No jo, ale dnes už pole nemáme, tak stejní blbci sedí někde v korporacích a tvrdí, že něco dělají. Těžko říct, jak by to vypadalo, kdybys po neschopných lidech po studiu chtěl peníze, když jsou kompletně k ničemu.

Není to nakoec lepší mít takhle placené? Všichni si myslí, že na vzdělání záleží a že z MFF a FJFI chodí chytří lidé a celkově je ten svět takový jednodušší. A vlastně to stojí jen ty peníze. Neschopné učitele bys ze škol také musel vyházet, protože jsou obvykle k ničemu jako ti studenti. Mně se to vlastně líbí, pokud mě to nijak neobtěžuje. Pokud jsi schovaný někde ve výzkumu v soukromé firmě, tak ti může být jedno, co blbci "venku" dělají.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
S těmi schopnými lidmi jsem si vzpomněl na jeden krásný příběh. Je to pár let zpátky, v jedné firmě se hledal správce intranetu. Nic extra zásadního, firma asi 50 lidí, požadavky samozřejmě html, php, css trocha javy a nějaký základy mysql. Mimo běžných arogantních absolventů s ulítlou představou alespoň 50k za měsíc a nulovou použitelností (respektive dokonalým názorem na dokonalý systém, který by se musel okamžitě předělat úplně jinak) se přihlásil vyučený automechanik s praxí 3 roky někde v malým servisu a jako reference stránky toho servisu. Taková ta krásná začátečnická klasika, zmalovaná stránka, všudypřítomné marquee, odstavce pečlivě oddělené animovaným gifem s projíždějícím autíčkem, obrázky rozkradené z celého webu, bez ohledu na nějaké licence, v textu víc chyb, než textu samotného, půlka odkazů vedla do nikam, návštěvnost a několik "důležitých" anket z blueboardu. A přišel s tím, že by si tenkrát představoval tak 12k hrubého, žádné html, php ani nic podobného nepotřeboval, protože on prostě uměl dělat weby a nakonec dokonale popsal ovládání jakéhosi neznámého html editoru a mspaintu. Práci samozřejmě nedostal, i když nad tím tenkrát majitel uvažoval, že za ty prachy si ho tam na měsíc ve zkušebce nechá pro zábavu, ale nakonec se na to vykašlal, aby chudákovi nekazil životopis zaměstnáním na měsíc a ten potom znova nemusel absolvovat kolečko přes pracák a spol. A přesně stejný pocit mám občas z některých mladých "schopných lidí" v IT :D
Jen upozorňuji, aby se nikdo neurazil, nebylo to namířeno proti nikomu ze zde diskutujících, protože debata je myslím celkem na úrovni, i když názory jsou rozdílné ;)

Lama

Čulíka sice moc nemusim, ale tahle debata mi příde zajímavá:
Debata s Janem Čulíkem o školném
https://www.youtube.com/watch?v=BsQmdwgnxWA

Jak už tady někdo vzpomenul, jak to udělat, aby se nerušily obory které nemají okamžité uplatnění a týká se to i té vaší oblíbené matiky. Různé teorémy, postupy najdou uplatnění až třeba mnoho (desítek) let poté, co byly vynalezeny.
Zabránit tomu, aby se ze škol nestaly fabriky na peníze.
Uvědomuje si vůbec někdo, že když taková škola dá přednost bohatýmu Arabákovi nebo Číňanovi před domácíma, tak tím si vlastně sami na sebe vychováváme konkurenci?
Já osobně nejsem apriori proti školnýmu. Ale ať je to kompenzováno třeba tím, že se sníží daně, protože samozřejmě když to nebude placeno z daní, tak se mohou snížit. Ať má navíc ještě takový absolvent pár let po studiu další daňové úlevy.

čumil

Ne elfek fakt vážně ne, možná tak skřetic.
A ještě mě napadá, jestli někdo programuje a HW pod svým programem považuje za něco ošklivého, otravného a dokonce nežádoucího, tak to mluví za vše... Možná je jednodušší na zpracování dat pořídit halu plnou polic se šanonama, k tomu 100 Indů a místo programování vymýšlet metodické pokyny, jak mají Indové efektivně běhat. Vlastně ne, to by byla příliš nízká abstrakce, raději jim jenom říct, co člověk potřebuje a oni si nakonec sami najdou ideální algoritmy, minimalizují kolize atd. A pokud dostanou nějakou finanční motivaci, trvalý pokrok bude zaručen.
Eleganci vidím ve vysoké abstrakci a kvalitním OOP/FP návrhu. To je ale záležitost vkusu.
Jenže kdo má ten návrh dělat, když OOP pro drtivou většinu programátorů znamená dědičnost a v FP tak nanejvýš 2% procenta znají a umí používat monády (s tím, že nemalá část si myslí, že se říká "ten monád").
A další FP zasvěcenci vědí, že monáda není samospasitelná a jejich využití (a přeužití) vede často ke kryptickému kódu ...
Proto se má používat právě na těch místech, kde je užitečná. Kdo monády nezná, nemůže je použít nikde, pročež jeho funkcionální kód bude k ničemu. A to nezmiňuju komonády.

"Kryptický" kód jakože kryptomonády (pun intended)?
Kryptický == skoro jako po zakryptování ...

Monádá je jenom jeden matematický konstrukt z mnoha využitelných ve FP, znalost či neznalost monád není závyslá proměnná kvality FP návrhu ...

Monády se třeba hodí na parser kombinátory (ale to taky arrows). Nebo pro označení side efektů. V plno případech se ale monáda absolutně nehodí, bohužel je ale tendence je strkat opravdu všude, takže je potom z těch monad transformerů nad dalšíma transformerama na blití ...
Ono jde o to, že spousta věcí se dá implementovat monádami, nejen IO a parsery, i například continuations nebo futures. Když někdo monády zná a nějaký koncept se dá namodelovat jako monáda, můžu mu dát jednoduše unit a bind a on si bude schopen podle potřeby odvodit např. join a příslušný funktor apod. Kdo je nezná, bude v ř..i (a právě znalost a hlubší porozumění konceptům odlišuji profíka od patlala).
Osobně monády nesnáším, takže do vod využitelnosti monád se nořit nebudu. Musím přiznat, že odpor má svůj kořen v jejich zneužití Haskellem pro IO, ale to by bylo na jinou debatu už mnohokrát probíranou ...

Třeba arrows mám radši (dokud na ně někdo taky nenalepí IO ...).

čumil

A bude ta uklízečka schopná upravit tvůj kód podle zadání klienta (učitele) ? Asi ne hele ...
Asi úplně stejně, jako dokáže průměrný javista opravit bezpečnostní díry v Javě :D
Asi tak řekl bych.