Tipy a triky na zlepšení logického myšlení u pohovorů

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #60 kdy: 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


Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #61 kdy: 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.

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #62 kdy: 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ů. :)

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #63 kdy: 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.

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #64 kdy: 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.


Idris

  • *****
  • 1 901
    • Zobrazit profil
    • E-mail
Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #65 kdy: 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ěď :)

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #66 kdy: 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...

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #67 kdy: 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.

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #68 kdy: 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.

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #69 kdy: 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...

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #70 kdy: 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ě.

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #71 kdy: 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.

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #72 kdy: 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...

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #73 kdy: 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?

Re:Tipy a triky na zlepšení logického myšlení u pohovorů
« Odpověď #74 kdy: 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...