“Nie lubię określenia klepacz kodu. Programowanie to spory wysiłek umysłowy”

03.11.2017 AUTORZY: Adam Dubiel, Marta Bąk-Kamińska,

Marta Bąk, Marketing i Biznes: Adam, od jak dawna programujesz, jak to się stało, że zacząłeś się uczyć pierwszego języka programowania?

Adam Dubiel, Allegro: Mój pierwszy bardzo prosty program napisałem w szkole podstawowej z bardzo trywialnych powodów: nie mogłem grać w gry. Zawsze lubiłem spędzać czas przy komputerze, ale niestety stał się on za wolny do uruchamiania najnowszych gier. Dlatego szukałem alternatywnych zajęć. Pierwszy program typu “hello world” przepisałem z magazynu o grach, gdzie zaczął pojawiać się bardzo skromny objętościowo kurs programowania w Turbo Pascalu. Potem co jakiś czas wracałem do programowania, pisałem raczej mało złożone programy w Logo Komeniuszu, Turbo Pascalu i C. Tak naprawdę programować zacząłem dopiero na studiach.

Czy cechy charakteru, które udało Ci się wykształcić, dzięki programowaniu przydają Ci się w życiu codziennym?

Nie powiedziałbym, że programowanie rozumiane jako pisanie kodu miało na mnie wpływ. Co innego kultura związana z ruchem OpenSource. W ramach OpenSource programiści z całego świata piszą kod publicznie – każdy może zobaczyć jak on wygląda, ale też wykorzystać gotowe komponenty w swoich programach. Mimo że darmowe, dzięki nim istnieje internet taki jaki znamy, a sztandarowym przykładem jest wszechobecny system operacyjny Linux. W społeczności programistów ważna jest współpraca, transparentność, otwartość na feedback i umiejętność przyznania się do błędów. Publikowanie swojego kodu dość skutecznie leczy też perfekcjonizm, bo ile czasu bym nie spędził nad programem, zawsze znajdzie się jakiś błąd i trzeba się z tym pogodzić.

programowanie  

Bardzo mocno kształtuje i rozwija mnie też praca w Allegro. Co innego napisać kawałek kodu, a co innego razem z wieloma inżynierami infrastruktury, programistami, testerami, designerami i specjalistami od bezpieczeństwa tworzyć olbrzymi i skomplikowany serwis internetowy. Nauczyłem się dzielić i układać pracę tak, żebyśmy osiągali nasze wspólne cele. Bardzo poprawiłem też swoje zdolności komunikacyjne. To są cechy i umiejętności które przydają się w praktycznie każdej sytuacji.

W Allegro pracujesz jako lider zespołu developerskiego odpowiedzialnego za narzędzia ułatwiające tworzenie mikrousług. Dla niewtajemniczonych – powiedz za co odpowiadasz i jak wygląda Twój dzień pracy?

Lubię mówić, że mój zespół jest bardzo specyficzny. Efektów naszej pracy nie da się zobaczyć wchodząc na stronę Allegro, ale jeśli coś u nas nie działa to cały serwis może mieć poważne problemy. To bardzo charakterystyczne dla zespołów infrastruktury, które budują i opiekują się fundamentami platformy, żeby inne zespoły mogły na nich budować produkt, a nasi Klienci robić zakupy.

programowanie    

Jako że od pewnego czasu zajmuję się też elementami wizji technologicznej infrastruktury Allegro, mam dużo mniej czasu na siedzenie przed komputerem i kodowanie niż kiedyś. Większość mojego czasu spędzam na rozmowach z ludźmi, uzgadnianiu rozwiązań, zderzaniu ich z rzeczywistością, a potem koordynacją prac. Zaangażowany jestem w bardzo wiele procesów i projektów – od rekrutacji, przez upublicznianie kodu na OpenSource po proces wdrażania nowych aplikacji.

Znalazłam informację, że w dziale technicznych w Allegro pracuje ponad 600 osób. Czy Allegro Tech Meeting powstał tylko z myślą chęci dzielenia się wiedzą w obrębie Waszego zespołu? Jaki jest cel tych spotkań?

Allegro Tech Meeting to nasze coroczne święto technologii. Dwa dni wewnętrznej konferencji, w czasie których każdy może wygłosić prelekcję na temat swojej pracy, interesującego projektu czy po prostu o tym co go pasjonuje. Przy takiej liczbie osób ciężko jest nadążyć za tym, co robi każdy z obszarów technologii. ATM to szansa na znalezienie inspiracji, poznanie kontekstu pracy inżynierów, ale także po prostu przybicie piątki i napicie się piwa z osobami, z którymi na co dzień znamy się tylko wirtualnie. Spotkania te zawsze owocują ciekawymi inicjatywami, projektami i pomysłami.

W Polsce brakuje programistów, czy Wy również odczuwacie braki w kadrze? W jaki sposób rekrutujecie do Allegro? 

Wypracowany przez nas sposób rekrutacji to jedna z tych rzeczy, z których jestem naprawdę dumny. Jako IT razem z działem HR odpowiedzialnym za rekrutacje pracujemy nad wspólnym celem – żeby w Allegro pracowali wspaniali ludzie z potencjałem, którzy chcą się rozwijać razem z nami. Programistów na rynku nie ma zbyt wielu, a tym bardziej o doświadczeniu w pracy nad tak złożonym i dynamicznym systemem jak platforma Allegro. Dlatego w rekrutacji skupiamy się przede wszystkim na badaniu potencjału. Jest pewien próg wiedzy, ale najważniejsza jest chęć do nauki, zdolność do wyciągania wniosków i intuicja zbudowana na doświadczeniu.

 

Nasz proces rekrutacji, którym z resztą chwalimy się publicznie, składa się z krótkiego zadania domowego, dwóch rozmów technicznych i rozmowy z potencjalnym przełożonym. Cały proces odzwierciedla to, jak pracujemy na co dzień. Nie ma miejsca na “dziwne pytania” o ulubione zwierzęta czy liczbę piłeczek mieszczących się w pokoju. Mam z resztą cichą nadzieję, że są one tylko legendami, a nie prawdziwymi pytaniami rekrutacyjnymi.

programowanie  

Zadanie domowe sprawdzamy w formie przeglądu kodu (code review) – tak, jak weryfikujemy kod kolegi z zespołu. Pierwsza rozmowa techniczna dotyczy dobrych praktyk programistycznych i wiedzy o tym jak budować stabilną aplikację. Druga skupia się na projektowaniu wydajnego i odpornego na awarie systemu, bo decyzje o architekturze podejmowane są codziennie w każdym z zespołów.

Jak uaktualniasz swoją wiedzę programistyczną? Z jakich źródeł polecasz korzystać? Jakie blogi są must read?

Inspiracje czerpię przede wszystkim z Twittera, gdzie śledzę dość wąskie grono osób które poruszają interesujące mnie tematy. Kolejnym źródłem wiedzy są konferencje. Jestem w dość komfortowej sytuacji, bo jako prelegent jestem na nich dość często. Dlatego bardziej niż inspiracji, brakuje mi czasu żeby pogłębiać wiedzę. Są jednak tematy, w których dobra książka jest niezastąpiona. Mimo że świat technologii zmienia się naprawdę szybko, pewne koncepcje i mechanizmy trwają od lat, i właśnie w książki o tych ponadczasowych rzeczach inwestuję. Obecnie czekam na najnowsze (trzecie) wydanie książki Effective Java pisanej przez Joshua Blocha.

Kiedy klepacz kodu stanie się według Ciebie programistą?

programowanie  

Nie lubię określenia “klepacz kodu”. Napisanie nawet prostego programu wymaga wysiłku umysłowego, zastanowienia się nad wyborem struktury danych, zaprojektowania interfejsu. Oczywiście nie wszyscy programiści stoją na tym samym poziomie umiejętności. Tak jak w każdym zawodzie, dobrym programistą może zostać każdy, kto włoży odpowiednio dużo czasu i pracy w naukę programowania. I tak jak w każdym zawodzie, są ludzie którzy są w swojej dziedzinie wybitni. Wiele zależy od naszych cech, ale także od zwykłego przypadku – trafienia w karierze na dobrą firmę czy przełożonego, który umiejętnie pokieruje naszym rozwojem. Uważam, że miałem dużo szczęścia, że jestem w tym miejscu kariery i mogę udzielać tego wywiadu. Przez takie spojrzenie daleki jestem od używania określenia “klepacz” względem programistów, którzy może nie mieli tylu szans i szczęścia co ja. Może w lepszych warunkach okazaliby się solidnymi specjalistami?

Czego Ci mogę życzyć w życiu zawodowym?

Więcej czasu na kodowanie 😀 A na poważnie, to pracy z mądrzejszymi ode mnie ludźmi. Patrząc wstecz na ostatnie cztery lata pracy w Allegro widzę jak dużo nauczyłem się nie tylko od swoich przełożonych, ale także kolegów z zespołu. Oczywiście dobrze pracować w wymagającym środowisku, nad skomplikowanym systemem, ale nawet najlepszy system pisany przez wybitnych programistów nie zapewni sukcesu firmie, jeśli zabraknie ludzi którzy potrafią stworzyć kulturę otwartości i współpracy. W takim miejscu łatwiej o motywację wewnętrzną do pisania najlepszego kodu.

Do góry!

Polecane artykuły

18.09.2020

Fotel gamingowy – zbędny ...