Kde najít ne-main stream práci / doporučení

foobar

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #15 kdy: 23. 09. 2018, 12:45:09 »
Citace
Stačí se podívat, kolik stojí nějaká deska s ARMem nebo nějaký výkonnější jednočip... a kolik stojí den práce programátora.

Stačí ak je požiadavka aby ta doska bežala rok z baterie. Potom už nemôžeze riešiť problémy sprostým štýlom kup si vykonnejší CPU.

kup si vetsi baterku  :P :P


Pepik

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #16 kdy: 23. 09. 2018, 16:39:30 »
Proč vlastně dneska skoro nikoho nebaví přemejšlet a dělají se virtualizace virtualních systému, kašle se na výkon, spotřebu zdrojů... Není to škoda ?

Stačí se podívat, kolik stojí nějaká deska s ARMem nebo nějaký výkonnější jednočip... a kolik stojí den práce programátora.


Tohle funguje jen do určité úrovně :) Když se stejná logika aplikuje globálně, tak prostě takhle koule, na který žijem, na to jednoduše nemá zdroje. A kde je ta hranice, kdy to je ještě "dobře" a kdy už je to "průser" ? Aneb auto na baterky do každý rodiny :) Ikdyž ono by stačilo, kdyby každej chtěl vůbec nějaký auto, že.

V konečném důsledku kupením systému vzrůstá komplexita a nakonec nikdo neví, jak to vlastně funguje. Systémy si pak  žijí "vlastním" životem. Kousek kódu v pythonu, kousek v shellu, kousek onde, něco je zadrátovaný do HW. Supr ne ? Není nad to takovej systém ovládat/konfigurovat/spravovat. A spolehnout se, že udělá to co má...

Já si jen myslím, že vývoj jde od věci primitivných, přez složité k jednoduchým. A spousty věcí jsou dnes složité. Zbytečně. Jen protože si někdo myslí, že čas ťamana je levnější než čas někoho u nás. Ale to je pak nasprosto jiná diskuze :o)

Pepikus

Scripter

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #17 kdy: 23. 09. 2018, 17:12:18 »
Já si jen myslím, že vývoj jde od věci primitivných, přez složité k jednoduchým.
Ano, to je ideální, jenže dělat věci jednoduše je složité.

pepa z sklepa

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #18 kdy: 23. 09. 2018, 17:14:01 »
pri tvych schopnostech je prece snadny pochopit ze ve vyvoji HW davno nejsou - u nas uz vubec ne - takove moznosti jako SW. Najdes malo bonitnich zakazniku kteri uprednostni tvoji genialni (bez urazky, klidne muzes byt hodne dobry...) konstrukci pred mainstreamovou ARM deskou nebo primo PLC do kteryho se nahraje nejak unifikovane udelanej soft. Par mezirek na trhu najdes treba rizeni indukcnich ohrevu se stovkama MW, odlucovace popilku, pristroje na pocitani cyklistu na cyklostezce a podobne ale urcite v tom nejsou bomba penize a taky je dost velkej pretlak hardweraru kolem padesatky (par jich znam), kteri nejak moc nevi kde by se upichli. Proste se svet zmenil a clovek se bud uzpusobi nebo ne..

Pepik

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #19 kdy: 23. 09. 2018, 17:35:37 »
Já si jen myslím, že vývoj jde od věci primitivných, přez složité k jednoduchým.
Ano, to je ideální, jenže dělat věci jednoduše je složité.

To mne nikdy nenapadlo, zajímavá myšlenka. A zdá se pravdivá. Rozhodně se díky ní dá řada věcí jednoduše vysvětlit :)


Proste se svet zmenil a clovek se bud uzpusobi nebo ne..
To je pravda, jeden nemusí nutně dělat HW. Mně osobně je třebas fuk, jestli kreslím schema, desku nebo dělám něco v céčku. Stejné myšlení, jen jiná forma zápisu. V konečném důsledku to měkké stálo nakonec vždy víc času. HW je jen prostředek... Spíše ale nemám chuť dělat Javu a spol. Stejný peníze, jako se tu nedávno rozebíralo (průměr v Práglu), se dají vidělat i jinak a zábavněji...

Fakt je ten, že něoho od HW okolo 50ky také znám. A jedno mne překvapilo. Nemají moc rádi SW. Tomu osobně moc nerozumím. Slova jednoho: na SW už jsem starej. Nakreslí desku ale firmware je nad jejich "sílu". Osobně rozdíl vidím jen v počtu informací, který si aktuálně člověk musí držet v palici. U SW to je řádově více. HW je zas krutě citlivej na detajl a nejde něco ochcat s tím, že "pak to předělám". Na druhou stranu, třeba ten dotyčnej celej život dělal primárně HW. Tož je možné, že to pramené odtud.

Pepik


cjcjd

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #20 kdy: 23. 09. 2018, 17:36:03 »
Ahoj, rád bych se místních zeptal, jetli někdo neví, kde najít trochu nestandardní práci. Vcelku jedno, jestli CZ nebo ne, protože stejně po tolika letech nebudu nikam denně chodit :) Uvolnila se mi nějaká část času...

Klasiku, jakože jeden umí anglicky, trochu česky, jezdit autem beru jako samozřemost, kterou není potřeba psát... I WC zvládnu bez potíží a bez cizí pomoci (o: Nebudu uvádět nějaké naprosto konkretní věci, jen obecné (v tento okamžik to považuji za zbytečné).
...
Prihlas se do cirkusu protoze je s tebou fakt sranda ... .

Danny

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #21 kdy: 24. 09. 2018, 10:18:11 »
Proč vlastně dneska skoro nikoho nebaví přemejšlet a dělají se virtualizace virtualních systému, kašle se na výkon, spotřebu zdrojů... Není to škoda ?
četl jsem o tom nedávno pěkný blogpost "Software Disenchantment": http://tonsky.me/blog/disenchantment/

Franta <xkucf03/>

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #22 kdy: 24. 09. 2018, 11:49:52 »
V konečném důsledku kupením systému vzrůstá komplexita a nakonec nikdo neví, jak to vlastně funguje.

S tím souhlasím a mimochodem je to téma, kterým se zabývám a trápí mě to, chci s tím něco dělat...

Jen si myslím, že je potřeba se zaměřit na úzké hrdlo resp. místa, kde je té komplexity a nespolehlivosti nejvíc. A nedopouštět se optimalizací na nesprávném místě. Tím že přepíšeš něco z céčka do assembleru nebo někde použiješ 555 místo atmelu, celkovou komplexitu moc nesnížíš. Podobné je to jako když se někdo snaží odbourat SQL nebo XSD, protože mu přijdou moc komplexní -- jenže pak tu jejich funkcionalitu musí reimplementovat ve své aplikaci a výsledek je ještě horší, protože celková komplexita se naopak zvýšila.

Celé to má ještě další rozměry jako kvalita a rozšířenost -- komplexnější software, který je rozšířený, bude i lépe otestovaný a bude tam daleko větší zájem na opravách chyb. Naopak u méně rozšířeného softwaru hrozí, že na to zůstaneš sám. Podobně s kvalitou: když to dlouhodobě vyvíjí tým zkušených lidí nebo i jednotlivec, tak se tomu dá věřit víc, než něčemu, co má sice méně řádek kódu, ale namastil to nějaký hipster a před měsícem hodil na GitHub. V tom může být nasekáno daleko víc chyb a bude to mít horší podporu než dlouhodobé projekty, které si s sebou nesou i nějakou tu historickou zátěž.

Můj pohled je ten, že vyšší programovací jazyk a jeho standardní knihovna jsou samy o sobě frameworkem a spousta aplikací se dá postavit jen nad nimi a není potřeba na to vršit další a další vrstvy frameworků a knihoven, které akorát zvyšují komplexitu a často ti práci spíš přidělají, než že by ji ušetřili. Někdy ty knihovny a frameworky dávají smysl, ale mělo by to být opodstatněné reálnou potřebou -- ne tím, že "se to tak dělá" nebo že je to zrovna v módě.

Pepik

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #23 kdy: 24. 09. 2018, 12:09:51 »
Jen si myslím, že je potřeba se zaměřit na úzké hrdlo resp. místa, kde je té komplexity a nespolehlivosti nejvíc. A nedopouštět se optimalizací na nesprávném místě. Tím že přepíšeš něco z céčka do assembleru nebo někde použiješ 555 místo atmelu, celkovou komplexitu moc nesnížíš. Podobné je to jako když se někdo snaží odbourat SQL nebo XSD, protože mu přijdou moc komplexní -- jenže pak tu jejich funkcionalitu musí reimplementovat ve své aplikaci a výsledek je ještě horší, protože celková komplexita se naopak zvýšila.
Rozhodně souhlas, není to o tom, udělat věci složené z naprostých primitiv.

Celé to má ještě další rozměry jako kvalita a rozšířenost -- komplexnější software, který je rozšířený, bude i lépe otestovaný a bude tam daleko větší zájem na opravách chyb. Naopak u méně rozšířeného softwaru hrozí, že na to zůstaneš sám. Podobně s kvalitou: když to dlouhodobě vyvíjí tým zkušených lidí nebo i jednotlivec, tak se tomu dá věřit víc, než něčemu, co má sice méně řádek kódu, ale namastil to nějaký hipster a před měsícem hodil na GitHub. V tom může být nasekáno daleko víc chyb a bude to mít horší podporu než dlouhodobé projekty, které si s sebou nesou i nějakou tu historickou zátěž.
To je typický příklad PHP,kdo zná zrojáky Zendy a PHP v průběhu času. Případně Linux (obecně) vs. OpenBSD. Lidí mají super vlastnost - ušetřit si čas. Teď. Nicméně málokdo vidí za první roh, že dané ušetření času je ve skutečnosti neuvěřitelné plýtvání. Aneb přítomnost není naší volbou. Jsou to jen důsledky rozhodnutí, co jsme udělali v minulosti. Jen si to málokdo připustí :)

Můj pohled je ten, že vyšší programovací jazyk a jeho standardní knihovna jsou samy o sobě frameworkem a spousta aplikací se dá postavit jen nad nimi a není potřeba na to vršit další a další vrstvy frameworků a knihoven, které akorát zvyšují komplexitu a často ti práci spíš přidělají, než že by ji ušetřili. Někdy ty knihovny a frameworky dávají smysl, ale mělo by to být opodstatněné reálnou potřebou -- ne tím, že "se to tak dělá" nebo že je to zrovna v módě.
A ještě to má pak jeden aspekt. Čím více knihovny jsou "samo" dělatelné, tím méně člověk musí rozumět dané věci. A podle toho taky pak vypadá výsledek. Copy/paste něčeho - voalá. A těch vrstev je pak strašné množství, musí se mezi sebou nějak poprat. A pak přijde nová verze :) To je často hodně srandy. Málo API se dá udělat tak, aby výsledek nebyl závislej na "nedokumentovaném" chování, nebo postraních kanálech. Proto se maji věci tendenci časem "za*srat" sami od sebe.

Jinak díky za link nahoře, zajímavé.

Pepa

Wichser

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #24 kdy: 24. 09. 2018, 12:26:26 »
Proto se maji věci tendenci časem "za*srat" sami od sebe.
To je zákon rostoucí entropie.

Franta <xkucf03/>

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #25 kdy: 24. 09. 2018, 18:59:10 »
Proč vlastně dneska skoro nikoho nebaví přemejšlet a dělají se virtualizace virtualních systému, kašle se na výkon, spotřebu zdrojů... Není to škoda ?
četl jsem o tom nedávno pěkný blogpost "Software Disenchantment": http://tonsky.me/blog/disenchantment/

Vypadá to na zajímavý článek... nečetl jsem to ještě celé.

(hovna typu web nebo Windows nechme stranou)

Ad "On each keystroke, all you have to do is update tiny rectangular region and modern text editors can’t do that in 16ms. It’s a lot of time. A LOT. A 3D game can fill the whole screen with hundreds of thousands (!!!) of polygons in the same 16ms and also process input, recalculate the world and dynamically load/unload resources."

Na tom je vidět, že vyvíjet efektivní a optimalizované programy lze -- náš obor to umí. Akorát se to dělá jen v některých případech. A teď je otázka: proč? Proč se neoptimalizuje všechno?

Nikdo nechce* záměrně vyvíjet pomalou aplikaci. Tzn. pokud to někdo dělá, má k tomu nějaký důvod. Můžu např. upřednostnit čitelnost a udržovatelnost před výkonem. Další věc, která jde často proti výkonu je bezpečnost a spolehlivost (např. přidání nějakých kontrol, validací či defenzivní programování). Nebo můžu ušetřit čas potřebný k napsání aplikace. A to jak volbou stylu práce, použitých nástrojů nebo třeba jazyka, který se (ne)naučím. Např. bych mohl pár let studovat nějaký super efektivní jazyk a pak teprve psát aplikace, které budou běhat o něco rychleji, nebo ty aplikace můžu psát už teď s tím, co umím. Co má větší přínos -- aplikace napsané v méně efektivním jazyce během těch pár let, nebo zvýšená efektivita v příštích letech? Tohle si každý musí rozhodnout sám, neexistuje na to jednoznačný recept. Je dobré se dívat do budoucna, ale zase se nejde celý život jen připravovat na to, že jednou napíšeš něco úžasného a leštit si nástroje. Je potřeba v tom najít nějakou rozumnou míru a průběžně si sice vylepšovat nástroje a schopnosti, ale zároveň dělat něco reálného teď hned s tím, co máš/umíš.

Kdybys měl firmu, tak můžeš roky vzdělávat svoje lidi, psát si vlastní frameworky, napsat si vlastní jazyk, knihovny, pilovat metodiku... nebo taky můžeš dělat reálné projekty pro svoje zákazníky a používat k tomu stávající nástroje a stávající znalosti svých lidí. Oba extrémy jsou špatné a nefungují. Tu míru si musí každý najít sám. Klidně si to zkus dělat tím prvním způsobem, ale pokud nejsi miliardář, který by to mohl roky dotovat ze svého, tak dojedeš dřív než ten, kdo šel tou druhou cestou.

Taky můžeš zjistit, že lidi jsou idioti a nemáš koho zaměstnat. Každý, kdo se ti přihlásí je podle tvých měřítek "lopata", a "prasí" kód. A co s tím? Budeš odmítat zakázky, protože je nemá kdo dělat? Nebo si spočítáš, že požadavky zákazníků lze implementovat i těmi "lopatami", které jsou k dispozici na trhu? Co když zákazníka nezajímá, že to běží o nějaké milisekundy déle, a potřebuje vyřešit svůj byznysový problém? Je lepší ho odmítnout a počkat, až si vyškolíš lidi a vypiluješ metodiku, a budete schopní psát extrémně efektivní kód, který z HW vytěží maximum?

Takže proč se neoptimalizuje všechno? Jde o efektivní alokaci zdrojů. Investuje se tam, kde se dají očekávat odpovídající přínosy, kde to někdo požaduje, kde to má smysl. Je to jako se vším -- řeší se úzké hrdlo a ne něco, kde vynaložené prostředky mají minimální dopad na celkový výsledek.

Když tedy pominu vyloženě hloupé a zbytečné výkonnostní chyby, tak nám zbývají ty případy, kde vývojář upřednostnil jiné hodnoty než výkon. A vyčítat mu to je nesmysl. Je to jako kdybys automobilce vyčítal, že neefektivně hospodaří s okolním vzduchem nebo deštěm či slunečním svitem dopadajícím na auto -- teoreticky z toho mohli vytěžit víc, méně s těmito zdroji plýtvat. Ale oni to nedělají. Proč?

*) Teoreticky by mohl nejdřív dodat pomalou verzi a pak ji za příplatek optimalizovat... ale o tom se spíš vtipkuje, než že by se to běžně dělalo v praxi.

Franta <xkucf03/>

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #26 kdy: 24. 09. 2018, 19:13:26 »
P.S. Ještě doplním, že ze současného stavu oboru jsem taky poměrně znechucený* -- jenže vidím ty problémy jinde. Nejhorší je uzavřenost, proprietární software/služby a vendor lock-in (byť se od těch 80. let udělal obrovský pokrok a osobně už na nějakém proprietárním softwaru závislý nejsem**), potom narůstající komplexita, bezpečnostní chyby, nespolehlivost, regrese, rozbíjení dříve fungujících věcí... a až někde daleko za tím jsou nějaké ušetřené cykly CPU, milisekundy zpoždění nebo ušetřené bajty v paměti... Ty má opravdu smysl řešit jen tam, kde je úzké hrdlo a kde to má reálné dopady.***

*) byť převažují pozitiva a stále mě to baví
**) kromě BIOSu/UEFI a nějakých firmwarů... i když i tohle se daří řešit a svobodný hardware jde nahoru, máme věci jako coreboot, RISC-V, OpenPOWER... situace se i tady postupně zlepšuje
***) Např. když se něco opakuje milionkrát, tak už tam ta milisekunda v každém cyklu hraje podstatnou roli. Nebo když je něco milionkrát rozkopírované v paměti, přenesené po síti nebo uložené na disk.

Pepik

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #27 kdy: 24. 09. 2018, 21:13:26 »
Franta: V zásadě máš pravdu, předsedo... Nicméně, někdo tady postoval link, kde se toto srovnávalo s ekonomikou. To želbohu docela sedí, protože když si soudruzi v Redmotu usmyslí, že prostě nová verze musí být tehdy a tehdy a tak se to prostě nějak udělá, kdo zaplatí tohle rozhodnutí ? Nakonec právě ty spotřebované zdroje lidma/strojema/.... Kolik elektráren tady okolo vrní jen proto, aby se uživily plejády CPU, protože se na to jedna firma prostě vys.... ? Je to extrémní příklad, to je jasný.

Nicméně, v globále takový ty hledači zásuvek spotřebují slušnou energii. Schválně, tak odhadem, typická baterka patlafounu (nepěstuju podobná zařízení, tak čistě odhad) 5500mWh. Jednou za 3 dny na 100% nabít (optimistické soudím). Za rok teda 5500e-3*365/3=670Wh. Miliarda telefonů...  Překlopené na trvalou spotřebu jsme na téměr 80 MW trvalého odběru. Jen za blbé telefony. A to jsem hodně optimistickej.

Co teprve to, že se cvakne fotka, pár mega se přeleje přez tuny serverů (a uloží) jen aby to bylo jednoduché ? Je tady všude je habamoc místa, kde by se daly věci udělat daleko optimalizovanější jen na úrovni SW. Ale to by nešlo mít novej produkt každej rok...

Já třebas právě jako jednu z hlavních příčin tohodle vidím rychlost, jakou se věci otáčejí. Všichni chtějí mít všechno hned, plánované morální zastarávání, ... Vždy to ale nakonec někdo/něco zaplatí. V případě MS, když Aero zvedlo drsně spotřebu, to pocitili všichni po celém světe :)

Pepikus

RayeR

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #28 kdy: 25. 09. 2018, 02:55:46 »
Citace: Franta <xkucf03/>
**) kromě BIOSu/UEFI a nějakých firmwarů... i když i tohle se daří řešit a svobodný hardware jde nahoru, máme věci jako [/quote

No ja bych rek, ze to s CB jde spise dolu, AMD uz tam toho moc/nic nekomituje a tak podpora novych desek vazne. Stejne ty dnensi systemy uz nejsou schopny nastartovat bez proprietarniho binarniho blobu vyrobce (at uz intel ci AMD), takze to tak nak postrada smysl...

RayeR

Re:Kde najít ne-main stream práci / doporučení
« Odpověď #29 kdy: 25. 09. 2018, 03:15:32 »
>Pepik

Ja neco podobnyho resil letos na jare-v lete. Asi po 10 letech jsem se rozhodl zvednout kotvy, kontaktoval asi 10 firem v Praze a obehal pohovory. Ale nic idealniho sem nenasel. Zhruba bych sve poznatky rozdelil na 2 typy:
mensi firmy, kde muze byt i zajimava a ruznoroda prace, ale ty casto malo plati, prestoze od zamestnance chteji, aby byl superman v oboru/ech (mozna jim prave jsi) a obvykle minimalni benefity (pod 5 tydnu dovolene, a plovouci pracovni doby sem se nechtel rozhodne vzdat) a nejlepe abys pro ne drel od nevidim do nevidim...
A na druhe strane korporaty, kde to byva klidnejsi, lepe plati, benefity jsou samozrejmost, ale zas prace muze bejt nudna ci striktne rozdelena na jen HW nebo jen SW (ja sem taky takovy patlal obojeho) nebo sou tam prilis byrokraticky postupy, to co v maly firme trva den tak tam treba mesic nebo tam sou sracky typu openspace, kde se neda soustredit na praci...
Nakonec sem zvolil spise korpo, tak uvidim, jak se to vyvine.
Pokud si chces ridit sam, jaky pomer casu stravis praci a zabavou, tak asi zustan raci jako zivnostnik. Jeden byvaly kolega, co prede mnou odesel, uz takle funguje asi rok a pul, delal treba na projektu pro Honeywell, kde mel vicemene homeoffice a dojizdel na nake porady asi 1 tydne... A nebo pokud te nic nedrzi a umis dobre anglicky, tak hybaj do Nemec :)