Back to Top
zrozumieć programistę rekrutacja
Autor: Redakcja

Podręczny słowniczek dla rekrutera IT

rynek pracy ithr w itjęzyki programowaniabranża it

Ada to nie tylko żeńskie imię, a Scala, choć kojarzy się z mapą, odnosi się do czegoś zupełnie innego. Już same nazwy i określenia związane z technologiami i językami programowania sprawiają, że można poczuć mętlik w głowie. A gdy dodatkowo posłucha się rozmów specjalistów ds. IT o retrospektywach, robieniu deploy, naprawianiu bugów, planowaniu sprint capacity i o tym, że zbliża się release … to ma się wrażenie, że chodzi o jakiś zupełnie inny wymiar rzeczywistości. Świat IT – dla laika – wydaje się światem magii. Jak go lepiej poznać? Prezentujemy mini słowniczek użytecznych pojęć i zwrotów.

 

- Dzisiaj wiele zagadnień jest dla mnie oczywistych i zrozumiałych, ale pamiętam moje początki zawodowe, gdy zaczynałam specjalizować się w rekrutacji IT – mówi Ewelina Sumiec, Senior IT Recruiter w firmie People.  Niektóre słowa brzmiały dla mnie jak czarna magia. Pamiętam spotkanie z kandydatem, który często posługiwał się określeniem „testy jednostkowe”. Nie wiedziałam co to jest, domyślałam się tylko, że jeśli deweloper pisze kod, to tester to sprawdza, weryfikuje, ale dlaczego „testy jednostkowe” i jeśli nie jednostkowe, to jakie jeszcze są? Albo gdy programiści mówili o „debagowaniu” – drogą dedukcji, tłumacząc z języka angielskiego – domyśliłam się w czym rzecz, że ma to związek z usuwaniem błędów. Dziś też wiem, czym są frameworki, a kiedyś myślałam, że jak programista pisze w Javie lub PHP to tyle mu wystarczy, po co mu jakieś frameworki. Musiałam też dowiedzieć się i sprawdzić we własnym zakresie, czym różnią się relacyjne bazy danych od nierelacyjnych. 

Trudności mogą nastręczać różnice między poszczególnymi językami programowania. Na pewno należy poszerzać wiedzę w tym zakresie, kształcić się na bieżąco i śledzić trendy technologiczne na rynku IT - dodaje Ewelina Sumiec. 

Solidne podstawy 

Zdaniem Dominiki Gołaś, Senior HR Specialist w Coders Lab, ważne jest, żeby mieć solidne podstawy znajomości IT - bazę, na której buduje się dalszą wiedzę. - Początki zawodowe w branży IT wiążą się ze zdobywaniem informacji z wszelkich dostępnych źródeł. Warto czytać dostępne blogi dotyczące rekrutacji w IT oraz blogi programistyczne. Pomocne jest również szukanie informacji u osób technicznych, które już są na pokładzie firmy. Bardzo ważne jest, aby wnikliwie słuchać wypowiedzi kandydatów na temat ich doświadczenia technicznego i gdy, szczególnie na początku pracy w branży, nie rozumiemy wszystkich zagadnień, to doszkalamy się na bieżąco. Błędem początkujących rekruterów IT jest mylenie technologii i pytanie na przykład Python Developera o zadania spoza tej technologii.. Ważne też, żeby wiedzieć, jakie technologie wykorzystują backendowcy a jakie frontendowcy – dodaje Dominika Gołaś. 

Dużą skuteczność osiąga się poprzez prowadzenie pogłębionych wywiadów z potencjalnymi pracownikami IT, m.in. pytając ich o realizowane projekty, stosowane narzędzia itd. Dobrze jest zadawać pytania otwarte, aby kandydat mógł udzielić wyczerpującej odpowiedzi o swoim doświadczeniu. Nie ma niczego niewłaściwego w tym, że czegoś nie wiemy, ale posiadanie podstaw wiedzy IT jest obowiązkowe choćby po to, żeby móc dotrzeć do kandydata i nie zniechęcić go swoimi brakami merytorycznymi. - Dominika Gołaś, Senior HR Specialist w CodersLab 

Wiedza z zakresu IT to jedno, a komunikacja z kandydatem – to drugie. Aby nawiązać dobry kontakt, należy zadbać o budowanie relacji już od pierwszej wiadomości wysłanej do potencjalnego kandydata np. poprzez portal społecznościowy. Uważne czytanie profilu kandydata pozwoli zachować reputację i profesjonalizm. Pamiętajmy o dopasowaniu komunikatu do rozmówcy i charakteru relacji biznesowej. - Nie każdy życzy sobie, aby komunikować się bezpośrednio na “Ty”, niektórym zależy na formalnej komunikacji. Personalizując wiadomość i przechodząc od razu do konkretnych informacji, okazujemy szacunek kandydatowi - radzi Gołaś. 

Narzędzi i źródeł wiedzy o programowaniu i technologiach nie brakuje, a wręcz pojawia się ich coraz więcej. Kluczowe więc wydaje się zaangażowanie, motywacja i szczere zainteresowanie tematyką rekrutera IT. Literatura fachowa, podcasty, artykuły branżowe i kanały YT – to tylko niektóre sposoby, by coraz lepiej poznać język programistów. Przykładowo, na blogu understandit.pl można przeczytać np. o tym, jak zrozumieć Javę albo jak odróżnić framework i biblioteki. Za pośrednictwem strony Glossary można sprawdzić wybrane hasło dotyczące obszaru IT. Innym – mocno praktycznym rozwiązaniem – jest udział w kursie i zdobywanie umiejętności z zakresu kodowania. Wówczas rekruter „na własnej skórze” poznaje wybraną tematykę. 

- Specjalnie z myślą o specjalistach z działów HR i rekruterach, którzy w codziennej pracy mają kontakt z pracownikami lub kandydatami z branży IT, stworzony został kurs „IT dla HR. Znajdź wspólny język z programistą”. Podczas 2 intensywnych dni przekazujemy uporządkowaną wiedzę na temat rodzajów i zastosowań najpopularniejszych języków programowania, związanych z nimi technologii, trendów, ról w zespołach projektowych czy dobrych praktyk w obszarze rozwoju oprogramowania - komentuje Katarzyna Bartoszkiewicz, Marketing Manager w CodersLab.

A jak agile, J jak Java 

Konkretna, merytoryczna rozmowa – tego często oczekują kandydaci do pracy na stanowiska związane z IT. Wiedzę, umiejętności i doświadczenie potencjalnych pracowników weryfikują osoby techniczne, ale pierwszy kontakt i pierwszy etap rekrutacji jest po stronie HR. To ważne, by rekruter rozumiał, czego dokładnie dotyczy oferta pracy, na czym polega specyfika danego stanowiska, metodologia pracy i dobór narzędzi, jaki jest zakres obowiązków i możliwości rozwoju. Ułatwi to rozmowę z kandydatem, który nie tylko uzyska użyteczne informacje, ale też doceni profesjonalizm i zaangażowanie rekrutera. W efekcie przyniesie to korzyści każdej stronie – HR zwiększy skuteczność swoich działań, a kandydat wyniesie pozytywne doświadczenia z procesu rekrutacyjnego. 

Oto przykładowe pojęcia i określenia ze świata IT, które warto poznać: 

  • Algorytm – skończony ciąg jasno zdefiniowanych czynności, prowadzących do wykonania jakiegoś zadania.
  • Agile– grupa metod wytwarzania oprogramowania opartego na programowaniu iteracyjno-przyrostowym, powstałe jako alternatywa do tradycyjnych metod typu waterfall. W agile mamy do czynienia ze zwinnymi, samoorganizującymi się zespołami, które planują pracę własną i dzielą się zadaniami.
  • Back-end developer – odpowiada za stronę serwerową („pod spodem”) i logikę biznesową systemu. Programuje m.in. w Java, .NET i Python.
  • Bazy danych – zaawansowane aplikacje służące trwałemu przechowywaniu danych. Relacyjne bazy danych: MySQL, MSSQL, Oracle, PostgreSQL, nierelacyjne: NoSQL, Cassandra, Redis, Mongo.
  • Biblioteka – narzędzia wchodzące w skład frameworku, zbiór funkcjonalności do wykorzystania przez programistę, pozwala wykonywać określoną liczbę funkcji, rozwiązywać różne problemy, usprawniać pracę. Deployment – zainstalowanie, uruchomienie aplikacji np. w środowisku klienta.
  • Bug fixing – naprawianie błędów powstałych podczas programowania.
  • Build– aplikacja, która jest skompilowana, gotowa do użycia, do uruchomienia.
  • Code review – weryfikacja pod kątem poprawności kodu napisanego przez programistę – przez inną osobę, przed włączeniem kodu do projektu.
  • Commit– znacznik, który mówi, jakie poprawki zostały wprowadzone w repozytorium kodu.
  • Daily Scrum/Stand up meeting – codzienne, krótkie spotkania scrumowe, podczas którego każdy członek zespołu informuje, co udało mu się zrobić i co planuje zrobić w najbliższym czasie.
  • Deployment– zainstalowanie, uruchomienie aplikacji np. w środowisku klienta.
  • Edytor kodu źródłowego (IDE) - środowisko programistyczne, w którym uruchamia się różne aplikacje; dostarcza różnych funkcjonalności, które wspomagają proces tworzenia, modyfikowania, testowania oprogramowania.
  • Framework – narzędzie, które upraszcza programowanie, jest czymś w rodzaju rusztowania, szkieletu, w ramach którego pisze się aplikacje, a framework porządkuje, systematyzuje i pozwala rozwiązywać problemy. Może być np. framework do programowania graficznego interfejsu użytkownika. Przykładowe frameworki: Angular, Ember JS, React, VueJS.
  • Front- end developer – odpowiada za interfejs użytkownika, a więc za to, co widzimy na stronie, za elementy graficzne itp. W swojej pracy używa m.in. takich technologii jak JavaScript, CSS, HTML.
  • GIT – repozytorium służące do wersjonowania kodu, porównywania wersji kodu.
  • GitLab, GitHub – zdalne repozytoria, którymi można zarządzać z poziomu przeglądarki internetowej. Programiści mogą tutaj dzielić się swoimi projektami tworzonymi w różnych technologiach.
  • JIRA – oprogramowanie służące do obsługi cyklu życia aplikacji, pozwala śledzić błędy, sprawdzać progres i zarządzać projektem.
  • Języki programowania - to między innymi Java, JavaScript, Python, Scala, .NET, C#, C++, PHP, SQL, Swift, CSS, HTML, Ruby, Ada. Języki programowania mają różne zastosowanie. Na przykład języki serwerowe i stacjonarne to: C, C++, C#, Java; języki mobilne – Android: Java i Kotlin, IOS: Swift, Objective-C; języki webowe – Front end: HTML, CSS, Backend: Ruby, Python, PHP, Java. Rekrutując, warto zwrócić uwagę, nie tylko jaki język kandydat zna, ale też w jakim środowisku go wykorzystywał i do jakich aplikacji – desktopowych, mobilnych czy webowych.
  • Języki kompilowane– kod musi zostać najpierw skompilowany do postaci kodu maszynowego (postaci binarnej), np. Java, C, C++.
  • Języki bazodanowe – służą do komunikacji z relacyjnymi bazami danych, języki „wspomagające” dla aplikacji. Przykład: PLSQL, SQL.P Root cause – pierwotna przyczyna powstającego błędu w tworzeniu kodu.
  • Języki interpretowane – kod programu nie jest kompilowany, podczas uruchomienia jest wczytywany, interpretowany i wykonywany przez interpreter języka, np. JavaScript, Python, PHP.
  • Kanban – metoda sterowania produkcją, jej podstawowe założenia to: wizualizacja, ograniczenie pracy w toku, zarządzanie strumieniem.
  • Kod źródłowy – zapis programu przy pomocy danego języka programowania
  • Oprogramowanie (software) – zespół programów wykonywanych przez komputer.
  • Performance testy – testy wydajności, pozwalające sprawdzić moc obliczeniową systemu.
  • Pre – processor – narzędzie służące do przetwarzania kodu źródłowego przed rozpoczęciem właściwej kompilacji, np. Sass, Less są preprocesorami (rozszerzeniami) języka CSS.
  • Role w projekcie IT: project manager, product manager, team lead, architekt, tester, developer, devOpsRelease – wydanie wersji aplikacji, oprogramowania.
  • Release – wydanie wersji aplikacji, programowania. System komputerowy – połączenie oprogramowania (software) ze sprzętem komputerowym (hardware).
  • Root cause– pierwotna przyczyna powstającego błędu w tworzeniu kodu.
  • RWD– sposób projektowania strony, dzięki któremu na różnych urządzeniach będzie ona wyglądać jednakowo dobrze, a więc interfejs, który widzimy na telefonie, będzie intuicyjny, będzie też dobrze się prezentować na monitorze komputera, w odpowiedniej rozdzielczości itd.
  • Retrospektywa – to spotkanie po zakończeniu sprintu, służące podsumowaniu i omówieniu tego, co udało się zrobić, jakie wystąpiły problemy, jak zostały rozwiązane itd. Rozwiązanie stosowane w metodyce Scrum.
  • System komputerowy – połączenie oprogramowania (software) ze sprzętem komputerowym (hardware)
  • Scrum– to metodyka, która opiera się na koncepcji agile i stanowi alternatywę wobec tradycyjnego podziału na działy, np. testów, produkcji itd. Zespół składa się z przedstawicieli różnych specjalizacji, który posiadają różne umiejętności i kompetencje. Wyróżnione są trzy role: scrum master, czuwający nad prawidłowym przebiegiem scrum, product owner, współpracujący z klientem, i development team, składający się z kilku osób. Zgodnie z metodyką Scrum efekty działań i poszczególne partie projektu przedstawiane są „kawałek po kawałku”, a nie – jak w tradycyjnym modelu – dopiero po stworzeniu całego produktu/zrealizowaniu projektu od a do z.
  • Sprinty- jednakowe odcinki czasu, na które podzielona jest realizacja projektu. Jest to np. dwutygodniowy okres, podczas którego powstaje kolejna funkcjonalność.
  • Testowanie oprogramowania – proces związany z wytwarzaniem oprogramowania, pomagający zapewnić odpowiednią jakość.
  • Testy komponentowe – weryfikują poprawne działanie danego komponentu, modułu odpowiedzialnego za logikę biznesową, np. może to być np. katalog produktów albo moduł odpowiedzialny za rejestrację i obsługę klientów.
  • Testy integracyjne – służą sprawdzeniu, czy wszystkie moduły/systemy ze sobą dobrze współpracują, albo z modułami zewnętrznymi, które nie są w naszym systemie. Testy pozwalają zweryfikować rozwiązania klienta, sprawdzić działanie bazy danych i różne inne elementy.
  • TypeScript– najnowsza, rozszerzona wersja języka JavaSriptu, w której już na etapie pisania kodu można sprawdzać typy i weryfikować kod.
  • Unit test – test jednostkowy, weryfikujący poprawność napisanego fragmentu kodu.
  • Waterfall – to metoda tworzenia oprogramowania, polegająca na wykonywaniu podstawowych czynności jako odrębnych faz projektowych – w porządku jeden po drugim. Aby przejść do kolejnej czynności, należy ukończyć wcześniejszą. Elementy modelu kaskadowego to: planowanie, projekt, implementacja, testowanie, a na końcu wdrożenie i utrzymanie.

Chcesz dowiedzieć się więcej na temat technologii, narzędzi, metodyk i dobrych praktyk w obszarze rozwoju oprogramowania? Zachęcamy do wzięcia udziału w kursie IT dla rekruterów.

 


Czytaj podobne artykuły