Uwaga! Trwają prace nad nową wersją serwisu. Mogą występować przejściowe problemy z jego funkcjonowaniem. Przepraszam za niedogodności!
🏆 Lubisz podcast Pierwsze kroki w IT? Oddaj swój głos w rankingu: TOP 10 polskich podcastów o IT! 🏆
Masz partnera do wspólnej nauki programowania? Świetnie! To niepowtarzalna okazja, by zwiększyć swoją konkurencyjność na rynku pracy. W tym artykule znajdziesz wiele propozycji wspólnych treningów oraz przeczytasz o korzyściach, jakie z nich płyną. Bierzcie się do pracy. Powodzenia!
Najpierw szybki test. W pięciu zdaniach (najlepiej na głos) odpowiedz na pytanie: Co lubisz w programowaniu?
I jak Ci poszło? Pewnie po chwili zastanowienia uznasz, że można było powiedzieć to płynniej czy wypaść korzystniej. Na tym właśnie skupimy się poniżej.
Nasza pamięć działa lepiej, a stres jest mniejszy, gdy już raz znaleźliśmy się w jakiejś sytuacji. Im jest ona bardziej podobna do „oryginalnej”, tym pomyślniej z niej wybrniemy w chwili próby. Dlatego ćwiczenie rozmowy rekrutacyjnej w parze ma sens.
Jeśli macie możliwość odtworzenia warunków, w jakich spodziewacie się znaleźć podczas rekrutacji – tym lepiej! Jeżeli więc np. szykujecie się na rekrutację zdalną, rozmawiajcie przez kamerkę i korzystajcie z narzędzi np. pozwalających na jednoczesną edycję kodu. Dodatkowo, gdyby rekrutacja miała odbywać się w języku angielskim, mówcie po angielsku.
Zastanówmy się najpierw, co kandydatom sprawia problemy podczas tej chwili prawdy. Są to na przykład:
Nie trzeba być rekruterem, by móc się na to przygotować. No to po kolei – najpierw część miękka! Co możecie zrobić w parze?
Na początku zwykle pojawia się parę pytań „na rozgrzewkę”. Możesz zostać poproszony o opowiedzenie czegoś o sobie czy o projekcie, którym ostatnio się zajmowałeś. Może to być też pytanie o poprzednią pracę lub Twoje hobby.
Wbrew pozorom takie luźne pytania też warto przećwiczyć. Choć wydają się proste (cóż prostszego jest w opowiedzeniu o swoich zainteresowaniach), to może okazać się, że ze stresu nie znajdziesz słów, by opowiedzieć o ostatnio czytanej książce. Trening odpowiadania na pytania miękkie pomoże Ci się odblokować w chwili kryzysu.
Tutaj znajdziesz 33 przykładowe pytania miękkie dla programisty.
Jeśli chcemy lepiej odpowiadać na pytania miękkie, warto wiedzieć, po co w ogóle są zadawane – w ten sposób szybciej podamy rekruterowi taką informację, jakiej oczekuje, a sami możemy świadomie przedstawić siebie w dobrym świetle (oczywiście bez naginania prawdy).
Ta stronie interviewme.pl znajdziesz właśnie takie szczegółowe omówienie pytań rekrutacyjnych.
„Kandydat”
„Rekruter”
Wyobraź sobie, że dostajesz na rozmowie technicznej zadanie: musisz je zrozumieć, zaplanować logikę, przygotować środowisko (np. stworzyć odpowiednie pliki) i zacząć implementować rozwiązanie, jednocześnie tłumacząc swoje działania rekruterowi.
Nietrudno w takim momencie o stres, a tym samym o tę cieszącą się złą sławą pustkę w głowie (albo przynajmniej „plątanie się w zeznaniach”).
Im bardziej oswoimy takie sytuacje przed rekrutacją, tym większa szansa, że sobie poradzimy. Co można więc ćwiczyć w parze w kontekście rozmowy technicznej?
Tutaj na warsztat możecie wrzucić na przykład:
„Kandydat”
Nie potrafisz odpowiedzieć na zadane pytanie? To doskonała okazja, by przećwiczyć poinformowanie o tym rekrutera. Zamiast „nie wiem” możesz powiedzieć np. jak poszukałbyś odpowiedzi. Możesz też poprosić o
uszczegółowienie. Pokażesz w ten sposób, że nie od razu się poddajesz, lecz szukasz rozwiązania problemu.
„Rekruter”
Zadawaj najlepiej takie pytania, na które znasz odpowiedź – będziesz mógł w razie potrzeby zachować się jak rekruter i rzucić partnerowi koło ratunkowe w formie podpowiedzi.
O tym, co daje ćwiczenie go w parze napisałem wyżej – mniejszy stres podczas rozmowy, a tym samym większa szansa na wykonanie zadania.
Live coding to programowanie na żywo przy rekruterze. Otrzymujesz zadanie: nieraz takie, które powinieneś ukończyć w wyznaczonym czasie, a innym razem takie, którego nie ma szans w tym momencie skończyć (teoretycznie rekruter powinien Cię o tym poinformować). W drugim przypadku sprawdzane jest przede wszystkim Twoje podejście do rozwiązania bardziej złożonego problemu.
W tym miejscu polecam Ci artykuł z pięcioma wskazówkami do live codingu na rozmowie rekrutacyjnej.
Zwróć szczególną uwagę na testy – nawet jeśli jesteś juniorem i nie znasz np. biblioteki do testów, to i tak zawsze możesz sprawdzić działanie kodu dla warunków brzegowych chociażby za pomocą instrukcji warunkowej if.
I pytaj – zawsze pytaj, nigdy nie ruszaj od razu do rozwiązywania zadania. Gdy je dostajesz, zwykle nie wiesz jeszcze wielu rzeczy: możesz nie znać czasu na wykonanie zadania, możesz chcieć doprecyzować to, jak ma wyglądać efekt końcowy, możesz nie być pewny, czy pozwala Ci się na korzystanie z danych rozwiązań itd.
To, że pytasz, bardzo dobrze o Tobie świadczy. W pracy programisty istotne jest zbieranie wymagań. Osoba, która zleca devowi zadanie, nie musi znać się na programowaniu, więc to do programisty należy doprecyzowanie elementów, od których będzie zależeć „kształt” dowiezionego rozwiązania.
Co więcej: mów wyraźnie, nie mrucz pod nosem. Możliwe, że rekruter techniczny zostanie Twoim kolegą w projekcie – raczej nie będzie chciał w zespole osoby, z którą trudno się porozumieć.
Na rozmowie technicznej częściej pewnie spotkasz się z live codingiem, co nie znaczy, że pair programming na pewno się nie pojawi (bo może!). Warto wówczas mieć z nim już jakieś doświadczenie, ponieważ pierwsze zderzenie z rolami nawigatora i kierowcy może co najmniej skutecznie Cię zestresować.
Pair programming to sposób pracy nad tworzeniem oprogramowania, w którym dwóch programistów pracuje przy jednym komputerze. Nawigator nie dotyka klawiatury – jego zadaniem jest planowanie kodu, nadzorowanie jego poprawności i komunikowanie kolejnych linijek kierowcy. Kierowca (ang. driver) pisze kod zgodny z poleceniami partnera i zadaje pytania doprecyzowujące.
Więcej o tym oraz o organizacji „ćwiczeniowej” sesji pair programmingu przeczytasz w artykule Pair programming – jak się do niego przygotować?.
Razem z partnerem możecie rywalizować na wielu polach. Oto kilka przykładów:
Dla zwiększenia motywacji możecie nagradzać zwycięzcę.
Współpraca w parze to także okazja do dawania i uzyskiwania wsparcia oraz informacji zwrotnej. Jak możecie to wykorzystać?
Gdy utkniecie z jakimś zagadnieniem, będziecie mogli skonsultować je z partnerem. Po ukończeniu zadania/projektu warto omówić problematyczne elementy i pomysły na różne rozwiązania. W ten sposób będziecie uczyć się od siebie nawzajem.
Ma to też jeden istotny plus: pracując nad tymi samymi zadaniami będziecie bardziej zmotywowani do rozmowy o nich. W przeciwnym razie może się zdarzyć, że słuchanie o kodzie, w który nie miałeś okazji się
zagłębić, będzie Cię po prostu nudziło.
Co dwie głowy, to nie jedna – wspólnie możecie budować np. bazę pytań rekrutacyjnych wraz z odpowiedziami na nie. W ten sposób zgromadzicie ich więcej i zaoszczędzicie czas.
Spojrzenie drugiej pary oczu przyda się w weryfikacji np. profilu na LinkedInie, README do projektu, CV czy listu motywacyjnego.
To nie tylko nauka kodowania i komunikatywności. To także okazja do przećwiczenia wymaganych przez pracodawców narzędzi, takich jak Git, GitHub, Slack, tablica kanban czy Trello.
Warto wyznaczyć sobie stałe dni i godziny spotkań – w przeciwnym razie trudniej będzie się zmobilizować: zawsze może znaleźć się coś ciekawszego czy pilniejszego niż spotkanie.
Do terminów trzeba jednak podejść zdroworozsądkowo: jeśli dopchniemy do naszego napiętego grafiku choć o jedno spotkanie za dużo, pewnie skończymy zniechęceni i przytłoczeni liczbą zadań, a w efekcie zrezygnujemy z takiej współpracy.
Dobrze jest nadać spotkaniom odpowiedni priorytet – jeśli pojawi się coś mniej istotnego (np. niezaplanowany spacer czy spóźniony wypad na zakupy), przesuńmy nie spotkanie, lecz tę mało istotną rzecz, którą zwykle bez przeszkód możemy załatwić w innym terminie. Dzięki temu ani nie zawiedziemy partnera (który przecież zarezerwował dla nas swój czas), ani nie będziemy narażeni na prokrastynację.
Razem z partnerem możecie skupić się na wszystkich aspektach rekrutacji czy przyszłej pracy lub tylko na kilku z nich, ALE i tak przyda Wam się plan zadań (chociaż ramowy). Dzięki niemu będziecie wiedzieli, ile już za Wami, ile przed Wami i czy przypadkiem nie rzucacie się na głęboką wodę.
Weźmy jako przykład Wasz pierwszy wspólny projekt. Początek współpracy zawsze wymaga sporo omawiania i organizacji. Jeśli pokusicie się o rozbudowaną aplikację, możecie utknąć już na początku. Lepiej przejść cały proces (docierania się, badania wzajemnych wymagań czy sposobu pracy) z czymś prostym: chociażby kalkulatorem w JavaScripcie, a dopiero potem zdobyte doświadczenia przenieść na coś bardziej skomplikowanego.
Możecie też ustalić stały plan spotkań. Jeśli np. chcecie trenować rozmowę rekrutacyjną, wyznaczcie ilość pytań miękkich i twardych dla jednego spotkania i zdecydujcie, czy będziecie mieli okazję poznać ich treść przed spotkaniem (to wbrew pozorom nie najgorszy pomysł: dzięki temu będziecie mieć możliwość przyswojenia kolejnej partii materiału i jej odtworzenia na spotkaniu – czyli lepszego zapamiętania).
Dokumenty Google – we wspólnym dokumencie możecie gromadzić pytania rekrutacyjne i swoje opracowania odpowiedzi.
Trello – darmowa i prosta w obsłudze aplikacja w sam raz do zarządzania wspólnymi taskami; może posłużyć także do stworzenia tablicy kanban. I z jednym, z drugim możesz spotkać się w przyszłej pracy.
Git i GitHub – czyli repozytorium dla wspólnego projektu. Idealna okazja, by poćwiczyć pulle, pushe, pull requesty i rozwiązywanie konfliktów.
Slack – darmowy program często wykorzystywany do komunikacji członków zespołu w firmie. Możecie więc od razu przećwiczyć korzystanie z niego: stworzyć workspace oraz kanały i zacząć się tam kontaktować (zamiast np. na Facebooku).
Live Share Extension Pack – rozszerzenie do Visual Studio Code. Umożliwia pracę nad kodem w tym samym czasie (jes to przydatne zwłaszcza podczas live codingu czy pair programmingu).
Zobaczcie, jak świetnie to będzie brzmieć, gdy podczas rozmowy o pracę wymienicie komunikatywność i umiejętność organizacji jako swoją mocną stronę i będziecie mogli pochwalić się w uzasadnieniu spotkaniami mastermindowymi!
Udostępnij ten artykuł:
Zapisz się i zgarnij za darmo e-book o wartości 39 zł: Jak zostać programistą? Skuteczny przewodnik!
Jak zostać programistą? Skuteczny przewodnik
TERAZ DOSTĘPNY BEZPŁATNIE!
Cena w sklepie to 39 zł, a Ty możesz otrzymać ten e-book bezpłatnie za zapis na newsletter. To ponad 40 stron konkretów o nauce programowania i pracy w IT.