„Python to nowa Java!”
– przeczytałam kiedyś i to zdanie szczególnie utknęło mi w pamięci (zwłaszcza, że wtedy jeszcze nie do końca wiedziałam co autor miał na myśli 😉 ). Czemu akurat Java? Czemu nie nowy C++, albo nie nowy PHP – przecież też skryptowy i interpretowany?
Już śpieszę wyjaśniać – Java jest uznawana za uniwersalną, dobrą do nauki i „działa na wszystkich platformach”.
„Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.” – wise person.
— I Am Devloper (@iamdevloper) 25 września 2013
Może być wykorzystana do tworzenia aplikacji desktopowych, aplikacji mobilnych, gier, aplikacji webowych czy programowania urządzeń AGD. Miała być dobra dla każdego i do wszystkiego.
A jednak to Python jest zdecydowanie lepszym kandydatem na pierwszy język programowania.
Dlaczego Python?
Python jest uważany za najlepszy dla początkujących język do nauki programowania. Python jest bardzo wszechstronny. Możesz go używać zarówno do małych zadań jak i dużych projektów komercyjnych. Jest wykorzystywany w wielu różnych branżach — od bardziej powszechnych zastosowań w inżynierii oprogramowania, tworzenie aplikacji webowych po środowiska takie jak aplikacje biotechnologicznych (np. biopython), nauka o danych (data science), sztuczna inteligencja i uczenie maszynowe.
Poznaj 10 powodów, dla których warto nauczyć się Pythona
1. Python jest prosty!
Czy python jest trudny? Albo jak wypada na tle innych języków? Słuszne pytanie, bo python jest jednym z najbardziej przystępnych języków programowania! Łatwy w nauce, ma prostą, wręcz intuicyjną składnię (najprościej mówiąc to sposób zapisu poleceń rozumianych przez komputer za pomocą danego języka programowania).
Składnia przypomina elementy z „prawdziwego życia”. Słowa kluczowe są więc zrozumiałe dla każdego początkującego, a jednocześnie bardzo bliskie tym występującym w innych językach programowania (dlatego późniejsza „przesiadka” jest prostsza).
Gdy wymieniamy listę rzeczy do wykonania często robimy to z pomocą dwukropka i używając wcięć, tak samo jak wydajemy polecenia Pythonowi w blokach kodu. Przy okazji niejako wymusza w nas naukę dobrych nawyków robienia wcięć w kodzie, dzięki czemu kod w Pythonie jest ładny, czytelny i przejrzysty.
Pierwszy program wyświetlający napis „Hello World”
Java:
public class Main {
public static void main(String[] args) {
System.out.println("hello world");
}
}
Python:
print("hello world")
Zostawiam do oceny indywidualnej 😉 Jeśli masz już zainstalowanego Pythona sprawdź w konsoli import this
, wszystko co przyświeca programowaniu w Pythonie w 19 wersach 😛
2. Python jest szybki
I nie, nie podejmuję szybkości jako tematu porównania Pythona do innych języków programowania, zaraz będą jęki, że przecież są szybsze. Jest szybki na tle języków interpretowanych, ale nie to jest ważne dla osoby początkującej.
Jest szybki w nauce i dostępny od ręki.
Instalujesz Pythona i już od razu możesz siadać do pisania swojego kodu. Uruchamiasz konsolę, wpisujesz python i już wita Cię znak zachęty (>>>) „wpisz coś, wypróbuj mnie no dalej!”. Żadnego czytania o wyborze programu, środowiska, wersjach kompilatora.
Nie chcesz instalować Pythona, ale wypróbować swoich sił w konsoli? Proszę bardzo: Python shell online czy repl.it.
Powyższy gif też trafia tu nie przez przypadek. Mr. Robot to świetny serial o hakerach zawierający w sobie dużą porcję branży IT. Jednocześnie nie został zrobiony po łebkach jak w większości tego typu produkcji. Możemy znaleźć w nim całkiem sporo narzędzi z dziedziny cyberbezpieczeństwa. Też nie przypadkowo pojawia się na ekranie szybkie wklepywanie kodu w Pythonie prosto w konsoli czy plik fuxsocy.py użyty przez Darlyn.
Tworzenie testów penetracyjnych w Jave – okey, ale jak wyglądałoby hakowanie czegokolwiek w czasie rzeczywistym. Scena z Mr. Robot, FBI krąży po korytarzu „no poczekaj, tylko to skompiluję”.
3. Python jest wydajny
Praca z Big Data (zarówno w zbieraniu danych, jak ich analizie, przetwarzaniu, wykorzystaniu) jest przyszłością. Im więcej danych musisz przetworzyć, tym ważniejsze staje się zarządzanie zużywanymi zasobami i wydajność kodu.
Python udostępnia generatory zarówno jako wyrażenia, jak i funkcje. Generatory pozwalają na iteracyjne przetwarzanie danych – element po elemencie. Brzmi niezbyt atrakcyjnie, dopóki nie zauważysz, że „normalne” iteracyjne przetwarzanie danych wymaga listy. Lista zajmuje pamięć. Naprawdę duża lista zabiera bardzo dużo pamięci. Generatory umożliwiają pobieranie danych ze źródła po jednym elemencie i przekazywanie ich za pośrednictwem całego łańcucha przetwarzania omijając mechanizm związany z przechowywaniem iterowanej listy.
Nawet jeśli na chwilę obecną praca z dużymi danymi wydaje Ci się abstrakcją, pomyśl o wszystkich wyrażonych zgodach „na przetwarzanie danych osobowych”, marketingu, pracy naukowej czy nawet polityce (np. Donald Trump wygrał wybory, dzięki BigData).
4. Umiejętności zawodowe
Jest wiele języków służących do celów edukacyjnych takich jak Scratch czy Logo. Na pewno za ich pomocą można nauczyć się logiki programowania, część z nich trafia do szkół i to dobry trend. Niestety, nieważne jak zaawansowane rzeczy z ich pomocą stworzysz, nikt nie potraktuje tej umiejętności poważnie (chyba, że jesteś nauczycielem/nauczycielką i chcesz wprowadzić naukę programowania na swoich zajęciach 😉 ).
Dlatego sięgnij po Pythona! Łatwo go ugryźć i od razu mieć konkretną umiejętność zawodową – programowanie.
Jednak nie chcesz rozwijać się w Pythonie? Nie ma problemu, łatwo „zejdziesz niżej” do C, przeskoczysz na Ruby (składnia jest bardzo podobna) czy pójdziesz stronę frontendu prosto w ramiona JavaScript’u.
Integracja Pythona z innymi językami? Nie ma problemu.
Dodatkowe rozwiązania? Jest i to w wielu opcjach.
Jython czyli Python zaimplementowany w Javie – działa wszędzie, gdzie działa Java. IronPython, Python zaimplementowany w .Net.
5. Wynagrodzenie
Porozmawiajmy o pieniądzach. Nie jesteśmy na rozmowie rekrutacyjnej, więc bez owijania w bawełnę – główną przyczyną zmiany branży jest chęć zarabiania więcej, a kwoty jakie padają w IT robią wrażenie.
Python to aktualnie drugi najlepiej opłacany język w USA. Patrzymy na średnią roczną zarobków, znowu na to, że jest to język prosty w nauce i sprawa zaczyna się klarować.
źródło: codementor.io
Mimo, że te statystyki wciąż nie pokrywają się z trendami w Polsce to programiści Pythona na zarobki narzekać nie mogą. Biorąc pod uwagę, że moda lubi do nas przychodzić „z zachodu” to wróżę im tylko lepszą przyszłość.
6. Pracy nie zabraknie
Skoro było o pieniądzach to warto też zwrócić uwagę na wszystkie możliwości jakie daje Python w pracy. Właściwie możesz w nim napisać wszystko co się marzy i jednocześnie w każdej dziedzinie znajdziesz dla siebie ofertę zatrudnienia. Z roku na rok zapotrzebowanie na specjalistów Pythona rośnie. W tym roku programiści Pythona są w top 3 najbardziej rozchwytywanych.
źródło: codingdojo.com
7. Możliwości
Powiedziałam, że możesz wykorzystać go do wszystkiego, więc czas na przykłady.
- Arduino czy Raspberry Pi – na jednym i na drugim możesz programować w Pythonie, dużo zabawy, ogrom możliwości. Projekty DIY są łatwo dostępne na youtubie i dają wiele satysfakcji.
- Cybersecurity – ethical hacking, testy penetracyjne, analizy systemów bezpieczeństwa, a także rozwój oprogramowania, to zadania, które możesz wykonywać z Pythonem jako spec od bezpieczeństwa
- IoT – znany również jako Internet rzeczy, inteligentne domy. Właściwie, dlaczego samodzielnie nie sprawić sobie kilku gadżetów w domu lub pracować przy tym zawodowo?
- Marketing – wyciąganie i analiza informacji o użytkownikach z danych własnych czy za pomocą API Facebooka, Google, Twittera, lepsze targetowanie reklamy
- Nauka – obróbka danych zarówno na poziomie matematycznym, statystycznym, wyciąganie części informatywnych z wyników eksperymentów laboratoryjnych, z dziedziny genomiki, chemii, geoinformacji itp.
- QA – testowanie oprogramowani, testy automatyczne, debugowanie, wszędzie gdzie można z lenistwa napisać kod, który robi testy za testera
- Statystyka – Python to jeden z najczęściej wymaganych języków na stanowiska Data Scientist
- Uczenie maszynowe i AI – tematy ściśle zwiazane z przetwarzaniem ogromnych ilości danych, ponoć Python jest przyszłością Machine Learningu
- Web development – backend bardziej wydajny niż popularny PHP do tego przyspieszające pracę frameworki np. Django czy Flask
Wiele wiele innych, które tylko wpadną nam do głowy. Nawet w branży gier, która niekoniecznie jest w pierwszym momencie kojarzona z Pythonem, znajdzie się odpowiednie stanowisko (gameplay programmer).
8. Python III Potężny
Prosty, czyli niewiele da się z nim dalej zrobić. W żadnym wypadku!
Python ma różne zastosowanie. „Python has a power”, dlatego takie firmy, jak Google, Dropbox, Spotify czy Netflix używają go w swoich aplikacjach.
Dropbox
Dropbox jest w całości napisany w Pythonie, co zapewnia mu zgodność z każdym systemem operacyjnym. Ma około 400 milionów użytkowników i dla wielu z nich jest jedną z pierwszych aplikacji instalowanych na komputerze. Nie tylko aplikacja desktopowa, ale również kod po stronie serwera Dropbox’a jest w języku Python.
Google wykorzystuje ogrom technologii, w tym C ++, Python, a teraz także język Go. Ponoć w Google padło zdanie „Python, gdzie możemy. C + +, gdzie musimy.”
Spotify i Netfilx
Podobnie jak Google, Spotify i Netflix korzystają z różnych języków.
Spotify wykorzystuje głównie Javę, ale korzysta z Pythona to takich rzeczy jak ich Web API. Spotify korzysta również z Pythona do analizy danych, niekoniecznie związanych tylko z użytkownikami (system odzyskiwania serwera DNS, system płatności i system zarządzania treścią).
Netflix wykorzystuje mieszankę Javy, Scali i Pythona, jednocześnie daje programistom autonomię wyboru języka, który najlepiej pasuje do napotkanego problemu. Gdzie szukać Pythona? W grupie analitycznej i do obsługi wydarzeń w czasie rzeczywistym.
Gdzie jeszcze jest używany Python?
Facebook, Instagram, Yahoo, Quora, Pinterest, Disqus.
9. Rozszerzenia
Python uczy stylu programowania opartego o obiektowość (nie jest to opcja, tu wszystko jest obiektem). To z kolei pozwala na szybsze i łatwiejsze tworzenie wielomodułowych aplikacji, co za tym idzie także dzielenie kodu w zespole projektowym.
Tworzenie własnych modułów z dowolnego kodu jest „super proste”. W innym pliku pobieramy nasz moduł przez „import moduł” i koniec, gotowe.
Co więcej mamy do dyspozycji pełno gotowych modułów i bibliotek, które przyspieszają pisanie kodu np. tworzenie GUI (PySide, PyQt, PyGTK), obliczeń matematycznych (NumPy, SciPy, mathplotlib), budowy aplikacji sieciowych (Django, Flask), tworzenia gier (PyGame) itd.;
10. Materiały i społeczność
W Pythonie z łatwością znajdziecie niemało materiałów do nauki, co prawda głównie po angielsku. Dokumentacja języka jest bogata i bardzo przejrzyście napisana. Jeśli chodzi o książki (tutaj znajdziesz zestawienie książek do Pythona) – nie dezaktualizują się tak szybko, jak w przypadku technologii webowych (chociaż ostrożnie polecam książki, raczej do tematów z wąskich dziedzin, gdzie znalezienie kompletnych informacji w Internecie jest po prostu trudne).
Dla osób początkujących ważne jest wsparcie. Python ma aktywną społeczność, także polską (liczne wydarzenia, grupy na fb takie jak Python Poland, Python: Pierwsze kroki, Python szukam pracy, także moja grupa – Python: nauka) czy „damską” PyLadies, PyCode Carrots, Django Girls.
Podsumowanie
To jest moje 10 powodów, dla których warto uczyć się Pythona a na pewno znalazło by się więcej 😉 Jeśli udało mi się przekonać Cię do Pythona to zapraszam dalej. Tutaj znajdziesz instalację i pierwsze kroki w Pythonie zupełnie za darmo.
Tutaj polecam: Książki do nauki Pythona
Jeśli spodobał Ci się wpis, o czymś zapomniałam lub masz inny powód, dla którego warto uczyć się Pythona zostaw po sobie komentarz 🙂
Ok zachęciłaś, fajnie, że wszystko łatwe i proste, ALE.. najpierw trzeba to wszystko poznać i nauczyć się. I tu pojawia się pytanie: jak najlepiej? Kursy online mam wrażenie, że to tylko podstawy podstaw, a prawdziwa zabawa jest gdzieś hen daleko. Jak tam dotrzeć? Co po czym? Jaka kolejność? No może głupie pytania, ale to co w samodzielnej nauce jest najgorsze to właśnie to szukanie tego co się trzeba nauczyć i ubranie tego w jakiś sensowny porządek. To takie myśli na myśli po tym inspirującym wpisie 🙂
No zachęciłaś mnie no.. 🙂 dzięki! 🙂
Wszystko super, nie Ty jedna zachęcasz, że na Pythonie zarabia się miliony, spełnia marzenia i osiąga sukces. Tylko jak ktoś ma 35+ i od dziecka siedzi w Adminowaniu, tu ma doświadczenie, wiedzę i portfolio, to samo nauczenie się języka nic nie da. Bo na każdej rozmowie o pracę padnie pytanie: „Ok. zna Pan metody, struktury i funkcje. Super. Sam się Pan nauczył-szacun. Ale proszę mi powiedzieć, jakie jest Pana portfolio i czy pisał Pan jakieś PenTesty dla dużych środowisk produkcyjnych, czy pisał Pan jakieś skrypty na 1000+ serwerów w DataCenter, czy może Pan pochwalić się jakimś fajnym projektem dla dużej korporacji?”. I tu pojawia się miejsce na sznurek i drzewo. Bo kto przyjmie człowieka, który sam się nauczył języka, ale ma prawie 40 lat i 0 doświadczenia z programowaniem w dużych środowiskach na jakieś wyższe stanowisko? Mało tego, nikt nie doceni, że człowiek ten ma doświadczenie w administracji (zna systemy i sieci), bo są studenci, którzy też raczkują w Pythonie, a zadowolą się 3,5k na rękę, a braki w systemach itp.? Kto na to patrzy, co widać zresztą po jakości kodu w wielu, wielu programach/systemach. Takie są realia, niestety.
Na wyższe stanowisko nikogo w żadnej branży nie przyjmuje bez doświadczenia. Jeśli od dziecka ktoś siedzi jak napisałeś „w adminowaniu”, nie musi z dnia na dzień rzucać wszystkiego, prawdopodobnie ma wokół siebie jakąś rzeczywistość i doświadczenia. Za pomocą Pythona można w codziennej pracy wprowadzić automatyzację ( to może być pomocna lektura: https://goo.gl/9IRyzc ), myślę, że mając takie doświadczenie znajdziesz wiele zastosowań Pythona.
3,5k na rękę to więcej niż średnia krajowa, więc całkiem nieźle na start od zera (studenci takich kwot na starcie nie dostają), jednak znając branżę IT bardzo wątpię w to co napisałeś „nikt nie doceni, że człowiek ten ma doświadczenie w administracji (zna systemy i sieci)”. Aktualnie doświadczenie to jedyne co się liczy. Jeśli pracujesz, a Pythona zaczniesz używać np. do pisania skrytpów automatyzujących etc, gwarantuję Ci, że to będzie realne doświadczenie w obszarze, w którym prawdopodobnie i tak chcesz się dalej rozwijać.
Może po prostu spróbuj, zamiast na starcie martwić się ile Ci zaproponują ze znajomością Pythona i doświadczeniem w pokrewnym temacie.
Czasem trzeba zrobić krok do tyłu, by zrobić dwa naprzód.
Dlatego ja dałem sobie z tym spokój i biorę się z Unity by spełniać marzenia z dzieciństwa i tworzyć mini gierki dla własnej satysfakcji 😀
i bardzo fajnie! trzymam kciuki!
dziękuję 🙂
Ooo! W takim razie chyba powinnam się nauczyć.
Już gdzieś o nim słyszałam.
Pozdrawiam i życzę udanego, dłuższego weekendu 🙂
Z perspektywy osoby niezwiązanej w żaden sposób z informatyką – miło było się dowiedzieć o jego istnieniu 😉
> „Python to nowa Java!”
Przecie Python powstał wcześniej niż Java.
Wpisałem w Googla „Dlaczego Python?” i wyskoczył mi ten link. Bardzo dobry artykuł. Zabieram się więc za Montiego 😉
Gdzieś od czasu zakończenia technikum informatycznego, jakoś cały zapał ze mnie uleciał. Znalazłem Twojego bloga kilka dni temu, odświeżam to co pamiętam, przyswajam to co nowe, robię swoje skróty myślowe w zeszycie. Super się czyta, wszystko ładnie, przejrzyście i zrozumiale napisane. Pozdrawiam !
Przekonałaś. Zresztą wyglądasz tak, że wierze we wszystko co powiesz 😉
Zastanawiałem się pomiędzy C++ lub Java, ale, że już do 40stki bliżej jak dalej, to trzeba się w końcu zdecydować. Ciekaw jestem jak wygląda sprawa pythona w arduino, bo programowaniem mikrokontrolerów też w jakimś stopniu chciałbym się zająć by podnieść swoje kwalifikacje zawodowe w obecnym miejscu pracy. No cóż, dzieci śpią, żona na siłowni (swoją drogą coś długo nie wraca) pora się zabrać za zgłębianie węża. Pozdrawiam, będę tu częściej zaglądał.
W arduino chuba c++, python w raspberry pi
nie ma znaczenia zarówno na arduino jak i malince można pisać w pythonie i na odwrót 😉
Ok ale w pierwszym akapicie wrzucasz twitta gdzie jest wyśmiane to rzekome działanie javy wszędzie.
ale to jest ironia 🙂 mnie trochę bawi, Java jest nadal dobra na start. Ma znacznie cięższą składnię niż Python, ma swoje za uszami, ale nikt nie mówi, że jest zła 😛
Python też nie jest idealny, nie ma języka na wszystkie problemy i każdy na upartego można używać wszędzie, chociaż wcale nie zawsze jest to opłacalne. Ktoś kto chce się rozwijać w game devie nie zostanie długo w Pythonie, to samo w przypadku aplikacji mobilnych Java czy Kotlin dla początkujących będą lepsze na start.
Python jest super, żeby zrozumiec programowanie + można dalej zostać w Pythonie lub poszukać szczęścia w innych językach.
Python to fajna sprawa, ale porównywanie długości kodu na podstawie Hello world jest mega słabe.
np.
x = 5
Python:
print(„Flynerd istnieje” + str(int(x)) + ” lat”)
Kotlin:
print(„Flynerd istnieje $x lat”)
:))) ALe oczywiście, python jest dużo prostszy niż Java itp
a f-string?
print(f’Flynerd instnieje {x} lat.’)
Bardzo treściwy i konkretny opis nauki jezyka Python. Zacheciło mnie to !!!
Świetny materiał, dziękuję Ci, przekonałeś mnie 🙂 Tu mnie zwłaszcza interesuje zastosowanie Pythona w AI. Pozdrawiam. Marta
Super pomocny artykuł! Natknęłam się gdzieś na stwierdzenie, że przy nauce programowania warto mieć cel poza zawodowy, związany z tym, żeby czuć z tej nauki fun. I u Ciebie znalazłam inspirację – IoT -> trochę 'podrasuję’ swoje mieszkanie. Dzięki 🙂
Ciekawy wpis. Dziekuje. Zachęciłaś mnie do nauki.
Super! Ja od kilku dni wróciłem do nauki właśnie z Pythonem. Wcześniej próbowałem m. in. js bo celowałem we frontend. Python wydaje się bardzo intuicyjny i prosty, dokładnie jak piszesz. Nie wiedziałem, że ma aż tyle zastosowań. Zastanawiam się tylko w którą stronę pójść dalej ale może uda znaleźć mi się odpowiedź u Ciebie 🙂
Ciekawy artykuł.
Python jest świetnym językiem programowania dla data scientist.