fbpx
Początki programowaniaPythonWywiady

Python Developer – co robi i jak nim zostać? Rozmowa z Mikołajem Lewandowskim

W dzisiejszym wywiadzie rozmawiamy z Mikołajem Lewandowskim. Na co warto zwracać uwagę na początku planowania swojej kariery i co było punktem zwrotnym na jego ścieżce rozwoju w IT? Dowiemy się również: jakie znane globalne aplikacje są tworzone w Pythonie, czy studia są niezbędne, aby zacząć programować oraz jakie realne wartości można wyciągnąć z jego szkoleń online. Zapraszamy do lektury!

Kim jest Mikołaj Lewandowski?

Programista, team leader i trener programowania. Na co dzień pracuje jako Senior Python Developer oraz Team Leader w STX Next projektując i budując aplikacje dla międzynarodowych klientów.

Mikołaj jest także trenerem i mentorem osób chcących wejść do świata IT, ucząc ich od postaw programowania w Pythonie.

W branży IT jesteś od ponad 10 lat. Jak wyglądała Twoja droga od zera do Python Developera?

Pierwszą pracę jako programista rozpocząłem na początku drugiego roku studiów. Najpierw pracowałem przy prostych aplikacjach w kilkuosobowym zespole. To była nieduża firma, nie było tam bardzo jasno określonego podziału na role projektowe czy nawet frontend / backend developerów. Jak czegoś potrzebowaliśmy, to często musieliśmy po prostu rozkminić temat, samemu sprawić „żeby działało”. Możecie sobie wyobrazić mój stres wtedy, ale dzięki takiej pracy na żywym organizmie poznałem wiele różnych obszarów IT.

Potem zostałem liderem większego zespołu. Miałem sporo kontaktu z klientami. Oprócz kodowania analizowałem i projektowałem rozwiązania, do tego doszła też wiedza o organizacji pracy i zarządzania zespołem.

W ostatnich latach, w STX Next, miałem okazję pracować przy wielu różnych projektach. Zarówno pod względem skali, jak i tematyki. W międzyczasie prowadziłem różne warsztaty, zostałem też trenerem w infoShare Academy. Moja droga to raczej ciągły proces. Jak to mówią: ja się cały czas czegoś uczę, bez przerwy. Ja się uczę w mieszkaniu, ja się uczę w samochodzie, kiedy jadę 🙂

Często ludzie myślą, że programowanie doprowadzi do przejęcia władzy nad światem przez sztuczną inteligencję. To jak to jest naprawdę?

Może to trochę naiwne, ale wierzę, że technologia może zmienić świat, ale w pozytywnym tego słowa znaczeniu. Przykłady można mnożyć i każdy z nas ma z nimi styczność. Wideokonferencje pozwalają nam pracować bez względu na miejsce, aplikacje takie jak Facebook czy YouTube są z nami każdego dnia i dają dostęp do treści z całego świata, z każdej dziedziny. Ale i dużo prostsze rozwiązania posiadają ogromną moc. Coś tak prozaicznego jak formularz do składania wniosków online pozwala zaoszczędzić setki, tysiące godzin pracy. I kilogramy papieru. 

To jest naprawdę niesamowite uczucie, gdy użytkownik naszej aplikacji mówi, jak bardzo mu ona pomaga. Że dzięki niej odzyskał czas, usprawnił swoją pracę lub po prostu mógł zobaczyć coś fajnego.

Razem z infoShare Academy stworzyłeś kilka wartościowych kursów z programowania w Pythonie. Czym kierowałeś się tworząc agendę?

W dużym skrócie – do agendy trafiły takie zagadnienia dotyczące Pythona lub warsztatu programistycznego, które moim zdaniem przydadzą się w pracy początkującego programisty. Jestem na rynku już kilka ładnych lat i staram się orientować w tym, czego wymaga pracodawca od Python Developera.

Pierwsze dwa kursy, które stworzyliśmy, czyli „Zrozumieć Programowanie” oraz „PythON: Początek” powstały z myślą o osobach, które nie miały wcześniej styczności z programowaniem, ale chciałyby nauczyć się go od podstaw.

Najnowszy kurs, czyli „PythON: Wtajemniczenie” to już coś dla ludzi, którzy są na wyższym poziomie zaawansowania i nie będą mieli problemu z takimi tematami jak współbieżność, asynchroniczność czy testy jednostkowe.

kurs PythON: Academy

No dobrze, powiedzmy, że kończę taki kurs – czy umiem po nim samodzielnie stworzyć prostą aplikację? I jaka to może być apka?

Jak najbardziej! Już po kursie „PythON: Początek” bez problemu napiszesz proste aplikacje, jak np. aplikacja wyznaczająca trasy, która uwzględnia rozkłady jazdy komunikacji miejskiej. Możesz napisać program, , który pomoże w liczeniu miesięcznych wydatków, cyklicznie sprawdza informacje na jakiejś stronie internetowej albo wykona złożone operacje na danych z arkusza kalkulacyjnego.

Po „PythON: Wtajemniczenie” możliwości rosną: jak poznasz już programowanie współbieżne czy wzorce projektowe, będziesz w stanie budować bardziej skomplikowane programy. Sky is the limit.

Najłatwiejsze i najtrudniejsze rzeczy do opanowania w Pythonie?

Python jest językiem mocno intuicyjnym. Według mnie stosunkowo łatwo jest opanować jego składnię.

Tym, co zazwyczaj stanowi wyzwanie dla początkujących, jest ogarnięcie różnego rodzaju wzorców programistycznych, idiomów języka oraz technik z obszaru inżynierii oprogramowania – czyli sposobów na to, żeby nasz kod nie tylko działał, ale był zrozumiały, łatwy do modyfikacji i poprawy.

Jakie umiejętności są niezbędne w pracy z Pythonem?

Jest taki pakiet umiejętności, które trzeba mieć niezależnie od technologii, w której będziemy pracować. Przede wszystkim analityczne myślenie, potem cierpliwość, czytanie ze zrozumieniem oraz podstawy języka angielskiego. Wiadomo, że wszystkie te zdolności będą rosły wraz z naszym doświadczeniem, więc nie chodzi o nie wiadomo jak rozwinięte skille na początku.

Bardziej specyficzne umiejętności przydadzą się nam w zależności od problemu, który będziemy rozwiązywać i branży, w której chcemy pracować. Na przykład: innych umiejętności będzie wymagało oprogramowanie analizujące dane ekonomiczne, sterujące odkurzaczem czy gra komputerowa.

A jak jest z matematyką? Na mieście mówią, że bez niej do programowania wstępu nie ma.

Wiele razy spotkałem się z pytaniem, czy znajomość matematyki jest niezbędna do programowania. Oczywiście, matematyka uczy nas również analitycznego myślenia, ale poza niektórymi specyficznymi dziedzinami (jak np. symulatory lotów czy gry komputerowe), fizyka i zaawansowana matematyka nie są konieczne do tego, by tworzyć świetne programy. Może nam się natomiast przydać, jeżeli chcemy rozwijać się w kierunku Machine Learningu albo analizy danych.

Porozmawiajmy o rozwoju. Jak szybko można przejść od Juniora do Mida, a potem Seniora? Jak wygląda ścieżka kariery Python Developera i jakie jest najwyższe stanowisko w firmie, które można zająć?

A to jest temat rzeka, ponieważ w każdej firmie ścieżka rozwoju wygląda inaczej, każdy z nas też ma różne cele w życiu i inaczej do takiego rozwoju podchodzi. Nie możemy też zapominać o fakcie, że firmy różnie definiują, co oznacza Junior, Mid i Senior.

Powiedzmy, że statystycznie, wygląda to tak: zaczynasz od absolutnego zera, uczysz się składni,

Zaczynamy od totalnego początku. Uczysz się składni języka, tego, czym jest programowanie, poznajesz zasady inżynierii oprogramowania. Do tego dochodzą podstawy web developmentu albo Machine Learningu – w zależności od tego, w jakim kierunku chcesz iść. W tym momencie, kiedy znasz tak naprawdę całą składnię języka, dostępne narzędzia, potrafisz już programować (oczywiście na podstawowym poziomie), ale brakuje Ci jeszcze doświadczenia komercyjnego, jesteś na poziomie Juniora.

Wynagrodzenia Python Developerów
źródło: Raport wynagrodzeń polskich programistów za 2021 rok by Just Join IT

Dojście do tego poziomu i znalezienie pierwszej pracy jest zazwyczaj najtrudniejsze. Jeżeli uczysz się programowania bardzo regularnie (np. w ramach PythON: Academy), ale równolegle z inną pracą, zostanie Juniorem może zająć około roku. Jak już pracujesz jako Junior, to po ok. roku lub dwóch możesz wskoczyć na poziom Mida, który jest już bardzo samodzielny.

Przejście na poziom Seniora to przeciętnie kolejne 3-5 lat. Dobry Senior potrafi wybierać optymalne rozwiązania techniczne, projektować architekturę systemów dopasowaną do potrzeb biznesu, wspomagać innych członków zespołu i rozwiązywać bardzo trudne problemy. Dalszy rozwój zazwyczaj obejmuje pozycje takie jak Technical Leader czy też Ekspert/Principal/Architekt. Zakres obowiązków jest tu mocno elastyczny. Dotyczy prowadzenia projektów, mentorowania innych, projektowania skomplikowanych rozwiązań i konsultowania najtrudniejszych tematów.

Przy jakiego rodzaju aplikacjach pracuje Python Developer?

Python jest językiem bardzo uniwersalnym. Najszerzej stosowany jest do tworzenia webowych aplikacji „biznesowych”, w Machine Learningu i w analizie danych. Opcji jest dużo i to właśnie ogromna zaleta Pythona – można trafić na bardzo zróżnicowane projekty biznesowe.

Mogą to być aplikacje pozwalające na wynajem mieszkań, zamawianie jedzenia, zarządzające wypłatami pracowników, wspierające pracę lekarzy czy łączące ze sobą miłośników tego samego sportu itd.

A jakieś przykłady znanych programów, które zostały stworzone w Pythonie?

Pierwsze z brzegu to np. Dropbox i Instagram. Pythona bardzo intensywnie wykorzystuje również Netflix, jest obecny w YouTube, używa go Facebook, Spotify, Pinterest czy Uber.

Skończyłeś informatykę na Politechnice Gdańskiej. Jakie są różnice między studiami a kursami?

Studia są dobrym sposobem zdobycia wiedzy, chociaż z pewnością niejedynym i nieoptymalnym czasowo. Trzeba mieć na uwadze, że w ciągu pięciu lat studiów informatycznych realizuje się kilka tysięcy godzin wykładów i laboratoriów, a o wiele więcej w ramach pracy własnej i realizacji wymaganych projektów. Studiując, bardzo dużą część pracy musimy wykonać samodzielnie.

Według mnie realizując dobry kurs, jesteśmy w stanie w dużo krótszym czasie nabyć niezbędne umiejętności. Dla osoby studiującej bardziej zaawansowane kursy mogą być również dobrym uzupełnieniem materiału o elementy typowo praktyczne. Główne różnice między studiami a kursem wynikają z faktu, że studiujemy sami, a dobry kurs będzie nastawiony na nauczenie nas, a nie tylko wskazanie obszaru, który powinniśmy poznać. Będą tam również aktualne przykłady i objaśnienia przygotowane przez praktyków, na co dzień zajmujących się kodem, a wiedza będzie bardziej skondensowana pod kątem celu, który chcemy osiągnąć.

Idealny proces rekrutacji programisty Python – na co powinno się zwracać uwagę i jaką wiedzę lub umiejętności należy weryfikować w trakcie job interview?

Dobrze jest weryfikować umiejętności, które realnie są wykorzystywane w codziennej pracy.

Jestem sceptycznie nastawiony do zestawów „punktowych” pytań. Zamiast pytać na rozmowie, do czego służy argument -k w pytest’cie, można poprosić o napisanie i uruchomienie testu jednostkowego.

Według mnie obowiązkowy zestaw zadań na rozmowie rekrutacyjnej obejmuje zadania programistyczne, które sprawdzą swobodę implementacji algorytmów i posługiwania się składnią Pythona, pisanie testów jednostkowych czy poprawne wykonanie Code Review.

Co byś poradził przyszłym programistom, którzy chcą dopiero wejść do branży IT?

Zacznijcie spokojnie. Najpierw upewnijcie się, że programowanie to właśnie to. Napiszcie swoje pierwsze programy i jeżeli poczujecie dreszcz emocji, spokojnie ruszajcie dalej. Zaplanujcie swoją drogę. Jeśli nie macie w sobie samozaparcia, bo przecież nie każdy jest zdeterminowanym, uporządkowanym wojownikiem, to wybierzcie kompletne szkolenie jak np. PythON: Academy. Jeśli macie w sobie tę siłę samokontroli, możecie samodzielnie uczyć się z książek, różnych kursów, materiałów na blogach.

Szukajcie rozwiązań trudnych problemów – w artykułach, na forach, grupach. Zawsze starajcie się zrozumieć, jak działa to, co napisaliście, czy można zrobić to inaczej, dlaczego w ten sposób? Gdy opanujecie poziom Juniora, rozsyłajcie CV i chodźcie na rozmowy rekrutacyjne.

Podczas całej Waszej drogi po prostu dobrze się bawcie! Nigdy nie traćcie entuzjazmu i radości tworzenia, jaką daje programowanie!

Rozpoczynasz naukę Pythona?

Sprawdź kurs programowania w Pythonie stworzony przez Mikołaja Lewandowskiego.

Kurs PythON: Academy to kilkaset lekcji, dzięki którym w prosty i skuteczny sposób nauczysz się Pythona – od pierwszej linii kodu do pierwszej pracy jako programista.

Szkolenie zostało stworzone z myślą o osobach dopiero rozpoczynających swoją przygodę z programowaniem, ale również o Juniorach, którzy chcieliby pogłębić swoją wiedzę dotyczącą bardziej zaawansowanych tematów związanych z programowaniem w Pythonie.

kurs PythON: Academy
Back to top button