Oryginalne pytanie
Przeprowadziłem już kilka wywiadów dla mojej firmy, głównie informatyków na stanowiska deweloperów, ale także niektórych testerów i kierowników projektów. Teraz muszę wypełnić wolne miejsce w naszej grupie badawczej w dziale badawczo-rozwojowym (uwaga: „badania” oznaczają, że staramy się rozwiązywać problemy w naszej dziedzinie zawodowej / niszy rynkowej za pomocą oprogramowania w projektach badawczych wraz z uniwersytetami, innymi firmami, ośrodkami badawczymi i organizacje użytkowników końcowych. To nie są badania informatyczne; nie rozwiążemy problemu P = NP).
Teraz zaprosiliśmy faceta posiadającego tytuł magistra chemii (z dużą ilością fizyki w swoim CV), który nigdy nie miał żadnej lekcji informatyki. Rozmawiałem już z nim przez około pół godziny w dniach kariery na lokalnym uniwersytecie i nie ma wątpliwości, że facet jest mądry. Również jego oceny są doskonałe i ukończył z wyróżnieniem. Aby uzyskać tytuł licencjata, musiał nauczyć się programowania w Mathematica i powiedział mi prawdopodobnie, że bardzo lubi programowanie. Rozwiązał także problem chemii fizycznej, którego prawdopodobnie nie rozumiem, używając własnego oprogramowania, zaimplementowanego w Mathematica, do pracy magisterskiej. Zawiera GUI i godną uwagi wielkość 8000 LoC. Wydaje się, że bardzo go pociąga to, co robimy w naszej grupie badawczej, i szczerze mówiąc, dla takiego MŚP jak my trudno jest znaleźć dobrych ludzi. Jestem również bardzo zainteresowany zatrudnieniem go, ponieważ może mi pomóc w pisaniu propozycji projektów, raportów, prezentacji i tak dalej. Prawdopodobnie pasowałby również do naszego zespołu.
Pozostaje tylko pytanie: jak mogę sprawdzić, czy zdobędzie umiejętności programistyczne potrzebne do wdrożenia oprogramowania w naszych projektach, ponieważ będzie to znacząca część pracy?
Oczywiście zapytam go, co to jest, fascynuje go w programowaniu. Zapytam także, jak napisał swoje oprogramowanie do nauk przyrodniczych i jak je zbudował. Zapytam o to, jak udało mu się zdobyć umiejętności i informacje na temat potrzebnego mu oprogramowania. Ale czy jest coś jeszcze, o co mogę zapytać? Może coś bardziej konkretnego? Czy powinienem poprosić go o wyjaśnienie rozwiązania Mathematica?
Żeby było jasne: nie szukam wiedzy w określonym języku lub stosie technologii. Jesteśmy sklepem .NET w zakresie opracowywania produktów, ale chcę mieć swobodny wybór dla naszych projektów badawczych. Interesuje mnie zatem to, że meta-kompetencja jest w stanie nauczyć się wszystkiego, co jest rzeczywiście potrzebne.
Mam nadzieję, że na to pytanie można odpowiedzieć i nie ma ono charakteru otwartego, ponieważ naprawdę lubię wiedzieć, czy istnieje domyślny sposób sprawdzenia możliwości zdobycia dalszych umiejętności programowania w pracy. Jeśli coś nie jest dla ciebie jasne, proszę o komentarze i pozwól, że poprawię moje pytanie.
Zaktualizuj, aby odzwierciedlić odpowiedzi udzielone do 01.12.2011
Jaką odpowiedź zaakceptowałem i dlaczego
Dziękuję wszystkim za odpowiedzi, większość z nich jest bardzo pomocna, więc bardzo głosowałem! Chociaż odpowiedź Toma Squiresa uzyskała najwięcej głosów, przyjmuję odpowiedź udzieloną przez księcia Goulasha . Oczywiście Tom jest obiektywnie prawdziwe, ale odpowiedź księcia jest po prostu bardziej pomocne dla mnie i dwukrotnie sprawdził nas, że to jest kryterium przyjąć odpowiedź.
O co go zapytam podczas wywiadu
Pozwolę mu wyjaśnić kilka prostych zadań, takich jak przykład w The Camel Has Two Humps wspomnianym przez Chrisa Burt-Browna
Poproszę go o wyjaśnienie bardziej zaawansowanych przepływów sterowania, może w formie zapisu graficznego.
Sprawdzę jego rozumienie rekurencji na przykładzie matematycznym.
Pozwolę mu wyjaśnić wybrany przez siebie algorytm w języku naturalnym.
Pozwolę mu wyjaśnić swoje rozwiązanie Mathematica, w szczególności zapytam o jego model procedury, użycie narzędzi, strukturę kodu i oprogramowania w ogóle, a także o różne warstwy abstrakcji.
Aby sprawdzić jego motywację, poproszę o fascynację tworzeniem oprogramowania.
Zapytam go, czy jest świadomy tego, czego będzie musiał się dowiedzieć o tworzeniu oprogramowania dla przedsiębiorstw. Szczególnie chcę zmienić dyskusję w kierunku pracy w zespołach, programowania pary, TDD, ponieważ spodziewam się, że nie będzie dużo o tym wiedział po pracy na swoim własnym mgr.
Wygląda na to, że to będzie długi wywiad;)
Aktualizacja po wywiadzie 2011-12-09
Jeszcze raz dziękuję wszystkim za dobre odpowiedzi. Przeszedł wywiad z latającymi kolorami. Nigdy nie byłem bardziej zadowolony z wnioskodawcy. Jego rozwiązanie Mathematica wydaje się być całkiem dobrze skonstruowane. Był w stanie wyjaśnić, gdzie używał funkcji wyższego rzędu, chociaż nie wiedział, że są one tak nazywane. Odpowiedział na moje matematyczne pytania rekurencyjne, a także na proste zadania i kontrolę przepływu rzeczy z The Camel Has Two Humps. Kiedy wyjaśniał niektóre algorytmy, wiele się nauczyłem o dopasowaniu nieliniowym;) Powiedział też szczerze, że oczywiście nie może zagwarantować, że będzie w stanie dowiedzieć się czegoś o profesjonalnym tworzeniu oprogramowania, którego do tej pory nie zna. Ale prawdopodobnie twierdzi, że zawsze był dobry w uczeniu się nowych koncepcji - nawet sam - i jest naprawdę zainteresowany tworzeniem oprogramowania. Poprosił również o stos technologii w projekcie, do którego zostałby najpierw zgłoszony, aby mógł obejrzeć go w domu. Był także ciekawy programowania w parach i pracy zespołowej. Teraz mam nadzieję, że umowa o pracę zostanie zawarta.