Hubert Wesołowski

Hubert Wesołowski Człowiek od krycia
dachów podczas
deszczu (mokrej
roboty).

Temat: Ciekawe pytania rekrutacyjne

Piotr J.:
@Hubert

Nie ma czegos takiego jak poprzeczka. Masz X pieniedzy i ogloszenie, masz Y czasu, zglosilo sie Z kandydatow. Zatrudniasz najlepszego z nich - konkurujesz z ludzmi, a nie pytaniami.
sie nie zrozumielismy :)
pytalem jakich w koncu zatrudniasz (rzad wielkosci): 20, 50, 80%?
Piotr Jasiulewicz

Piotr Jasiulewicz PHP/Java
professional

Temat: Ciekawe pytania rekrutacyjne

Odpowiedz juz padla, zatrudniam najlepszego dostepnego, a rzad wielkosci to na ogol potega liczby 10.
Tomasz Rychtyk

Tomasz Rychtyk Web Developer, ZCE,
MCP

Temat: Ciekawe pytania rekrutacyjne

Dość ciekawe pytanie, bardziej na myślenie, na jakie niedawno się natknąłem (PHP):

Napisz funkcję, która jako argument przyjmuje ciąg znaków i zwraca go w odwrotnej kolejności.

Czyli generalnie napisać ekwiwalent strrev(). Jeden szczegół: przy zamianie nie wolno używać substring-a. Tzn. zmienne pomocnicze typu długość string-a itp. są dozwolone, chodzi o to, żeby nie robić tego w ten sposób, że w pewnym momencie w pamięci będą dwa stringi: wejściowy i wyjściowy (odwrócony).

Temat: Ciekawe pytania rekrutacyjne

Tomasz R.:
przy zamianie nie wolno używać substring-a. Tzn. zmienne pomocnicze typu długość string-a itp. są dozwolone, chodzi o

http://ideone.com/tQEsYg
Można zrobić nawet bez zmiennej pomocniczej, parę postów temu było o xor.
Kamil Mikołajczyk

Kamil Mikołajczyk programista Java /
Grails

Temat: Ciekawe pytania rekrutacyjne

na co dzień nie pisze w phpie, ale co tam... ;)
http://ideone.com/fBUqn7
Dominik K.

Dominik K. Talent Aquisition
Partner

Temat: Ciekawe pytania rekrutacyjne

Krzysztof K.:
to jest z tej samej serii co:

:(){ :|:& };:

co zwróci powyższy skrypt basha

ps. kazanie kompilowania skryptu w pamięci kandydatowi nie jest chyba normalne czy tylko mi się tak wydaje ?


to zależy co uznamy za "normę" :D
ciekawy wątek, może wykorzystam któreś z pytań podczas rekrutacji :)
a tak poważnie, wiele firm ma testy "wiedzy", jedne robią to bardziej sensownie inne trochę mniej. Myślę że doświadczony programista już po tym jak wygląda proces rekrutacyjny jest w stanie świetnie się zorientować czy aby na pewno chce w tej firmie pracować.

Przy okazji :) zapraszam do kontaktu programistów PHP z Wrocławia, Świdnicy i okolic. Aktualnie prowadzę rekrutację dla klienta, który szuka kilku programistów do zespołu.

Pozdrawiam
Dominik Krzywinski
Recruitment consultant - EMEA Region
http://eagleeyestaffing.com
T: (+48) 12 312 25 17
Email: d.krzywinski@eagleeyestaffing.com

konto usunięte

Temat: Ciekawe pytania rekrutacyjne

Adam J.:
bardzo fajne pytanie na jakie ostatnio trafiłem :)

"Jak zamienić miejscami 2 zmienne liczbowe np: x=45; y=27 tak aby otrzymać x=27; y=45
Nie wolno użyć żadnej dodatkowej zmiennej pomocniczej!"

Tak odkopię stary temat :D

<?php

$x=45;
$y=27;

$x = array($x, $y);

$y = $x[0];
$x = $x[1];

echo $y.'<br>'.$x;

?>

konto usunięte

Temat: Ciekawe pytania rekrutacyjne

ewentualnie tak ;)

$x = 45;
$y = 27;
list($x,$y) = [$y,$x];

Marek Karmelski

Marek Karmelski PHP Programmer,
Magento dev, Agencja
reklamowa White
Ducky

Temat: Ciekawe pytania rekrutacyjne

lub tak:


$x = 27;
$y = 45;

$x .= $y;

$y = $x[0].$x[1];
$x = $x[2].$x[3];

echo $x.' - '.$y;

Temat: Ciekawe pytania rekrutacyjne


$x = 27;
$y = 45;

$x = $x xor $y;
$y = $x xor $y;
$x = $x xor $y;

echo $x.' - '.$y;
Ten post został edytowany przez Autora dnia 21.09.15 o godzinie 11:46
Marek Karmelski

Marek Karmelski PHP Programmer,
Magento dev, Agencja
reklamowa White
Ducky

Temat: Ciekawe pytania rekrutacyjne

Niestety nie działa.

Wersja poprawiona:


$x = 27;
$y = 45;

$x = $x ^ $y;
$y = $x ^ $y;
$x = $x ^ $y;

echo $x.' - '.$y;

Piotr R.:

$x = 27;
$y = 45;

$x = $x xor $y;
$y = $x xor $y;
$x = $x xor $y;

echo $x.' - '.$y;
Ten post został edytowany przez Autora dnia 21.09.15 o godzinie 12:29

konto usunięte

Temat: Ciekawe pytania rekrutacyjne

Hehe, pamiętam jedną rekrutację gdzie dostałem coś podobnego. Strasznie mnie irytują takie rzeczy więc na ogół ciągnę palec osoby rekrutującej.

Zamiast dochodzić wynik kretyńskiego kawałka kodu, napisałem go prosto i czytelnie z wynikiem i dopiskiem że tego kto pisze taki jak u góry należy zwolnić bo tylko generuje dodatkowe koszta, szansę na popełnienie błędu i nadmiernie komplikuje proste zadania.

Praktycznie nie chodzę na rekrutacje więc nie wiem w ilu przypadkach taki dowcip przejdzie ale wtedy przeszedł i został odebrany z dystansem. Na rekrutacji powinno się omawiać problemy praktyczne zamiast tracić czas na kretyństwa które w życiu niczego nie pokażą.

Jeżeli mamy godzinę czy dwie z klientem to raczej powinno się go poznać, ocenić charakter, zobaczyć czy ma pojęcie o takich rzeczach jak skalowalność, bezpieczeństwo aplikacji i wiele innych rzeczy zamiast poświęcać ten czas na idiotyczne zadanie które może złapie go na tym że pomylił działanie xor. Operatora którego przez ostatnie 5 lat użyłem może 2-3 razy.

konto usunięte

Temat: Ciekawe pytania rekrutacyjne

Dariusz P.:
Zamiast dochodzić wynik kretyńskiego kawałka kodu, napisałem go prosto i czytelnie z wynikiem i dopiskiem że tego kto pisze taki jak u góry należy zwolnić bo tylko generuje dodatkowe koszta, szansę na popełnienie błędu i nadmiernie komplikuje proste zadania.

A może właśnie to to ma sprawdzać kandydata pod względem potencjalnego ryzyka występowania błędów? Bo weźmy taki przykład, że masz to napisać na kartce a rekruter ma gotowe wyniki (i gotowe rozwiązanie które może sobie porównać z Twoim). Bez sprawdzania, chodzi o to czy potrafisz szybko zaimplementować poprawnie działające rozwiązanie już z głowy, bo testy jednostkowe to chyba dość często są olewane, choćby ze względu na brak czasu jak terminy gonią.

Jak potencjalnie gość później robi dużo błędów i często się myli to potencjalnie więcej czasu na ich naprawę. To tylko moje przypuszczenia, bo zastanawiam się czy nie jest to takie szukanie omnibusa a programista nie jest maszyną i ma prawo takie błędy popełniać a od tego są testy żeby wszystko działało jak należy. Albo jest to tylko po to żeby udowodnić komuś kto deklaruje w CV doskonałą znajomość PHP (bo takie są wymogi w ogłoszeniach) że jest zerem i nie zasługuje na te 5K ale znacznie mniej :-)

Z kolei zadanka typu masz 8 kul i znajdź mając tylko 2 ważenia taką która jest cięższa od pozostałych to może być test na radzenie sobie z problemami optymalizacji obliczeń. User przecież nie lubi czekać nawet na załadowanie strony a co dopiero nie wiadomo ile na wyniki wyszukiwań.

konto usunięte

Temat: Ciekawe pytania rekrutacyjne

Dariusz R.:
A może właśnie to to ma sprawdzać kandydata pod względem potencjalnego ryzyka występowania błędów? Bo weźmy taki przykład, że masz to napisać na kartce a rekruter ma gotowe wyniki (i gotowe rozwiązanie które może sobie porównać z Twoim). Bez sprawdzania, chodzi o to czy potrafisz szybko

Już tutaj jest popełniany błąd. Co jeżeli ktoś zadanie rozwiąże deczko inaczej? :P Rekruter "mający na kartce rozwiązanie" to już błąd sam w sobie. Do sprawdzenia wiedzy technicznej potrzeba wiedzy technicznej. Już chociażby z tego powodu że znam multum przypadków gdzie HR był wniebowzięty kandydatem bo ten miał gadane i wiedział co mówić.
Gwarantuje Ci że w takim środowisku wziął bym ogarniętego sprzedawcę odkurzaczy, dał mu 2-3 dni żeby się przygotował i u takiego rekrutera pewnie przeszedł by jako programista.
zaimplementować poprawnie działające rozwiązanie już z głowy, bo testy jednostkowe to chyba dość często są olewane, choćby ze względu na brak czasu jak terminy gonią.

Testy jednostkowe na ogół są olewane przy cięciu kosztów. Jak klient świadomie chce obniżyć cenę poświęcając testy które mają zagwarantować podstawowe działanie aplikacji oraz kompatybilność wszystkich zmian które wchodzą później - to jego własny problem.
Wtedy zamiast pisać testy odpalasz kilka razy metodę z innym zestawem parametrów (inline). Tzw sprawdzanie dupą (var dump + die) i papa. Żeby było zabawniej, bardzo często takie sprawdzanie więcej trwa niż napisanie testu :-D
Jak potencjalnie gość później robi dużo błędów i często się myli to potencjalnie więcej czasu na ich naprawę. To tylko moje przypuszczenia, bo zastanawiam się czy nie jest to takie szukanie omnibusa a programista nie jest maszyną i ma prawo takie błędy popełniać a od tego są testy żeby wszystko działało jak należy. Albo jest to tylko po to żeby udowodnić komuś kto deklaruje w CV doskonałą znajomość PHP (bo takie są wymogi w ogłoszeniach) że jest zerem i nie zasługuje na te 5K ale znacznie mniej :-)

Ale tego nigdy nie dowiesz się na takiej rekrutacji. Na rekrutacji wiele osób się stresuje (jak kiedyś na egzaminach), nie ma dostępu do narzędzi wspomagających pracę na których pracuje od lat, do znanego sobie środowiska itp. Ocenianie takich rzeczy podczas rekrutacji na kartce czy w prostym edytorku tekstowym bez możliwości odpalenia itp to jak wyjęcie ryby z wody żeby sprawdzić czy dobrze pływa.

Później we wnioskach wpisujesz "ta ryba bez wody nie pływa".
Z kolei zadanka typu masz 8 kul i znajdź mając tylko 2 ważenia taką która jest cięższa od pozostałych to może być test na radzenie sobie z problemami optymalizacji obliczeń. User przecież nie lubi czekać nawet na załadowanie strony a co dopiero nie wiadomo ile na wyniki wyszukiwań.

To sprawdza czy kandydat umie kombinować. Zabawne w tym fakcie jest to że 90% stanowisk przy rekrutacji było to zadanie polega na klepaniu kolejnych widoków i formularzy. I w zasadzie niczego nie definiuje.

Ciekawe pytania rekrutacyjne?
- przykład XSS albo SQL Injection lub wytłumaczenie na czym polegają i jak się przed nimi bronić
- czy da się ominąć filtrowanie po IP przy dostępie do serwisu?
- w środowisku wieloserwerowym użytkownik trafia na serwer A i rozpoczyna sesje, kolejnym razem trafia na B i orientuje się że jest wylogowany z serwisu (sesja jest pusta). Jak temu zapobiec?
- jak efektywnie przeszukiwać duże ilości danych? (miliony rekordów)
- jak radzić sobie z bazami danych mającymi +10mln rekordów?
- wyszukiwanie w tabeli mysql po emailu użytkownika trwa niemal 5 sekund, jak temu zapobiec?
itp itd etc...

Ogólnie bardziej interesuje mnie na rekrutacji czy kandydat ma wiedzę jak rozwiązać typowe problemy które męczą przeciętne serwisu www niż to czy pamięta zachowanie xor. To jak programuje przekonam się dopiero jak zacznie pracę. Przez kilkadziesiąt minut na rekrutacji nie ma możliwości tego sprawdzić. Mogę sprawdzić JAKOŚĆ kodu jeżeli ma jakieś próbki do pokazania.Ten post został edytowany przez Autora dnia 22.09.15 o godzinie 13:29

Temat: Ciekawe pytania rekrutacyjne

@Marek Karmelski
Dzięki za poprawkę, mea culpa.

@To All
Widzę, że poczucie humoru w zawodzie zaczyna zbliżać się do niebezpiecznego minimum skoro proste ale ciekawe zadanie i jeszcze bardziej humorystyczne rozwiązanie (kalibru ciekawostka) wywołało tak żarliwą wymianę opinii.

Thank goodness we don't have only serious problems, but ridiculous ones as well - Dijkstra E. W.
Robert P.

Robert P. Senior PHP Developer

Temat: Ciekawe pytania rekrutacyjne

XOR jest ok, ale można to też zrobić prostą operacją arytmetyczną w przypadku liczb


$a += $b;
$b = $a - $b;
$a = $a - $b;



Wyślij zaproszenie do