19-01-2009

Jak znaleźć programistę? [część druga, czyli jak znaleźć kogoś dobrego?]

Seria rozmów, o których wspominałem dość szybko może doprowadzić do frustracji. Zapytałem się więc - co zrobić, żeby zatrudnić programistów? Nie ważne, na użytek tego startupu o którym pisałem, czegoś swojego, czy czegokolwiek?
Najpierw - kogo chcemy zatrudnić. Kogokolwiek? Kogoś, na kogo nas stać? Najlepszych na rynku? To zależy, co chcemy robić, ale jeśli nie chcemy wpaść w pułapkę zarządzania, powinniśmy celować w tych najlepszych. Którzy sami są w stanie robić co do nich należy, takim na przykład PM-om zostawiając izolowanie ich od złego otoczenia.
Żeby przyciągnąć najlepszych będziemy musieli ich jakoś przekonać.

Jak już wiemy, czym przyciągnąć najlepszych, pozostaje ich znaleźć. Jak to się robi w .pl, poza pytaniem znajomych?

16-01-2009

Jak znaleźć programistę? [cz. pierwsza, czyli Moje Własne Daily WTF?]

Ostatnio tak się złożyło, że szukałem programistów. Kilku, do quasi-startupu. Inwestor oferował na starcie niezłe pieniądze, oczekiwał pewnego poziomu skilla, umiejętności myślenia... Żadnych z góry narzuconych wymagań dotyczących wybranej technologii, za to możliwości (i chęci) pracy w czymś, na co pomysł przyjdzie później.
Ogólnie, oczekiwania wobec programisty były: Smart, and gets things done.


rekrutacja

Przed przeprowadzeniem interviews posiłkowałem się tym poradnikiem zresztą, a też zajrzałem na bloga interview (gdzie nowsze odcinki, no gdzie?).
Okazało się, niestety, że niepotrzebnie aż tak się wysilałem.
CV, które podrzucał mi inwestor, nie były rewelacyjne. Nie wiem, skąd on je brał - chodził na zaplecza agencji rekrutacyjnych i przeglądał kosze z papierami?
Serio...
Wszyscy mieli wyższe wykształcenie. Co z tego, że mamy poważną nadprodukcję tegoż, teraz na własnej skórze przekonałem się, że to nic nie znaczy. Ludzie z wyższym technicznym / informatycznym wykształceniem nie nieli pojęcia o niczym. Na przykład:
  • nie potrafili mentalnie sparsować 5 linii pseudokodu.
  • Nie rozumieli rekurencji
  • że o wskaźnikach i zarządzaniu pamięcią nie wspomnę
Jeden z Panów zapytanych o metodę wyznaczania kolejnych liczb pierwszych zaproponował coś takiego:

// N - liczba badana
for (i=2; i<N; i++) {
if (N mod i == 0) {
dzielisie = 1;
}
}
if (dzielisie == 1) {
return 0;
} else {
return 1
}

czym mnie zaskoczył, bo w miarę rozwiązywało to problem (nie chodziło o optymalizację oczywiście).
Zapytałem o modyfikację powyższego algorytmu tak, aby podawał liczby pierwsze takie, które są podzielne przez trzy. Zaproponował modyfikację ostatniego bloku else {} taką, żeby:
  • zamienić liczbę N na stringa
  • brać kolejne litery tego stringa (a więc cyfry), zamieniać je na liczby i sumować w zmiennej tymczasowej
  • jeśli suma cyfr będzie podzielna przez 3 (tu wchodzi rekurencja, a jakże!) zwrócić 1, w przeciwnym wypadku 0.
Suabo, no?