Uwaga! Trwają prace nad nową wersją serwisu. Mogą występować przejściowe problemy z jego funkcjonowaniem. Przepraszam za niedogodności!

🔥 Zgarnij PŁATNY STAŻ w 3 edycji kursu programowania front end (zapisy do 22.01) 🔥

Co przyszli programiści mogą robić w parze?

Zostaw w tyle konkurencję na rynku pracy w 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!

Spis treści

Rozmowa rekrutacyjna w IT

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:

  • stres
  • trudności z płynną wypowiedzią
  • pustka w głowie
  • zaskoczenie pytaniem.

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?

Rozmowa rekrutacyjna miękka

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.

Jak ćwiczyć rozmowę miękką w parze

„Kandydat”

  • Jeśli Twoim sposobem na przygotowanie się do rekrutacji jest wcześniejsze wypisanie sobie w podpunktach odpowiedzi na pytania – zrób to także na potrzeby ćwiczeń.
  • Odpowiadaj tak, jakbyś rozmawiał z rekruterem – to nauczy Cię wychodzenia z trudniejszych sytuacji. Na przykład jeśli zabrniesz w odpowiedzi za daleko i zgubisz wątek, zareaguj jak podczas rozmowy o pracę (zapewne poprosisz o przypomnienie pytania), zamiast zbyć to machnięciem ręki i tekstem: „Dobra, nie wiem, jedziemy dalej”.

„Rekruter”

  • Nie rób nic, czego nie zrobi rekruter: unikaj więc luźnych uwag czy śmiania się, gdy partnerowi akurat nie idzie najlepiej.
  • Rób to, co potencjalnie zrobi rekruter:
    • notuj sobie uwagi czy kolejne pytania (to może rozpraszać partnera, ale chodzi właśnie o to, by kandydat się z tym oswoił)
    • zadawaj pytania uszczegóławiające lub pomocnicze, jeśli partner się zatnie lub uznasz, że nie odpowiedział w całości na Twoje pytanie.
  • Daj partnerowi szczegółową informację zwrotną: to, jak się prezentuje, jak wygląda jego mowa ciała (może patrzy w klawiaturę zamiast w kamerkę/ekran), jakie wrażenie sprawia jego wypowiedź (niedosyt, podziw, zainteresowanie), czy mówi płynnie itd. Feedback ten ma umożliwić partnerowi poprawę, dlatego postaraj się, by był rzeczowy.

Rozmowa rekrutacyjna techniczna

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:

  • krótkie zadania wymagające kodowania – programujcie na zmianę, na żywo, i opowiadajcie, co robicie
  • pytania o język programowania, bibliotekę czy pojęcia techniczne z zakresu IT (najlepiej dostosujcie je do wymagań firm, do których chcecie aplikować). Tutaj możecie zainspirować się np. pytaniami rekrutacyjnymi od Just Join IT
  • wykonane projekty – pytajcie się o przyczyny wyboru konkretnych rozwiązań, o wykorzystane technologie, o ewentualne niedociągnięcia (np. jak byście je poprawili); możecie też po
    prostu prezentować sobie nawzajem swoje projekty, opowiadając o ich założeniach, wykorzystanych rozwiązaniach i np. planach rozwoju (jakbyście omawiali je przed rekruterem)
  • live coding i pair programming – o tym będzie w dwóch kolejnych punktach.

Jak ćwiczyć rozmowę techniczną w parze

„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.

Live coding

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ć.

Pair programming

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ć?.

Rywalizacja

Razem z partnerem możecie rywalizować na wielu polach. Oto kilka przykładów:

  • liczba osób w sieci kontaktów na LinkedInie
  • liczba wysłanych do firm aplikacji (oczywiście bez spamu, możecie ustalić jakiś limit – przegrywa ten, kto go nie osiągnie)
  • liczba merytorycznych wpisów np. na Medium, kanałach społecznościowych czy blogu
  • wyniki quizów programistycznych, np. na W3Schools
  • wyniki w Codewars
  • szybkość ukończenia krótkiego programistycznego zadania, np. z repozytorium DevMentora na GitHubie.

Dla zwiększenia motywacji możecie nagradzać zwycięzcę.

Wspólna nauka i przygotowanie do rekrutacji

Współpraca w parze to także okazja do dawania i uzyskiwania wsparcia oraz informacji zwrotnej. Jak możecie to wykorzystać?

Rozwiązywanie tych samych zadań

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.

Wspólne opracowywanie odpowiedzi na pytania rekrutacyjne

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.

Wzajemne sprawdzanie sobie tworzonych treści i dokumentów

Spojrzenie drugiej pary oczu przyda się w weryfikacji np. profilu na LinkedInie, README do projektu, CV czy listu motywacyjnego.

Realizacja wspólnego projektu

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.

Jak zorganizować pracę w parze

Dni i godziny spotkań

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ę.

Zakres ćwiczeń w parze

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).

Przykładowe przydatne narzędzia do pracy w parze

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).

5 przykazań dla przyszłego programisty trenującego w parze

  1. Traktuj współpracę poważnie – tym razem jesteś odpowiedzialny nie tylko za siebie, lecz też za osobę z pary. Macie wspólny cel i wspieracie się w jego realizacji. Twoje unikanie
    spotkań, niedowożenie tasków czy słabe przygotowanie do ćwiczeń odbije się także na szansach drugiej osoby.
  2. Uważnie słuchaj i dawaj precyzyjny feedback (np. „Wydajesz się zestresowany, bo kręcisz się na krześle i co chwilę patrzysz w sufit”, a nie „Jesteś jakiś rozproszony” – po takim
    komunikacie partner nie wie, co może poprawić).
  3. Mierz siły na zamiary – dobrze, jeśli dysponujecie z partnerem podobną ilością wolnego czasu, ale jeśli to Ty masz go mniej, weź to pod uwagę podczas planowania spotkań. Nie będziesz dobrym partnerem, jeśli najpierw zgodzisz się na większe zaangażowanie, a potem zaczniesz przekładać spotkania, spóźniać się czy zaniedbywać wspólny projekt.
  4. Wychodź z inicjatywą – nie licz tylko na pomysły partnera. Brak zaangażowania jednej ze stron potrafi skutecznie zgasić zapał drugiej.
  5. Bądź cierpliwy – nie we wszystkim jesteście równie dobrzy, dlatego jeśli partner potrzebuje na coś więcej czasu, np. podczas ćwiczenia live codingu, pozwól mu na zastanowienie się czy dojście do własnych rozwiązań. Na rozmowie o pracę tak właśnie postąpi (lub powinien postąpić) rekruter: dać chwilę do namysłu, zamiast w tej samej sekundzie wyskakiwać z podpowiedzią lub rozwiązaniem.

 

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ł:

Mentoring to efektywna nauka pod okiem doświadczonej osoby, która:

  • przekazuje Ci swoją wiedzę i nadzoruje Twoje postępy w zdobywaniu umiejętności,
  • uczy Cię dobrych praktyk i wyłapuje złe nawyki,
  • wspiera Twój rozwój i zwiększa zaangażowanie w naukę.

Mam coś dla Ciebie!

W każdy piątek rozsyłam motywujący do nauki programowania newsletter!

Dodatkowo od razu otrzymasz ode mnie e-book o wartości 39 zł. To ponad 40 stron konkretów o nauce programowania i pracy w IT.

PS Zazwyczaj wysyłam 1-2 wiadomości na tydzień. Nikomu nie będę udostępniał Twojego adresu e-mail.