Wywiady techniczne są znane z zagadek. Niezależnie od tego, czy zostaniesz poproszony o napisanie drzewa binarnego na tablicy, wyjaśnienie algorytmu sortowania lub wdrożenie FizzBuzz w 10 liniach lub mniej, powinieneś przygotować się na techniczne pytania programistyczne w przeciętnym wywiadzie.
Ale to nie jedyna rzecz, na którą powinieneś być przygotowany.
Rzeczywistość jest taka, że wielu programistów będzie w stanie rozwiązać typowe pytania podczas wywiadu programowego z niewielką różnicą między odpowiedziami. Czym więc różnisz się od następnego kandydata? Właśnie na tym skupimy się w tych pięciu wskazówkach.
1. Omów proces uzasadnienia i rozwiązywania problemów
Najgorsze, co możesz zrobić, gdy zadane zostanie trudne pytanie, to całkowicie zaniemówić. Niestety bardzo łatwo jest to zrobić przypadkowo. Kiedy napotkasz problem, który wymaga znacznej energii mentalnej i skupienia, prawdopodobnie pierwszą skłonnością jest wycofanie się do twojego umysłu. Chociaż jest to naturalne, nie jest również bardzo pomocne dla ankietera.
Częścią pytań technicznych jest po części odkrycie, jak myślisz o rozwiązywaniu problemów. Jaki jest twój proces Jak rozkładasz różne komponenty? Jak dojść do rozwiązania? Jak reagujesz, próbując czegoś, co nie działa? Czy lepiej eksperymentujesz z kodem czy szkicujesz coś na tablicy?
Wyjaśnij, co dzieje się w twojej głowie podczas rozwiązywania problemu. Zachowuj się, jakbyś nagrywał swój głos, aby publikować online, aby nauczyć innych, jak rozwiązać ten problem. Nawet jeśli twoi ankieterzy dają ci przestrzeń do cichego myślenia, możesz skorzystać z wyjaśnienia swojego procesu myślowego bez ich poproszenia. To nie tylko pomaga im lepiej zrozumieć twoje umiejętności i krytyczne myślenie, ale także sprawia, że jesteś bardziej niezapomniany.
2. Co jest lepsze niż rozwiązanie problemu podczas wywiadu technicznego? Rozwiązanie dwa razy
Bardzo niewiele problemów ma tylko jedno rozwiązanie, a wszystkie problemy mają nieskończenie wiele niepoprawnych rozwiązań. Jeśli więc skupiasz się tylko na jednym sposobie rozwiązania problemu, tracisz dużą szansę na udowodnienie swojej elastyczności i zestawu umiejętności.
Zamiast po prostu wybierać dobrze znane rozwiązanie lub pracować w jednym języku, otwórz dyskusję na temat tego konkretnego problemu i rozwiąż go dla różnych scenariuszy. Na przykład, jeśli zostaniesz poproszony o zaprogramowanie FizzBuzz, możesz to zrobić w dwóch językach lub stosując dwa różne paradygmaty, lub może przyjmując pewne ograniczenia wydajności dla jednego rozwiązania i ograniczenia estetyczne dla drugiego.
Sprawdzając, czy problem może mieć wiele rozwiązań, pokazujesz swoją zdolność do adaptacji, elastyczność i świadomość, z których wszystkie wzbudzą zaufanie ankieterów, że będziesz w stanie wybrać właściwe rozwiązanie spośród wielu możliwości.
Oczywiście, nie przesadzaj - czytanie sztuki przy udzielaniu odpowiedzi na wiele rozwiązań jest sztuką przesadną lub mile widzianą. W razie wątpliwości nie bój się zapytać ankieterów, czy mają coś przeciwko, jeśli poświęcisz trochę czasu na rozwinięcie swojego rozwiązania z drugą opcją.
3. Nie bój się dzielić swoimi opiniami, jeśli dotyczy
Czasami, gdy rozwiążesz problemy, będziesz podejmować decyzje całkowicie oparte na twoim guście i opinii. I to jest OK - pracodawcy są zainteresowani Twoją opinią! Sposób, w jaki myślisz i reagujesz na sytuacje, ma duży wpływ na kulturę firmy. Posiadanie opinii jest również oznaką przywództwa i dojrzałości technicznej jako programisty. Dyskusja na temat twoich opinii wymaga oceny innych stanowisk na dany temat.
Pamiętaj jednak, że opinie można trzymać bardzo blisko. Jeśli nie zgadzasz się z ankieterem na dany temat, postępuj lekko, udostępniając te informacje. Chociaż warto mieć punkt widzenia, ważne jest również, aby pamiętać, że dzielenie się nim nie zawsze jest konieczne i wiedz, jak wybrać swoje bitwy. Dobra zasada: nie dziel się swoją opinią, chyba że zostaniesz o to poproszony.
4. Nigdy nie kończ odpowiedzi na „Nie wiem”
Jeśli nie masz do czynienia ze scenariuszem „Kobayashi Maru”, nigdy nie kończ pytania na rozmowę z „Nie wiem”. Nie jest to opcja w pracy, więc nie powinna być opcją w rozmowie kwalifikacyjnej.
Oczywiście nie mówię, że powinieneś wszystko wiedzieć. To niemożliwe! Ale powinieneś pokazać, że masz strategię uczenia się tego, co musisz wiedzieć, aby wykonać zadanie. Spróbuj odpowiedzieć „Nie wiem, jak to zrobić, ale oto, jak bym to wymyślił”. Ta odpowiedź powinna wykraczać poza zwykłe powiedzenie „Zrobię to Google”. Lepiej wyjaśnij najbardziej prawdopodobny kierunek, który chciałbyś zbadać.
Przede wszystkim nie wstydź się! Uczenie się jest w dużej mierze procesem odkrywania rzeczy, których nie znasz. Twój pracodawca nie oczekuje, że będziesz perfekcyjny, ale oczekujesz, że będziesz pracowity i inteligentny, i nigdy nie będziesz rezygnować z problemu.
5. Zawsze graj dla drużyny
Jeśli nie jesteś niezależnym programistą, Twoja praca będzie zawsze ustalana w kontekście zespołu, a sukces zespołu jest zawsze najważniejszy dla twojego. Twój wywiad powinien więc odzwierciedlać, że nie chodzi tylko o rozwiązywanie problemów w danym dniu, ale raczej, że koncentrujesz się na robieniu wszystkiego, co konieczne, aby zespół odniósł sukces.
Jak możesz to przekazać w wywiadzie?
Nigdy nie omawiaj problemów tak, jakby były w próżni
Prawie każdy projekt miałby praktycznie wymagania i ograniczenia dotyczące zasobów, więc pokaż swoją świadomość kontekstu problemu. Problem, który został dobrze rozwiązany, ale przekroczył budżet, nie jest naprawdę najlepszym rozwiązaniem.
Pokaż swoją wiedzę fachową na temat istniejącego zespołu
Czasami najlepszą odpowiedzią na pytanie jest poproszenie innych członków zespołu o współpracę z tobą, a możesz odnieść się do tych osób w pytaniach technicznych: „Gdybym przedstawił ten problem w kontekście naszego zespołu, prawdopodobnie poprosiłbym o sprawdzenie również moje rozwiązanie. ”To pokazuje, że chcesz polegać na wiedzy innych i że Twoim celem jest znalezienie najlepszego rozwiązania.
Przekaż wartości kierowane przez swój zespół w sposób jawny
Jest to na tyle ważna kwestia, że powinieneś od razu wyjść i to powiedzieć. Chcesz mieć pewność, że pracodawcy są w pełni świadomi, że Twoim celem jest pomóc firmie odnieść sukces, a nie tylko siedzieć przy biurku i pisać kod przez cały dzień.
Ostatecznie Twoim zadaniem jako programisty jest nie tylko kodowanie. Ma być graczem zespołowym, liderem i kimś, kto nigdy nie chce odejść od problemu. Możliwościami w wywiadzie technicznym są nie tylko pokazanie, że możesz osiągnąć cele lub napisać algorytmy, ale także postawić się ponad konkurencją i pokazać wartość, którą dodajesz pracodawcy.




