Czy warto uczyć się języka Python?

Krzysztof Kempiński
Jun 1 · 16 min read
Image for post
Image for post

W ramach podcastu “Porozmawiajmy o IT” miałem okazję porozmawiać z Mateuszem Mazurkiem o tym czy warto uczyć się języka Python.

Posłuchaj naszej rozmowy w wersji audio 🎧 👇

Cześć, mój dzisiejszy gość to pasjonat informatyki, Python technical lead engineer, bloger. Prowadzi szkolenia z języka Python i tematów około-programistycznych. Swoje wieloletnie doświadczenia zawodowe wykorzystuje w mentoringu w obszarze języka Python. Uwielbia rower i dobre książki fabularne.

Moim i Waszym gościem jest dzisiaj Mateusz Mazurek! Cześć, Mateusz! Bardzo mi miło gościć Cię w podcaście.

Cześć, Krzysiek!

Fajnie, że będziemy mieli okazję porozmawiać o temacie, w którym się specjalizujesz, mianowicie o języku Python. Poruszymy konkretnie wątek: czy tego języka warto się uczyć?

Jednak żeby tradycji stało się zadość, to na początku oczywiście muszę Cię zapytać, czy słuchasz podcastów, a jeśli tak, to jakich najczęściej?

Wiesz co, chyba jesteś jedynym gościem tworzącym podcasty, którego słucham.

Miło mi! [śmiech]

Zdarza mi się czasem posłuchać jakichś dłuższych story na Instagramie, czy to się liczy?

Technicznie nie są to podcasty, ale jakieś audio jest! Można więc zaliczyć.

No to poza tym to raczej nie. Jesteś tutaj w mojej TOP-ce! TOP1.

To bardzo mi miło, dziękuję!

Dobrze. To przechodzimy do meritum naszej rozmowy.

Niedawno sprawdziłem, zgodnie z indeksem TIOBE, który jest wyznacznikiem popularności poszczególnych języków programowania. Python jest obecnie, można powiedzieć, w czołówce — 3, 4 miejsce. W tych kierunkach mniej więcej mieści się właśnie język Python, jeśli chodzi o popularność języków programowania.

Przy czym jest mocna tendencja wzrostowa, którą można obserwować od około 2 lat, może trochę dłużej. Język ten pnie się po drabinie popularności języków.

Chciałbym cię zapytać, tak wychodząc od początku… Jak się ten język narodził? Po co został stworzony? Kiedy się pojawił? Gdybyś mógł powiedzieć o historii — byłoby to na pewno fajne wprowadzenie!

Powstał gdzieś a początku lat 90., został stworzony przez Holendra, Guido van Rossum. Pisał ten projekt w gruncie rzeczy jako rozwinięcie innego. Był już język ABC i miał podobne założenia jak Python. Był prostym językiem — ale nie prostackim.

Wracając do tego indeksu, o którym powiedziałeś. Może na początku — nie wiem jak tak bardzo ten indeks sobie analizowałeś, ale tam można zobaczyć, że na przestrzeni lat Python wystrzelił mniej więcej w okresie 2017 roku. Czyli już jakiś czas temu!

Ten wystrzał był początkiem mody na ten język, bo gdzieś tamta moda faktycznie jest widoczna. Sam język jest relatywnie stary.

Powstał gdzieś na początku lat 90., został stworzony przez Holendra, Guido van Rossum. Pisał ten projekt w gruncie rzeczy jako rozwinięcie innego. Był już język ABC i miał podobne założenia jak Python. Był prostym językiem — ale nie prostackim. Do tego pewnie jeszcze wrócimy.

Łatwo się go czytało, łatwo się w nim pisało i ten projekt w wyniku bliżej nieokreślonych turbulencji zamienił się w Pythona.

Idee, jakie zakładał Holender były takie, że Python ma być prosty — o czym już wspomniałem, miał nie odstawać funkcjonalnością od innych języków i przede wszystkim miał być następcą tego języka ABC, ale też w gruncie rzeczy Basha. Język wywodził się właśnie jako idea tego, żeby zastąpić Basha. Jak pewnie ty, jak pewnie większość programistów spotkaliśmy się z Bashem i każdy, kto się spotkał raczej niezbyt go lubił bo składnia to nie jest co, na co można fajnie popatrzeć.

Z jednej strony był językiem, który wyszedł z ABC. A z drugiej strony miał zastąpić Basha. I mniej więcej tak narodziła się idea Pythona w głowie Holendra na początku lat 90., czyli mniej więcej wtedy, kiedy się urodziłem.

Ciekawe. To jest kolejny język, który gdzieś tam się przewija i miałem okazję go trochę poznać. Powstał jak gdyby całkiem wcześniej, zanim został popularny — to jest często kilkanaście lat.

Podobnie jest z językiem Ruby, w którym mam najwięcej doświadczeń. Tam też, zanim framework Ruby on rails powstał, no to ten język rozwijał się już przez kilkanaście lat. Z tego, co mówisz, podobnie jest właśnie z językiem Python.

Nie wiem jak jest z Rubym, ale w Pythonie było tak, że on był do pewnych wersji ledwo używalny. Tak naprawdę do 2.3. Dopiero od 2.3 do 2.7 był już faktycznie pełnoprawnym językiem.

Później wskoczyło to na wersję 3.0, gdzie jest to już język w pełni praktyczny. Nie zrozum mnie źle — 2.3 i 2.7 były jak najbardziej w pełni operatywne, tylko jakby różnica między 2.7 a wersjami 3.0 była ogromna, z tym takim moim rozróżnieniem.

Jasne. Porozmawiajmy chwilę o takich podstawowych zastosowaniach tego języka. Powiedziałeś, że u źródeł to są takie związki trochę à la z językiem, który używany jest w konsoli.

Przyznam szczerze, że sam zbyt wielu doświadczeń nie miałem, aczkolwiek kiedyś rozszerzałem pewien projekt, który napisany był już w Django, jakieś nowe funkcjonalności, więc trochę liznąłem, jakieś pojęcie mam. Natomiast jestem trochę, można powiedzieć, skrzywiony pod kątem tego, jakie zastosowania języka Python znam w kierunku wykorzystań webowych.

Powiedz proszę kilka słów o tym, jak wygląda wykorzystanie Pythona właśnie w tym obszarze webowym, który jest, myślę, najbardziej w tej chwili kojarzony, jeśli chodzi o Pythona. Z jakimi możliwościami, narzędziami możemy się spotkać w tym obszarze?

Powiedz mi, jakie masz wspomnienia z Django?

Różne. [śmiech] W międzyczasie, równolegle posługiwałem się Ruby on rails i był spory przeskok w trochę negatywną stronę. Jednak brakowało wówczas narzędzi. Wówczas topornie się z tego korzystało, więc z wyjątkiem jakiegoś tam performance’u, który wówczas przeważał, no to nie do końca to było takie super przyjemne uczucie.

W gruncie rzeczy można powiedzieć, że Twoja opinia mapuje się na opinię ogólną. Django ma tyle osób, które są za tym frameworkiem ile są przeciwko.

Django jest fajny — to jest ogromny, kompletny framework. Fajny wtedy, kiedy chcesz stworzyć aplikację, która nie robi żadnych, dziwnych, niestandardowych rzeczy. Jeżeli idziesz wyznaczoną przez twórców ścieżką, to Django jest super. Robi za ciebie naprawdę ogrom pracy. Jest całkiem nieźle napisany, tam pod spodem. Nie ma zależności jako takich. Jest ogólnie świetnym frameworkiem, naprawdę. Jeśli jednak chciałbyś w Django wyjść poza utartą ścieżkę, no to jest to troszkę taka droga przez mękę.

Nie chcę powiedzieć, że to się nie udaje, bo się udaje, jak najbardziej, tylko faktycznie tam już są górki. To, że Django nie ma jako takich zależności i jest bardzo stabilnym projektem, sprawia również, że jest całkiem wydajny — to, co wspomniałeś — ale trzeba tutaj oddać to, że ma naprawdę wielu przeciwników właśnie dlatego, że wyjście poza tą utartą ścieżkę, która przewidzieli twórcy, już jest lekko mówiąc, niewygodna.

Django dostarcza swojego ORM-a. Sam ogólnie tego ORM-a lubię. Myślę, że to jest troszeczkę kwestia podejścia jakby kwestia preferencji. Ogólnie go lubię — jest stabilny, fajny i takim popularnym dodatkiem do Django jest jeszcze Django rest framework, który pozwala tworzyć nam jakieś API i tak dalej. Te trzy rzeczy w gruncie rzeczy tworzą bardzo spójne rozwiązanie. Ponieważ możesz za pomocą tego frameowrka stworzyć szybko aplikację, która może być naprawdę zaawansowana i naprawdę fajnie działać, z tym, że jeżeli będziesz chciał wyjść ponad jakieś tam rzeczy, no to może to być kłopotliwe albo nawet trudne. Oczywiście da się, ale tak jak mówię, że po prostu nie zawsze jest to wygodne.

Idąc dalej w Twoje pytanie — jeśli chodzi o webówki — to mówiąc o webówce w Pythonie nie możemy zapomnieć o Flasku. Flask to jest też framework, tak jak Django i też do webówki, z tym że jego idea jest troszkę inna. Idea stojąca za Django jest taka, żeby dostarczyć naprawdę pełne rozwiązanie. Flask jest bardziej takim micro frameworkiem, czyli rozwiązaniem, które daje ci już jakąś podstawę, ale nie narzuca zbyt dużo. To w gruncie rzeczy jest główna różnica.

Jeżeli Django narzuca ci architekturę, narzuca podział na projekty i aplikacje, i tak dalej to Flask narzuca ci bardzo mało. Przez to jednak nie robi ci tak bardzo pod górkę, jeśli chcesz wyjść gdzieś w bok, jeśli chodzi o ścieżkę, którą zaproponowali ci twórcy.

Rozwiązanie ma swoje plusy i minusy. Oczywiście minusem Flaska jest to, że nie dostarcza ORM-a jako takiego, ale można łatwo zintegrować go i to fajnie działa z SQLAlchemy, to jest kolejna rzecz, o której trzeba wspomnieć w takim webowym ekosystemie Pythona. SQLAlchemy to jest ORM, taki samodzielny, nie tak jak Django ORM. To też jest biblioteka, która jest naprawdę potężna, jest naprawdę super. Jeżeli ktoś z niej korzystał to wie, jeśli ktoś nie korzystał to zachęcamy do skorzystania z tej biblioteki, bo jest ogromna i naprawdę bardzo fajna. Integruje się ją fajnie z Flaskiem. To jest taki duet, który często występuje razem. Bo Flask nie ma tego, co ma Django — czyli wbudowanego ORM-a, więc często integruje się go właśnie z SQLAlchemy.

Jeżeli chcemy sobie aplikację we Flasku albo takim Django, uruchomić na produkcji, to mamy tam jakiegoś Gunicorna albo coś takiego. Oba te frameworki mają jakiś tam system templatek, żeby zapewnić odseparowanie logiki od widoku. W Django jest coś, co podobne jest do Jinjy, ale to chyba nie jest Jinja. A Flask to po prostu Jinja, ewentualnie można sobie zintegrować to z tym rozwiązaniem. To ogólnie bardzo dobrze ze sobą współgra, więc Python jest tutaj naprawdę mocnym, fajnym i stabilnym rozwiązaniem, jeżeli chodzi o webówkę. Fajnie, że ten Flask się pojawił, bo daje nam możliwość pójścia troszkę w inną stronę porównując to właśnie do Django. Dzięki temu możemy sobie właśnie wybrać, którego rozwiązania użyć w którym projekcie, do jakich problemów.

Z tego, co widzę po polskich startupach, po tym jakie ogłoszenia pracy też są przez nie wrzucane na przykład na LinkedIn, dochodzę do wniosku, że Pythona bardzo często te software house’y wykorzystują. Co też może dalej świadczyć o tym, że klienci tych software house’ów, którymi bardzo często są startupy chętnie korzystają z takich rozwiązań webowych, które opisałeś.

Czy według twojej wiedzy większe firmy, czy jakieś większe projekty — głównie na myśli mam webowe — też są skore, żeby z tego ekosystemu Pythonowego korzystać?

Zdecydowanie tak. Znam co najmniej kilka firm, które oparły cały swój biznes na Django i świetnie sobie radzą. To, że gdzieś tam w pewnych momentach może być niewygodny, nie znaczy, że nie niesie za sobą możliwości zarabiania dobrych pieniędzy, naprawdę dobrych pieniędzy, wystarczających, by utrzymać całą firmę. To jest ważne.

Zdecydowanie nie można patrzeć na Django dlatego, że w pewnych elementach jest niewygodny, właśnie tylko z tej perspektywy, ponieważ tak jak powiedziałem: jest wiele firm, które oparły na Django cały swój biznes i zdecydowanie świetnie sobie radzą i nie narzekają.

Oczywiście, jak każda firma, jak każde projekty pewnie gdzieś tam się potkną, ale ogólnie to działa i faktycznie jest okej.

Druga taka popularna gałąź, która wiąże się właśnie z Pythonem, to jest machine learning. To jest pewnie też jedna z przyczyn takiego nagłego wystrzelenia popularności tego języka, te dwa czy trzy lata temu.

Szkolenia związane z machine learning bardzo często uczą podstaw Pythona, z tego, co mam okazję obserwować. Wiele też przykładów związanych właśnie z machine learningiem podaje się z wykorzystaniem Pythona, z wykorzystaniem różnych bibliotek, które właśnie w Pythonie są napisane.

Jak to się stało i dlaczego właśnie Python zdobył tak silną pozycję w tym obszarze?

To pytanie jest trudne, bo tu trzeba się przede wszystkim pochylić nad tym, co Python oferuje jako język do machine learningu.

Jak zaczniemy się temu przyglądać, to zobaczymy, że tam jest naprawdę kilka, jeżeli nie kilkanaście bibliotek, frameworków, rozwiązań, które w łatwy sposób pozwalają wejść w ten temat. I to jest ogromna wartość.

Myślę, że swoją cegiełkę dołożył tutaj Google wprowadzając bodajże Tensor Flow czyli właśnie taki pakiet do machine learningu, ogólnie pojętego. Myślę, że to troszeczkę napędziło Pythona jako język, którego jednym z głównych zastosowań jest machine learning. Właśnie dlatego, żeby był w czołówce tych języków. Poza tym mamy Kerasa, Pandasa, NumPy‚a, to jest naprawdę genialnym Blue Tech’iem, on robi takie magiczne rzeczy w środku, że… Wow! Ciężko przejść obojętnie, naprawdę. To wszystko jest złączone przez bibliotekę Matplotlib, ona rysuje wykresy, to też fajnie działa. Wydaje mi się, że całość tego sprawia, że na przestrzeni lat Python stał się bardzo popularnym językiem dla machine learningu i właśnie przez to, że pojawiały się coraz lepsze i coraz bardziej zaawansowane biblioteki na ten temat.

W tym momencie tak naprawdę chyba już nie ma języka lepszego do machine learningu.

Trzeci taki obszar, który kojarzy mi się z językiem Python, jeśli chodzi o zastosowania, to są różnego typu script i automatyzacje. Czyli tutaj znowu cofamy się do tych początków.

Jakiś czas temu rozmawiałem z Arturem Molendowskim, który prowadzi podcast Chwila dla admina i on też wspomniał, że właśnie w świecie sysadminów jest to również język, który chętnie jest wykorzystywany, chętnie używany do głównie automatyzacji czy jakieś własne skrypty powłokowe itd.

Czy według ciebie Python dobrze się sprawdza w tym obszarze? Czy to jest takie zastosowanie, które powiedzmy występuje w miarę często, a nie jest tylko jakimś wyjątkiem od bardziej istotnych zastosowań?

Wiesz co, obok webówki i machine learningu to automatyzacja w Pythonie to jest czyste piękno, naprawdę. Jeżeli chcesz zautomatyzować sobie jakiś proces, no to Python jest najlepszym, moim zdaniem oczywiście, do tego wyborem.

Mówiąc jakiś proces, mam na myśli cokolwiek. Pracujesz w korporacji, dostajesz codziennie mail z 30 arkuszami Excela. I tam jest po 100 arkuszy, w każdym pliku i musisz zrobić jakąś prostą agregację. Czyli wyciągnąć sobie z każdego pliku, z każdego arkusza jakieś dane i stworzyć arkusz wynikowy, gdzie są jakieś dane zagregowane. No to w Pythonie zrobisz to w 30–40 linijek. I to jest niesamowite. Możesz coś, co zajmuje — ręcznie stworzenie czegoś takiego zajęłoby dni, co najmniej. Tutaj możesz w kilkunastu linijkach rozwiązać ten problem. To jest niesamowite, bardzo wygodne.

Sama składnia Pythona też pozwala pisać to relatywnie prosto. To, co jest ważne, to, że takie proste automatyzacje możesz robić nie znając Pythona bardzo dobrze. Gdzieś tam podstawowe tutoriale, podstawowe struktury danych i tak dalej, pozwalają ci już zrobić jakąś część automatyzacji i to jest świetne. Nie ma, moim zdaniem, lepszego języka do automatyzacji niż Python.

Sama składnia Pythona też pozwala pisać to relatywnie prosto. To, co jest ważne, to, że takie proste automatyzacje możesz robić nie znając Pythona bardzo dobrze. Gdzieś tam podstawowe tutoriale, podstawowe struktury danych i tak dalej, pozwalają ci już zrobić jakąś część automatyzacji i to jest świetne. Nie ma, moim zdaniem, lepszego języka do automatyzacji niż Python. Poza tym nie wiem, czy kojarzysz takie narzędzie jak Ansible?

Pewnie.

Ansible — słuchaczom powiem — to jest narzędzie, które służy do zarządzania serwerami. Możesz sobie stworzyć playbooki w YAMLu. To, co jest super ciekawe to to, że to rozwiązanie jest napisane w Pythonie. To gdzieś tam dowodzi właśnie tego, że Python w tym obszarze jest bardzo, bardzo doceniany. Możesz do Ansible’a dopisać własne wtyczki właśnie w Pythonie i myślę, że to jest taką kropką nad i jeśli chodzi o ten temat — więc Python i automatyzacja to jest coś pięknego.

Fajnie, dobrze to słyszeć. Czy myślisz, że pominęliśmy jakieś istotne zastosowania Pythona, o których warto byłoby wspomnieć?

Jest jeszcze jedno duże, które troszkę wynika z poprzedniego. Myślę, że warto je rozdzielić. Są to zastosowania czysto akademickie. Już tłumaczę.

Jeżeli mamy doktora na jakiejś uczelni i on potrzebuje coś policzyć, to Python jest genialnym językiem do tego.

Można w nim zrobić naprawdę szybko, fajne rzeczy. Jeżeli ma się trochę czasu można liczyć całki, pochodne, inne dziwne rzeczy bardzo, bardzo wygodnie. W zastosowaniach akademickich więc on też powoli wypiera takie rzeczy jak MATLAB czy inne. To jest coraz bardziej widoczne, że ludzie uczelni bardzo często zaczynają go wykorzystywać pomiędzy swoimi pracami do przedstawienia wyników obliczeń itd. Myślę, że nie można tego pominąć, że jest on bardzo często używany na uczelniach. Myślę, że to też troszkę wiąże się z popularnością machine learningu. Sama idea machine learningu gdzieś tam również dotykana jest przez uczelnie wyższe, więc myślę, że to, że język Python się tam również pojawia, nie jest przypadkiem. Że to wszystko jest ze sobą spójne i ta historia się przeplata, zastosowania się przeplatają, ale myślę, że, odpowiadając na twoje pytanie, warto ten jeden obszar wydzielić.

Ciekawe. Przyznam szczerze, że akurat tego zastosowania nie znałem, ale za to w międzyczasie przyszło mi na myśl, że jeszcze takim obszarem, gdzie powiedzmy wykorzystuje się Pythona po części, a przynajmniej niektóre jego możliwości jest nauka programowania dla dzieci. Wiele z takich szkółek programowania czy kursów, które szkolą dzieciaki, robią to właśnie na bazie Pythona. Czy masz jakieś doświadczenia albo wiedzę w tym obszarze? Czy tam też się Python dobrze odnajduje i dlaczego?

Jakichś ekstremalnych doświadczeń nie mam, ale nie dziwię się, że ludzie wybrali Pythona dla dzieciaków, no bo składnia jest naprawdę przystępna.

Tak jak powiedziałem na początku, powtórzę: Python jest językiem prostym, ale nie prostackim. To znaczy, że ma prostą składnię, łatwo się go czyta, ale jego możliwości nie są w żaden sposób ograniczone, porównując go do innych języków. Wydaje się świetnym wyborem dla dzieciaków, ale nie tylko dla dzieciaków — dla wszystkich, jako pierwszy język czy dodatkowy.

Wracając do twojego pytania, nie mam jakiegoś wielkiego doświadczenia, ale napisałem kiedyś artykuł do Programisty Junior. Napisałem go opierając się o Pythona, stworzyłem od podstaw grę w życie. I przeszliśmy sobie właśnie z dzieciakami przez cały proces tworzenia tego kodu, więc to jest chyba moje jedyne doświadczenie w tym temacie, ale tak jak powiedziałem wcześniej — nie dziwię się, że wybrali właśnie ten język.

Z tego, co kojarzę — wydaje mi się, że do Minecrafta też się wykorzystuje właśnie Pythona, żeby tworzyć tam dodatki… Nie chcę wyjść na kogoś, kto gada jakieś głupoty, ale kojarzę to powiązanie Pythona z Minecraftem.

Wierzę — nie wiem. Nie zdziwiłbym się. Jednak żeby powiedzieć, że potwierdzam albo neguję, to niestety nie wiem. Gry nie są do końca moim konikiem!

Pewnie! Wspomniałeś tutaj o tej łatwości nauki języka. Czy mógłbyś powiedzieć parę słów o tym, jak wygląda dostępność materiałów, szkoleń, kursów — czyli takich rzeczy, które mogą nam posłużyć właśnie do nauki?

Tutaj trzeba zauważyć jedną rzecz. Wydaje mi się, że polski rynek IT jest troszeczkę przesunięty, jeśli chodzi o branie z tego Pythona garściami. Gdzieś tam ta społeczność istnieje, materiały są. To nie jest tak, że nie ma ich dużo, ale jest ich mniej niż na przykład do Javy. Ciężko to oczywiście porównywać. Społeczeństwo jest, istnieje. Mamy na przykład kilku, kilkunastu blogerów, którzy tworzą kontent w Internecie i tego jest naprawdę… Jak na taką ilość blogerów, to tworzą go naprawdę sporo. To jest dobre jakościowo. Jest kilka, kilkanaście kursów na Udemy, które w gruncie rzeczy są w porządku. Oczywiście nie wszystkie.

Są też jakieś tam kursy na YouTube, które w gruncie rzeczy są bardzo dobre, darmowe. Myślę, że zaczynając od nich można sobie zacząć!

To dobrze słyszeć, że jest z czego wybrać.

Co byś doradzał osobom, które chcą nauczyć się Pythona, przy czym jest ich to pierwszy język? Wiadomo, że wtedy uczymy się trochę inaczej, niż kolejnego. W jaki sposób podejść do nauki Pythona? Może miałbyś jakieś wskazówki, może jakieś materiały, które byłbyś w stanie wskazać, od czego zacząć.

Wiesz co, to jest trudne pytanie. Proces nauki dla każdej osoby jest indywidualny. To jak my się uczymy zależy w sumie od nas samych. To, co mógłbym poradzić, takie podstawy, podstawy, najfajniej zacząć takimi kursami na Udemy, czy YouTube.

Później robi się problem. Bo jest bardzo dużo kursów, które wprowadzają podstawy. Podstawowe typy danych, lista, krotka, if-y, pętle i tak dalej. Co dalej? Robi się problem, bo brakuje mi w Internecie takiego przejścia pomiędzy podstawami a rzeczami zaawansowanymi. Tutaj w teorii można pokusić się o książki. To w sumie zależy również od tego, jaka osoba się za to bierze.

Jeżeli osoba weźmie sobie książkę i przejdzie sobie przez nią, no to super. Tam jednak jest przedstawiony tylko jeden punkt widzenia, jeden styl pisania jednej osoby. W całym procesie książki, która ma załóżmy, 400 stron — jednego rozdziału nie zrozumiemy to raz, nie mamy się kogo dopytać — no bo nie bardzo jak, dwa, że w gruncie rzeczy wycięty jeden rozdział psuje cały proces nauki. Wtedy więc nie jest już tak, że jest 90% przyswojenia wiedzy, tylko 50%. Każdy kolejny rozdział tej książki jest już mniej zrozumiały. To się nawarstwia. To jest troszeczkę jak zaległości z matematyki. One się nawarstwiają, więc tutaj książki są spoko, ale raczej polecałbym je osobom, które znają Pythona troszkę bardziej — nie neguję ich jednak całkowicie, ponieważ to są osoby, którym będzie to odpowiadało.

Kolejnym podejściem może być również czytanie, szukanie, na Stack OverFlow i tak dalej. Takie uczenie się prawie hobbystyczne. Tutaj jest podobny problem, bo informatyka, całe to programowanie, ma taki problem, że mamy na przykład 10 nazw na to samo. Jak osoba początkująca, pójdzie na jedną stronę, przeczyta o jednej rzeczy nazwanej A. Później pójdzie na drugą stronę, przeczyta sobie o tej samej rzeczy nazwanej B, to nie będzie mogła skojarzyć, że chodzi o to samo.

Co z tym zrobić? Są pewnie osoby, którym to nie przeszkadza. Kolejną rzeczą, którą może zrobić osoba początkująca, to są kursy programowania. Tutaj mogę polecić na pewno jeden kurs SDA — Software Development Academy. Oni mają kurs Pythona i on jest naprawdę w porządku, wydaje się stabilny i fajny.

To, co jest fajne w kursach programowania to jest to, że cały program takiego kursu jest jednak… Wszystko jest przemyślane, dostosowane do potrzeb rynku. To nie są więc przypadkowe zajęcia, przypadkowi ludzie, którzy to prowadzą i przypadkowy cały program. To jest przemyślane. Dwa. Jak czegoś nie rozumiesz, jak w przypadku książki — tutaj możesz dopytać.

To, co jest fajne w kursach programowania to jest to, że cały program takiego kursu jest jednak… Wszystko jest przemyślane, dostosowane do potrzeb rynku. To nie są więc przypadkowe zajęcia, przypadkowi ludzie, którzy to prowadzą i przypadkowy cały program. To jest przemyślane. Dwa. Jak czegoś nie rozumiesz, jak w przypadku książki — tutaj możesz dopytać. Zawsze masz tę osobę, której możesz spytać, podejść do niej. Myślę, że to sporo daje. Poza tym kursy wymuszają systematyczność, która moim zdaniem na początku jest ekstremalnie ważna. Ciągle patrzą na to, by ten program kursu był zgodny z wymaganiami rynku, więc wydaje mi się, że kursy programowania mają jako-taką opinię, są całkiem niezłym pomysłem.

Myślę, że ta bolączka, czyli brak materiałów dla osób nieco bardziej zaawansowanych to jest coś, co jest charakterystyczne dla wielu technologii języków programowania, nie tylko Pythona. Z drugiej strony jednak, jak gdyby najwięcej osób, które wchodzą do branży to osoby początkujące, które potrzebują tego wsparcia, więc z drugiej strony mnogość treści dla nich jest w jakiś sposób uzasadniona.

Myślę, że to też w gruncie rzeczy jest trudny temat. Trudno jest wypełnić tę lukę w Internecie, między Juniorem a Regularem, ponieważ każda osoba jest jednak na innym poziomie i ciężko byłoby w tę lukę włożyć wiedzę, która byłaby uniwersalna dla tego poziomu.

Wydaje mi się więc, że mamy faktycznie dziurę, ale też ciężko ją załatać.

Zwłaszcza że później są jakieś specjalizacje i tak dalej i ciężko byłoby wszystko do tego worka wsadzić. Pewnie.

Cofając się trochę do tych studiów, czy uniwersytetu, uczelni, o których wspomniałeś. Chciałem zapytać, czy tam też uczy się Pythona? Bo jedna strona medalu to wykorzystanie przez kadrę akademicką tego języka, z drugiej strony czy studentów uczy się Pythona? Czy znasz może jakieś uczelnie, kierunki gdzie tak się dzieje w Polsce?

Muszę tutaj oczywiście wspomnieć o studiach, które sam skończyłem. Wiem, że na Politechnice Łódzkiej, na Wydziale Elektrycznym był Python — i to nawet fajny. Nie było to na zasadzie, że stwórz listę, przeliteruj po niej i wpisz sumę wartości. To były naprawdę fajne rzeczy. Może nie zaawansowane, to były algorytmy… Było to jednak fajne na tyle, że można było ten język poznać na tyle, żeby sprawdzić, czy on nam odpowiada. W gruncie rzeczy więc pod tym względem uczelnia spełnia swoją funkcję. Wiem, że jakiś czas temu Uniwersytet Łódzki, zamienił język o nazwie Ada właśnie na Pythona. Myślę, że było to już kilka lat temu, ale jednak jest, więc gdzieś tam się pojawia.

Jakiś czas temu prowadziłem szkolenie na AGH i rozmawiałem z tamtejszymi doktorami. Tam też ten Python jest. Myślę, że mogę powiedzieć, że na tych trzech uczelniach Python się pojawia. Zdziwiłbym się, gdyby na innych go nie było. Myślę, że nie tylko my zauważyliśmy tendencję wzrostową tego języka i że jednak mimo zarzutów, jakie uczelnie wyższe dostają od studentów, że uczą rzeczy nieprzydatnych, tak wydaje mi się, że nadal starają się w miarę śledzić rynek i że ten Python jednak pojawia się na większości uczelni.

Jestem ciekawy, jaki będzie odzew ze strony słuchaczy — czy może ktoś jeszcze tutaj gdzieś wrzuci, albo w social mediach albo pod opisem do tego odcinka. Z chęcią byśmy też dowiedzieli się, jeśli na jakiś innych, polskich uczelniach właśnie w taki sposób fajny i aktywny się Pythona też uczy.

To jeszcze chwilę, Mateusz, o tych początkujących. W jakie pułapki wpadają najczęściej początkujący, którzy zaczynają dopiero uczyć się języka Python w szczególności, natomiast myślę, że to, co powiesz będzie raczej szersze i będzie dotyczyło w ogólności nauki języków programowania.

W jakie pułapki? We wszystkie! [śmiech] We wszystkie możliwe.

Następne pytanie. [śmiech]

👉 Czytaj dalej na:

kkempin’s dev blog

Dev and life blog.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface.

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox.

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store