3.12.20217 min

Redakcja Bulldogjob

Python Developer - jak zacząć karierę

Poznaj pożądane kompetencje Junior Python Developera i sprawdź, co powinieneś umieć, by zacząć karierę w tym kierunku.

Python Developer - jak zacząć karierę

Python to jeden z najpopularniejszych języków programowania, który ze względu na relatywnie prostą składnię uchodzi za jeden z najbardziej wszechstronnych. Jest trzecim najczęściej wybieranym językiem programowania według StackOverflow Survey 2021. W ramach tego głosowania również wybrano go jako najlepszą technologię do poznania w najbliższej przyszłości, co potwierdza rosnąca liczba zapytań o Pythona na tej platformie. 

W tym artykule zebraliśmy informacje z naszego Badania społeczności IT 2021, ofert pracy, jakie publikujemy na naszym portalu oraz oczekiwań pracodawców, z którymi jesteśmy w stałym kontakcie. Przekonaj się, co powinieneś wiedzieć, by rozpocząć pracę jako Junior Python Developer.


Niech przemówią fakty — wszystko o Pythonie


Python został stworzony przez Guido Van Rossuma (który obecnie pracuje dla Microsoftu) ponad 30 lat temu. Jest to język skryptowy zorientowany obiektowo z cechami składni zapożyczonymi z C, Javy i Perla. Community, które przyczynia się do rozwijania Pythona (dzięki licencji open source), powstało dopiero w 1994 r. i stale przyciąga nowych użytkowników. Uważa się, że Python nie należy do najszybszych języków względem kompilacji, natomiast rekompensuje to przejrzysty kod i możliwość szybkiego wdrażania zmian.

Inspiracją do nazwy języka był program rozrywkowy “Latający Cyrk Monty Pythona”, natomiast jego symbolem zostały dwa węże — żółty i niebieski. Obecnie Python jest wykorzystywany do rozwoju tak popularnych aplikacji jak Instagram, Dropbox, YouTube, Spotify, Netflix, Facebook, Pinterest czy Google App Engine i Google Wave. Również NASA używa go do zarządzania kontrolą startową wahadłowców kosmicznych! ?

Z naszego Badania Społeczności IT wynika, że już teraz Pythona zna 31% ankietowanych, natomiast kolejnych 29% planuje się go nauczyć w najbliższym czasie. Język stale się rozwija, co potwierdza ostatnia aktualizacja 3.10, o której pisaliśmy tutaj >>.


Czy Python jest dla Ciebie?

Jeśli miałeś okazję oglądać serial Mr. Robot, to już miałeś styczność z Pythonem. Zanim jednak rozpoczniesz swoją naukę, przekonaj się, czy to na pewno język dla Ciebie: 

  • ma prostą składnię, dlatego przyjęło się, że to dobry wybór na rozpoczęcie swojej przygody z IT.
  • ze względu na jego uniwersalność jest wykorzystywany zarówno do tworzenia aplikacji webowych, pracy z dużą ilością danych w Data Science, jak i w Machine Learningu przy tworzeniu samo uczących się modeli.  
  • Python jest znany z przydatnych bibliotek i frameworków, które znacznie przyspieszą proces pisania kodu i zaoszczędzą Twój czas (więcej o nich w technologiach).
  • jako programista, niezależnie od wybranego języka, powinieneś:
    • lubić wyzwania i łamigłówki, ponieważ praca developera polega na stałym szukaniu rozwiązań i optymalizacji procesów. 
    • stale się uczyć — technologia cały czas się rozwija, zatem musisz trzymać rękę na pulsie, by utrzymać się na rynku.


Dlaczego warto zostać Python Developerem? 

Jak już ustaliliśmy, Python to dość wszechstronny język i świetnie się sprawdza do wprowadzania szybkich zmian, dlatego znajdzie zastosowanie w wielu branżach. Zależnie od tego, jakie dodatkowe języki i frameworki dobierzesz, będziesz mógł nieco inaczej pokierować karierą, np. zająć się aplikacjami webowymi, analizą danych czy optymalizacją procesów. Ścieżki kariery Python Developera znajdziesz tutaj >>

Ze względu na rosnącą popularność Pythona szacuje się, że będzie wykorzystywany w firmach przez co najmniej 10-15 lat. Bardzo ważna jest też społeczność, od której będziesz mógł czerpać wiedzę i zdobywać wraz z nimi doświadczenie. Community Pythona jest otwarte i stale rośnie. W większych polskich miastach nawet organizują oni cykliczne spotkania, np. za pośrednictwem Meetupa. To dobra okazja, by poznać kolegów po fachu i wspólnie przegadać problemy, z jakimi zmagasz się jako programista.

W zakresie zarobków na początku kariery jako junior możesz się spodziewać pensji w wysokości plus minus 4563 zł netto (na rękę) na umowie o pracę — kwota jest wynikiem zderzenia ofert pracy umieszczanych na portalu bulldogjob.pl, naszego badania społeczności i ogólnej sytuacji rynkowej. Oczywiście wszystko zależy od firmy, miasta pracy docelowej, wybranej specjalizacji (backend, fullstack itd.) oraz oczywiście Twoich umiejętności negocjacyjnych na rozmowie. 

Na szczęście pracując jako junior, bardzo szybko nabierzesz doświadczenia. Średnio po 2 latach powinieneś awansować na developera (Mid/Regular) z pensją minimum 7500 zł netto na umowie o pracę. Oczywiście zależnie od specjalizacji kwoty mogą być różne. Więcej szczegółów o zarobkach Python Developera znajdziesz w tym artykule >>.


Zakres obowiązków Juniora

Jako Junior musisz wykazać się chęcią do nauki i zaangażowaniem do samodzielnego rozwiązywania problemów. Od lat staramy się tworzyć miejsce dla społeczności IT, która umożliwi wymianę doświadczeń, wiedzy i informacji o aktualnej sytuacji rynkowej. Chcemy się tym całym know-how z Tobą podzielić, by ułatwić Ci poszukiwania wymarzonej pracy, dlatego podzieliliśmy ten wątek na technologię i umiejętności.


Technologie must have:

  • Python — poznanie samego języka wymaga sporo pracy. Oprócz poniższej listy warto spojrzeć na różne artykuły dotyczące tego języka. Musisz opanować:
    • funkcje języka takie jak np. generatory od dekoratory
    • sprawne korzystanie z narzędzi Pythona takich jak pip
    • bibliotek standardowe — musisz znać takie elementy stdliba jak random, json, datatime, os, re, logging itd.
    • wbudowane typy danych — nie wymagają importowania zewnętrznej biblioteki (np.numeryczne czy logiczne), to podstawowa wiedza.
    • asynchroniczność /współbieżność — powinieneś wiedzieć, jakie są różnice pomiędzy wątkami i procesami oraz jak przekładają się model współbieżności w Pythonie.
  • relacyjne bazy danych — musisz znać podstawy teoretyczne relacyjnych baz danych, umieć nieco SQL, a w praktyce przyda się znajomość ORM (najpopularniejsze to Django ORM czy SQLAlchemy), które pozwolą Ci na interakcję z bazami SQL prosto z poziomu Pythona.
  • podstawowe komendy Linuxa — niezbędne do obsługi terminala.
  • Flask - mikro framework aplikacji webowych.
  • Django - darmowy i open-source'owy framework do tworzenia aplikacji webowych.
  • Git - system kontroli wersji.
  • Docker — platforma do konteneryzacji, która obecnie jest bardzo często stosowana zarówno na maszynach programistów, ale też na środowiskach produkcyjnych.


Wśród naszej społeczności IT do najpopularniejszych frameworków/narzędzi należy Django i Flask. Dopiero potem gdzieś daleko za nimi pojawia się Fastapi.

Dla poszerzenia horyzontów — szczególnie jeśli myślisz już o konkretnych specjalizacjach jak Fullstack Web Developer, Data Science czy Machine Learning — opracowaliśmy listę umiejętności nice to have:

  • HTML — jest używany do tworzenia struktury strony i jej zawartości za pomocą tagów,
  • CSS — umożliwia kaskadowe tworzenie stylów. Definiuje wygląd strony internetowej poprzez czcionki, kolorystykę, rozmieszczenie elementów itd.
  • Bootstrap — to framework CSS do budowania wizualnej części stron internetowych.
  • JavaScript — czyli skryptowy język umożliwiający wdrożenie bardziej zaawansowanych interakcji do aplikacji webowych.
  • RWD —  czyli umiejętność pisania responsywnych stron internetowych, a więc takich, które wyglądają świetnie na ekranie laptopa, jak i telefonu komórkowego.
  • ponadto polecam poznać poniższe bibliotek, jeżeli zapatrujesz się poważnie na Data Science i MLi:
    • NumPy — do pracy z wielowymiarowymi macierzami danych, co jest niezbędne w obszarze analizy.
    • SciPy — przydatne do obliczeń naukowych i technicznych.
    • Pandas — potrzebne do manipulacji danymi.
    • PyTorch —  niezbędne do maszynowego uczenia się w aplikacjach.
    • Keras — zapewnia interfejs Pythona dla sztucznych sieci neuronowych.


Niezbędne umiejętności programisty (must have)

  • programowanie obiektowe — czyli znajomość pojęć dziedziczenia, polimorfizmu, kompozycji, hermetyzacji i podstawowych metod magicznych.
  • testy jednostkowe —  powinieneś wykorzystywać do testowania frameworki unittest i pytest oraz korzystać z mocków (atrap).
  • PEP-8 — czyli stosowanie wytycznych pisania czytelnego kodu. 
  • wyszukiwanie odpowiednich fraz w Google czy StackOverflow — podstawa pracy niezależnie od języka, który wybierzesz.
  • tworzenie API HTTP (ang. application programming interface) — szczególnie w stylu REST (REpresentational State Transfer). Definiują reguły wysyłania i odbierania danych z serwisu, np. łącząc się z internetem.
  • JSON (ang. JavaScript Object Notation) — to otwarty format zapisu struktur danych.
  • algebra Boole’a — stosowana w informatyce teoretycznej przyda Ci się do sprawdzania płynności w ewaluacji wyrażeń.
  • Znajomość języka angielskiego — minimum B2.
  • komunikacja — bez tego trudno będzie pracować w zespole i rozwijać Twój kod. 


Pierwsza praca w IT

Pierwsze rozmowy kwalifikacyjne w nowej branży mogą być stresujące, ponieważ nie wiesz do końca czego się spodziewać. Niektóre będą się opierały na samej teorii i sprawdzeniu, czy znasz pojęcia i wiesz, o czym mówisz. Inne wręcz będą wymagały napisania fragment kody, by sprawdzić Twoje umiejętności w praktyce. Właśnie dlatego mam dla Ciebie 4 tipy, które powinny Ci pomóc przygotować się do rekrutacji:

  • przede wszystkim rób własne projekty w wolnym czasie. Nic tak nie rozwija jak praktyka i zebrane w ten sposób doświadczenie. Wyciąganie wniosków z własnych błędów doda Ci też nieco pewności siebie.
  • na początku kariery warto pomyśleć o programach stażowych, ponieważ dzięki temu będziesz mógł poznać pracę w dużych korporacjach - nie każdy się odnajduje w tym środowisku pracy. Ponadto dobrze to wygląda w CV - szczególnie staże u znanych marek.
  • warto być w kontakcie z innymi programistami Pythona - np. poprzez wcześniej wspomniane meetupy i community Pythona. 
  • zostań z Bulldogiem na dłużej — załóż profil kandydata i korzystaj z zasobów Bulldog.Guide, który stale rozwijamy. Poznasz realne zarobki branży IT na Twoim stanowisku, odniesienie do rynku pracy i oczywiście dopasowane oferty. Również Bulldog pomoże Ci pokierować swoją karierą poprzez merytoryczne artykuły, które będziesz miał zawsze na wyciągnięcie ręki. 


Podsumowanie

Jak już zapewne wiesz, programowanie to niekończąca się nauka pełna wyzwań, zagadek logicznych. Nie zawsze będzie lekko, wręcz spodziewaj się wielu porażek, ale to właśnie dzięki nim zdobędziesz doświadczenie i będziesz tworzył coraz lepszy kod.

Praca w branży IT wydaje się zawodem przyszłości, ponieważ coraz więcej branż przechodzi przez etap cyfryzacji. Do tego rozwijająca się robotyka i zastosowanie sztucznej inteligencji zwiastuje rosnące zapotrzebowanie na specjalistów IT. Próg wejścia na rynek jest wysoki, ponieważ musisz mieć już na starcie pakiet pewnych umiejętności, natomiast wiąże się to z adekwatnym wynagrodzeniem i mam nadzieję — Twoją satysfakcją z pracy, jaką będziesz wykonywał. 


Bonus

Każdy lubi dostawać coś ekstra - ja nie jestem wyjątkiem, dlatego wybrałam według mnie ciekawe artykuły, które mogą Ci pomóc szczególnie na początku kariery jako Junior Python Developer. Miłej lektury: 

<p>Loading...</p>