Fórum Root.cz

Práce => Studium a uplatnění => Téma založeno: Noxiwic 14. 02. 2022, 20:26:00

Název: Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Noxiwic 14. 02. 2022, 20:26:00
Pracuji už pár let v menší firmičce jako frontend programátor - (převážně React). Práce mě přestává bavit a rád bych zkusil i něco jiného než eshop na 100 způsobů a tak jsem začal chodit po pohovorech. Bohužel jsem tvrdě narazil, zatím ve všech firmách po mě chtěli nějaké skoro slovní úlohy a logické uvažování na kterém jsem shořel jako papír. Já nemám problém si se zákazníkem sednout, navrhnout řešení eshopu, to poté naprogramovat i s administrací. Takových projektů mám za sebou několik. Všechno to byly jen CRUD aplikace. Ale mám obrovský problém, když na mě začnou házet otázky typu jak prohodím dvě hodnoty bez použití třetí pomocné proměnné nebo jak zjistím zda se dva obdélníky překrývají. Otázky tohoto typu se pořád opakují. Když se jich slušně zeptám k čemu jim moje odpověď bude tak z nich jen vypadne že to je pouze test logického a algoritmického myšlení. Zatím jsem takto vyletěl od tří pohovorů, mě to touhle logickou nebo jak říkají algoritmickou cestou nikdy moc nemyslelo. Pokud jsem se v práci kdy s takovým problémem setkal, tak mi stačil strejda Google a na zkopírovaný kód si napsat testy. Docela začínám propadat zoufalství protože jsem byl v jedné firmě i nařčen, že jako programátor se 4 lety zkušeností bych si s tím měl poradit hravě, že jim tam snad lžu. Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Blabla123 14. 02. 2022, 20:36:27
Trochu se bojím, že se dočkáš komentářů typu, že seš prostě blbej, a kdo to myšlení nedostal od pána boha, tak už se tomu nenaučí. Já si myslím, že trénováním se zlepšit jde. Minimálně na projití pohovorem určitě. Nic převratnýho - podle mě bude nejlepší si prostě najít častý školní/pohovorový úlohy a snažit se je řešit. Nebo třeba programovací úlohy pro středoškoláky. Když je nevyřešíš, tak se holt podíváš na řešení a budeš nad tím přemýšlet tak dlouho, dokud ti to nedojde. Pokud si budeš myslet, že ti to došlo, a po týdnu si na tu úlohu vzpomeneš a zas jí nerozumíš, tak jsi jí nedostatečně pochopil. Btw já u těch pohovorů, když jsem nevěděl, tak jsem přemýšlel nahlas. Ne jen tiše sedět a na konci říct prostě "nevím". A to nejdůležitější na závěr - hlavně se z toho neposrat a chvíli vydržet, snažit se.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: CPU 14. 02. 2022, 20:49:38
Neuraž se, ale pokud tam sedíš jako bábovička rozsolu, tak co čekáš?
Musíš tam přijít slušně oblečený a usmívat se, vzhled a vystupování je 50% úspěchu.

https://worknearyou.net/interview-tips/interview-tips-2/
(https://worknearyou.net/wp-content/uploads/2014/01/Interview-Tips1.jpg)

Převezmi iniciativu a ukazuj, co jsi naprogramoval.
Nauč se vyhnout otázkám, směrovat rozhovor směrem, kterým chceš.
Je to jako obchodní jednání.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 14. 02. 2022, 21:54:27
Pracuji už pár let v menší firmičce jako frontend programátor - (převážně React). Práce mě přestává bavit a rád bych zkusil i něco jiného než eshop na 100 způsobů a tak jsem začal chodit po pohovorech. Bohužel jsem tvrdě narazil, zatím ve všech firmách po mě chtěli nějaké skoro slovní úlohy a logické uvažování na kterém jsem shořel jako papír. Já nemám problém si se zákazníkem sednout, navrhnout řešení eshopu, to poté naprogramovat i s administrací. Takových projektů mám za sebou několik. Všechno to byly jen CRUD aplikace. Ale mám obrovský problém, když na mě začnou házet otázky typu jak prohodím dvě hodnoty bez použití třetí pomocné proměnné nebo jak zjistím zda se dva obdélníky překrývají. Otázky tohoto typu se pořád opakují. Když se jich slušně zeptám k čemu jim moje odpověď bude tak z nich jen vypadne že to je pouze test logického a algoritmického myšlení. Zatím jsem takto vyletěl od tří pohovorů, mě to touhle logickou nebo jak říkají algoritmickou cestou nikdy moc nemyslelo. Pokud jsem se v práci kdy s takovým problémem setkal, tak mi stačil strejda Google a na zkopírovaný kód si napsat testy. Docela začínám propadat zoufalství protože jsem byl v jedné firmě i nařčen, že jako programátor se 4 lety zkušeností bych si s tím měl poradit hravě, že jim tam snad lžu. Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?

1. Nasel jsem treba toto
https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0

2. Hlavne se nenech odradit. Sice je nedostatek programatoru, ale zaroven si firmy dost vybiraji. Taky jsem neuspel asi na 7 pohovorech. Takze zkousej dal, dokud nedojde k matchi.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 14. 02. 2022, 22:29:10
Ale mám obrovský problém, když na mě začnou házet otázky typu jak prohodím dvě hodnoty bez použití třetí pomocné proměnné

Je viacero moznosti napr:
Kód: [Vybrat]
[a, b] = [b, a]
pre javascript... To ale nie je o logike, toto su zaklady. Je to test ci mas za sebou skutocne tie 4 roky a ci ti tie roky nieco dali..
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 14. 02. 2022, 22:39:43
a += b
b = a - b
a  -= b
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 14. 02. 2022, 22:42:53
a += b
b = a - b
a  -= b

Pekne ale nepouzitelne ak hrozi pretecenie...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Ondrej Nemecek 14. 02. 2022, 22:44:54
Je to docela prosté: přílišný praktik si potřebuje přičichnout k teorii a přílišný teoretik zase posílit k praxi.

Ono se to po letech vyrovná a programátor je všestranně zdatnější.

Algoritmy se dají naučit řešením typických úloh - podobně jako se matematika učí pomocí příkladů. Málokdo ty postupy sám vymyslí (stejně jako málokdo objeví sám něco v matematice), ale není velký problém získat sadu modelů a postupů, se kterými lze na problém nahlížet.

V praxi se většinou stejně použije hotová implementace, ale ke kompetenci patří alespoň přibližná ůpředstava o tom, co používám.

Já mám v záložkách třeba https://www.algoritmy.net/ - je tam docela dobrý přehled témat a url se dobře pamatuje :)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: JurajP 14. 02. 2022, 22:51:32
Velmi primitivne otazky. Do takej firmy by som ani nesiel robit. Niekedy sa pytaju take veci, ktore ani oni sami nevyuzivaju, len sa potrebuje interviewer hecnut, ked vam vysvetli riesenie, no a este vam k tomu ponuknu malo penazi. Nastupite tam a zistite, ze su tam lepici kodu, ktori ani len netusia, ci Dispose vola garbage collector alebo sam developer
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 14. 02. 2022, 23:00:29
a += b
b = a - b
a  -= b
Pekne ale nepouzitelne ak hrozi pretecenie...
Proto se to dělá xorem.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: pruzkumbojem 14. 02. 2022, 23:05:18
ja jsem z tech pitomosti vzdycky zmatenej, co po mne ty lidi chteji.

treba chteji slyset, ze takhle se to neda delat, protoze to muze pretect atd?
Nekolikrat chteli slyset, ze to jako enhancement agilne  udela offshore team.
nebo jsou jen blbci z HR, co maji na listecku odpoved a beda pokud odpovim vetou vice rozvitou?
atd.


a += b
b = a - b
a  -= b
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 14. 02. 2022, 23:13:08
a += b
b = a - b
a  -= b
Pekne ale nepouzitelne ak hrozi pretecenie...
Proto se to dělá xorem.

Presne tak, alebo sa pouziju moznosti konkretneho jazyka tak ako som pisal vyssie:
Kód: [Vybrat]
[a, b] = [b, a]
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 14. 02. 2022, 23:18:33
nebo jsou jen blbci z HR, co maji na listecku odpoved a beda pokud odpovim vetou vice rozvitou?
atd.

Tak, k tym praktickym veciam si HR spravidla prizvu niekoho zo stavajuceho teamu, niekedy je smola ze je to matfyzak na sposob Sheldona Coopra... :D
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Zdenek Tomes 14. 02. 2022, 23:22:31
a += b
b = a - b
a  -= b

Pekne ale nepouzitelne ak hrozi pretecenie...

To neva, ono to při těch druhých dvou výpočtech zase přeteče do správného výsledku.

Horší je to s floatama, ale tam obecně neplatí spousta předpokladů (a to by byla na pohovor zajímavější otázka).
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: pruzkumbojem 14. 02. 2022, 23:32:05
Ne, je to jejich "wet dream" dostat listecek. uz to mne chtely nekolikrat, ale nikdy jsem jim ho nedodal.


nebo jsou jen blbci z HR, co maji na listecku odpoved a beda pokud odpovim vetou vice rozvitou?
atd.

Tak, k tym praktickym veciam si HR spravidla prizvu niekoho zo stavajuceho teamu, niekedy je smola ze je to matfyzak na sposob Sheldona Coopra... :D
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 14. 02. 2022, 23:33:03
a += b
b = a - b
a  -= b

Pekne ale nepouzitelne ak hrozi pretecenie...

To neva, ono to při těch druhých dvou výpočtech zase přeteče do správného výsledku.

Horší je to s floatama, ale tam obecně neplatí spousta předpokladů (a to by byla na pohovor zajímavější otázka).

Nie ak to zdochne na chybovej hlaske, pre tento pripad by musel mat ten cielovy jazyk moznost vypnut kontrolu pretecenia.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 14. 02. 2022, 23:35:03
Ne, je to jejich "wet dream" dostat listecek. uz to mne chtely nekolikrat, ale nikdy jsem jim ho nedodal.

Tak s takymi som sa nastastie este nestretol...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: RDa 15. 02. 2022, 00:51:49
ja bych sel na to spis jako:
Kód: [Vybrat]
mov eax, [var1]
xchg eax, [var2]
mov [var1], eax

A pokud by remcali ze "eax" je prece treti promenna, tak at me ukazou jak ten zrejme ocekavanej triradkovej xor schopen primo dvou memory operaci  :-)

Pro zvedave - dopadne priserne:
Kód: [Vybrat]
void swap(int *a, int *b ) {
    *a = *a ^ *b;
    *b = *a ^ *b;
    *a = *a ^ *b;
}

swap(int*, int*):
        mov     eax, DWORD PTR [rdi]
        xor     eax, DWORD PTR [rsi]
        mov     DWORD PTR [rdi], eax
        xor     eax, DWORD PTR [rsi]
        mov     DWORD PTR [rsi], eax
        xor     DWORD PTR [rdi], eax
        ret
( skrze https://godbolt.org/ ... x86-64 gcc-11.2 -O3 )

Jinak je zajimavy, ze clang ani gcc negeneruje xchg, a pri pouziti treti promenne z toho vznikne 2x load a 2x store, coz je asi vyhodnejsi z pohledu dekoderu a pipeline / ROB?
Kód: [Vybrat]
void swap(int *a, int *b ) {
    int c = *a;
    *a = *b;
    *b = c;
}

swap(int*, int*):
        mov     eax, dword ptr [rdi]
        mov     ecx, dword ptr [rsi]
        mov     dword ptr [rdi], ecx
        mov     dword ptr [rsi], eax
        ret

Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 15. 02. 2022, 01:59:51


Pekna stranka, diky.

S tym xchg to bude asi takto: https://godbolt.org/z/z4zhdxo71
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: technomaniak 15. 02. 2022, 05:12:13
Docela začínám propadat zoufalství protože jsem byl v jedné firmě i nařčen, že jako programátor se 4 lety zkušeností bych si s tím měl poradit hravě, že jim tam snad lžu.
Ignoruj neúspěch a pokračuj dál v hledání. Podle mě jsi měl pouze smůlu na debilní firmy kde zjevně nikoho nepotřebují a spíš tvůj pohovor posloužil jako důvod k činnosti personalistům. Neboť i oni potřebují vykazovat činnost. Oni prostě nikoho nenabírají ale inzerát mají aktivní a tak díky tomu vykazují pracovní činnost. Kdyby nic nedělali byli by prostě zbyteční.

Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?
Podle mě Ne i Ano. Zásadně se mozek vylepšit nějakým cvičením nedá, kdo neumí myslet, má prostě smůlu. Lze si zapamatovat(našprtat) myšlenky druhých( a možná i pochopit) a ty si uložit a pak je použít, což dělá cca 95-8% populace.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: alex6bbc 15. 02. 2022, 05:25:42
a += b
b = a - b
a  -= b

Pekne ale nepouzitelne ak hrozi pretecenie...

a to muze byt dalsi dotaz, jake to ma nevyhody :-)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Jiří Havel 15. 02. 2022, 08:07:42
a += b
b = a - b
a  -= b
Pekne ale nepouzitelne ak hrozi pretecenie...
Proto se to dělá xorem.
Tady bych tě opravil - nedělá se to! Je extrémně nepravděpodobné, že by se tazatel někdy dostal do situace, kdy takovýhle swap dává smysl.

Rozumný překladač tenhle kód zoptimalizuje na normální swap. Respektive zoptimalizoval by, kdyby nemusel zachovat jednu hnusnou past, kdy ten kód neprohazuje, ale nuluje. Naprosto typická zkratka - je to pomalejší ale zase to nefunguje vždycky.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 15. 02. 2022, 08:23:04
a += b
b = a - b
a  -= b
Pekne ale nepouzitelne ak hrozi pretecenie...
Proto se to dělá xorem.
Tady bych tě opravil - nedělá se to! Je extrémně nepravděpodobné, že by se tazatel někdy dostal do situace, kdy takovýhle swap dává smysl.

Rozumný překladač tenhle kód zoptimalizuje na normální swap. Respektive zoptimalizoval by, kdyby nemusel zachovat jednu hnusnou past, kdy ten kód neprohazuje, ale nuluje. Naprosto typická zkratka - je to pomalejší ale zase to nefunguje vždycky.
Pravda, nedělá, chtěl jsem prostě jen říct, že xorem to jde podobně bez ohledu na přetečení.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: premekv 15. 02. 2022, 08:53:52
Někdo moudrý (nepamatuji si kdo) prohlásil, že vrozený talent je (nepamatuji si kolik, ale málo) procent a zbytek je píle , pravidelnost a vytrvalost. Platí to u sportu, cizích jazyků i tréninku algoritmického myšlení. Stanovte si cíl - X minut denně -  dodržujte ho. Dejte tomu prioritu.

Jde jen o aplikaci vzorů známých řešení na podobnou úlohu. Zvládá to i umělá inteligence. Mimochodem DeepMind Alpha Code (od Alphabetu, firmy zastřešující Google) zvládá v soutěžích typu Codeforces prý porazit 54% vývojářů celého spektra (od nováčků po kované profíky) a dá se s použitím velké zkratky říct, že stroj už programuje jako průměrný programátor. Za čas si koupíte bota, který za vás bude řešit "whiteboard" problémy při pohovorech a půjde o to, kdo bude mít zaplacenou lepší A.I. - to jsme teď dost odbočili od tématu..

Úlohy na "algoritmické myšlení" nacvičíte na různých stránkách typu hackerrank, leetcode, intverview cake (dobré, ale placené a výrazně koukám podražili) nebo v knížkách typu Cracking the code interview (tu bych osobně doporučil). Je dobré se tím pravidelně zabývat dlouhodobě a pravidelně, i když zrovna interview nečekáte. Jen tak ze zábavy a z preventivních důvodů Mozek je jako sval a nepoužíváním nebo jednostrannými rutinními úlohami (stopadesátá crud servisa ve springu a JPA a JSON a REST...) může zakrnět.

Pokud jde o pohovory samotné - po nějakém tréninku zjistíte, že je omezený pool úloh, intervieweři jsou velmi často líní přijít s něčím úplně originálním a ani to skoro dobře nejde. Spíš řešíte situaci, kdy úlohu prostě znáte. "Takže chceme naimplementovat frontu pomocí dvou zásobníků (to je ale překvapení)."  nebo "n-tý prvek od konce single-link-list seznamu (neříkejte)"
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 15. 02. 2022, 09:04:21
slovní úlohy a logické uvažování
Zní to banálně a nudně, ale ty úlohy jsou v zásadě matematické (v širším smyslu, někdy jde čistě o statistiku či logiku nebo jen vhodný algoritmus v několika krocích). S trochou píle je nejefektivnější procvičovat si jednodušší matematické úlohy (začít na SŠ úrovni a přidávat), zvlášť pokud už člověk má praktické zkušenosti z práce v IT. Druhou cestou je pak to memorování, ale to asi člověka nikam neposune.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: kanoe22 15. 02. 2022, 09:10:59
...

Skusat si algoritmicke ulohy sa da na strankach ako je https://www.hackerrank.com/ , Da sa tam vybrat mnozstvo jazykov v akom chces danu ulohu plnit. Su aj ine stranky ale nechce sa mi hladat teraz :D

Urcite by som sa len slepo neucil algoritmy z nejakej knizky, lebo to skonci ako na vyske na matematike, hafo pismenok a cudnych znakov medzi nimi, aj si celkom myslis ze vies, ale potom pridu cvika a komplikovanejsie priklady uz moc nejdu (vlastna skusenost :D). Preto treba take veci cvicit prakticky.

Ohladom spominanej ulohy na swap, jedna sa o jednu zo zakladnych uloh kde vidia ci uchadzac len vie algoritmus ako ich swapnut,
napr [a, b] = [b, a] co nie kazdy jazyk umoznuje,
alebo
a += b
b = a - b
a  -= b
co ide v kazdom jazyku. Na tom vidno ci uchadzac vie moznosti svojho jazyka (prvy uvedeny postup), alebo ho vie iba pouzivat na urovni inych jazykov. Tj vie zakladne veci ako deklarovanie premennych, podmienky, cykly, ako vyzera trieda, ako funguje dedicnost, pristupove modifikatory, atd. Ale nevie taketo ficurky ktore ma ten ktory jazyk.

Nechcem ti tym pridavat na zlej nalade, dost dokaze zavazit aj stres, cize clovek v danej chvili nevie premyslat cisto a aj primitivna uloha mu moze robit problemy.

Ono, inak sa ani neda otestovat uchadzaca ako ze mu davas algoritmicke ulohy aby si videl ako rozmysla, a ci rozmysla alebo len skopiruje prve riesenie zo stack overflow, a taktiez aj otazky primerane odpracovanym rokom s tou ktorou technologiou, aby sa videlo ci sa v nej clovek nejak posuval, alebo to bolo cely cas v podstate len nejaka entry level pozicia, kde clovek v podstate iba stagnoval.
Mozno by som sa na chvilu (na 1-3 mesiace) vykaslal na hladanie si prace inde a zapracoval na algoritmizacii, a vedomostiach o jazyku/jazykoch ktore pouzivas. Pretoze inak obehas vsetky firmy v okoli, a akurat si urobis blbe meno.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Trident Vasco 15. 02. 2022, 10:04:08
Neuraž se, ale pokud tam sedíš jako bábovička rozsolu, tak co čekáš?
Musíš tam přijít slušně oblečený a usmívat se, vzhled a vystupování je 50% úspěchu.

https://worknearyou.net/interview-tips/interview-tips-2/
(https://worknearyou.net/wp-content/uploads/2014/01/Interview-Tips1.jpg)

Převezmi iniciativu a ukazuj, co jsi naprogramoval.
Nauč se vyhnout otázkám, směrovat rozhovor směrem, kterým chceš.
Je to jako obchodní jednání.
Slusne obleceny? To jsou nejaky 80-90ta leta? A nechces aby clovek k pocitacum chodil v bilem plasti? Ja vetsinou chodim na pohovory v kapsacich mezi obedem s nejakym vtipnym trickem ktere se tyka IT. Lide to oceni. Zakos pravdepodobne ne. Nicmene na navsteve u zakosu stejne clovek nosi neco proti ESD ci nejakou mistni uniformu aby bylo videt ze je managor/visitor ci jiny odpad.

Do podminek nastupu si davam ze nechci chodit ani v kvadru ani krychli. Pokud ano tak chci okamzite nechutny plat, prispevek na obleceni a sprchy v dosahu.

Jednou jsem tedy prisel v saku coz byla nahoda neb ten den jsem sel kamaradovi za svedka a k par zakosum na jednani taky, ale dalsi dny uz jako mistni - tj. trenky,tricko,klobouk,lehke boty a spousta kremu na opalovani.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: _Tomáš_ 15. 02. 2022, 11:03:00
Tyhle nesmysly jsou jen filtr, jak protřídit uchazeče a ušetřit zdroje právě na odbornících, kteří dělají další kolo pohovoru. Na pohovory chodí extrémně moc lidí, kteří tam prostě nemají co dělat.

Je pak na firmě, jestli fitrovací test zvolí dobře nebo špatně. Osobně jsem zkoušel řadu různých testů a způsobů, jak udělat filtr automatický, aby ho HR mohlo samo vyhodnotit. Těmito testy nejvíce prochází lidé s VŠ, kteří jsou na podobné úlohy zvyklí, přitom to jsou často lidé bez praxe a je nutné je zaučit.

Paradoxní je, že většinu těhle úloh nedají ani senioři, ti se zase snaží být příliš přesní a pak se netrefí do primitivní odpovědi, kterou mají HR jako vzorovou.

Můžeš si načíst spoustu podobných testů a úloh, naučit se jejich řešení a doufat, že to chytneš a projdeš nebo hledat dál až narazíš na společnost, která nedělá tyhle divné filtry. 3 pohovory je málo, navštiv 20 pohovorů a pak udělej závěr. Za mě to zkoušej dál a nenech se odradit.

Kód: [Vybrat]
a += b
b = a - b
a  -= b

Tenhle kód je v JS na prohození hodnot vyloženě nefunkční a chybný. Co když hodnoty nebudou číselné nebo budou mít rozdílný datový typ?

Kód: [Vybrat]
[a,b]=[b,a]

Kód je často očekáván jako správné řešení, ale opět je nesprávné. Interně totiž proběhne alokace hned 4 registrů, počet instrukcí ani nezmiňuji.

Kód: [Vybrat]
var c = a
a = b
b = c

Naopak přímým prohozením dojde k použití pouze 3 registrů, kód na procesoru má mnohem méně instrukcí a objektivně poběžní daleko rychleji než předchozí fancy příklad, který je předkládán jako správné řešení.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: kanoe22 15. 02. 2022, 11:56:48
...

Zasa teoretizovat o tom ze co ak su premenne rozne datove typy je zcestne, lebo vacsina (normalnych) jazykov nepovoli zavolat metodu ktorej na vstup tlacim blbosti ktore tam nepatria. Automaticky sa ocakava ze bud vymienam rovnake datove typy, alebo nieco kompatibilne, tj do 32bit intu nevlozim 64bit int, inak pridem o hodnotu a este ju zo zmrsi.

To uz potom neni test logiky, ale test vychcanosti o tom ako nieco umyselne bugnut, a nieco take by som ocakaval skor na poziciu (pen)testera, kde ide o to odhalit chyby, kam patria aj neosetrene vstupy a nejak toho zneuzit.

Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: _Tomáš_ 15. 02. 2022, 12:12:39
Zasa teoretizovat o tom ze co ak su premenne rozne datove typy je zcestne, lebo vacsina (normalnych) jazykov nepovoli zavolat metodu ktorej na vstup tlacim blbosti ktore tam nepatria. Automaticky sa ocakava ze bud vymienam rovnake datove typy, alebo nieco kompatibilne, tj do 32bit intu nevlozim 64bit int, inak pridem o hodnotu a este ju zo zmrsi.

To uz potom neni test logiky, ale test vychcanosti o tom ako nieco umyselne bugnut, a nieco take by som ocakaval skor na poziciu (pen)testera, kde ide o to odhalit chyby, kam patria aj neosetrene vstupy a nejak toho zneuzit.

Vlákno je o Reactu, tedy JS. Ani nemusí jít o jiný datový typ, ale třeba i klasický NaN, Infinity nebo null, které se může objevovat místo číselných hodnot. Varianta s a+=b, b-a,a-=b také nefunguje řetězci, resp. funguje pouze s čísly a ideálně celočíselnými čísly.

Nevzniká právě většina chyb tím, že máš nějaké automatické očekávání a v programu si je nezkontrololuješ? Vždy u řešení můžeš předložit i definiční podmínky, za kterých funguje. Tady bylo v zadání "jak prohodím dvě hodnoty bez použití třetí pomocné proměnné", o vstupních datových typech se nemluví, takže si je buď jako omezení stanovím nebo musím počítat s čímkoliv.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Jiří Havel 15. 02. 2022, 13:33:08
Kód: [Vybrat]
[a,b]=[b,a]

Kód je často očekáván jako správné řešení, ale opět je nesprávné. Interně totiž proběhne alokace hned 4 registrů, počet instrukcí ani nezmiňuji.
Hele, o počtu registrů nemá cenu ani uvažovat pokud neznáme přesně jazyk, cílovou instrukční sadu a možná i verzi překladače. A to se ten kód musí aspoň JITovat, jinak se o registrech nedá uvažovat vůbec.

Tohle je buď test, jak zareaguješ na WTF situaci, nebo prefabrikovaná otázka na kterou očekávají prefabrikovanou odpověď.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: BoneFlute 15. 02. 2022, 13:45:50
Kód: [Vybrat]
[a,b]=[b,a]

Kód je často očekáván jako správné řešení, ale opět je nesprávné. Interně totiž proběhne alokace hned 4 registrů, počet instrukcí ani nezmiňuji.

Kód: [Vybrat]
var c = a
a = b
b = c

Naopak přímým prohozením dojde k použití pouze 3 registrů, kód na procesoru má mnohem méně instrukcí a objektivně poběžní daleko rychleji než předchozí fancy příklad, který je předkládán jako správné řešení.
Neškodila by trochu důvěry v překladač/runtime?

Prvním řešením říkám co chci dělat. Druhým řešením dělá práci za mašinu. Je to sice optimální a správně, ale víc se ztrácí myšlenka.

Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 14:09:27
a += b
b = a - b
a  -= b

Pekne ale nepouzitelne ak hrozi pretecenie...

v javascriptu je spravne reseni to vase, ale

v javascriptu preteceni nenastane, maximalne zaokrouhlovaci chyba

v C tohle normalne projde, podle me to funguje i s pointery

v pythonu jsou cela cisla neomezena, ale stejne jako v js jde a, b = b, a
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 14:14:47
Co když hodnoty nebudou číselné nebo budou mít rozdílný datový typ?

zase typy..... minus u ne-ciselnych typu neprojde pres eslint.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 14:17:52
Kód: [Vybrat]
var c = a
a = b
b = c

ja bych tohle povazoval asi za nejhorsi moznou odpoved na otazku "jak prohodím dvě hodnoty bez použití třetí pomocné proměnné"
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: snugar_i 15. 02. 2022, 14:19:12
Tenhle kód je v JS na prohození hodnot vyloženě nefunkční a chybný.

Ano, v JS se i jednoduchý věci dělají složitě a člověk si musí pořád dávat pozor na klacky, co mu ten jazyk háže pod nohy, ale o JS autor neřekl ani slovo.

Kód je často očekáván jako správné řešení, ale opět je nesprávné. Interně totiž proběhne alokace hned 4 registrů, počet instrukcí ani nezmiňuji.

Líbí se mi, jak z JS hned přeskakuješ na registry... Takže každej překladač každýho jazyka interně udělá alokaci 4 registrů? Skoro bych se vasdil, že ne...

Kód: [Vybrat]
var c = a
a = b
b = c
Naopak přímým prohozením dojde k použití pouze 3 registrů, kód na procesoru má mnohem méně instrukcí a objektivně poběžní daleko rychleji než předchozí fancy příklad, který je předkládán jako správné řešení.

Ano, tohle bude správný řešení otázky "jak prohodím dvě hodnoty bez použití třetí pomocné proměnné" :-)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: _Tomáš_ 15. 02. 2022, 14:28:11
Neškodila by trochu důvěry v překladač/runtime?

Prvním řešením říkám co chci dělat. Druhým řešením dělá práci za mašinu. Je to sice optimální a správně, ale víc se ztrácí myšlenka.


Ale přece i ostatní řešení (přičítání/odečítání od A.P.Hacker nebo XOR) dělají práci za překladač a fungují jen na základě nízkoúrovňových znalostí, často jsou v tomhle typu příkladu považovány za správnou odpověď. Stejně tak použití destructuring assignment pro prohození hodnot je spíše vedlejší efekt téhle funkce. Zadání, které explicitně mluví o "bez použití proměnné" odkazuje na to, že se chci vyhnout zbytečné alokaci a v prostředí JS vlastně vyžaduje použití daleko náročnější konstrukce.

Tenhle přiklad totiž potrádá ve vysokých jazycích to kouzlo a důvod, proč původně vznikl, přetrval jen jako hořká pachuť a vede právě k absurdním řešením s hůře čitelnou syntaxí.


zase typy..... minus u ne-ciselnych typu neprojde pres eslint.

S jakým nastavením eslint? Mně to prochází. Pokud potřebuješ číslo, ok, a = 1, b = 0/0 obsahuje číselné typy a také plodí nesmyslné výsledky a nikoliv žádané prohození hodnot.

ja bych tohle povazoval asi za nejhorsi moznou odpoved na otazku "jak prohodím dvě hodnoty bez použití třetí pomocné proměnné"

Také jsem to jako řešení neprezentoval, jen jsem tenhle přímý konstrukt použil pro porovnání efektivity. Nic víc, nic míň.



Líbí se mi, jak z JS hned přeskakuješ na registry... Takže každej překladač každýho jazyka interně udělá alokaci 4 registrů? Skoro bych se vasdil, že ne...

Ne, jsem pořád v JS, myslel jsem tím Lda, tj. accumulator register jak to pojmenovává V8 interně.


Ano, tohle bude správný řešení otázky "jak prohodím dvě hodnoty bez použití třetí pomocné proměnné" :-)

Kde píšu, že to je správné řešení? Jen jsem zmiňoval, že tahle varianta je jako rychlejší než správné řešení.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 14:40:16
Varianta s a+=b, b-a,a-=b také nefunguje řetězci

S jakým nastavením eslint?

v pripade odecitani retezcu s jakymkoliv. Tazatel nikde nepsal, ze to ma byt v JS, moje reseni je funkcni v C. Ve vyssich jazycich to jde primo, jak psali jini. Resit vyuziti registru v JS je nesmysl, jak psali jini.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: kanoe22 15. 02. 2022, 14:50:23
_Tomáš_ ze ty si jeden z tich ktori davaju takeho pi.oviny na pohovoroch a vyhodis kazdeho kto sa odmieta dlubat v tom hov.e dlhsie/hlbsie akoby sa ti pacilo?

O chvilu tu budes riesit energeticku uroven a vyjde nam ze najmensiu spotrebu elektriny bude mat clovek s ceruzkou, pretoze spocita na papier to co pc ale s (nerealne) nulovou spotrebou elektriny.

Ach. Tento priklad je na 99% o integeroch. To 1percento je na pripady kedy sa ta opytaju na floaty (resp ine floating point formaty). A tam uz ide o nieco ine, tam skusaju ci vies ze tieto cisla nie su vzdy presne to co tam zapises, pretoze tam dochadza k zaokruhlovaniu. Tj napr 1.5 bude realne v pameti reprezentovane napr pomocou 1.50000000126.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: _Tomáš_ 15. 02. 2022, 15:14:05

v pripade odecitani retezcu s jakymkoliv. Tazatel nikde nepsal, ze to ma byt v JS, moje reseni je funkcni v C. Ve vyssich jazycich to jde primo, jak psali jini. Resit vyuziti registru v JS je nesmysl, jak psali jini.

Frontend programátor v Reactu, chce změnit to, že dělá eshopy na sto způsobů jinak. Vychází mi z toho pořád ten JS. Ok, v PHP to je v bledě modrém. Tvoje řešení v C je v pořádu, ale nijak mi tady nevyplývá, že by tazatel se hlásil na programování v C.

_Tomáš_ ze ty si jeden z tich ktori davaju takeho pi.oviny na pohovoroch a vyhodis kazdeho kto sa odmieta dlubat v tom hov.e dlhsie/hlbsie akoby sa ti pacilo?


Odpusť si prosím tenhle útočný tón.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 15:29:58
ale nijak mi tady nevyplývá, že by tazatel se hlásil na programování v C.

ve vyssich jazycich je to tak trivialni, ze nema smysl se na to ptat.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 15. 02. 2022, 16:27:20

No, vo svojom brainstormingu mate niekolko zasadnych nedostatkov:


Byt vas temleader, tak v nasledujucom kroku uz by som vas temleader nebol...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Zdenek Henek 15. 02. 2022, 16:29:03
Je možné, že děláte špatně již úvodní představení? Co byste chtěl dělat?

Myslím, že by bylo lepší do průvodního dopisu přímo napsat i co chcete dělat. To by mohlo odfiltrovat dost marných pohovorů. Pokud Vám to nejde, tak zkuste využít služeb firem, které sprostředkují práci. Někteří jen nepřehazují emaily a dokázali by Vám i poradit.

Pracuji už pár let v menší firmičce jako frontend programátor - (převážně React). Práce mě přestává bavit a rád bych zkusil i něco jiného než eshop na 100 způsobů a tak jsem začal chodit po pohovorech. Bohužel jsem tvrdě narazil, zatím ve všech firmách po mě chtěli nějaké skoro slovní úlohy a logické uvažování na kterém jsem shořel jako papír. Já nemám problém si se zákazníkem sednout, navrhnout řešení eshopu, to poté naprogramovat i s administrací. Takových projektů mám za sebou několik. Všechno to byly jen CRUD aplikace. Ale mám obrovský problém, když na mě začnou házet otázky typu jak prohodím dvě hodnoty bez použití třetí pomocné proměnné nebo jak zjistím zda se dva obdélníky překrývají. Otázky tohoto typu se pořád opakují. Když se jich slušně zeptám k čemu jim moje odpověď bude tak z nich jen vypadne že to je pouze test logického a algoritmického myšlení. Zatím jsem takto vyletěl od tří pohovorů, mě to touhle logickou nebo jak říkají algoritmickou cestou nikdy moc nemyslelo. Pokud jsem se v práci kdy s takovým problémem setkal, tak mi stačil strejda Google a na zkopírovaný kód si napsat testy. Docela začínám propadat zoufalství protože jsem byl v jedné firmě i nařčen, že jako programátor se 4 lety zkušeností bych si s tím měl poradit hravě, že jim tam snad lžu. Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: _Tomáš_ 15. 02. 2022, 16:56:58


  • ignorujete dolezite fakty zo zadania - dotazovatel na pohovore uvadzal 4 roky praxe ako react frontend developer
  • nedochadzaju vam suvislosti - ze tie otazky budu s ucelom overit tie 4 roky praxe v konkretnom jazyku
  • neefektivita - miesto riesenia zadania, sklzavate do role optimalizatoru jazyka, rozporujete zadanie, celkovo riesenie zbytocne komplikujete

Byt vas temleader, tak v nasledujucom kroku uz by som vas temleader nebol...

V čem ignoruji fakta ze zadání? Frontend a React je dominanout JS a případně TS, právě na to jsem se zaměřil.

A myslíš, že 4 roky praxe v Reactu se prověřují akademickým příkladem na prohození hodnot dvou proměnných? To je konstrukce, kterou najít na frontendu je hodně raritní.

Nepřišel jsem řešit zadání, to ať si řeší, ten kdo ho dostal. Uvedl jsem jen kuriozitu a rozpory těhle "správných" řešení, které se tady objevily, v jazyku jako je JS a že vlastně se tím nic moc neověřuje, jen se papouškuje desítky let stejná úloha (tady si třeba vzpomínám na zajímavost, že swapování přes XOR fungovalo dobře na Z80, ale na 68x již nikoliv, tam se to musel řešit špešl instrukcí). Tohle patří k základním technikám při optimalizaci a i dnes se to použije pro stále rostoucí trh jednočipů a IoT. Ale dávat to jako úlohu pro programátora na frontendu, když v těch jazykách to nemá žádný smysl?

Naštěstí žádného team leadera nemám, takže děkuji, ale tvoji nabídku, abys mi ho dělal nevyužiji.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: BoneFlute 15. 02. 2022, 17:35:28
Neškodila by trochu důvěry v překladač/runtime?

Prvním řešením říkám co chci dělat. Druhým řešením dělá práci za mašinu. Je to sice optimální a správně, ale víc se ztrácí myšlenka.


Ale přece i ostatní řešení (přičítání/odečítání od A.P.Hacker nebo XOR) dělají práci za překladač a fungují jen na základě nízkoúrovňových znalostí, často jsou v tomhle typu příkladu považovány za správnou odpověď.
Nevím, zda jsou považovány, ale já je ani nezahrnul do reakce.

Stejně tak použití destructuring assignment pro prohození hodnot je spíše vedlejší efekt téhle funkce.
Já bych to tak neviděl.


Pokud budeme předpokládat, že se opravdu nejedná o nějaký IQ test na papírku, ale že ti co to zadání pokládají opravdu chtějí o uchazečovi něco zjisit, tak bych odpovídal takto:

"Ekonomicky je to úloha, která nestojí za námahu." - schopnost rozlišit užitečné, od zajímavého.

"Jo, někde jsem četl takovej vtipnej postup to nejdřív odečíst, a pak přičíst. Samozřejmě to funguje jen u čísel, i u reálných blbě. Taky je to dost matoucí. Nedělal bych to." - Obecný přehled, znalost limit, vědomí si psychologie programování.

"V modernějších jazycích se na to dá skvěle použít destructuring assignment. To je asi nejblíž zadání, řekl bych." - znalost jazyků a jejich možností.

"Hodilo se vám to někdy? Jak byste to dělai vy?" - sociální skill.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: iwtu 15. 02. 2022, 18:02:56
React je frontend.
Frontend nie je dva krát o zložitosti, skôr je to o know how a makaní. Najzaujímavejšie mi na frontende mi príde UX. Tam naozaj treba premýšlať.

Algoritmické a logické úlohy.
To správne slovo je tréning. Už ti tu ľudia dali niekoľko odkazkov na tréning.

Algoritmické úlohy.
Potrebuješ poznať dátové štruktúry a základne algoritmy. Ideálne aj 0 notáciu ohľadom časovej a pamätovej zložitosti.

Logické úlohy.
Logické úlohy dostáva celé hafo povolaní. Anylitici, markeťaci, policajti.. Všade tam, kde potrebuješ človeka, ktorý vie aspoň trochu premýšlať.

Pohovor.
Je to brutálne inviduálne. Ja osobne s uchádzačom sa iba porozprávam, občas sa rieši zaujímavý problém, či už jeho/jej alebo môj. Správnymi otázkami viem o človeku získať ďaleko viac ako nejakým testom.

Pravdepodobne na frontend by som Ťa prijal, ak by na Teba niekto dohliadol, na backend podľa toho, čo si napísal, nehrozí.

Ako frontend developer prácu najdeš v pohode. Ak chceš niečo viac alebo zaujímavejšiu prácu, budeš sa musieť namakať.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 15. 02. 2022, 18:48:06
Někdo moudrý (nepamatuji si kdo) prohlásil, že vrozený talent je (nepamatuji si kolik, ale málo) procent a zbytek je píle , pravidelnost a vytrvalost. Platí to u sportu, cizích jazyků i tréninku algoritmického myšlení. Stanovte si cíl - X minut denně -  dodržujte ho. Dejte tomu prioritu.

No to byla oblibena myslenka zejmena v USA (meritokracie). Ze kdyz clovek chce, tak dosahne ceho chce. Bohuzel je to jen mytus. Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.



Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: none_ 15. 02. 2022, 19:07:14
Ja bych se tim tolik nestresoval. Pokud vas od pohovoru vyhodi jen kvuli tomu, ze neumite prohodit 2 promenne bez pomocne promenne, tak bych se drzel od takovy firmy dal.

Podle me je to takovy party trick. K cemu je neco takovyho v realnem zivote? V 99% je obecne blbost 2 promenne prohazovat, pokud se nesnazite o zmateni nepritele.

Zaradil bych to mezi typicke pohovorove otazky.

Delam posledni dobou dost pohovoru s Indama a odpovedi na podobne otazky sypou jak zbesili. Pokud jich ale zeptate na jednoduchy SQL select pres 2 tabulky nebo navrh REST API na vyhledavani uzivatelu, tak nic nevyplodi... A to tvrdi, ze maji 10+ let zkusenosti v obou oblastech.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: BoneFlute 15. 02. 2022, 19:07:28
Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.
Což je naštěstí mýtus.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 15. 02. 2022, 19:19:20
Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.
Což je naštěstí mýtus.

No a mas pro to nejake argumenty?

Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Zdenek Tomes 15. 02. 2022, 19:48:24
Jako to otázka sama o sobě je asi samoúčelná, ale mohla by vést k zajímavé debatě. A to klidně i když "řešení" napíše sám tázající na tabuli. Potom se může diskutovat o tom, kdy a jak to funguje, jestli to má vůbec v tom kontextu význam řešit a tak. Pokud to však jen byla položena otázka s tím, že si někdo odškrtl "odpověděl/neodpověděl", tak je asi celý ten pohovor trošku ztráta času. Taky jsem něco takového zažil, odpověděl správně + nějaký dodatky okolo, ale udělal si trošku špatný dojem o té firmě.

A takových otázek je... Ze stejného ranku třeba jak se dá z počtu minut (třeba 1234) odvodit co nejmenším počtem operací počet hodin a minut.

Nebo klidně i převody arabské -> římské, tam se dá vyřádit (hlavně, když to nemá být moc efektivní řešení :-)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: none_ 15. 02. 2022, 20:12:56
Ano, uloh se da vymyslet hodne. Podle me ale tyto jednoradkova reseni postradaji to hlavni, co od produkcniho kodu pozaduju. A to je citelnost. Je sice krasny, ze napisu funkci stavejici mrakodrap na 2 radky, ale pokud nikdo dalsi nepochopi, co ten kod dela, tak je ve vysledku k nicemu. Tedy jsou skvely do tech soutezi o program v nejmensim poctu bitu.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: BoneFlute 15. 02. 2022, 21:39:28
Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.
Což je naštěstí mýtus.

No a mas pro to nejake argumenty?

Já jo. A ty?
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 15. 02. 2022, 21:50:22
Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.
Což je naštěstí mýtus.

No a mas pro to nejake argumenty?

Já jo. A ty?

https://www.respekt.cz/tydenik/2021/44/slava-vitezum-ale-co-s-porazenymi

“Tyranny of Merit: What’s Become of the Common Good?” by Michael J. Sandel



Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: BoneFlute 15. 02. 2022, 22:39:05
Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.
Což je naštěstí mýtus.

No a mas pro to nejake argumenty?

Já jo. A ty?

https://www.respekt.cz/tydenik/2021/44/slava-vitezum-ale-co-s-porazenymi

“Tyranny of Merit: What’s Become of the Common Good?” by Michael J. Sandel

Máš boda za podklady.

Jen abychom si ujasnili stanoviska: Ten článek je o tom, kdo bude nejlepší? Že když dáš vedle sebe talentovaného, a méně talentovaného, oba budou dřít, tak kdo vyhraje? Protože Henry Ford nemluvil o nejlepších, ale o úspěšných, což je drobný detail s velkým dopadem.

Já mohu poskytnout (mimo jiné) svou osobní zkušenost. Jsem vcelku obyčejný, nijak zvlášť geniální jedinec. Většina kolegů mě inteligencí a schopnostmi strčí do kapsy. Přesto mám nadprůměrný plat, a nechají si odemne radit. Když dostaneme za úkol si něco nastudovat, tak oni by to zvládli za hodinu, já třeba za pět. Přesto jsem já na konci dne ten úspěšnější. A o tom je ten talent, jak o něm mluvil předřečník.

Kdo věří mýtu o tom, že na XY je třeba talentu, jinak to vůbec nejde, zbytečně si zařezává své štěstí.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 22:46:35
nikdo z nas meritokracii nezazil.

Meritokracie sice byla zakotvena v ustavach temer vsech socialistickych statu ("kazdemu podle zasluh" nebo "kazdemu podle odvedene prace"), ale skutecne existovala jen kratce Sovetskem Svazu mezi lety 1936 a 1941, za valky meritokracii provozovat nelze. Potom jeste mozna kratce po valce do Stalinovy smrti. Chruscovova revisionisticka politika narovnavani mezd podle me v praxi stalinskou meritikracii zrusila. Kdyz CSSR v roce 1960 zavadela socialistickou ustavu, prakticka politika byla ovivnena Chruscovovym revisionismem. Ke Stalinskemu systemu odmenovani a postihu se zacatkem osmdesatych let chtel vratit Andropov, umrel (byl otraven?) driv nez to stacil udelat.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 15. 02. 2022, 23:16:50
podle mě si pletete "úsilí" a "zásluhu"

"merit" - zásluha
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 16. 02. 2022, 09:08:17
Talent, predpoklady, ale i okolnosti jsou mnohdy dulezitejsi.
Což je naštěstí mýtus.

No a mas pro to nejake argumenty?

Já jo. A ty?

https://www.respekt.cz/tydenik/2021/44/slava-vitezum-ale-co-s-porazenymi

“Tyranny of Merit: What’s Become of the Common Good?” by Michael J. Sandel

Máš boda za podklady.

Jen abychom si ujasnili stanoviska: Ten článek je o tom, kdo bude nejlepší? Že když dáš vedle sebe talentovaného, a méně talentovaného, oba budou dřít, tak kdo vyhraje? Protože Henry Ford nemluvil o nejlepších, ale o úspěšných, což je drobný detail s velkým dopadem.

Já mohu poskytnout (mimo jiné) svou osobní zkušenost. Jsem vcelku obyčejný, nijak zvlášť geniální jedinec. Většina kolegů mě inteligencí a schopnostmi strčí do kapsy. Přesto mám nadprůměrný plat, a nechají si odemne radit. Když dostaneme za úkol si něco nastudovat, tak oni by to zvládli za hodinu, já třeba za pět. Přesto jsem já na konci dne ten úspěšnější. A o tom je ten talent, jak o něm mluvil předřečník.

Kdo věří mýtu o tom, že na XY je třeba talentu, jinak to vůbec nejde, zbytečně si zařezává své štěstí.

Chapu, ale ten clanek je i o tom, ze jsou dulezite ty okolnosti. Ty mas stesti v tom, ze tvoje schopnosti jsou prave ted potreba. Dejme tomu, ze by ses narodil treba o 200 let drive, kdy jeste zadne pocitace nebyly, bylo jen zemedelstvi a remesla.  Tam by tvoje schopnosti a talent byly k nicemu a treba bys jen zivoril.
Ale je pravda, ze jsem trochu offtopic.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: greenlinuxguru 16. 02. 2022, 11:20:47
K původní otázce, je dobré umět i teorii, chápu že to některé firmy chtějí, dřív jsem si myslel, že ty lidi co to zvládají jsou geniální, ale není to pravda. Pro mě nejjednodušší cesta je zaplatit si nějaký kurz na Udemy, a udělat 1 lekci za den, to je na 10 minut, za rok se pak toho člověk naučí kompletně dost.

Třeba to prohození proměnných jsem věděl, to bylo v kurzu na udemy, v Pythonu je to jednoduché (a,b) = (b,a)

Někdy to ale ty firmy pravda přehánějí a chtějí nesmysly, moje zkušenost je taková, že je to o hodně častější u českých než zahraničních firem. Prostě přijde nějakej ajťák co řešil před měsícem nějaký ultra specifický problém, na který je expert, a začne tě na něm dusit.

Na druhou stranu u nás ve firmě najali člověka, co dictionary v pythonu kopíruje stylem dict1 = dict2, a pak dělá dict1.update, tam člověk přesně vidí tu chybějící teorii třeba v tom, že mutable types takto kopírovat nejdou.

V každém případě, nemusíš na to být geniální, prostě tomu každý den věnuj 10 minut, a uvidíš že během pár let budeš úplně jinde.

A jinak představy firem jsou často nereálné, oni si vytvoří neskutečné síto, a pak když jim s ním někdo projde tak se diví, že chce 200k a oni mají budget 100k, ale všechny lidi co by za těch 100k dělali už od pohovoru vyhodili  ;D
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: BoneFlute 17. 02. 2022, 01:22:19
Kdo věří mýtu o tom, že na XY je třeba talentu, jinak to vůbec nejde, zbytečně si zařezává své štěstí.

Chapu, ale ten clanek je i o tom, ze jsou dulezite ty okolnosti. Ty mas stesti v tom, ze tvoje schopnosti jsou prave ted potreba. Dejme tomu, ze by ses narodil treba o 200 let drive, kdy jeste zadne pocitace nebyly, bylo jen zemedelstvi a remesla.  Tam by tvoje schopnosti a talent byly k nicemu a treba bys jen zivoril.
Ale je pravda, ze jsem trochu offtopic.

Nepochybuju o tom, že i před dvěmi sty lety bych měl velkou výhodu díky svému talentu pracovitosti, cílevědomosti a vytrvalosti. A byl by ze mě docela úspěšný řemeslník.

Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: makovec_3 17. 02. 2022, 08:24:33
Nepochybuju o tom, že i před dvěmi sty lety bych měl velkou výhodu díky svému talentu pracovitosti, cílevědomosti a vytrvalosti. A byl by ze mě docela úspěšný řemeslník.

Výhodu ano, ale pokud by ses narodil jako nejstarší syn do rodiny drobného zemědělce někde na kotárech tak bys prostě dřel na tom poli. Myslím že předřečníci měli na mysli toto: https://www.seznamzpravy.cz/clanek/domaci-zivot-v-cesku-nevyhravaji-talentovane-deti-ale-ty-z-dobre-rodiny-kde-a-proc-to-neplati-188493
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Lopatak 17. 02. 2022, 09:17:51
...jak prohodím dvě hodnoty bez použití třetí pomocné proměnné
...jak zjistím zda se dva obdélníky překrývají

Čtyři roky pracuju jako Java backendista a to první bych nevěděl. To druhé vím jen náhodou, protože si zrovna programuju 2D hru jako hobby. Spíš se divím, že se s takovými otázkami potkáváš často, nota bene na pozici frontenďáka. Z předchozích příspěvků to vypadá, že algoritmy a logika jsou u pohovorů standard, ale z mojí zkušenosti na to dojde jen zřídka.

Co se týká algoritmů, tak já se vždycky před dobou pohovorů naučím jen pár základních z každé kategorie (search, sort, graph) a posléze je všechny stejně zapomenu, jelikož jsou mi úplně na hovno. Upřímně, ve firmě, kde bych potřeboval tyhle věci znát, bych ani pracovat nechtěl.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Tomas-T 17. 02. 2022, 11:26:22
Překrývání se obdélníků v základní poloze je vcelku trivialita, na kterou člověk ani nemusí být programátor.
Zajímavé zpestření té úlohy by byla možnost libovolného pootočení těch obdélníků. :)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Aleph1234 18. 02. 2022, 19:54:42
Já teda musím poděkovat tazateli za dotaz, protože po přečtení odpovědí jsem si docela vydechl. Programuju v JAVĚ už pár let, ale když u pohovoru dostanu takovýhle test, tak jsem taky skončil.
Celou tu dobu jsem si myslel, jaký nejsem idiot, když tyhle věci nedávám a že ostatním to jde určitě perfektně. Po pročtení vlákna ale vidím, že nejsem sám. Tak si říkám, že je to možná podobné přijímačkám na VŠ. Človek procvičil daný typ úloh, vzali ho na školu a zase to úspěšně zapomněl  :D.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: alex6bbc 18. 02. 2022, 20:06:55
Překrývání se obdélníků v základní poloze je vcelku trivialita, na kterou člověk ani nemusí být programátor.
Zajímavé zpestření té úlohy by byla možnost libovolného pootočení těch obdélníků. :)

prvni bych zacal zda se protnou opsane kruznice.
pak je kazda straba cast primky, takze test na protnuti primek v danych intervalech.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 18. 02. 2022, 20:47:12
Překrývání se obdélníků v základní poloze je vcelku trivialita, na kterou člověk ani nemusí být programátor.
Zajímavé zpestření té úlohy by byla možnost libovolného pootočení těch obdélníků. :)
prvni bych zacal zda se protnou opsane kruznice.
pak je kazda straba cast primky, takze test na protnuti primek v danych intervalech.
U nás na podobné zadání jeden ekšpert zcela vážně tvrdil, že by si na to natrénoval neuronku. Taky odpověď :)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Death Walker 19. 02. 2022, 13:16:28
A myslíš, že 4 roky praxe v Reactu se prověřují akademickým příkladem na prohození hodnot dvou proměnných? To je konstrukce, kterou najít na frontendu je hodně raritní.

Ak ma niekto 4 roky praxe v JS tak neda akademicku odpoved ale proste javascriptove
Kód: [Vybrat]
[b,a] = [a,b]
Sledujte tuto diskusiu pozorne, ak sem niekto postne ako tu logiku trenovat, tak vam to pride vhod...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 17:19:16
Haha, v dnesni dobe jsou internety plne vsemoznych leetcode, hackerranku atd. Jestlize o nich tazatel nikdy v zivote neslysel, zrejme by si mel vyndat hlavu ze sedaci oblasti. "programovat e-shop na 100 zpusobu" skutecne dnes zadny skill neni a uz vubec to nepredstavuje nejakou intelektualni vyzvu. V IT je to - hned po QA - takove kopani lopatou a zatloukani hrebiku.

SAMOZREJME, ze takoveto typy uloh jsou naprosto klicove pro vyber uchazece (tedy pokud se uchazec uchazi o neco narocnejsiho nez masteni eshopu v male firme). Nelze ocekavat, ze prijdu na pohovor, reknu: "Jsem proste dobrej" a oni me bez dalsich otazek prijmou. Mozna to tak plati pro frontendaky, kteri ukazi, ze umi v JS naimportovat React/Angular/Vue, zavolat par funkci a udelat eye-candy menu. Ano, tam skutecne neni treba premyslet nad tim, jak rychle JS bude iterovat pres polozky toho menu...

Trochu se desim, jak tu vsichni pisi, ze to jsou nejake teoreticke nesmysle, ktere nikdy nepouzivaji. Skutecne jste nikdy neresili tak casty problem jestli pouzit napr. std::vector (cache-locality, malo alokaci) vs std::unordered_map (rychlejsi lookup) apod.? Skutecne nepremyslite nad cistotou a efektivitou vaseho kodu?

Vzpominam si, kdyz jsem nekomu vysvetloval, ze duplikovani kodu je zlo a ten clovek mi tvrdil, ze on se neridi nejakymi teoretickymi pouckami, ze on je "clovek z praxe"...

Tazateli doporucuji precist knihu o algoritmech, zjistit, co je to asymptoticka slozitost, nastudovat zakladni tridici algoritmy, datove struktury a potom busit leetcode/hackerrank.

Muzete si tu brecet, jak chcete, ale realita je takova, ze tohle proste na pohovorech chteji.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 19. 02. 2022, 17:38:30
Ano, tam skutecne neni treba premyslet nad tim, jak rychle JS bude iterovat pres polozky toho menu...

neni zdaleka pravda, u frontendu musite myslet na rychlost (pripadne spotrebu baterie) mnohem casteji nez u backendu. V JS pouzivam profiler celkem casto.

99% vykonostnich problemu webovych aplikaci jsou bud na strane DB serveru nebo frontendu. Na strane backendoveho aplikacniho kodu neni problem temer nikdy, tam staci dodrzovat jednoduchou zasadu neselektovat z DB vic dat nez hodlate zobrazovat. Potom muzete klidne zamenovat std::vektor a std::unordered map, dat nikdy neni tolik, aby se to vykonostne projevilo.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 18:32:37
neni zdaleka pravda, u frontendu musite myslet na rychlost (pripadne spotrebu baterie) mnohem casteji nez u backendu. V JS pouzivam profiler celkem casto.

A ted tu o Karkulce... Pokud nemate ve vasich webovkach svitive barvy, netahate megabajty obrazku, resourcu, libek (coz je ale hloupost i u ne-mobilni aplikace), nemate tam tunu zbytecnych requestu, vezte, ze nejake to iterovani pres pole ma vyznam 0.0. Pokud pisete hry v JS pro mobilni prohlizece, dejme tomu - ale to uz jsme daleko od bouchani eshopu a stejne bude jeste hodne zalezet na tom, jak ten prohlizec JS interpretuje...

99% vykonostnich problemu webovych aplikaci jsou bud na strane DB serveru nebo frontendu. Na strane backendoveho aplikacniho kodu neni problem temer nikdy, tam staci dodrzovat jednoduchou zasadu neselektovat z DB vic dat nez hodlate zobrazovat. Potom muzete klidne zamenovat std::vektor a std::unordered map, dat nikdy neni tolik, aby se to vykonostne projevilo.

"Mnohem casteji nez u backendu"? :D Tak jestli vas backend je par selectu z databaze... Pokud pisete webove aplikace, kde neresite vykon backendu, zrejme byste si mel rozsirit obzory...

Navic, ja ani tak nemluvil o "webovych backendech", spise obecne o cemkoliv slozitejsim nez placani webovek v JavaScriptu. Budete se divit, ale ta vase DB na backendu setsakramentsky resi, jestli bude pouzivat std::vector nebo std::unordered_map...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: javalopata 19. 02. 2022, 19:02:16
SAMOZREJME, ze takoveto typy uloh jsou naprosto klicove pro vyber uchazece (tedy pokud se uchazec uchazi o neco narocnejsiho nez masteni eshopu v male firme). Nelze ocekavat, ze prijdu na pohovor, reknu: "Jsem proste dobrej" a oni me bez dalsich otazek prijmou. Mozna to tak plati pro frontendaky, kteri ukazi, ze umi v JS naimportovat React/Angular/Vue, zavolat par funkci a udelat eye-candy menu. Ano, tam skutecne neni treba premyslet nad tim, jak rychle JS bude iterovat pres polozky toho menu...

Píšeme komplexní webové UI jako full stack vývojáři. V profileru JS jsme častěji než v profileru JVM. Jestli něco trvá o 10 μs v JS déle a to něco se děje 100k krát, tak bude freezovat UI. Na serveru máme většinou víc možností jak problém řešit.

U pohovorů také dáváme příklady. Hlavní je to nevzdát a zkusit nějak úlohu vyřešit. S dnešním remote workingem kdy je pomoc relativně daleko, je potřeba samostatných lidí, kteří se dokáží s problémem popasovat samostatně.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 19. 02. 2022, 19:08:22
Navic, ja ani tak nemluvil o "webovych backendech", spise obecne o cemkoliv slozitejsim nez placani webovek v JavaScriptu. Budete se divit, ale ta vase DB na backendu setsakramentsky resi, jestli bude pouzivat std::vector nebo std::unordered_map...

pokud implementujete vlastni DB server.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 19:13:36
Navic, ja ani tak nemluvil o "webovych backendech", spise obecne o cemkoliv slozitejsim nez placani webovek v JavaScriptu. Budete se divit, ale ta vase DB na backendu setsakramentsky resi, jestli bude pouzivat std::vector nebo std::unordered_map...

pokud implementujete vlastni DB server.

Co to povidate? Myslite si, ze databaze programuji roboti? Databaze programuji lide, velmi casto je pisi v C++ a presne tam resi vykonnost proto, aby na rootu mohli rozumbradove psat, ze "vykon backendu neresi"...

Projdete si nabidky na LinkedInu, pomerne nedavno jsem tam videl i nejakou zajimavou nabidku na C++ job pro nejakou firmu, co programuje databaze. A ano, tam se vas rozhodne na algoritmy ptat budou...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 19. 02. 2022, 19:29:53
Navic, ja ani tak nemluvil o "webovych backendech", spise obecne o cemkoliv slozitejsim nez placani webovek v JavaScriptu. Budete se divit, ale ta vase DB na backendu setsakramentsky resi, jestli bude pouzivat std::vector nebo std::unordered_map...

pokud implementujete vlastni DB server.

Co to povidate? Myslite si, ze databaze programuji roboti? Databaze programuji lide, velmi casto je pisi v C++ a presne tam resi vykonnost proto, aby na rootu mohli rozumbradove psat, ze "vykon backendu neresi"...

Projdete si nabidky na LinkedInu, pomerne nedavno jsem tam videl i nejakou zajimavou nabidku na C++ job pro nejakou firmu, co programuje databaze. A ano, tam se vas rozhodne na algoritmy ptat budou...

to si nemyslim, mozna je to vase domena? Proc se potom vyjadrujete k webovemu frontendu?
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 20:01:04
Navic, ja ani tak nemluvil o "webovych backendech", spise obecne o cemkoliv slozitejsim nez placani webovek v JavaScriptu. Budete se divit, ale ta vase DB na backendu setsakramentsky resi, jestli bude pouzivat std::vector nebo std::unordered_map...

pokud implementujete vlastni DB server.

Co to povidate? Myslite si, ze databaze programuji roboti? Databaze programuji lide, velmi casto je pisi v C++ a presne tam resi vykonnost proto, aby na rootu mohli rozumbradove psat, ze "vykon backendu neresi"...

Projdete si nabidky na LinkedInu, pomerne nedavno jsem tam videl i nejakou zajimavou nabidku na C++ job pro nejakou firmu, co programuje databaze. A ano, tam se vas rozhodne na algoritmy ptat budou...

to si nemyslim, mozna je to vase domena? Proc se potom vyjadrujete k webovemu frontendu?

Nesmim se vyjadrovat k nicemu, co neni moje domena? Vy se taky nevyjadrujete k politice, politice, ekonomii... mezi kamarady u piva (tady je uroven podobna)? Evidentne to take neni vase domena. Dle toho, co pisete, neni vase domena ani cokoliv na backendu. Proc jste se k tomu tedy - dle vasi logiky - vyjadroval?

Musi byt webovy frontend moje domena, abych vedel, ze JavaScript je ukrutne pomaly, latence na webovem frontendu je zpusobena requesty, resourcy, parsovanim HTML, CSS, JS (uz aby se rozsirilo WebAssembly), prebujelymi JS knihovnami a cpanim JS tam, kde by stacilo plain CSS?

Onehda jsem mel hovor s jednim rekruterem, nabidka byla celkem zajimava (detaily zminovat samozrejme nebudu), ale pry ten svuj uzasny produkt napsali v TypeScriptu, ale zjistili, ze je to prilis pomale ::) a museli to zacit prepisovat do C++. Tot k te optimalizaci na mikrosekundy...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: A.P.Hacker 19. 02. 2022, 20:25:03
Nesmim se vyjadrovat k nicemu, co neni moje domena? Vy se taky nevyjadrujete k politice, politice, ekonomii... mezi kamarady u piva (tady je uroven podobna)? Evidentne to take neni vase domena. Dle toho, co pisete, neni vase domena ani cokoliv na backendu. Proc jste se k tomu tedy - dle vasi logiky - vyjadroval?

Musi byt webovy frontend moje domena, abych vedel, ze JavaScript je ukrutne pomaly, latence na webovem frontendu je zpusobena requesty, resourcy, parsovanim HTML, CSS, JS (uz aby se rozsirilo WebAssembly), prebujelymi JS knihovnami a cpanim JS tam, kde by stacilo plain CSS?

Onehda jsem mel hovor s jednim rekruterem, nabidka byla celkem zajimava (detaily zminovat samozrejme nebudu), ale pry ten svuj uzasny produkt napsali v TypeScriptu, ale zjistili, ze je to prilis pomale ::) a museli to zacit prepisovat do C++. Tot k te optimalizaci na mikrosekundy...

Pokud cerpate znalosti z rozhovoru s recruitery, ani se nedivim, ze placate nesmysly. Alespon jste se naucil buzzwordy.

Javascript neni pomaly, pomale jsou manipulace s DOMem, webassembly mozna pomuze jen u canvas aplikaci a her, urcite ne u klasickych aplikaci s DOM ui. Mozna byste to zjistil, kdybyste obcas otevrel profiler.

Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: javalopata 19. 02. 2022, 20:34:47
Musi byt webovy frontend moje domena, abych vedel, ze JavaScript je ukrutne pomaly, latence na webovem frontendu je zpusobena requesty, resourcy, parsovanim HTML, CSS, JS (uz aby se rozsirilo WebAssembly), prebujelymi JS knihovnami a cpanim JS tam, kde by stacilo plain CSS?
Co se týče UI tak browser technologie (JS VM, HTML, CSS) jsou teď srovnatelné s .NET a JVM, ne li lepší a to hlavně v rychlosti. Podle špatně napsaných aplikací nebo knihoven nemůžete posuzovat celou platformu. Napsat dobře aplikaci v browseru může být stejně složité jako ji napsat dobře v libovolném jiném jazyce.

WebAssembly pomůže jen v ojedinělých případech, má také svůj overhead.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 20:59:02
Nesmim se vyjadrovat k nicemu, co neni moje domena? Vy se taky nevyjadrujete k politice, politice, ekonomii... mezi kamarady u piva (tady je uroven podobna)? Evidentne to take neni vase domena. Dle toho, co pisete, neni vase domena ani cokoliv na backendu. Proc jste se k tomu tedy - dle vasi logiky - vyjadroval?

Musi byt webovy frontend moje domena, abych vedel, ze JavaScript je ukrutne pomaly, latence na webovem frontendu je zpusobena requesty, resourcy, parsovanim HTML, CSS, JS (uz aby se rozsirilo WebAssembly), prebujelymi JS knihovnami a cpanim JS tam, kde by stacilo plain CSS?

Onehda jsem mel hovor s jednim rekruterem, nabidka byla celkem zajimava (detaily zminovat samozrejme nebudu), ale pry ten svuj uzasny produkt napsali v TypeScriptu, ale zjistili, ze je to prilis pomale ::) a museli to zacit prepisovat do C++. Tot k te optimalizaci na mikrosekundy...

Pokud cerpate znalosti z rozhovoru s recruitery, ani se nedivim, ze placate nesmysly. Alespon jste se naucil buzzwordy.

Javascript neni pomaly, pomale jsou manipulace s DOMem, webassembly mozna pomuze jen u canvas aplikaci a her, urcite ne u klasickych aplikaci s DOM ui. Mozna byste to zjistil, kdybyste obcas otevrel profiler.

Ano, presne tak, jeste taky cerpam informace od vseznalku z rootu ;)

Abyste mohl rict, ze neco "neni pomale", musite ale rict, co resite nebo to s necim srovnat. Ano, pokud resite DOM traversing, tak na to zrejme JavaScript je "dost" rychly. Pokud uz chcete JavaScript s necim srovnat, pak ano, zrejme je rychlejsi nez vase babicka, ale mezi jazyky, ktere resi skutecne problemy (v kterych je mimo jine i ten vas JavaScript napsan) se radit neda...

Samozrejme, ze WebAssembly s DOMem nyni nepomuze, protoze (pokud vim) ho nativne ani zatim neumi. Nevim, jestli jste cetl (nebo pochopil), co jsem psal. Ja mluvil o requestech, ktere vubec ten vas JavaScript musi do prohlizece dopravit a kdyz uz tam je, tak ho musi prohlizec naparsovat a zkontrolovat syntaxi. WebAssembly je binarni.

Proc mi nutite profiler? Profilery jsou dneska na kazdy nesmysl. Ja vam rikam, ze kdyz udelate spravne vse vubec pred pouzitim JavaScriptu a toho JavaScriptu budete mit minimum (ano, jde to), nemusite resit profilery, protoze - pokud jste to nevedel - browser musi udelat spoustu dalsich operaci (je napsany v C++, vite?) predtim nez se vubec prokouse k vasemu JS.

Ano, samozrejme, pokud spustite 10000x smycku, jejiz body trva 100ms, tak jste prave zabil UI. Ale potrebujete na tohle skutecne profiler? Bezny uzivatel webovek skutecne nemeri vykonnost na milisekundy, ten vam jen rekne "je to pomale" vs. "je to rychle" :)

Vy uz jste se davno odkopal tim, ze nemate ahnung, co se deje na backendu, vase formulace "u frontendu musite myslet na rychlost mnohem casteji nez u backendu" to dokazuje. Mozna si tim jen snazite dokazat, ze vase remeslo je nejdulezitejsi na svete - ale neni :)

Tohle neni ani tak pro vas, vy uz svoji pravdu mate, spis pro ostatni, co se tak na webu meri: https://www.keycdn.com/blog/website-performance-metrics (https://www.keycdn.com/blog/website-performance-metrics)...
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 21:09:50
Musi byt webovy frontend moje domena, abych vedel, ze JavaScript je ukrutne pomaly, latence na webovem frontendu je zpusobena requesty, resourcy, parsovanim HTML, CSS, JS (uz aby se rozsirilo WebAssembly), prebujelymi JS knihovnami a cpanim JS tam, kde by stacilo plain CSS?
Co se týče UI tak browser technologie (JS VM, HTML, CSS) jsou teď srovnatelné s .NET a JVM, ne li lepší a to hlavně v rychlosti. Podle špatně napsaných aplikací nebo knihoven nemůžete posuzovat celou platformu. Napsat dobře aplikaci v browseru může být stejně složité jako ji napsat dobře v libovolném jiném jazyce.

WebAssembly pomůže jen v ojedinělých případech, má také svůj overhead.

Vy ale hrubym zpusobem mijite moji pointu. Ja zde nerozlisuji JavaScript vs JVM atd., nybrz interpretovany vs. kompilovany jazyk - v tom by WebAssembly pomohlo hodne, ale "it is not there yet" samozrejme...

A i kdyz bude vas JavaScript stokrat rychlejsi nez C++, stejne vykon vasich webovek bude stat a padat s kvalitou obrazku, poctem stazenych stylesheetu, knihoven, neefektivnim renderovanim atd. atd.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: javalopata 19. 02. 2022, 21:17:20
A i kdyz bude vas JavaScript stokrat rychlejsi nez C++, stejne vykon vasich webovek bude stat a padat s kvalitou obrazku, poctem stazenych stylesheetu, knihoven, neefektivnim renderovanim atd. atd.

Co vlatně porovnáváte? Iteraci přes pole v C vs zobrazovaní obrázků v prohlížeči?
Neefektivní renderování v browseru - to jste vzal kde?

Browser technologie se používají jako náhrada předchozích UI technologií jako je Swing/JavaFx/WPF/WinForm/*. A když se napíší dobře tak jsou aplikace stejně rychlé.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 21:20:21
Boze muj, chapete rozdil mezi tim, kdyz mate program ve forme vstupniho jazyka (napriklad JavaScript) nebo ve zkompilovane binarni forme??
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 19. 02. 2022, 21:22:13
A i kdyz bude vas JavaScript stokrat rychlejsi nez C++, stejne vykon vasich webovek bude stat a padat s kvalitou obrazku, poctem stazenych stylesheetu, knihoven, neefektivnim renderovanim atd. atd.

Co vlatně porovnáváte? Iteraci přes pole v C vs zobrazovaní obrázků v prohlížeči?

Ne, vy se tu snazite manipulativne tvrdit, jak v JavaScriptu musite resit kazdou instrukci bytekodu, aby vas kod byl rychly. A ja to vyvracim tim, ze kdyz udelate spravne vsechno ostatni, profiler vas nezajima.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: javalopata 19. 02. 2022, 21:40:23
A i kdyz bude vas JavaScript stokrat rychlejsi nez C++, stejne vykon vasich webovek bude stat a padat s kvalitou obrazku, poctem stazenych stylesheetu, knihoven, neefektivnim renderovanim atd. atd.

Co vlatně porovnáváte? Iteraci přes pole v C vs zobrazovaní obrázků v prohlížeči?

Ne, vy se tu snazite manipulativne tvrdit, jak v JavaScriptu musite resit kazdou instrukci bytekodu, aby vas kod byl rychly. A ja to vyvracim tim, ze kdyz udelate spravne vsechno ostatni, profiler vas nezajima.

Nevim ktere me vyjadreni vas vede k tomu ze si myslite, ze pouzivam profiler denodenne. Jsou situace kde se ale hodi a   je jedno na jake platforme jsme.

Kod, ktery se pise aby bezel v browseru muze byt stejne komplexni jako ten na backendu. Naopak neni duvod cpat kod z prezentacni vrstvy nekam kam nepatri.

A kdyz uz mate hodne kodu na dane platforme tak proste potrebujete mit stejne nastroje jako pro ne-UI cast. A k tomu potrebujete mit stejne dobre vyvojare.

Vyzkousejte si browser technologie, budete prijemne prekvapen, stejne jako ja pred par lety. Predpokladam totiz, ze vase posledni realne zkusenosti s webovym vyvojem jsou asi z doby kdy jsem sam naposledy delal s PHP, tj. 20 let zpet.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 19. 02. 2022, 22:30:48
pry ten svuj uzasny produkt napsali v TypeScriptu, ale zjistili, ze je to prilis pomale ::) a museli to zacit prepisovat do C++
Copak asi zjistili pro přepsání do C++ :) Že je to pomalé a musí to přepsat do Rustu? :)
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 20. 02. 2022, 00:46:00
Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?
Jak říkal jeden pán: učit se, učit se, učit se. Kromě nějaké té teorie hlavně procvičovat, ne triviální blbosti, ale něco jako tohle: https://github.com/AYLIEN/technical_challenge (to je tak 5 minut rozmyšlení a pak 10 minut implementace). Ten styl úloh se docela opakuje, po určité době už člověka nic nepřekvapí.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 20. 02. 2022, 09:44:13
Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?
Jak říkal jeden pán: učit se, učit se, učit se. Kromě nějaké té teorie hlavně procvičovat, ne triviální blbosti, ale něco jako tohle: https://github.com/AYLIEN/technical_challenge (to je tak 5 minut rozmyšlení a pak 10 minut implementace). Ten styl úloh se docela opakuje, po určité době už člověka nic nepřekvapí.

https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3

Asi bych trochu polemizoval s temi 5+10 minutami. Viz ta procenta.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 20. 02. 2022, 10:18:51
Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?
Jak říkal jeden pán: učit se, učit se, učit se. Kromě nějaké té teorie hlavně procvičovat, ne triviální blbosti, ale něco jako tohle: https://github.com/AYLIEN/technical_challenge (to je tak 5 minut rozmyšlení a pak 10 minut implementace). Ten styl úloh se docela opakuje, po určité době už člověka nic nepřekvapí.

https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3

Asi bych trochu polemizoval s temi 5+10 minutami. Viz ta procenta.
Je možné, že ten odhad je špatný, žádnou statistiku k tomu nemám. Nicméně tento styl úloh oddělí zrno od lopat :) a především otevírá prostor k zajímavé diskusi nad řešením, paradigmaty apod.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: DukePukem 20. 02. 2022, 15:02:56
pry ten svuj uzasny produkt napsali v TypeScriptu, ale zjistili, ze je to prilis pomale ::) a museli to zacit prepisovat do C++
Copak asi zjistili pro přepsání do C++ :) Že je to pomalé a musí to přepsat do Rustu? :)

Jakoze Rust je rychlejsi nez C++ :) Rekl vam nekdo, ze oba jazyky se kompiluji do stejneho strojoveho kodu, dokonce Rust backend je - stejne jako Clang - v LLVM, tudiz nektere vysledne binarky mohou byt ~totozne?

a) Rust neni a ani nema byt ambici "byt rychlejsi nez C++". Chce byt "alespon stejne rychly, pri vetsich compile-time zarukach".
b) Benchmarky sice existuji, ale jsou dost vyrovnane - benchmarky, ktere jsou takto blizke nemaji vyznam. Dulezite jsou pouze pokud ukazuji radove (řádové) rozdily.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Idris 20. 02. 2022, 15:37:23
Jakoze Rust je rychlejsi nez C++
Pokud někdo, kdo píše v JS (případně TS), přepíše svůj kód do C++, tak to bude dost hnůj. V Rustu mu překladač nedovolí tolik prasit.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: mikrom 20. 02. 2022, 19:40:30
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3
Na prvy pohlad celkom zaujimave ale ...
skusil som z toho jednu ulohu
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=42
ale ako dostali pre
Sample Input
10
Sample Output
1 4
to teda neviem

Prve cislo t.j. 1 je jasne, pretoze ta hladana trojica je (3, 4, 5)
Odkial ale maju ze to druhe cislo je 4, ked pisu ze "The second number is the number of positive integers ≤ N that are not part of any triple whose components are all ≤ N"
Ak mame cisla 1,2,..,10 a vysla nam teda jedna trojica (3, 4, 5) tak cisla ktore nie su v trojici su 1, 2, 6, 7, 8, 9, 10, teda ich je 7. Tak odkial maju ze to ma byt 4 ?
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 20. 02. 2022, 20:23:08
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3
Na prvy pohlad celkom zaujimave ale ...
skusil som z toho jednu ulohu
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=42
ale ako dostali pre
Sample Input
10
Sample Output
1 4
to teda neviem

Prve cislo t.j. 1 je jasne, pretoze ta hladana trojica je (3, 4, 5)
Odkial ale maju ze to druhe cislo je 4, ked pisu ze "The second number is the number of positive integers ≤ N that are not part of any triple whose components are all ≤ N"
Ak mame cisla 1,2,..,10 a vysla nam teda jedna trojica (3, 4, 5) tak cisla ktore nie su v trojici su 1, 2, 6, 7, 8, 9, 10, teda ich je 7. Tak odkial maju ze to ma byt 4 ?

Podle mne je tam jeste jedna trojice 6^2 + 8^2 = 10^2, ktera ale neni nesoudelna, ale vyhovuje zadani pro to druhe cislo ("You are also to compute the number of values 0 < p ≤ N such that p is not part of any triple (not just relatively prime triples)") .

 A pak opravdu vychazi, ze mame trojice (3,4,5) a (6,8,10) a tudiz |{1,2,7,9}| = 4
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: mikrom 20. 02. 2022, 21:08:08
Podle mne je tam jeste jedna trojice 6^2 + 8^2 = 10^2, ktera ale neni nesoudelna, ale vyhovuje zadani pro to druhe cislo ("You are also to compute the number of values 0 < p ≤ N such that p is not part of any triple (not just relatively prime triples)") .

 A pak opravdu vychazi, ze mame trojice (3,4,5) a (6,8,10) a tudiz |{1,2,7,9}| = 4
Diky za hint.
Ano tak by to vychadzalo, aj ked tie maju spolocneho delitela gcd(6, 8, 10) ==2.
Ja som hladal iba take x, y, z kde gcd(x, y, z) == 1, pretoze v zadani pisu
"You are to compute the number of triples (x, y, z) such that x < y < z, and they are relatively prime, i.e., have no common divisor larger than 1."
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: xyz 20. 02. 2022, 22:22:45
Podle mne je tam jeste jedna trojice 6^2 + 8^2 = 10^2, ktera ale neni nesoudelna, ale vyhovuje zadani pro to druhe cislo ("You are also to compute the number of values 0 < p ≤ N such that p is not part of any triple (not just relatively prime triples)") .

 A pak opravdu vychazi, ze mame trojice (3,4,5) a (6,8,10) a tudiz |{1,2,7,9}| = 4
Diky za hint.
Ano tak by to vychadzalo, aj ked tie maju spolocneho delitela gcd(6, 8, 10) ==2.
Ja som hladal iba take x, y, z kde gcd(x, y, z) == 1, pretoze v zadani pisu
"You are to compute the number of triples (x, y, z) such that x < y < z, and they are relatively prime, i.e., have no common divisor larger than 1."

Neni zac. V tom prvni odstavci to maji dobre. V te sekci Output tam zapomeli to "(not just relatively prime triples)"
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: mikrom 20. 02. 2022, 23:53:51
...
Neni zac. V tom prvni odstavci to maji dobre. V te sekci Output tam zapomeli to "(not just relatively prime triples)"
Ano ked som si dalsi krat precital to zadanie uz som to pochopil a program opravil, takze uz pocita ako bolo uvedene na konci prikladu. Bolo treba hladat vsetky pravouhle trojuholniky, ale vypisat len pocet tych, v ktorych x, y, z su nesudelitelne. Okrem toho este vypisat pocet cisel, ktore sa nevyskytuju v ziadnom trojuholniku.
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: Noxiwic 24. 02. 2022, 17:48:51
Děkuji za reakce. Přidám vtipnou vsuvku  :) . Podařilo se mi projít jedním pohovorem - 2.5 hodiny technických otázek ohledně architektury, celý pohovor v angličtině, algoritmy.. Bylo tam na mě 5 lidí a já to dal. Tak všichni hrozně natěšení že budou mít nového kolegu a HR mě měla kontaktovat s nabídkou. Včera mi psala email že má vše nachystáno a dnes bude volat. No co čert nechtěl, ráno se Putin se začal snažit o třetí světovou a HR mi dneska celá vyjukaná povídá do telefonu že vedení z USA pozastavilo nábory vývojářů po celém světě, jelikož jim od rána volají klienti kteří jsou buď z Ruska, nebo mají nasmlouvané projekty s přesahem do Ruska a vše pozastavují na neurčito. >:(
Název: Re:Tipy a triky na zlepšení logického myšlení u pohovorů
Přispěvatel: kanoe22 24. 02. 2022, 18:49:50
Děkuji za reakce. Přidám vtipnou vsuvku  :) . Podařilo se mi projít jedním pohovorem - 2.5 hodiny technických otázek ohledně architektury, celý pohovor v angličtině, algoritmy.. Bylo tam na mě 5 lidí a já to dal. Tak všichni hrozně natěšení že budou mít nového kolegu a HR mě měla kontaktovat s nabídkou. Včera mi psala email že má vše nachystáno a dnes bude volat. No co čert nechtěl, ráno se Putin se začal snažit o třetí světovou a HR mi dneska celá vyjukaná povídá do telefonu že vedení z USA pozastavilo nábory vývojářů po celém světě, jelikož jim od rána volají klienti kteří jsou buď z Ruska, nebo mají nasmlouvané projekty s přesahem do Ruska a vše pozastavují na neurčito. >:(

Nevesaj z toho hlavu, tiez sa mi nieco take stalo zrovna pred vypuknutim cinovidu 19. Bol som na pohovore, vsetko vyzeralo ok, oni mi dali na mieste vyjadrenie ze maju o mna zaujem, ja im tiez, vsetko vyzeralo na to ze o dva mesiace som ich. Len to este museli nechat schvalit vedenie v zahranici, a prave vtedy to zacalo, prve pripady cinovidu aj slovensku, a vsetci do.raty az za usami lebo nevedeli co bude, tak prestali naberat. Pekne to bolo potom vidno aj v statistikach ze zrazu zmizlo z trhu snad tretina (uz si nepametam) ponuk na pracovne miesta.

Proste pri najhorsom pobudnes v sucastnej praci este nejaky cas, a odides az inokedy. Hlavne ho vyuzi na nieco zmysluplne, poznas svoje slabe stranky, tak na nich pracuj, aj ked len 30min denne, aj to je progres.