nauka pythona

Nauka Pythona może zagwarantować pracę

Jeśli chcesz zostać programistą Pythona, to czeka cię sporo pracy. Owszem, sam język jest dość łatwy, musisz jednak nauczyć się więcej niż tylko podstawy, ważne jest pełne zrozumienie niektórych, dość skomplikowanych, procesów.

Python jest językiem przeznaczenia ogólnego, używany nie tylko w celu np. rozwoju sieci Web. Wręcz przeciwnie, wykorzystuje się go w wielu różnych gałęziach przemysłu. I teraz – zależnie od tego, gdzie zdecydujesz się pracować, tego języka będziesz musiał się nauczyć.

Dajmy na to, jeśli jesteś zatrudniony do tworzenia aplikacji, które współdziałają z systemami operacyjnymi oraz urządzeniami monitorującymi, możesz nie wiedzieć jak korzystać z modułów Pythona do programowania naukowego i numerycznego. Podobnie, jeśli jesteś programistą Pythona, który komunikuje się z bazą danych MySQL to nie jest potrzebna wiedza jak to funkcjonuje z CouchDB.

Dlatego też istnieją trzy poziomy do nauki podstaw Pythona:

– nauka języka samego rdzenia – czyli składnia i podstawowe typy, poznanie różnic pomiędzy Python 2 i Python 3,

– poznanie powszechnie używanych modułów oraz zapoznanie z innymi modułami,

– poznanie większego obszaru rozwoju oprogramowania z Pythona, takiego jak proces budowy w Pythonie za pomocą menadżera pakietów pip itd. Wiąże się to z poznawaniem różnych baz danych oraz innych technologii, w zależności od obszaru pracy.

Początkujący

Na poziomie podstawowym Python jest łatwym do opanowania i wykorzystywania językiem. Można dość szybko nauczyć się tworzyć zmienne oraz pętle, na przykład by rozwinąć poza tzw. krotki (tuples), listy i słowniki. Początkujący w Pythonie musi wiedzieć jakie typy są niezmienne, co oznacza, że tego typu obiekt nie może być zmieniony (odpowiedź: krotki i stringi). Przy niezmiennych typach sama wartość obiektu nie może się zmieniać, ale zmienna, która zawiera przedmiot potrafi:

a = 'abc' a = a.upper()

W powyższym przykładzie oryginalny łańcuch „abc” nie uległa zmianie, podobnie jak string. Zamiast tego oblicza się nowy string „ABC” i przechowuje się to w oryginalnych zmiennych. Wiemy zatem, że takie rzeczy powinny być drugą naturą każdego, kto próbuje nauczyć się programowania w Pythonie.

Dodatkowo, każdy kto uczy się Pythona, powinien wiedzieć w jaki sposób język dotyczy programowania obiektowego i jak tworzy klasy oraz istotę obiektów. Ważna jest również wiedza jak używać wyjątków oraz procedur obsługi wyjątków i w jaki sposób moduły wchodzą ze sobą w interakcje (dla kluczowych spostrzeżeń warto przeczytać i zrozumieć Python Language Reference, jeśli nie do końca znasz składnię oraz to w jaki sposób działa język Python).

Początkujący programista Pythona musi także wiedzieć jak bardzo różnią się od siebie Python 2 i Python 3. Python 3 istnieje już od jakiegoś czasu aczkolwiek nadal istnieje wiele projektów, które opierają się jednak na Pythonie 2. Jeśli dowiadujesz się o pozycję zapytasz, którego Pythona się używa, a jeśli posiadasz odpowiednią wiedzę, możemy zacząć rozmawiać o różnicach.

Nieco bardziej zaawansowanie

Po opanowaniu kilku podstawowych pojęć można przejść do nieco bardziej zaawansowanych koncepcji. Jeśli znasz takie języki jak JavaScript silne typowanie Pythona. Na przykład, nie można tak po prostu dodać „hello” do „10”, aby uzyskać „hello10” (uzyskujesz wyjątek). Ma to na celu zapobieganiu błędom w kodzie, a to oznacza że należy bardzo dobrze zaznajomić się z dynamic typing, strong typing i duck typing, oraz tym w jaki sposób Python łączy ze sobą powyższe trzy.

Programiści C++ podchodzący do Pythona mogą czuć się zaskoczeni brakiem potrzeby zapewnienia interfejsu dla parametrów w fukcji; jeśli przezany obiekt posiada wymagane metody możesz działać. To sprawia, że polimorfizm staje się łatwiejszy.

 

Stąd też ważne jest, aby wiedzieć o zamknięciu oraz „obiektach pierwszej klasy”. Python obsługuje oba, co zaś prowadzi do koncepcji zwanej „decorators”.

Oto ciekawy przykład zamknięcia, zmodyfikowana jedna z propozycji wprowadzona przez interaktywnego shella:

>>> def outer(x): ... y = x * 2 ... def inner(z): ... return y + z ... return inner ... >>> q = outer(5) >>> r = outer(6) >>> q(2) 12 >>> q(3) 13 >>> r(2) 14 >>> r(3) 15 >>>

Funkcja zewnętrzna tworzy zamknięcie ze zmienną y i zwraca nową funkcję, której można nadać nazwę. Dwukrotnie wywołana funkcja potrafi utworzyć dwie takie funkcje, wtedy można było wywołać dwie funkcje razy dwa.

Proponuję przeczytać „Zew Pythona”, zabawne lecz prawdziwe, pozwala sprawdzić wątek Stack Overflow pod kątem świetnych porad o tym, jak opanować tenże język. Przechodząc do GitHub i znajdując jeden z wielu popularnych projektów Pythona należy analizować kod tak, jak tylko jest to możliwe.

Krótkie streszczenie: Poznawanie modułów

Moduły są waszymi bibliotekami, waszymi pomocnikami. Dobrze jest wiedzieć, co jest dostępne w standardowej bibliotece, nie trzeba bowiem zapamiętywać każdego członka każdej klasy, ani każdej klasy danego modułu, ale chcąc wiedzieć jakie masz funkcje wtedy, kiedy ich potrzebujesz nie musisz tworzyć ich od podstaw.

Zapoznaj się z każdym modułem. Wiele z nich, jak plik I/O posiada dostęp w praktycznie każdej aplikacji – wewnętrznej i zewnętrznej. Na przykład, jeśli wiadomo jak otworzyć plik z innego dostępu, jak go odczytać, zapisać i w jaki sposób ustalić, czy istnieje plik bądź katalog. Wiedząc jak korzystać z modułu os. ścieżka łączenia oraz normalizacji dla file-path  zamiast pisania własnych procedur obsługi ciągu ścieżki plików. W końcu można zrozumieć konsekwencje wynikające z cross-platform.

Nauka Software Developingu z Pythonem

Istnieje wiele narzędzi do integracji Pythona w cyklu rozwoju oprogramowania. Jeśli chcesz opanować jeżyk w kontekście świata rzeczywistego, aby dowiedzieć się jak uzyskać pakiety Pythona przy użyciu pip. Należy również dowiedzieć się jak to zrobić w tekstach jednostkowych, co ma zasadnicze znaczenie dla rozwoju oprogramowania w Pythonie. Wiele osób Python i to, co z nim związane wręcz odrzuca, ponieważ nie są w stanie odpowiedzieć na pytania danego obszaru. („Autostopem do Pythona” zawiera kilka świetnych informacji na temat tekstów jednostkowych).

Warto również wiedzieć w jaki sposób spakować programy Pythona dla dystrybucji i znać sposób funkcjonowania zarówno wiersza poleceń systemu Windows i powłoki bash w Linux.

Każdy programista zna wartość używanych narzędzi służących do developingu programów z edytora do repozytoriów git.

Ukierunkowanie przemysłu lub technologii.

Jeśli już zapoznasz się z wymienionymi wyżej informacjami, możesz przystąpić do bardziej szczegółowych manuali.

Jeśli rozszeżenia Pyhtona pisane w C lub C++ są dla Ciebie interesujące, sprawdź: https://docs.python.org/2/extending/extending.html

Jeśli web development jest tym, co lubisz, musisz rozumieć różnice między serwerami Web pisanymi w Pythonie, które obsługują rozszerzenia, a webowymi frameworkami, które pozwalają Ci na pisanie własnego oprogramowania w Pythonie. Jeśli wybierzesz drogę Web, musisz być biegły w pozostałych technologiach, nie tylko w JavaScripcie, ale również jak tworzyć skalowalne oprogramowanie.

Istnieje kilka różnic pomiędzy specjalizacjami. Na przykład, gdy budujemy oprogramowanie serwera WWW w Pythonie, którzy działa na chmurze, powinieneś wiedzieć jak budować narzędzia cloud-monitoringu oraz zarządzania (jeśli wolisz, można w Pythonie). Narzędzia te obejmują Amazon AWS SDK dla Pythona bądź oficjalnych klientów OpenStack, które także zapisane jest w Pythonie.

Jeśli chcesz zajmować się pracą w przemyśle naukowym musisz znać różne moduły naukowe oraz numeryczne wewnętrzne oraz zewnętrzne. W pracy związanej ze środowiskami o wysokiej wydajności ważne są umiejętności pisania algorytmów, wektoryzacji SIDM oraz programowania wielordzeniowego.

  • Me

    Python ma może fajną składnie i całkiem przyjemnie się w nim pisze, ale odnoszę wrażenie, że jest to wymierający język, że teraz to każdy się jara JSem, czy PHPem, Javą co widać po ofertach pracy, ilością wątków na stacku

  • Maq

    Autor niech najpierw nauczy się języka polskiego (w szczególności ortografii), a dopiero później zabiera się za Pythona.

    • Kolego, trafiłeś na zły serwis. Nauka poprawnej polszczyzny to nie tutaj.
      http://sjp.pwn.pl/zasady/Podstawowe-zasady-pisowni-polskiej;629297.html

      A po drugie gdybyś czytał uważnie to jest informacja w serwisie, że prosimy o kierowanie wszelkich uwag nie-merytorycznych ( w tym ortograficzne) na priv.

      Z góry dziękujemy 🙂

      • Jan Kowal

        Polska jenzyk trudna jenzyk.

        • Witaj Janie, z tego co można zauważyć to chodzisz po serwisach poświęconych IT i szukasz błędów ortograficznych. Nie tylko tutaj. Cenię Twój wkład w utrzymanie wysokiego poziomu poprawnej polszczyzny w internecie, serio. Byłbym jeszcze bardziej zobowiązany gdybyś pomógł nam pod tym kontem w przygotowywaniu treści. Tak się akurat podziało w życiu że Polski nie jest moim ani pierwszym ani drugim językiem na codzień. Jeżeli jesteś zainteresowany aby poświęcić nieco swojego czasu nie pozostaniemy dłużni 😉 zapraszam do kontaktu.