Wróć do bloga

5 pytań przed zatrudnieniem programisty Go

Pięć pytań na rozmowę z programistą Go: anulowanie goroutine, kanały kontra mutex, obsługa błędów, małe interfejsy i poprawki produkcyjne w rekrutacji.

Inne wersje językowe: EnglishTürkçeDeutschSuomi

Inżynier pracujący przy komputerze z dwoma monitorami w warsztacie
Zdjęcie: this_is_engineering, Pixabay

Według Stack Overflow 2025 Developer Survey Go nadal rośnie w usługach cloud native. Wiele CV podaje „goroutines”, mniej pokazuje, jak kandydaci anulują pracę i pilnują poprawności API. Rekrutacja na Go zwykle zaczyna się od osądu w zakresie współbieżności, a nie od wykładów o schedulerze.

Te pięć pytań dotyczy cyklu życia goroutine, wyboru mechanizmów synchronizacji, projektowania błędów, interfejsów i poprawek produkcyjnych, a nie ciekawostek z escape analysis.

1. „Jak anulujesz działającą pracę w goroutine i unikasz wycieków? Opisz kontekst, którego użyłeś.”

Mocni kandydaci opisują context.WithCancel lub timeouty, czekanie na Done i wyciek, który naprawili. Słabe odpowiedzi uruchamiają goroutine bez planu zamykania.

2. „Kiedy wybierasz kanały zamiast mutexu (albo odwrotnie) w kodzie, który wdrożyłeś?”

Chcesz usłyszeć osąd: przekazywanie własności i pipeline’y kontra ochrona współdzielonego stanu. Słabe odpowiedzi traktują kanały jako jedyny „właściwy” sposób w Go na każdy lock.

3. „Jak obsługujesz błędy dla wywołujących: owijanie, wartości sentinel czy typowane błędy?”

Słuchaj o %w, sprawdzaniu przez errors.Is/As i o tym, co zwraca publiczne API. Mocni kandydaci unikają gołego return err, gdy kontekst ma znaczenie. Słabe odpowiedzi kończą się na „sprawdzam, czy err != nil”.

4. „Opisz mały interfejs, który zaprojektowałeś. Jak kompozycja pomogła?”

Dobre odpowiedzi utrzymują interfejsy szczupłe i akceptują je w miejscu wywołania. Słabe odpowiedzi tworzą rozbudowane interfejsy typu „god interface” albo nie potrafią wskazać żadnego, który napisali.

5. „Opowiedz o incydencie produkcyjnym lub poprawce wydajności w Go (pprof wystarczy, jeśli używany lekko).”

Dowiadujesz się o odpowiedzialności. Mocni kandydaci nazywają wąskie gardło lub błąd oraz zmianę, którą wprowadzili. Słabe odpowiedzi pozostają ogólne i mówią o „optymalizowaniu”.

Zamień odpowiedzi w porównywalne dowody

Dla każdego finalisty zapisz jeden wzorzec anulowania, jedno porównanie kanałów z mutexem, jeden styl obsługi błędów i jedną historię z produkcji lub wydajności.

Jedna karta oceny dla każdego finalisty

Używaj tych samych pięciu pytań dla każdego kandydata na tę ofertę. Spójne pytania sprzyjają spójnej ocenie, zgodnie z wytycznymi EEOC, według których pracodawcy mają stosować te same standardy wobec kandydatów na to samo stanowisko (EEOC).

Użyj Canvider JobCraft, żeby w opisie stanowiska określić zakres pracy w Go, InterviewGen do pytań uzupełniających opartych na lukach w CV, a DecisionHelper do porównania finalistów według opublikowanych kryteriów.

Następny krok: Poznaj InterviewGen i DecisionHelper, potem zacznij za darmo.