Programátorský úkol

gll

Re:Programátorský úkol
« Odpověď #90 kdy: 11. 09. 2017, 15:55:50 »
toto je mozne naozaj len na roote. zacinam pochybovat, ze tu chodia odbornici. skor su to len "odbornici" dokazujuci si ego.

první 3 řešení jsou dobrá. Pokud pracujete jako freelancer je dobré podobné úlohy trénovat, občas se stane, že si vás potenciální zákazník na něčem podobném prověří.


noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Programátorský úkol
« Odpověď #91 kdy: 11. 09. 2017, 16:11:27 »
toto je mozne naozaj len na roote. zacinam pochybovat, ze tu chodia odbornici. skor su to len "odbornici" dokazujuci si ego.

první 3 řešení jsou dobrá. Pokud pracujete jako freelancer je dobré podobné úlohy trénovat, občas se stane, že si vás potenciální zákazník na něčem podobném prověří.

Co se vam nelibi na mem 4tem reseni? Jestli to chapu spravne, tak to dela to stejne*, co treba to treti a ma nizsi wtf-faktor ;D.

*: Teda je to cyklus vs rekurze, kterou asi stejne prekladac transformuje do cyklu, takze tam asi rozdil moc nebude.

gll

Re:Programátorský úkol
« Odpověď #92 kdy: 11. 09. 2017, 16:16:11 »
toto je mozne naozaj len na roote. zacinam pochybovat, ze tu chodia odbornici. skor su to len "odbornici" dokazujuci si ego.

první 3 řešení jsou dobrá. Pokud pracujete jako freelancer je dobré podobné úlohy trénovat, občas se stane, že si vás potenciální zákazník na něčem podobném prověří.

Co se vam nelibi na mem 4tem reseni? Jestli to chapu spravne, tak to dela to stejne*, co treba to treti a ma nizsi wtf-faktor ;D.

*: Teda je to cyklus vs rekurze, kterou asi stejne prekladac transformuje do cyklu, takze tam asi rozdil moc nebude.

Asi jsem spletl pořadí řešení. To vaše se mi líbí. Ta ukecaná se mi nelíbí.

mon

Re:Programátorský úkol
« Odpověď #93 kdy: 11. 09. 2017, 16:35:50 »
toto je mozne naozaj len na roote. zacinam pochybovat, ze tu chodia odbornici. skor su to len "odbornici" dokazujuci si ego.

Je lahsie buzerovat ako byt konstruktivny. Tiez tu badam podobny trend, co je celkom skoda :(

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Programátorský úkol
« Odpověď #94 kdy: 11. 09. 2017, 16:40:37 »
Abych byl uprimny, tak si myslim, ze vse bude tezce zaviset na tom, kam a na jakou pozici se clovek hlasi - podle toho budou lepe hodnocena elegantni abstraktni jednoducha reseni (napr. vyssi prog. a FP jazyky) versus rychla ukecana reseni (asi "nizsi" jazyky typu C, programovani krabicek atp.). Mozna by to clovek u pohovoru mel spise brat neutralne (nekdo to uz myslim psal) a dalsi otazka by mela byt na vykon zvoleneho reseni, pobavit se o tom, proc zvolil takovy postup/dat. strukturu/jazyk, atp.

Osobne bych se trosku bal, ze programator, ktery si to zacne vse psat od podlahy bude mit problem v praxi pouzivat knihovny a bude si radeji vse psat sam (nema prehled o std. knihovne ci ekosystemu) a tedy plytvat penize zamestnavateli. Ale to je dost mozna jen muj subjektivni pohled na vec zkresleny z Haskellu, vyssich jazyku a prace, kde se silne preferuje klidne velmi suboptimalni reseni, pokud to usetri cas vyvoje.

Na skolni ulohu bez nastavenych limitu s trivialnimi vstupnimi daty jsou IMO ta jednoducha reseni spravna, v realnem svete bude zalezet na zadani a tedy na projektu, jazyku, povolenych knihovnach a bambilionu dalsich veci.

PS: Ja pridal dve hezke sajty podobne eurlerovi/codewars (nikdo na to myslim nereagoval), asi to zapadlo ve zbytku prispevku.  :-\


andy

Re:Programátorský úkol
« Odpověď #95 kdy: 11. 09. 2017, 17:12:37 »
Tak jsem zvolil Haskell, akorát jsem použil Data.Vector, kde není v knihovně "transpose" (ani jsem netušil, že to v Prelude je), a že otočení je "reverse . transpose" mě nenapdlo...  :-[ Nojo, premature optimization, možná kdybych viděl transpose, tak mě to napadne...(a možná ne).

IMO tohle je vyloženě úloha na to, jestli v tom člověk to otočení vidí nebo ne. A kdo nezačal programovat, ale vzal si nejdřív papír, tak to tam našel... a "ideální" kód vypadá přesně tak, jak to je v tom haskellu (nebo ekvivalent v NumPy), akorát kolem toho eventuálně bude knihovna, která pořeší ty view.

Otázka je, jestli se to dá nacvičit. Řekl bych, že ano. Je to stejné, jako když řešíte různé matematické prostocviky nebo vymýšlíte matematické důkazy. Když jich pár stovek horkotěžko dáte dohromady (projdete si spoustu slepých uliček) a pak různá elegantní řešení, tak při nových úlohách najednou vidíte, kam se kouknout, jestli tam nevede jednodušší cesta..

Programování je jen spousty triků, a když jich budete pár znát, tak je snadno budete umět použít...

Aoidhghean

Re:Programátorský úkol
« Odpověď #96 kdy: 11. 09. 2017, 17:16:30 »
Abych byl uprimny, tak si myslim, ze vse bude tezce zaviset na tom, kam a na jakou pozici se clovek hlasi - podle toho budou lepe hodnocena elegantni abstraktni jednoducha reseni (napr. vyssi prog. a FP jazyky) versus rychla ukecana reseni (asi "nizsi" jazyky typu C, programovani krabicek atp.). Mozna by to clovek u pohovoru mel spise brat neutralne (nekdo to uz myslim psal) a dalsi otazka by mela byt na vykon zvoleneho reseni, pobavit se o tom, proc zvolil takovy postup/dat. strukturu/jazyk, atp.

Osobne bych se trosku bal, ze programator, ktery si to zacne vse psat od podlahy bude mit problem v praxi pouzivat knihovny a bude si radeji vse psat sam (nema prehled o std. knihovne ci ekosystemu) a tedy plytvat penize zamestnavateli. Ale to je dost mozna jen muj subjektivni pohled na vec zkresleny z Haskellu, vyssich jazyku a prace, kde se silne preferuje klidne velmi suboptimalni reseni, pokud to usetri cas vyvoje.

Na skolni ulohu bez nastavenych limitu s trivialnimi vstupnimi daty jsou IMO ta jednoducha reseni spravna, v realnem svete bude zalezet na zadani a tedy na projektu, jazyku, povolenych knihovnach a bambilionu dalsich veci.

PS: Ja pridal dve hezke sajty podobne eurlerovi/codewars (nikdo na to myslim nereagoval), asi to zapadlo ve zbytku prispevku.  :-\
Stačí vidět to ve správném kontextu. To dvouřádkové řešení v Haskellu je objektivně nejhezčí, jen místo pole polí by se měl použít příhodnější typ (Matrix). Fungovat to bude úplně stejně a když se pak ukáže, že dat jsou gigabajty, udělá se z toho typová třída a algoritmus - zapsaný úplně stejně elegantně - bude mít lineární implementaci pomocí náhledů. Příklad par excellence přístupu “the art of programming”.

Aoidhghean

Re:Programátorský úkol
« Odpověď #97 kdy: 11. 09. 2017, 17:25:49 »
Otázka je, jestli se to dá nacvičit. Řekl bych, že ano. Je to stejné, jako když řešíte různé matematické prostocviky nebo vymýšlíte matematické důkazy. Když jich pár stovek horkotěžko dáte dohromady (projdete si spoustu slepých uliček) a pak různá elegantní řešení, tak při nových úlohách najednou vidíte, kam se kouknout, jestli tam nevede jednodušší cesta..
Aneb není nad tvůrčí činnost.

kojot4

  • ***
  • 217
    • Zobrazit profil
    • E-mail
Re:Programátorský úkol
« Odpověď #98 kdy: 11. 09. 2017, 17:36:04 »
PS: Ja pridal dve hezke sajty podobne eurlerovi/codewars (nikdo na to myslim nereagoval), asi to zapadlo ve zbytku prispevku.  :-\

Jsem to nějak hledal a nemůžu ty sajty najít, docela by mě to zajímalo, můžeš je znovu zveřejnit?

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Programátorský úkol
« Odpověď #99 kdy: 11. 09. 2017, 18:01:37 »
Byly to http://adventofcode.com a https://www.codingame.com. Ten prvni jsem zkousel predchozi verzi (rok zpet) a je to podobne tomu eurlerovi (navic s tematickym textem). Druhe jsem moc nezkousel a nevim, jestli to bude pro vas, je to mozna pro uplne zacatecniky a mozna cilene spise na mladsi (tematika komisku, her a tak, asi to nemusi kazdemu sednout; ale mozna kecam, moc jsem od tam nezkousel). Na rozdil od codewars ale (minimalne ten advent of code) nemaji zadne srovnavani kodu s ostatnimi lidmi.

Asi jich par zkuste a uvidite, co vam nejvice sedne. Pripadne prostridat, nebo si ty bez vzorovych reseni nechat az udelate par nizsich urovni v codewars, a pak jimi procvicovat spise algoritmy/mysleni nez jazyk/std. knihovnu.

borekz

  • ****
  • 493
    • Zobrazit profil
    • E-mail
Re:Programátorský úkol
« Odpověď #100 kdy: 11. 09. 2017, 18:05:54 »
Pokud pracujete jako freelancer je dobré podobné úlohy trénovat, občas se stane, že si vás potenciální zákazník na něčem podobném prověří.
To potom není zákazník, ale švarcový zaměstnavatel.

kojot4

  • ***
  • 217
    • Zobrazit profil
    • E-mail
Re:Programátorský úkol
« Odpověď #101 kdy: 11. 09. 2017, 18:30:28 »
Byly to http://adventofcode.com a https://www.codingame.com. Ten prvni jsem zkousel predchozi verzi (rok zpet) a je to podobne tomu eurlerovi (navic s tematickym textem).

Ten adventofcode nemá právě ty řešení, což mi přijde, že když se člověk nepodívá na konkurenci, tak se nic nenaučí. To codingame je lepší, jsou tam i řešení, i když to není tak dobře zorganizováno jako na codewars, kde jsou řešení dost přehledně podle počtu hlasů atd.

Ale je to rozhodně zajímavé. Jsem dlouho netušil, že takovéhle weby vůbec jsou... A většina kurzů mi přišla na nic, protože většinou učí jen syntaxi.

gll

Re:Programátorský úkol
« Odpověď #102 kdy: 11. 09. 2017, 18:43:08 »
doporucil uz nekdo https://www.hackerrank.com/ ?

petr

Re:Programátorský úkol
« Odpověď #103 kdy: 11. 09. 2017, 19:02:57 »
nepochopim, jakej vyznam maji tyhle ukoly na pohovoru. nekoho nemusi napadnout prace s matici. je horsi? ne. kdyby mi nekdo dal takovej ukol, poslal bych ho do zadeke

mon

Re:Programátorský úkol
« Odpověď #104 kdy: 11. 09. 2017, 19:13:29 »
Píšu tak, aby byl kód bezpečný. Zvlášť když vector není pomalejší než raw pole. Ostatně v tom stupidním kódu je chyba právě ve správě paměti, pro pole se používá delete[].
Ved som povedal, ze su tam chyby, ale islo mi o jednoduchost, spatne zmenit to uz neviem. Kazdopadne algoritmus samotny funguje, je najrychlejsi a pouziva najmenej pamate z tu zverejnenych. Pises tu vacsinou v tomto vlakne techicky dobre veci, ale preco si sa namiesto normalnej kritiky priklonil k arogancii to je len o tebe...

Spat k teme:
Sice taketo priklady sice pomahaju zlepsit rozmyslanie programatora, ale to nie je vsetko ako to Noef dobre napisal. Viac pomaha riesenie kazdodennych problemov.
Najlahsie je skusit si napisat par malych projektov z oblasti o ktoru mas zaujem. Tam ziskas vedomosti aj z kniznic/frameworkov a budes riesit realne problemy s vyvojom. Teda veci to co vacsinou zamestnavatelov zaujimaju.
Tieto priklady sluzia len na zistnie akym sposobom uchadzac rozmysla pri riesni problemov (a niekedy ho dostat pod tlak, zalezi od pohovoru).

Tu je viac takych podobnych stranok s ktorymi som sa stretol a este tu neboli, ale ci su tam riesenia, to neviem: