Cześć, mam dziś coś wyjątkowego dla Was. Jest to pierwszy wpis z serii – kurs Python.

Jeżeli ktoś nie lubi czytać, a woli materiały w wersji audio, to opracowaliśmy również film na YouTube, który porusza zagadnienia z tego wpisu. Znajdziesz go poniżej.

Dzień 19 stycznia 2020 roku w swojej karierze programistycznej mogę uznać za jeden z przełomów (w ostatnich kilku miesiącach dzieje się tak wiele, że tych przełomów i kroków milowych robię kilka). Właśnie tego dnia postanowiłem rozpocząć drogę w kierunku tworzenia kursów. W pierwszym wpisie z tej serii poruszę następujące tematy:

  • Jaka będzie forma darmowego kursu i jego płatnego rozszerzenia?
  • Dlaczego akurat Python?
  • Jak wygląda historia Python?
  • Kto jest twórcą?
  • Jakie Python ma zastosowania?
  • Pozycja Python na rynku?

Na te kilka pytań odpowiem poniżej.

Czas rozpocząć wspólną przygodę z Python!

Wprowadzenie

Pozwól, że zaskoczę Cię już na starcie. Każdy dobry kurs zaczyna się od pisania programów w stylu „Hello World!”. Jednak z racji tego, że twórcą kursu jestem ja, czyli dbająca o każdy detal i mająca nieszablonowe pomysły autor – postanowiłem zrobić to nieco inaczej. 

Geneza powstania kursu

Pomysł stworzenia kursu, który pomógłby innym osobom, narodził się wraz z pomysłem na bloga. Uważam, że to najlepsze uzupełnienie – wiele skondensowanej wiedzy pod jednym adresem WWW. 

Ale zacznijmy od początku. Jako osoba związana mocno ze światem IT, od roku 2013 przeglądam materiały w internecie. Niewątpliwie jest ich dużo, niektóre źródła są wątpliwej jakości, a kursy na platformach takich jak Udemy w wielu przypadkach pozostawiają wiele do życzenia. W tamtym też okresie zrobiłem pierwsze kroki w stronę blogowania i tworzenia materiałów dla innych.

Aktualne podejście okazało się strzałem w 10. Przygotowałem na przestrzeni kilku miesięcy dobrą bazę pod bloga – technicznie i w postaci materiałów. Równocześnie z kreowaniem bloga stworzyłem konspekt pierwszego kursu – zarówno darmowego, jak i płatnego, który ma się opierać na praktyce i ciekawych zagadnieniach. 

Nie chciałem tworzyć czegoś, co omawiałoby tylko podstawowe aspekty języka. Potrzebowałem dodać do tego coś jeszcze – padło na algorytmy. Pozostało mi dobrać język. W tym przypadku zdecydowałem się na Python, który jest aktualnie moim językiem numer dwa, zaraz obok C#.

W każdym z kolejnych 19 materiałów będę rozwiązywał problemy za pomocą algorytmów, jednocześnie dbając o wyjaśnienie podstaw języka z elementami zaawansowanych konstrukcji. Pamiętaj, że tylko praktyka się liczy i to, że tu trafiłeś nie może być dziełem przypadku! 

Podział kursu

Miałem z podziałem kursu mały problem. Pomysłów w mojej głowie było dziesiątki. Postanowiłem podzielić go na dwie części:

  • 10 darmowych, dostępnych na blogu w formie wpisów
  • 10 materiałów video, połączonych w płatny kurs Python na platformie, która będzie udostępniona na blogu od 12 września 2020.

Cały dwuczęściowy kurs Python będzie nosił zapowiadaną już przeze mnie nazwę „Kurs Python 3 by MR„. 

Łącznie te dwadzieścia materiałów złożone w całość stworzyłoby kilkusetstronicową książkę. Kurs poruszy bardzo szerokie aspekty związane z programowaniem w języku Python. Niewątpliwie przestudiowanie moich materiałów pozwoli na zrozumienie podstaw programowania w tym konkretnym języku, pomoże w usystematyzowaniu już zdobytej wiedzy i miejmy nadzieję, że da Ci możliwość na znalezienie pierwszej pracy lub umocnienie swojego aktualnego stanowiska.

Dlaczego Python?

Oczywiście poza tym, że pracuję z tym językiem i uwielbiam go, są też inne powody. Posłużę się tu jednym z badań rynkowych przeprowadzonych przez platformę Stackoverflow. Według portalu, Python był w roku 2019 najszybciej rozwijającym się językiem programowania. Jest czwartą najpopularniejszą technologią zaraz po JS, HTML i SQL używaną w projektach komercyjnych. 

W pierwszej trójce najbardziej poszukiwanych specjalistów są osoby ze świata Pythona. Zarobki w Polsce na rok 2019 utrzymywały się na poziomie – 10 000 zł netto na umowie o pracę i 12 500 zł netto na umowie B2B. Takie kwoty osiągają specjaliści, który posiadają średnio 2 lata doświadczenia. Junior zaczynający przygodę z programowaniem ma szansę uzyskać połowę tej kwoty na start.

Jak widać, nie można obok tego języka przejść obojętnie. Na dzień 19 stycznia znalazłem w samej Warszawie ponad 100 ogłoszeń o pracę – od juniora do seniora. 

Kurs Python wydaje się być idealnym pomysłem w odpowiedzi na aktualne zapotrzebowanie rynku.

Historia języka Python

Aby docenić piękno języków programowania warto sprawdzić jak wyglądał proces jego tworzenia. Z mojej perspektywy aspekty historyczne w programowaniu są ważne, bo programista może zapoznać się z ideą języka, twórcami i firmami stojącymi za danym rozwiązaniem. Nie wiem jak Ty, ale ja zawsze sprawdzałem szczegółowe informacje na temat rozwoju języka, w którym aktualnie tworzę kod. Czy jest to słuszna droga? Nie mnie to oceniać. Mimo wszystko zacznijmy od początku!

Początki języka

W wielkich projektach zazwyczaj jest tak, że za konkretnym produktem stoi grupa osób, na czele której stoi jeden człowiek. Tak mamy między innymi z Apple i nieżyjącym już Steve Jobsem, Billem Gatesem i jego Microsoftem, Markiem Zuckerbergiem i Facebookiem czy Linusem Torvaldsem i wszystkim znanym Linuxem i Gitem.

Nie inaczej było z językiem Python. Może nie stoi za nim aż tak znane nazwisko jak za projektami wyżej wymienionymi, ale w świecie IT jest to osoba rozpoznawana. Mowa tu o Guido van Rossumie, który jest najczęściej wywoływaną przed szereg osobą, gdy mówimy o początkach Pythona. To on rozpoczął pracę w roku 1989 i po dwóch latach wydał pierwszą wersję języka, która miała być następcą języka ogólnego przeznaczenia o nazwie ABC.

Python tak samo jak jego poprzednik powstał w Centrum Matematyki i Informatyki w Amsterdamie (w skrócie CWI). Przez pierwsze cztery lata, do roku 1995, język był wydawany właśnie przez CWI. Od wersji 1.2 prace zostały przeniesione do Corporation for National Research Initiative (CNRI) w Reston w Wirginii i tam trwały do wersji 1.6, która została wydana w roku 2000. Następnie cały zespół przeniósł się do BeOpen.com, aby utworzyć BeOpen PythonLabs.

Warto dodać, że ByOpen, to jeden z dostępnych w tamtym czasie dotcomów, który opierał swoją działalność na sprzedaży kontraktów wsparcia technicznego dla utrzymywanych przez nich narzędzi programistycznych typu open source. W czasach przenosin do nich Pythona święcili największe sukcesy. W środowisku tym wydano Python w wersji 2.0 – był to 16 października 2000 r. Upadli po tym, jak zespół z Pythonem przeniósł się do Digital Creations. Od tego momentu, aż do dziś język jest własnością Python Software Foundation (PSF), niedochodowej organizacji wzorowanej na Apache Software Foundation.

Python 3

3 grudnia 2008 nastąpił przełom. Została wydana wersja Python 3.0. Była to poważna operacja. Warto nadmienić to, że Python 3 nie jest całkowicie kompatybilny wstecz.

Wiele jego głównych funkcji zostało później przeniesionych z powrotem do serii wersji Python 2.6.x i 2.7.x. Wydanie Python 3 obejmuje narzędzia, które automatyzują (przynajmniej częściowo) tłumaczenie kodu Python 2 na Python 3.

Aktualną wersją na czas pisania artykułu jest wersja 3.8.1 z 18 grudnia 2019 i są robione przymiarki do wersji 3.9, która również od połowy grudnia jest dostępna w wersji testowej. 

Decyzje z 2008 roku spowodowały powolne wymieranie wersji drugiej języka. Ostatecznie wersja 2.7 przestała być wspierana od 1 stycznia 2020. Z tego też powodu odradza się młodym adeptom sztuki programowania nauki innej wersji niż 3. Dlatego też wersji trzeciej będzie dotyczył niniejszy kurs Python.

Projekt otwarty

Python szybko stał się projektem otwartym i pracę nad nim kontynuować zaczął szereg osób, a van Rossum zyskał tak zwany nieformalny tytuł BDFL (Benevolent Director for Life), czyli w środowisku Open Source tytuł dożywotniego dyktatora. To on mimo grupy osób podejmował kluczowe decyzje, nadając kierunek rozwoju projektu. Zrezygnował z tego tytułu 12 lipca 2018 roku. Po tej decyzji społeczność Python powołała z początkiem 2019 roku 5-osobową grupę, która decyduje o rozwoju projektu. W skład wchodzą:

  • Brett Cannon
  • Nick Coghlan
  • Barry Warsaw
  • Carol Willing
  • Guido Van Rossuma

Dzięki otwartości projektu, interpretatory języka Python są dostępne dla wielu systemów operacyjnych. Globalna społeczność programistów opracowuje i utrzymuje CPython, która jest główną implementacją języka napisaną w języku C. Dodatkowo istnieją też inne:

  • Jython (napisany w Javie)
  • CLPython (napisany w Common Lisp)
  • IronPython (na platformę .NET)
  • PyPy (napisany w RPython – Restricted Python).

Często mylnie postrzega się język Python jako ten, który udostępniony jest na licencji GPL. Nie do końca jest to prawdą, ponieważ licencją oficjalną jest PSFL (Python Software Foundation License). Pozwala ona licencjobiorcom do swobodnego uzyskiwania dostępu do kodu źródłowego interpretatora, użytkowania go, przekazywania oraz modyfikowania treści, do których prawa posiada PSFL. 

Ta licencja jednak nie dotyczy samego języka, tylko jego interpretera i biblioteki standardowej. Programy napisane w Pythonie nie są dziełem pochodnym jego interpretera. Licencja ta w ogóle nie ma zastosowania do programów, które piszesz, chyba że są one modyfikacją lub nakładką na CPython. Inne interpretery mogą mieć zupełnie inną licencję, np. IronPython.

Język Python

Skoro trafiłeś na ten materiał to prawdopodobnie wiesz, czym jest Python. Postaram się jednak w tym akapicie uporządkować Twoją wiedzę o tym języku. Jest to język ogólnego przeznaczenia działający na wysokim poziomie. 

Językiem wysokiego poziomy możemy nazwać język, którego składnia i słowa kluczowe pozwalają na łatwe zrozumienie kodu przez człowieka. Im wyższy poziom abstrakcji tym większy jest dystans od sprzętu do tego, co piszemy.

Nie skłamię, jeżeli napiszę, że Python jako język jest jednym z łatwiejszych do przyswojenia, a dodatkowo charakteryzuje się bardzo czytelną składnią. Jak ja miałbym raz jeszcze rozpoczynać przygodę z programowaniem, to właśnie Python byłby moim pierwszym wyborem.

Filozofia

Python jest bardzo elastycznym językiem. Nie wymusza paradygmatów programowania. Podobny w tym jest do języka C++. 

Wiele osób kojarzy język Python z obiektowym paradygmatem programowania. Jest to prawda, ale wspiera on również programowanie funkcyjne, strukturalne i imperatywne. Za sprawą dynamicznego systemu typów podobny jest do języków Ruby czy Perl. Do tego mamy dostępny garbage collection do zarządzania pamięcią. 

Jednym z najbardziej charakterystycznych elementów są wcięcia. Białe znaki, które zastępują nawiasy klamrowe i słowa kluczowe. Na początku sprawia to pewne problemy, ale później docenia się to za sprawą zwiększonej czytelności kodu. Dzisiejsze narzędzia wspomagające pisanie kodu są na tyle inteligentne, że pomagają programiście w pilnowaniu odpowiedniego zagłębienia kodu.

Warto mieć na uwadze, że w założeniach Pythona jest też założenie nazywane „Wszystko jest obiektem”. W jednej z kolejnych części rozwinę ten temat bardziej szczegółowo. 

Zen of Python

To co jeszcze imponuje mi w języku Python jest jego zbiór zasad przewodnich nazywanych Zen of Python. Na Zen składa się łącznie 19 punktów. Listę tą w roku 1999 wysłał w liście mailingowej inżynier oprogramowania Tim Peters. Została ona przyjęta i do dziś zasadami tymi kierują sie osoby rozwijające język. Komplet przedstawiony jest poniżej:

  • Piękne jest lepsze niż brzydkie
  • Wyrażone wprost jest lepsze niż domniemane
  • Proste jest lepsze niż złożone
  • Złożone jest lepsze niż skomplikowane
  • Płaskie jest lepsze niż wielopoziomowe
  • Rzadkie jest lepsze niż gęste
  • Czytelność się liczy
  • Sytuacje wyjątkowe nie są na tyle wyjątkowe, aby łamać reguły
  • Choć praktyczność przeważa nad konsekwencją
  • Błędy zawsze powinny być sygnalizowane
  • Chyba że zostaną celowo ukryte
  • W razie niejasności powstrzymaj pokusę zgadywania
  • Powinien być jeden — i najlepiej tylko jeden — oczywisty sposób na zrobienie danej rzeczy
  • Choć ten sposób może nie być oczywisty, jeśli nie jest się Holendrem
  • Teraz jest lepsze niż nigdy
  • Chociaż nigdy jest często lepsze niż natychmiast
  • Jeśli rozwiązanie jest trudno wyjaśnić, to jest ono złym pomysłem
  • Jeśli rozwiązanie jest łatwo wyjaśnić, to może ono być dobrym pomysłem
  • Przestrzenie nazw to jeden z niesamowicie genialnych pomysłów — miejmy ich więcej!

Osoby mocno powiązane ze środowiskiem Python nazywane są Pythonowcami. 

Też możesz zostać Pythonowcem! 

Zastosowania

Python ma szeroko rozbudowaną bibliotekę standardową, dzięki czemu język ma wiele zastosowań. Jednym z głównych zastosowań jest użycie w przypadku aplikacji sieciowych. Python obsługuje znaczną liczbę standardowych formatów i protokołów, na przykład MIME czy HTTP. Oczywiście nie mogło zabraknąć modułów wspomagających programowanie z użyciem GUI, obsługi serwera WWW czy wyrażeń regularnych. 

Poniżej postarałem się podzielić obszary, w których dobrze sprawdza się Python:

  • Graficzne interfejsy użytkownika
  • Programowanie systemowe
  • Programowanie bazodanowe
  • Integracja komponentów
  • Skrypty internetowe
  • Prototypowanie
  • Tworzenie gier
  • Sztuczna Inteligencja
  • Przetwarzanie grafiki 
  • Analiza danych

Dodatkowo rozszerzenia zewnętrzne pozwalają na o wiele więcej. Będę stopniowo odkrywał karty.

Czy wiesz, że…

Kurs Python w moim wykonaniu będzie nacechowany między innymi ciekawostkami, które znam i udało mi się doświadczyć. Pierwszą z ciekawostek jest geneza nazwy języka, która jest bardzo zaskakująca. Jak wiele osób myśli, nazwa Python pochodzi od zwierzęcia. Nie jest to jednak prawdą. Część z Was pewnie kojarzy serial komediowy z lat siedemdziesiątych, który był i czasami jest emitowany na różnych kanałach w TV. Chodzi tu o Latający Cyrk Monty Pythona. Van Rossum jest fanem serialu, uznał, że słowo „Python” będzie oryginalne, krótkie i tajemnicze.

Wyżej wspomniałem o liście Zen of Python. Ciekawe jest to, że została ona dołączona do interpretatora. Można ją wyświetlić w konsoli wpisując polecenie „import this”. 

Zen of Python dostępny w konsoli
Rysunek 1. Zen of Python dostępny w konsoli

Podsumowanie

Wiem, że wyłamałem się ze schematu i nie napisałem pierwszego programu. Jest to celowe i zaufaj mi, że teoretyczne zagadnienia też są potrzebne do tego, by programować.

Kurs Python w moim wykonaniu będzie projektem długoterminowym, rozłożonym na 8 miesięcy ciężkiej pracy – zarówno mojej jak i mam nadzieję Twojej. Z tego miejsca też zachęcam Cię do pisania na mojego maila dostępnego w zakładce Skontaktuj się. Twój feedback – pytania i sugestie będą dla mnie bardzo pomocną. Nie bój się pytać i podważać napisanych tu słów.

Po tym materiale powinieneś mieć utrwaloną wiedzę z zakresu:

  • Historii powstania języka
  • Zastosowania go 
  • Informacji na temat licencji
  • Filozofii Zen of Python

A już w następnej części zaczniemy programować! Ale najpierw zainstalujemy potrzebne narzędzia i skonfigurujemy nasze środowisko pracy. Już nie mogę się doczekać. 

PS. Będę wdzięczny za komentarze pod tym postem!

PS2. Czeka też na Ciebie prezent. Wystarczy, że zapiszesz się na Newsletter poniżej!

PS3. Dołącz do naszej grupy na Facebook!

LINK DO ODCINKA


Subskrybuj

Zapisz się na Newsletter, odbierz NAGRODĘ w postaci 10 omówionych algorytmów pojawiających się w pytaniach podczas REKRUTACJI.

Dodatkowo otrzymuj co niedzielę informacje na temat nowych wpisów, wiadomości ze świata IT i matematyki oraz ciekawych wydarzeniach. Nie przegap i dołącz już dziś do 596 osób!.

Źródła

https://www.python.org/ 
Autor

👨‍💻 .NET and Python programming passionate 🏦 Digtial Banking Solutions 🎓 Student 📊 Psychology 📚 Bookworm 🏠 Warsaw

8 komentarzy

  1. To co mnie zaintrygowało w Twoim kursie to ALGORYTMY i oczywiście Python. Autorzy kursów nie skupują się zbytnio na algorytmach, co moim zdaniem jest błędem. W ten sposób rodzą się raczej klepacze kodu, a nie programiści ;P

    No cóż czekam z niecierpliwością. 🙂
    Złapałem twoją stronę dzisiaj i już postanowiłem zostać. 🙂

    • Cześć Adam, dziękuje za komentarz.

      Sam kiedyś miałem problem z tymi zagadnieniami i brakowało mi na naszym rodzimym rynku takiego kursu. Postanowiłem wyjść na przeciw i go stworzyć 🙂

      Cieszę się, że pomysł się podoba!

      Pozdrawiam, Mateusz.

  2. Cześć Mateusz,

    Złapałem się kiedyś na tym że kojarzyłem język Python z zwierzęciem, wężem Pyton. Logo tego języka też jest bardzo zwodzące :-p. Na szczęście przeczytałem sobie na wikipedia o Guido van Rossum i mi się rozjaśniło. Tak zaczęła się moja przygoda z tym językiem.

    Bardzo mi się podobają zasady Zen w Pythonie. Najbardziej mi się podoba zasada KISS. Lubie rzeczy proste i łatwe do zrozumienia.

    Teraz tylko oczekuje na twój kurs Pythona. Do września jest jeszcze trochę ale będzie dobrze :-).

    Pozdrawiam.

  3. Do września tak daleko (jeśli się nie przedłuży;) ) !
    Nie mniej jednak będę niecierpliwie czekał na owoc Twojej pracy!

    Pozdrawiam

      • Mateusz,
        Wyłamałeś się ze schematu standardowycj kursów programowania. Czekam na kolejny wpis o Pythonie bo zapowiada się ciekawy materiał – będzie motywacja aby w końcu przysiąść do tematu 🙂
        Napisałeś że materiał złożyłby się na grubą książkę – w sumie to czemu by nie?

Napisz komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.