Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Znasz podstawy Pythona - i co dalej?

Dowiedz się, co robić dalej z karierą programisty, gdy poznasz już podstawy Pythona.

No właśnie - w jakim kierunku można się dalej rozwijać, znając podstawy programowania i Pythona? Jest to pytanie, które zadaje sobie wielu początkujących programistów - zarówno samouków, jak i takich, którzy kończyli różnego rodzaju szkolenia, czy bootcampy.

Stawiać pierwszych kroków w nowym zawodzie nigdy nie jest łatwo, dlatego chciałbym przybliżyć najpopularniejsze “ścieżki kariery” dla ludzi ze znajomością Pythona. Wymienię też biblioteki i narzędzia, które warto poznać, szukając pracy w tym obszarze. Według ankiety przeprowadzonej w 2018 przez firmę JetBrains, najpopularniejszymi zastosowania dla Pythona były:

  • Analiza danych
  • Web Development
  • DevOps i administracja systemami
  • Uczenie maszynowe (Machine Learning)


Postaram się w tym artykule przybliżyć czytelnikowi każdy z tych tematów. Jednocześnie chciałbym wskazać biblioteki oraz narzędzia, które są tzw. “must-have” na każdej z tych ścieżek. Znajomość wskazanych technologii będzie dużym atutem przy rozmowach o pierwszą pracę na danym stanowisku.


Web Development

Pierwszym i chyba najbardziej oczywistym kierunkiem będzie Web Development lub - kolokwialnie mówiąc - tworzenie stron internetowych. Python jest językiem, w którym z powodzeniem można pisać wydajne aplikacje webowe, działające po stronie serwera, czyli tak zwany back-end.

Jeśli zdecydujemy się podążać w tym kierunku, do naszych obowiązków należeć będzie budowanie i projektowanie “wnętrza” aplikacji internetowych. Najczęściej będziemy musieli poznać sposoby komunikacji z bazami danych, takimi jak MySQL, czy PostgreSQL.

Django

Przy tworzeniu aplikacji serwerowych bez wątpienia króluje Django, który wg rankingu HotFrameworks, jest najpopularniejszym frameworkiem pythonowym. Jest to dość duży projekt, umożliwiający zbudowanie kompletnej aplikacji webowej. Django posiada wbudowane mechanizmy do obsługi baz danych, formularzy, własny język template’ów (szablonów), gotowy mechanizm do tworzenia prostego panelu administracyjnego i wiele innych. Dodatkowym atutem przy szukaniu pracy z Django może być znajomość django-rest-framework - najpopularniejszej biblioteki do tworzenia własnych REST-owych serwisów, opartych o Django.

Flask

Drugim najpopularniejszym Pythonowym frameworkiem jest Flask - zupełne przeciwieństwo Django. Jest to raczej minimalistyczny projekt, pozwalający nam stworzyć pierwszą stronę w zaledwie kilku linijkach kodu, jednocześnie zrzucający na nasze barki (lub na istniejące wtyczki) większość zadań, wymaganych do przygotowania pełnej aplikacji. Początkowo może się to wydawać wadą, ale w przypadku bardziej skomplikowanych, szytych na miarę aplikacji, często okazuję się zaletą, gdyż nie narzuca programiście gotowych rozwiązań, które mogą nie w pełni odpowiadać potrzebom.

Jeśli zamierza się podążać w kierunku Web Developerki w Pythonie, warto rozważyć również naukę drugiego języka programowania - JavaScriptu oraz technologii HTML i CSS. Programiści znający zarówno Pythona, jak i technologie frontendowe (czyli tak zwany full-stack) są bardzo poszukiwani przez wszystkie firmy tworzące aplikację internetowe.


Analiza danych

W przytoczonej przeze mnie ankiecie firmy JetBrains w 2018 roku, po raz pierwszy, w porównaniu do poprzednich lat, pozycja “Data Analysis” wyprzedziła Web Development, co pokazuję skalę zainteresowania firm analizą danych i wykorzystaniem do tego Pythona. W przypadku analizy danych raczej nie będziemy tworzyć dużych aplikacji, a jedynie wykorzystamy Pythona jako narzędzie wspomagające nas przy obróbce dużych ilości danych.

Zadaniem stojącymi przed analitykami będzie wyciągnięcie ciekawych wniosków na podstawie gigantycznych, często nie uporządkowanych, zbiorów danych. Istotne będzie zarówno zrozumienie dziedziny problemu, umiejętności programistyczne, jak i bardzo dobra znajomość statystyki.

Podstawowymi narzędziami, które musimy poznać, będą tutaj biblioteki NumPy, SciPy, Pandas oraz Matplotlib. Krótko opiszę każdą z nich.

  • NumPy jest biblioteką oferująca wysokowydajne wielowymiarowe tablice oraz macierze wraz z operacjami na nich. Jak możemy się domyśleć, pomoże nam wczytać i przechowywać dane do późniejszej analizy
  • SciPy to zestaw narzędzi korzystających z NumPy zawierających narzędzia do optymalizacji liniowej, interpolacji, przetwarzania obrazu i wiele innych przydatnych przy analizie danych
  • Pandas jest kolejną biblioteką zbudowaną na NumPy udostępniającą więcej struktur danych oraz możliwości manipulacji tymi danymi
  • Matplotlib jest najpopularniejszą biblioteką do wizualizacji danych, czyli potocznie mówiąc “rysowania wykresów”. Wykresy w tym artykule zostały utworzone właśnie za pomocą tej biblioteki.


Rozważając pracę analityka danych, warto zainteresować się projektem Anaconda. Jest to gotowa dystrybucja Pythona oraz języka R, ułatwiająca instalowanie niezbędnych bibliotek, z myślą o szeroko pojętym “data science”.


Uczenie maszynowe

Tematem związanym w pewien sposób z analizą danych jest tak zwany “machine learning”, czyli to, co nazywane jest “sztuczną inteligencją”. Pracując przy uczeniu maszynowym, będziemy bardzo często wykorzystywać biblioteki opisane przy “Analizie danych”, jednak naszym zadaniem nie będzie wyciąganie wniosków na podstawie danych, a tworzenie systemów, które zrobią to automatycznie.

Oprócz opisanych bibliotek, przyda się nam znajomość technik uczenia maszynowego, takich jak sieci neuronowe czy algorytmy genetyczne. Dla programistów Pythona, szukających pracy przy uczeniu maszynowym, wymagana będzie znajomość bibliotek scikit-learn oraz TensorFlow od Google.

Od programistów pragnących wejść głębiej w tematy Machine Learningu oraz AI szczególnie wymagane będą umiejętności algorytmiczne, statystyka oraz nieszablonowe myślenie.


Administracja systemami oraz DevOps

W pracy administratora systemów lub tzw. DevOpsa, Python nie będzie naszym głównym narzędziem, a jedynie dodatkiem, który ułatwi nam pracę. Zadań dla administratorów systemów jest tyle, ile systemów na rynku, jednak w znacznej większość sprowadzać się to będzie do wdrażania i utrzymywania różnych aplikacji. Python może nam znacząco pomóc w automatyzacji nudnych i powtarzalnych zadań.

Ponadto wiele narzędzi dla administratorów zostało napisanych w Pythonie i znajomość tego języka może nam pomóc w tworzeniu rozszerzeń dodających potrzebne nam funkcjonalności.

Rozważając tę ścieżkę kariery, musimy przede wszystkim dogłębnie poznać system operacyjny, którym będziemy zarządzać (Windows lub Linux). Python jest zdecydowanie bardziej popularny oraz przydatny dla administratorów systemów Linuxowych.

Od strony Pythona narzędziami, którymi warto się zainteresować przy wykonywaniu pracy DevOpsa lub administratora systemu są:

  • Fabric - biblioteka do wykonywania poleceń na zdalnych maszynach za pomocą SSH, ułatwiająca pisanie wszelkich skryptów automatyzujących powtarzalne czynności na naszych serwerach.
  • Ansible - potężne narzędzie służące do konfigurowania i deploymentu i zarządzania naszą infrastrukturą. Ansible jest w całości napisany w Pythonie i pozwala tworzyć własne rozszerzenia używając tego języka. Podobnym narzędziami (ale już nie stworzonymi w Pythonie ;)) są Chef i Puppet.
  • Psutil - zestaw narzędzi do wyciągania z wszelkich informacji z systemu, takich jak zużycie pamięci, czy zajętość dysku twardego.


Podsumowanie

Oczywiście w tym artykule jedynie delikatnie zarysowałem powierzchnię możliwych zastosowań Pythona. Na każdy z opisanych przeze mnie tematów można by napisać oddzielny artykuł. Liczę jednak na to, że taki krótki opis “ścieżek kariery” pomoże Wam wybrać interesujący kierunek i ułatwi poszukiwanie bardziej kompleksowych analiz na dany temat, gdyż najważniejszą umiejętnością dla każdego początkującego pythonisty będzie… umiejętność korzystania z Google ;)


O autorze

Bartłomiej Biernacki to trener infoShare Academy. Programowaniem interesuje się od szkoły podstawowej. Poznał wiele różnych języków i ostatecznie najbardziej polubił Pythona, z którym zawodowo jest związany od 6 lat. Jest absolwentem Politechniki Warszawskiej i aktualnie pracuje jako Senior Python Developer. Prywatnie interesuje się żeglarstwem i grami komputerowymi.


Odwiedź nasz fanpage na Facebooku, aby być na bieżąco z wydarzeniami, warsztatami i webinarami, które regularnie organizujemy.

Rejestrując się przez Bulldogjob na nasze szkolenia, otrzymujesz zniżkę w wysokości 100zł.

Zobacz ich najbliższe kursy