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

Jurdo

vsak to netvrdim, ze C# nie je koniec. Idealne je vediet ako to funguje a potom vyuzit tu krasu a jednoduchost C#/Javy :)


čumil

a v C# to mate napisane za take 2 hodky. Dokonca netreba pouzivat ani SQL dotazy a pouzit priamo LINQ. Ake jednoduche.
No ano, v podstatě v každém jazyce si stačí stáhnout nějakou knihovnu a nemusím to řešit vůbec, ale to není dostatečně cool. Účelem bylo, aby si alespoň někteří lemplíci uvědomili, že IT, respektive konkrétně programování, nekončí u C#/Java, ale že je něco i pod tím, svět neprozkoumaný a tajemný, plný krásných elfek, který nikdy neuvidíme, dokud se k nim neprokopeme :D
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.

j

no take jednoduche to nie je. A myslim tym, ze pripojenie na DB a podpora roznych wrapperov je pri C# ci Jave uplne niekde inde, ako pri C++, aj ked ten isto ma. Ale preco by niekto robil Web v C++ preboha? Vsak na to ten jazyk ani nie je urceny  :o
lol ... knihoven pro pripojeni libovolny databaze se po netu valej stovky. Staci je pouzit. Kazdej dodavatel databaze dokonce dodava svoji, primo pro konkretni databazi. Napsat si vlastni je otazka na kolik ... hodinu? Mozna ale nebude tak uberkhull, protoze nebude vyzadovat 10GHz a 100GB ram.

A proc by nekdo delal web v Ccku? Treba proto, ze potrebuje obslouzit miliony requestu a tudiz potrebuje aby to bylo rychly. Nebo proto, ze mu to bezi na nejakym jednochipu, kde ma par kB RAM.

Ne, skoly v CR skutecne zdarma nejsou, plati je z dani totiz i ti, kteri zadnou nevystudovali (a tech je stale vetsina). A na okraj, s timhle pristupem si, mile j, dite prosim radeji neporizuj.
Nj, a ty se bez radsi zastrelit, vzdelani je jedina investice, ktera se mi jako danovymu poplatnikovy potazmo statu vrati, coz tupec jako ty nemuze tusit.


a v C# to mate napisane za take 2 hodky. Dokonca netreba pouzivat ani SQL dotazy a pouzit priamo LINQ. Ake jednoduche.
Jo, jasne, a pak potrebujes ten dotaz zmenit a ses v pici, protoze to muzes cely zrusit a bez pripojeni k ty zcela konkretni databazi to neprepises ...lol. Vidim dnes a denne ...


Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
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í.

Tuxik

  • *****
  • 1 473
    • 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.


čumil

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í.
Občas slýchávám jak modulární design a OOP posílaj do zadeke výkon.
Ne tak docela.
K plno lidem asi ještě nedoběhlo že existuje profiler, ty velký razantní zpomalení obvykle číhají v detailech (ovšem pokud není základní idea kompletně zprasená - za to pak nemůže ale abstrakce).
Překvapivě, i z JS jde vymáčknout celkem výkon pokud se člověk obtěžuje zapnout profiler a nastudovat trošku jak funguje engine pod kapotou (třeba že try catch účině zabrání silné optimalizaci celé metody a tak je dobré ty try catch nacpat do jiných a menších kde to nebude vadit a podobně).

č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.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Eleganci vidím ve vysoké abstrakci a kvalitním OOP/FP návrhu. To je ale záležitost vkusu.
Kvalitní návrh je první krok, který ve většině prasáren chybí a když už náhodou je, tak se často rozbije pod záminkou agilního vývoje. A když už se tu rozebíraly databáze, to je další velký problém. Když už je k dispozici kvalitní databázista, stejně ho nikdo neposlechne a ve výsledku musí akorát lepit průšvihy a donekonečna vysvětlovat, že na dotaz '%cosi%' opravdu index nepomůže a rychlejší to nebude.

A ano, vysoká abstrakce může být elegantní, může to být natolik přehledné, že to pochopí i uklízečka, pokud rozumí anglicky, ale to je otázkou priorit. Když potřebuji zapřáhnout pluh a zorat pole, asi si na to nepořídím formuli 1 - může být hezká, může být výkonná, ale na poli jí to asi půjde ztuha, nebo spíš vůbec. A i když už si ji na to pole koupím, zvednu podvozek, dám pořádný pneumatiky, tak zjistím, že nezatáčí tak pěkně jako traktor a navíc ji v malé rychlosti brzo uvařím. A na druhou stranu nebudu kupovat traktor na cestování po Evropě, že?

hu

Nj, a ty se bez radsi zastrelit, vzdelani je jedina investice, ktera se mi jako danovymu poplatnikovy potazmo statu vrati, coz tupec jako ty nemuze tusit.

To je prinejmensim sporne tvrzeni, protoze uvazujes, ze se trzni hodnota cloveka po absolvovani v prumeru zvysi o vic, nez cinily naklady na jeho studium. Ani to ale nelze pouzit k obhajobe socializace nakladu na terciarni vzdelavani. Zkus vysvetlit ridici autobusu, ze ma nizsi vyplatu, aby nekdo mohl za jeho penize v prvni rade pomoci sam sobe a _mozna_ v druhem planu nejakym neuchopitelnym zpusobem "zlepsit spolecnost" (sic).

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.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
no ved aj C# nieje cieleny len na jednu cast. Tak vy ste jediny pripad co poznam, kde vyuzivaju C++ na web. Ale spomenul si embedded zariadenia, cize tam je to aj pochopitelne.

C++ pro web aplikace používají Google, Facebook, Seznam... A proč? Protože tím ušetří spoustu peněz. Pokud máš aplikaci, která běží na 1000+ serverech, tak každé procento výkonu navíc znamená ušetřené miliony za hardware a elektrickou energii.

Tohle tě samozřejmě nezajímá, pokud děláš nějaký webshop bežící na dvou serverech, tam je úplně jedno, v čem to napíšeš, když potřebuješ na vánoce výkon, tak koupíš další dva servery a nic dalšího neřešíš.

Přesně tohle ale běžný patlal neví, dokud si nenabije čumák.
Ještě bych dodal, že stejný argument platí pro novější jazyky jako Go a Swift, které jsou mnohem "bezpečnější" než C++.

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").

čumil

Eleganci vidím ve vysoké abstrakci a kvalitním OOP/FP návrhu. To je ale záležitost vkusu.
Kvalitní návrh je první krok, který ve většině prasáren chybí a když už náhodou je, tak se často rozbije pod záminkou agilního vývoje. A když už se tu rozebíraly databáze, to je další velký problém. Když už je k dispozici kvalitní databázista, stejně ho nikdo neposlechne a ve výsledku musí akorát lepit průšvihy a donekonečna vysvětlovat, že na dotaz '%cosi%' opravdu index nepomůže a rychlejší to nebude.

A ano, vysoká abstrakce může být elegantní, může to být natolik přehledné, že to pochopí i uklízečka, pokud rozumí anglicky, ale to je otázkou priorit. Když potřebuji zapřáhnout pluh a zorat pole, asi si na to nepořídím formuli 1 - může být hezká, může být výkonná, ale na poli jí to asi půjde ztuha, nebo spíš vůbec. A i když už si ji na to pole koupím, zvednu podvozek, dám pořádný pneumatiky, tak zjistím, že nezatáčí tak pěkně jako traktor a navíc ji v malé rychlosti brzo uvařím. A na druhou stranu nebudu kupovat traktor na cestování po Evropě, že?
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!

č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 ...

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)?

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail

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ě ;)