Testy na pohovoroch

lopata

Re:Testy na pohovoroch
« Odpověď #120 kdy: 21. 03. 2018, 09:57:56 »
Kód: [Vybrat]
#include <stdio.h>
int main() {
const float x = 3.1;
printf("%i\n", 3.1 == x);
return 0;
}

To není žádný chyták ale validní test toho zda uchazeč chápe jak přesně funguje floating point (což se učí na všech slušných školách které vyučují programování). S tímhle přístupem byste mohli prohlásit za chyták cokoliv co není triviální a pak ale neodlišíte průměrné programátory od výborných!

Nachytal ses... Tady ti informace o tom, jak funguje floating point, moc nepomůže. Potřebuješ navíc informaci o tom, jak funguje implicitní přetypování v C, bez toho nezjistíš, co ten kód dělá a proč se (float) 3.1 nerovná 3.1.


v

Re:Testy na pohovoroch
« Odpověď #121 kdy: 21. 03. 2018, 10:05:04 »
Kód: [Vybrat]
#include <stdio.h>
int main() {
const float x = 3.1;
printf("%i\n", 3.1 == x);
return 0;
}
to je sice pravda, ale pointou je furt omezená přesnost floatu, dalo by se to přepsat aby to nezáviselo na přetypování
To není žádný chyták ale validní test toho zda uchazeč chápe jak přesně funguje floating point (což se učí na všech slušných školách které vyučují programování). S tímhle přístupem byste mohli prohlásit za chyták cokoliv co není triviální a pak ale neodlišíte průměrné programátory od výborných!

Nachytal ses... Tady ti informace o tom, jak funguje floating point, moc nepomůže. Potřebuješ navíc informaci o tom, jak funguje implicitní přetypování v C, bez toho nezjistíš, co ten kód dělá a proč se (float) 3.1 nerovná 3.1.

pra

Re:Testy na pohovoroch
« Odpověď #122 kdy: 21. 03. 2018, 10:08:34 »
FP je podle me paradigma vyssi urovne, ktere umoznuje vice soustredeni programatora investovat do reseneho problemu, nez do reseni synchronizace mezi vlakny a jinych problemu zavislych na behovem prostredi.
Umoznuje to diky zarukam ktere dava, jako je nemenitelnest, funkce bez vedlejsich efektu, line vyhodnoceni, line sekvence.

To ze java nabizi FP syntax sugar a pritom neposkytuje ty potrebne zaruky je podle me to nestastne.




mmm

Re:Testy na pohovoroch
« Odpověď #123 kdy: 21. 03. 2018, 11:20:20 »
Tato ponuka si asi chce vystrelit z uchadzacov :D Tolko technologii a na urovni pokrocily.

https://www.profesia.sk/praca/mjch/O3336470

dword

Re:Testy na pohovoroch
« Odpověď #124 kdy: 21. 03. 2018, 11:48:01 »
Kód: [Vybrat]
#include <stdio.h>
int main() {
const float x = 3.1;
printf("%i\n", 3.1 == x);
return 0;
}

To není žádný chyták ale validní test toho zda uchazeč chápe jak přesně funguje floating point (což se učí na všech slušných školách které vyučují programování). S tímhle přístupem byste mohli prohlásit za chyták cokoliv co není triviální a pak ale neodlišíte průměrné programátory od výborných!

Nachytal ses... Tady ti informace o tom, jak funguje floating point, moc nepomůže. Potřebuješ navíc informaci o tom, jak funguje implicitní přetypování v C, bez toho nezjistíš, co ten kód dělá a proč se (float) 3.1 nerovná 3.1.

Presne k tomu jsem chtel dojit. Chytaky neexistuji. Existuji jen otazky a odpovedi. Vetsina lidi je naprosto mimo, a predem si umanou na co budou odpovidat prestoze otazka zni uplne jinak. Sahnou automaticky po tom prvnim co znaji a co jim dotaz pripomina a pak odpovi uplne na neco jineho, nez se tazatel pta. Samozrejme potom jsou za blbce a nastvou se, ze je nekdo podvedl. Jenze oni podvadi sami sebe, cely zivot, vsechno se uci takovym stylem. Proto na svou obranu potrebujou slovo chytak. Clovek ktery se vzdycky podiva na to "co tam je" a ne na to "co mu to pripomina" zadne takove slovo nepotrebuje. Oni ale ztratili schopnost divat se na to "co je". Jsou ochoceni. Fuj, takhle dopadnout nechci.


Cek

Re:Testy na pohovoroch
« Odpověď #125 kdy: 21. 03. 2018, 11:57:42 »

Presne k tomu jsem chtel dojit. Chytaky neexistuji. Existuji jen otazky a odpovedi. Vetsina lidi je naprosto mimo, a predem si umanou na co budou odpovidat prestoze otazka zni uplne jinak. Sahnou automaticky po tom prvnim co znaji a co jim dotaz pripomina a pak odpovi uplne na neco jineho, nez se tazatel pta. Samozrejme potom jsou za blbce a nastvou se, ze je nekdo podvedl. Jenze oni podvadi sami sebe, cely zivot, vsechno se uci takovym stylem. Proto na svou obranu potrebujou slovo chytak. Clovek ktery se vzdycky podiva na to "co tam je" a ne na to "co mu to pripomina" zadne takove slovo nepotrebuje. Oni ale ztratili schopnost divat se na to "co je". Jsou ochoceni. Fuj, takhle dopadnout nechci.

To jsou kecy v kleci, kazdy mozek hleda zname patterny, i ten Tvuj, i kdyz si to nechces priznat. Muzou byt o uroven vejs, ale pravdepodobne nejsou a jsi v tom uplne stejne jako zbytek lidstva....

dword

Re:Testy na pohovoroch
« Odpověď #126 kdy: 21. 03. 2018, 12:11:52 »

Presne k tomu jsem chtel dojit. Chytaky neexistuji. Existuji jen otazky a odpovedi. Vetsina lidi je naprosto mimo, a predem si umanou na co budou odpovidat prestoze otazka zni uplne jinak. Sahnou automaticky po tom prvnim co znaji a co jim dotaz pripomina a pak odpovi uplne na neco jineho, nez se tazatel pta. Samozrejme potom jsou za blbce a nastvou se, ze je nekdo podvedl. Jenze oni podvadi sami sebe, cely zivot, vsechno se uci takovym stylem. Proto na svou obranu potrebujou slovo chytak. Clovek ktery se vzdycky podiva na to "co tam je" a ne na to "co mu to pripomina" zadne takove slovo nepotrebuje. Oni ale ztratili schopnost divat se na to "co je". Jsou ochoceni. Fuj, takhle dopadnout nechci.

To jsou kecy v kleci, kazdy mozek hleda zname patterny, i ten Tvuj, i kdyz si to nechces priznat. Muzou byt o uroven vejs, ale pravdepodobne nejsou a jsi v tom uplne stejne jako zbytek lidstva....

Ja jsem si to kdysi priznal a pracoval na tom abych si vypestoval vuli. Takove problemy uz nemam. Proc si myslis ze kazdy mozek musi pracovat jako ten tvuj?

pra

Re:Testy na pohovoroch
« Odpověď #127 kdy: 21. 03. 2018, 12:27:18 »

Presne k tomu jsem chtel dojit. Chytaky neexistuji. Existuji jen otazky a odpovedi. Vetsina lidi je naprosto mimo, a predem si umanou na co budou odpovidat prestoze otazka zni uplne jinak. Sahnou automaticky po tom prvnim co znaji a co jim dotaz pripomina a pak odpovi uplne na neco jineho, nez se tazatel pta. Samozrejme potom jsou za blbce a nastvou se, ze je nekdo podvedl. Jenze oni podvadi sami sebe, cely zivot, vsechno se uci takovym stylem. Proto na svou obranu potrebujou slovo chytak. Clovek ktery se vzdycky podiva na to "co tam je" a ne na to "co mu to pripomina" zadne takove slovo nepotrebuje. Oni ale ztratili schopnost divat se na to "co je". Jsou ochoceni. Fuj, takhle dopadnout nechci.

To jsou kecy v kleci, kazdy mozek hleda zname patterny, i ten Tvuj, i kdyz si to nechces priznat. Muzou byt o uroven vejs, ale pravdepodobne nejsou a jsi v tom uplne stejne jako zbytek lidstva....

Ja jsem si to kdysi priznal a pracoval na tom abych si vypestoval vuli. Takove problemy uz nemam. Proc si myslis ze kazdy mozek musi pracovat jako ten tvuj?

Vzory jsou vzory a kazdy mozek se na ne chyta. Ovsem vuli muzu ovlivnit jestli se chytnu na ten prvni nejznamejsi a hned konam, nebo jestli pockam a prozkoumam i ty mene zname, nez rozhodnu co bude dal.

Ivan Nový

Re:Testy na pohovoroch
« Odpověď #128 kdy: 21. 03. 2018, 12:39:07 »
Vybírat lidi, co se nenachytají na chytáky, je nesmysl, ti většinou nebývají komerčně úspěšní, protože myslí jinak než většina. A to pro úspěch produktu nebývá dobré.

Jano7

Re:Testy na pohovoroch
« Odpověď #129 kdy: 21. 03. 2018, 12:54:53 »
Kód: [Vybrat]
Je sice hezké, že znáš poslední módu v Javě, ale inženýrská praxe na tomto nestojí.

Nechcel som sa k tomu vracať, ale ešte raz to skúsim zhrnúť. Pán stiahol nejaký chyták z netu (spolu s NPE chybou) a dal ju ako test uchádzačovi. Dá sa nájsť napr. https://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ (Dokonca aj to názvoslovie je skopírované :)) A potom to dal chudákovi uchádzačovi ako príklad na papieri. Tiež zmenil zadanie z Remove an Element from a List Inside a Loop na hmlisté jestli se mu to libi. A jestli ne, tak co by udelal jinak.


Kód: [Vybrat]
ArrayList<String> words = new ArrayList(Arrays.asList("pen", "pencil",
        "sky", "blue", "sky", "dog"));

Iterator<String> iter = words.iterator();

while (iter.hasNext()) {
    String s = iter.next();

    if ("sky".equals(s)) {
        iter.remove();
    }
}

System.out.println(words);

Ako riešenie sa uvádza použitie iterátora, pretože s for cyklom dochádza ku ConcurrentModificationException.
Lenže oproti použitiu funkcionálnej Javy je toto riešenie inferiórne.

Kód: [Vybrat]
List<String> words = List.of("hello", "sky", "there", "den", "sky");

List<String> words2 = words.stream().filter(e -> !e.equals("sky")).collect(Collectors.toList());

System.out.println(words2);

Toto riešenie je omnoho lepšie. Je to okrem iného rozdiel v internej a externej iterácii, kde tá interná má veľa výhod oproti externej. Napríklad v tom, že ja sa  nemusím starať o takúto chybu (ConcurrentModificationException), lebo k nej nedôjde. Je to non-issue.

Viď rozdiely medzi internou a externou iteráciou: https://www.linkedin.com/pulse/java-8-external-iterator-vs-internal-saral-saxena

Citace
Simplified implementation/less defects as code written by programmer is very less, chances of bugs creeping into the iteration logic are not there.

Nie som prvý, ktorý na takýto typ problému navrhujú funkcionálny prístup. Keď toto riešili Python programátori
https://stackoverflow.com/questions/1207406/how-to-remove-items-from-a-list-while-iterating
a JavaScript programátori, tak funkcionálne riešenie získalo kladné ohlasy.
https://stackoverflow.com/questions/9882284/looping-through-array-and-removing-items-without-breaking-for-loop
Ja som si tu vyslúžil naopak zhadzovanie.

Je zaujímavé tiež, že v Jave spätná externá iterácia s mazaním funguje.

Kód: [Vybrat]
        List<String> words = new ArrayList<>(Arrays.asList("pen", "pencil",
                "sky", "blue", "sky", "dog"));

        for (int i=words.size() - 1; i>=0; i--) {

            if ("sky".equals(words.get(i))) {
                words.remove(i);
            }
        }

        System.out.println(words);

Citace
Pozn. 2: k té změně seznamu při procházení - padlo tu, že se to netýká jen Javy. Ale na to musím reagovat, že to obecně žádná chyba není - může, jako třeba tady, ale taky nemusí. Dokonce v základní algoritmické podobě odstranit prvek zadaný jeho hodnotou ze seznamu ani jinak nejde než při jeho procházení.

Veľmi dobrá poznámka. Takáto externá iterácia funguje napr. v Python 3 a Perl 6.

Kód: [Vybrat]
#!/usr/bin/perl6

my @letters = <pen pencil dog sky blue sky>;

loop (my $i = 0; $i < @letters.elems; $i++) {

    if (@letters[$i] eq "sky") {
        @letters.splice($i, 1);
    }
}

say @letters;
say @letters.elems;

Toto je príklad v Perl 6, kde takýto kód funguje.

Kód: [Vybrat]
#!/usr/bin/python3

words = ["pen", "pencil", "dog", "sky", "blue", "sky"]

print(len(words))

for word in words:
    if word == "sky":
        words.remove(word)

print(words)
print(len(words))

# funkcionalne

words = ("pen", "pencil", "dog", "sky", "blue", "sky")
words2 = [e for e in words if not e == "sky"]
print(words2)
print(len(words2))

Toto je kód v Python 3. Takisto funguje externá iterácia s mazaním. Funkcionálny prístup je však lepší.

Používanie chytákov stiahnutých niekde z netu, bez možnosti použitia počítača, len tak na papieri je neprofesionálne a voči uchádzačom neférové. To každý vie byť frajer a stiahnuť si nejaký príklad, ktorý vás nachytá na obskúrnej časti jazyka.

Jester

Re:Testy na pohovoroch
« Odpověď #130 kdy: 21. 03. 2018, 12:58:20 »
FP je podle me paradigma vyssi urovne, ktere umoznuje vice soustredeni programatora investovat do reseneho problemu, nez do reseni synchronizace mezi vlakny a jinych problemu zavislych na behovem prostredi.
Umoznuje to diky zarukam ktere dava, jako je nemenitelnest, funkce bez vedlejsich efektu, line vyhodnoceni, line sekvence.
To je pravda, ovšem ta úroveň je pro mnohé až moc vysoká, takže si toho moc neužijou.

Jester

Re:Testy na pohovoroch
« Odpověď #131 kdy: 21. 03. 2018, 13:01:37 »
Kód: [Vybrat]
#include <stdio.h>
int main() {
const float x = 3.1;
printf("%i\n", 3.1 == x);
return 0;
}

To není žádný chyták ale validní test toho zda uchazeč chápe jak přesně funguje floating point (což se učí na všech slušných školách které vyučují programování). S tímhle přístupem byste mohli prohlásit za chyták cokoliv co není triviální a pak ale neodlišíte průměrné programátory od výborných!

Nachytal ses... Tady ti informace o tom, jak funguje floating point, moc nepomůže. Potřebuješ navíc informaci o tom, jak funguje implicitní přetypování v C, bez toho nezjistíš, co ten kód dělá a proč se (float) 3.1 nerovná 3.1.

Presne k tomu jsem chtel dojit. Chytaky neexistuji. Existuji jen otazky a odpovedi. Vetsina lidi je naprosto mimo, a predem si umanou na co budou odpovidat prestoze otazka zni uplne jinak. Sahnou automaticky po tom prvnim co znaji a co jim dotaz pripomina a pak odpovi uplne na neco jineho, nez se tazatel pta. Samozrejme potom jsou za blbce a nastvou se, ze je nekdo podvedl. Jenze oni podvadi sami sebe, cely zivot, vsechno se uci takovym stylem. Proto na svou obranu potrebujou slovo chytak. Clovek ktery se vzdycky podiva na to "co tam je" a ne na to "co mu to pripomina" zadne takove slovo nepotrebuje. Oni ale ztratili schopnost divat se na to "co je". Jsou ochoceni. Fuj, takhle dopadnout nechci.
Chyták může být otázka nebo věta zámerně formulovaná tak, aby zmátla. Např. v AJ "The horse raced past the barn fell" člověk předpokládá, že "raced" je sloveso, než dojde až na konec věty. Něco takového lze nazvat "chytákem". Samozřejmě když je otázka nezáludná, tak ji jako chyták označí jen tupec.

Jester

Re:Testy na pohovoroch
« Odpověď #132 kdy: 21. 03. 2018, 13:07:43 »
Nie som prvý, ktorý na takýto typ problému navrhujú funkcionálny prístup. Keď toto riešili Python programátori
https://stackoverflow.com/questions/1207406/how-to-remove-items-from-a-list-while-iterating
a JavaScript programátori, tak funkcionálne riešenie získalo kladné ohlasy.
https://stackoverflow.com/questions/9882284/looping-through-array-and-removing-items-without-breaking-for-loop
Ja som si tu vyslúžil naopak zhadzovanie.
Samozřejmě, že funkcionální přístup je lepší, ale nezapomínejte, že na tomto fóru jsou většinou intelektuálně omezení javatatrmani bez SŠ (o VŠ nemluvě), takže vysvětlovat zde nějaké sofistikované metody a postupy je házení perel sviním.

v

Re:Testy na pohovoroch
« Odpověď #133 kdy: 21. 03. 2018, 13:08:27 »
Používanie chytákov stiahnutých niekde z netu, bez možnosti použitia počítača, len tak na papieri je neprofesionálne a voči uchádzačom neférové. To každý vie byť frajer a stiahnuť si nejaký príklad, ktorý vás nachytá na obskúrnej časti jazyka.
co je na tom příkladu s modifikací kolekce obskurního?! je obskurní tohle (0.1+0.2)==0.3 ? (může to být C,java,python, možná i další jazyky, děkujeme StackOverflow)

dword

Re:Testy na pohovoroch
« Odpověď #134 kdy: 21. 03. 2018, 13:16:54 »
Kód: [Vybrat]
#include <stdio.h>
int main() {
const float x = 3.1;
printf("%i\n", 3.1 == x);
return 0;
}

To není žádný chyták ale validní test toho zda uchazeč chápe jak přesně funguje floating point (což se učí na všech slušných školách které vyučují programování). S tímhle přístupem byste mohli prohlásit za chyták cokoliv co není triviální a pak ale neodlišíte průměrné programátory od výborných!

Nachytal ses... Tady ti informace o tom, jak funguje floating point, moc nepomůže. Potřebuješ navíc informaci o tom, jak funguje implicitní přetypování v C, bez toho nezjistíš, co ten kód dělá a proč se (float) 3.1 nerovná 3.1.

Presne k tomu jsem chtel dojit. Chytaky neexistuji. Existuji jen otazky a odpovedi. Vetsina lidi je naprosto mimo, a predem si umanou na co budou odpovidat prestoze otazka zni uplne jinak. Sahnou automaticky po tom prvnim co znaji a co jim dotaz pripomina a pak odpovi uplne na neco jineho, nez se tazatel pta. Samozrejme potom jsou za blbce a nastvou se, ze je nekdo podvedl. Jenze oni podvadi sami sebe, cely zivot, vsechno se uci takovym stylem. Proto na svou obranu potrebujou slovo chytak. Clovek ktery se vzdycky podiva na to "co tam je" a ne na to "co mu to pripomina" zadne takove slovo nepotrebuje. Oni ale ztratili schopnost divat se na to "co je". Jsou ochoceni. Fuj, takhle dopadnout nechci.
Chyták může být otázka nebo věta zámerně formulovaná tak, aby zmátla. Např. v AJ "The horse raced past the barn fell" člověk předpokládá, že "raced" je sloveso, než dojde až na konec věty. Něco takového lze nazvat "chytákem". Samozřejmě když je otázka nezáludná, tak ji jako chyták označí jen tupec.
No a přesně tak to vzniká... Někdo si usmyslí, že s větou může pracovat dříve než ji dočte celou.