fbpx
ArtykułKariera w ITPoczątki programowaniaPythonZarobki

Python – nauka programowania od podstaw

Python jest jednym z najpopularniejszych języków programowania na świecie. Wielu mówi, że to najłatwiejszy język programowania! Istnieje wiele powodów, dla których warto uczyć się programowania w języku Python. Oto kilka z nich:

  • Python jest znany z czytelnej i przejrzystej składni, która przypomina język angielski. To sprawia, że jest on idealny zarówno dla początkujących, jak i doświadczonych programistów.
  • Python jest językiem ogólnego zastosowania. Można go wykorzystywać do tworzenia różnego rodzaju projektów, takich jak aplikacje webowe, gry, analiza danych, uczenie maszynowe, sztuczna inteligencja, automatyzacja zadań i wiele innych.
  • Python posiada jedną z największych społeczności programistycznych na świecie. Istnieje wiele dostępnych zasobów, takich jak dokumentacja, fora dyskusyjne, kursy online i biblioteki, które ułatwiają naukę i rozwijanie projektów.
  • Python działa na różnych platformach, takich jak Windows, macOS i różne dystrybucje Linuksa. Dzięki temu jest wygodny do tworzenia projektów, które mają być uruchamiane na różnych systemach.
  • Python posiada obszerną bibliotekę standardową, która zawiera wiele gotowych modułów do różnych zastosowań. Są to m.in. praca z plikami, sieciami, bazami danych i innymi.
  • Nauka programowania w Pythonie może pomóc w rozwijaniu umiejętności logicznego myślenia, rozwiązywania problemów i tworzenia efektywnych algorytmów, które mogą być użyteczne w różnych dziedzinach życia.

W skrócie Python jest świetnym językiem dla osób, które dopiero zaczynają swoją przygodę z programowaniem, a także dla tych, którzy chcą tworzyć zaawansowane projekty w różnych dziedzinach informatyki.

Jak wyglądają zarobki programistów Python?

W 2023 roku Python nadal utrzymuje swoją pozycję jako jeden z najpopularniejszych języków programowania, a zapotrzebowanie na programistów Pythona w Polsce wzrasta. Według badania Stack Overflow z 2022 roku Python był drugim najczęściej używanym językiem programowania przez respondentów.

Skoro są tacy rozrywani, to jak wyglądają zarobki programistów Pythona?

W przypadku umowy o pracę Junior Python Developer zarabia średnio 7 135 zł brutto. Mid zgarnia 15 474 zł brutto, a Senior 23 818 zł brutto.

Programiści Pythona, którzy pracują w ramach B2B, odnotowują na kontach wyższe wynagrodzenia. I tak: Junior Python Developer zarabia średnio 8 764 zł netto, Mid Python Developer 17 670 zł netto, a Senior Python Developer otrzymuje średnio 25 756 zł netto.

W jaki sposób możesz nauczyć się programowania?

1. Darmowe materiały. W sieci jest dostępnych mnóstwo źródeł, które oferują darmowy dostęp do informacji na temat Pythona. Możesz wybrać wideo na YouTube, czytanie blogów programistycznych, lub uczyć się z darmowych lekcji udostępnionych przez różne kursy online. Jest to oczywiście najbardziej czasochłonna ścieżka i wymaga bardzo dużo samodyscypliny.

2. Książki są tradycyjnym źródłem wiedzy i oferują strukturalne podejście do nauki Pythona. Istnieje wiele książek dla różnych poziomów zaawansowania, od początkujących po zaawansowanych programistów. Ta ścieżka również wymaga bardzo dużo samodyscypliny.

3. Kursy na żywo są prowadzone przez instruktorów i oferują interaktywne lekcje. Pozwalają one na zadawanie pytań i uzyskiwanie natychmiastowej odpowiedzi. Mogą być prowadzone osobiście lub online za pośrednictwem platform do nauki zdalnej. Ta ścieżka jest z reguły najbardziej kompleksowa i przystępna, ale dlatego jest też najdroższym rozwiązaniem, na które nie każdy może sobie pozwolić.

Kursy w infoShare Academy uczą nie tylko programowania, ale przede wszystkim uczą, jak być programistą! Przygotowują do pracy w zespole, w metodyce Scrum, a dodatkowo kończą się stworzeniem pierwszego projektu. A to już niezły wstęp do zbudowania świetnego repozytorium!

4. Kursy wideo to nagrane lekcje dostępne online, które można oglądać w dowolnym czasie. Kursy wideo często oferują strukturalny program nauczania i dostęp do dodatkowych materiałów, takich jak ćwiczenia i zadania praktyczne. Tej formie często towarzyszy wsparcie autora kursu, zestawy ćwiczeń i dobrze opracowany program.

5. Studia wyższe bardzo czasochłonna, ale zdecydowanie najbardziej kompleksowa ścieżka, która jest bardzo pozytywnie postrzegana przez pracodawców.

Nauka programowania to temat bardzo złożony, wymagający sporo zaangażowania. Wybór odpowiedniej formy nauki zależy od Twoich preferencji, poziomu zaawansowania i dostępności czasowej. Niezależnie od wybranej formy, ważna jest praktyka, czyli to, aby dużo kodować! I, co ważne, kodować samodzielnie 🙂 Regularne kodowanie i aktualizacja wiedzy to podstawa bycia dobrym programistą!

Na jakie książki o programowaniu do nauki Pythona warto zwrócić uwagę na początku drogi z programowaniem?

  • Cała seria „Head First” (Rusz głową!”). To seria książek poruszająca zagadnienia niezbędne do rozpoczęcia projektowania, programowania czy tworzenia aplikacji. Nauczysz się z nich nie tylko programowania w Pythonie, Javie czy C#, ale też statystyki, analityki, designu czy nawet Fizyki! Autorem książki o Pythonie z tej serii jest Paul Barry.

  • „Python instrukcje dla programisty” autorstwa Erica Matthesa.

  • „Automatyzacja nudnych zadań z Pythonem” autorstwa Alberta Sweigarta.

  • „Python dla każdego. Podstawy programowania” (e-book) autorstwa Michaela Dawsona.

Z książkami jest ten problem, że.od napisania do wydania książki mija sporo czasu. Jest kwestia wydawnictwa, tłumaczenia i podobnych tematów. Zanim ona się ukaże, często już wchodzi nowe rozwiązanie, np. technologia, nowsza wersja np. Pythona. Książki warto kupować na bieżąco, ale i tak nie mamy gwarancji, że dostaniemy najświeższą wiedzę.

Z książek jak najbardziej możemy nauczyć się podstaw, teorii. Ważne, aby w tej książce były praktyczne przykłady i zadania. I warto te zadania robić! Bo najwięcej nauczymy się, pisząc po prostu kolejne linijki kodu. Trening czyni mistrza!

Czy w Polsce jest duże zapotrzebowanie na programistów Pythona?

Zapotrzebowanie na programistów Pythona rośnie wraz z rozwojem technologii i cyfryzacji. Coraz więcej firm decyduje się na zatrudnienie programistów z umiejętnościami w Pythonie, a także na korzystanie z narzędzi i bibliotek dostępnych dla tego języka.

Co więcej, według różnych źródeł, programiści znający Pythona należą do jednych z najlepiej opłacanych na rynku pracy. Średnie wynagrodzenie Junior Python Developera w Polsce wynosi około 7-10 tysięcy złotych brutto.

Rozwój technologii i innowacyjnych rozwiązań w dziedzinie programowania rozwija się bardzo dynamicznie, a Python z pewnością odgrywa w tym ważną rolę. Z racji swojej popularności i wszechstronności, Python jest używany w wielu branżach, a jego rola w dzisiejszym świecie jest coraz większa. Mnóstwo firm i instytucji korzysta z Pythona, a zastosowania tego języka są bardzo szerokie – od analizy danych, poprzez sztuczną inteligencję, po tworzenie aplikacji webowych i gier. Python jest przy tym jednym z najłatwiejszych języków do nauki, co przyczynia się do jego popularności wśród początkujących programistów.

Raporty JustJoinIT czy No Fluff Jobs jasno pokazują, że zapotrzebowanie na programistów Pythona nadal jest. W ostatnim czasie pandemia trochę zachwiała rynek pracy. Część firm wstrzymała rekrutacje, część ma ich nawet więcej, niż miała do tej pory. Jak możecie przeczytać w „2023 Developer Survey” na Stack Overflow Python jest ciągle na czasie i nie wygląda na to, żeby w najbliższym czasie miało się to zmienić.

Czy po kursie z Pythona można zostać programistą C++, mając już podstawową wiedzę na temat programowania w C++?

Jeśli przejdziesz darmowy kurs, dowiesz się, na czym polega programowanie, opanujesz podstawy programowania w Pythonie. 

Na kursie „Python: Początek” poznasz dodatkowe koncepty takie jak programowanie obiektowe i pójdziesz krok dalej w kierunku profesjonalnej nauki programowania w Pythonie. I przeniesienie tych umiejętności programistycznych na grunt C++, to będzie kwestia zrobienia sobie mappingu. C++ znajduje się zdecydowanie niżej, jeśli chodzi o poziom abstrakcji, niż Python. Możesz sobie zmapować poszczególne koncepty „Aha, w Pythonie mogę to sobie tak wypisać, a w C++ zamiast >printa< muszę to wypisać inaczej”; „W Pythonie mam taką listę, a w C++ muszę napisać trochę więcej kodu, żeby to mieć”.

Pewne mechanizmy, takie jak na przykład pętla będą wyglądać inaczej. W C++ będą występować nowe koncepty, których nie ma w Pythonie. Na przykład zarządzanie pamięcią, programiści nie muszą się tym zajmować w Pythonie, a C++ trzeba to zrobić ręcznie.

Na poziomie szkolnym nie powinno to sprawiać większych trudności. Jeśli w szkole zostanie to wytłumaczone, to na kursie będzie zdecydowanie łatwiej przejść z jednego języka na drugi. I w drugą stronę: po kursie wszystko będzie jasne i ten przeskok nie będzie zbyt spektakularny, więc z tej lekcji będzie można zdecydowanie więcej wyciągnąć.

Czy osoba 50+ ma szanse znaleźć pracę jako programista?

Jak najbardziej! Przy rekrutacjach wiek nie jest żadnym kryterium – ani w jedną, ani w drugą stronę. Najważniejsze jest doświadczenie i umiejętności oraz to, jak kandydat zaprezentuje się w trakcie rozmowy kwalifikacyjnej. To, czy kandydat na 20, czy 50 lat nie powinno mieć żadnego znaczenia. Jeśli w zadaniu rekrutacyjnym pokaże, czy i na jakim poziomie potrafi kodować, jak radzi sobie z błędami w kodzie i jak dba o higienę pracy, to jest to coś, na podstawie czego zostanie oceniony i wybrany  bądź nie.

Czy matematyka pomaga w programowaniu?

Odpowiedź dyplomatyczna: to zależy. Programowanie często nie wymaga szczegółowej znajomości matematyki, ale są rzeczy, których programowanie będzie takich umiejętności wymagało.

Gdzie jest wymagana znajomość matematyki? 

  • Jeżeli tworzymy programy związane z grafiką, czy grami, to tam będą występować na przykład przekształcenia matematyczne. 
  • Jeżeli w ogóle robimy jakieś obliczenia matematyczne, takie jak na przykład modele, to tam również potrzebujemy matematyki.
  • Jeżeli robimy aplikacje biznesowe, sklepy internetowe, czy aplikacje internetowe, to tam znajomość zaawansowanej matematyki nie jest potrzebna. Oczywiście zakładając, że nie jest to dziedzina stricte matematyczna. Na szczęście zdecydowana większość tworzonych aplikacji na świecie, to aplikacje właśnie tego typu.

To, co jest KONIECZNE w programowaniu, to ABSTRAKCYJNE I LOGICZNE MYŚLENIE. Cenna jest też umiejętność planowania i, wyobrażenia sobie ciągu przyczynowo-skutkowego swoich działań. A wśród pożądanych cech charakteru należy wymienić:

  • dokładność (a nawet pedantyczność!), bo precyzyjnie napisany kod, to zdecydowanie mniej błędów,
  • ciekawość, umiejętność szukania rozwiązań i korzystania z “gotowców” – nie ma sensu wymyślać koła na nowo,
  • cierpliwość i dyscyplina, niezniechęcanie się, jeśli natrafi się na błędy,
  • umiejętność pracy w zespole, bo rzadko kiedy programista działa w pojedynkę. Często jest częścią większego zespołu, który musi współpracować, aby projekt był dobry, a klient był zadowolony 🙂

Te elementy też się pojawiają w matematyce, bo przecież matematyka to bardzo obszerna dziedzina nauki. Znajomość matematyki nie przeszkadza w programowaniu, wręcz często pomaga, ale nie jest wymagana w stopniu zaawansowanym. Matematyka uczy tego logicznego myślenia, bez którego trudno jest programować. Wielu wybitnych programistów, czy to w szkole, czy to na studiach, nie było wybitnych z matematyki, a nie przeszkodziło im to w zostaniu świetnymi specjalistami.

W Pythona wbudowanych jest wiele bibliotek, narzędzi, które za nas wykonują sporą część matematyki i to mocno ułatwia programowanie akurat w Pythonie. Jeśli tworzymy program, w którym jakaś część będzie wymagała bardziej zaawansowanych obliczeń i jest to coś standardowego, to wystarczy zaimportować odpowiedni pakiet. Nie trzeba się w to głęboko wgryzać, wystarczy ogólnie zrozumieć, o co chodzi. W standardowych rzeczach, które są popularne, to już tak jest, że ktoś je rozkminił, wymyślił, przygotował, zrobił fajną, gotową implementację i udostępnił jako open source. My możemy z tego po prostu skorzystać.

Czy znajomość Pythona pomaga w pracy testera?

Jeżeli myślimy o testowaniu automatycznym, czyli pisaniu automatycznych scenariuszy czy skryptów testowych, to w Pythonie mamy różne biblioteki, jak na przykład framework BEHAVE ze składnią Gherkina, w którym możemy sobie pisać scenariusze testowe. W tym języku, w składni Gherkina given-when-then będą one zrozumiałe nawet dla udziałowców biznesowych. Dzięki temu możemy sobie te testy implementować, a pod spodem będziemy mieć na przykład Selenium. To platforma testowa dla aplikacji internetowych, która będzie nam klikać i robić testy automatyczne naszej aplikacji. 

Ze standardowych narzędzi mamy Pytest (test runner, który jest w Pythonie). Posiada on sporo fajnych pluginów, na bazie których można tworzyć bardziej zaawansowane scenariusze. Oczywiście możemy też stworzyć własne pluginy, ale nic nie stoi na przeszkodzie, żeby korzystać z tych już istniejących.

Python jest takim językiem programowania, w którym bardzo szybko możemy sobie tworzyć takie skrypty i działają one na dość wysokim poziomie. Przydaje się to w sytuacjach, gdy mamy system zrobiony w zupełnie innej technologii, a my tworzymy dla niego framework testowy w Pythonie, który będzie nam to oprogramowanie testował. Jest to zajęcie dla testerów automatycznych.

Jeśli tester manualny chce się nauczyć Pythona, to będzie to miało sens w kontekście zrozumienia, jak to oprogramowanie działa „pod spodem”. Jeśli testujemy aplikacje, które są napisane w Pythonie, to znajomość tego języka pomoże w zrozumieniu, skąd te błędy mogą się brać. W każdej chwili można sobie zajrzeć do kodu, bo tam jest wszystko zapisane – „use the force, read the source”.

Ciekawostka o Pythonie 🙂

Czy przy rekrutacji ma znaczenie duża liczba własnych projektów?

Raczej tak. Jeżeli na rozmowę rekrutacyjną, zgłasza się osoba, która ma w swoim CV link do repozytorium, to rekruter powinien się z tym repozytorium zapoznać. Patrząc na kod od razu widać, na jakim poziomie jest kandydat i czego można się po nim spodziewać. Więc jest to bardzo ważny punkt odniesienia, na którym rekruter może bazować.

Zrobione projekty to jest coś konkretnego, to coś, czym można się pochwalić i co otwiera drzwi do merytorycznej dyskusji. Dużo łatwiej jest o czymś rozmawiać, jeśli można odnieść się do swojego doświadczenia.

Dodatkowo, nawet, jak kandydat jest juniorem, takim, który dopiero co ukończył kurs programowania, to też ma szansę „wygrać” rekrutację z kimś bardziej doświadczonym. Warto aktualizować swojego GitHuba, regularnie dodawać nowy kod. Dzięki temu widać, że osoba się rozwija, idzie do przodu, ma pasję i jest mocno zaangażowana. Rekruter wtedy widzi ten rozwój. Widzi, co dana osoba robiła zaraz po kursie, co robiła miesiąc po i co robi teraz. Zadbanie o repozytorium może być kluczem do zdobycia tej wymarzonej pracy.

Tak że jeżeli nawet będziecie przerabiali przykłady z kursu, czy próbowali pisać własne projekty, własne aplikacje, to wrzucajcie to wszystko na GitHuba publicznie. To będzie taki Wasz programistyczny pamiętnik. To jest szalenie istotne, żebyście mieli do tego dostęp. Nie wstydzić się tych pierwszych małych rzeczy. Każdy od czegoś zaczyna, a mając wszystkie projekty w jednym miejscu, możecie na bieżąco oceniać swój postęp.

Jak długo trwa nauka programowania w języku Python?

Całe życie! Wszystko zależy od tego, do jakiego stopnia chcemy się tego Pythona nauczyć. Jeśli chcemy robić proste, ale użyteczne skrypty, to możemy to robić nawet po podstawowym kursie, jak na przykład kurs programowania PythON: zrozumieć programowanie.

Żebyśmy mieli już solidne podstawy jakiejś koncepcji programistycznej, to mamy następną część kursu PythON: Początek.

Oczywiście samo obejrzenie lekcji i zrobienie zadań, to jedno. Ale trzeba też poświęcić trochę czasu na pracę własną, bo jak wiemy, to praktyka czyni mistrza. Im więcej ćwiczymy, tym lepiej będziemy programować.

Ważna rzecz:  Python jest napisany w różnych językach. Na przykład standardowa implementacja Pythona jest napisana w C, więc ten język programowania jest napisany w innym języku programowania!

Można być takim specjalistą Pythona, który dokładnie wie, co w samym Pythonie siedzi. Oczywiście zazwyczaj to nie będzie potrzebne. Częściej będziemy iść w kierunku zrozumienia, jakie są przydatne technologie i narzędzia do tego Pythona. Będziemy poznawali różnego rodzaju frameworki i biblioteki i będziemy się w tym obszarze rozwijać. Temat jest bardzo szeroki i wszystko zależy od tego, w jakim kierunku chcemy iść.

Jaka technologia będzie najlepsza jako pierwsza dodatkowa? Lepiej zacząć naukę frameworków czy np. baz danych, żeby najlepiej komplementować podstawy Pythona.

To zależy od tego co chcesz robić. Jeżeli chodzi o web development, to można zacząć uczyć się trochę jednego i drugiego. Mając podstawy programowania, to na początku warto iść „płasko”, to znaczy: wziąć sobie jakiś framework np. Django (jego plusem jest ogromna liczba dokumentacji i przykładów) i jednocześnie zacząć pracę z bazą danych. Frameworki webowe są nierozerwalnie związane z bazami danych. Sprawdzić, jak ten SQL wygląda, o co w nim chodzi, co to jest tabela itp.

Więc na początku warto iść szeroko, płasko. Warto zrozumieć po trochu z każdej części, żeby móc się potem w nią zagłębiać. Nie będziemy dobrymi programistami webowymi i tak naprawdę nie stworzymy realnej aplikacji webowej, jeżeli nie będziemy znać jakiegoś frameworka webowego i jakiejś bazy danych i tego, jak te dane modelować.

Czy można w Pythonie wykonywać tylko wybrane fragmenty kodu bez konieczności wykonania całego kodu w danym projekcie tak jak np. w R?

Możemy sobie otworzyć jakąś interaktywną konsolę i tam odpalić kawałek kodu. Co więcej, możemy sobie zaimportować jakąś funkcję, którą napisaliśmy i tylko tę funkcję uruchomić. Tak więc możemy uruchamiać fragmenty kodu, nie musimy odpalać całego projektu. Czyli możemy sobie niejako z boku zaimplementować jeden plik i go uruchomić. Ten plik może wykonywać jakiś kawałek kodu, może używać jakiejś funkcji. Na przykład mamy 30 plików w naszym projekcie i tworzymy sobie jeden dodatkowy tylko na testy. I w nim sobie to uruchamiamy.

W ogóle pisanie testów to jest dokładnie coś takiego. Jak piszemy test jednostkowy, to on nam uruchamia fragment kodu i możemy sobie od razu w łatwy sposób sprawdzić błędy.

Na jakim poziomie wymagana znajomość języka angielskiego, by móc pracować jako programista?

Do samego programowania warto znać podstawowe słowa, a w razie czego zawsze można wspomóc się translatorem. Technicznie możemy pisać w Pythonie po polsku czy w jakimś dowolnym innym języku. Te kluczowe słowa jak „if” są po angielsku, ale już zmienne mogą być po polsku.

Jednak ogólne założenie jest takie, że piszemy po angielsku. Jeśli chcemy pracować w branży, to obowiązkowo musimy rozumieć te angielskie słowa, których używamy. Ale ważne jest też to, by rozumieć dokumentację, która jest zazwyczaj pisana w języku angielskim. No programista często pracuje z klientami zagranicznymi, więc warto posługiwać się tym angielskim na poziomie  komunikatywnym.

Czy w programowaniu więcej zależy od tego, czy program spełnia wymagania jakiejś konkretnej specyfikacji, czy od tego, co się komuś podoba?

Trzeba pamiętać, że jednak pracujemy z ludźmi. Zdarzają się sytuacje, gdy klient nie do końca wie, czego chce i jak to ma wyglądać. Na szczęście często pracujemy w większych zespołach i zazwyczaj firmy mają pewne procedury, które ograniczają wpływy „widzimisiów” klientów. Jasno określają one nasze obowiązki, nasz zakres pracy.

Mamy wtedy jakąś specyfikację, do której można się w każdej chwili odnieść. Możemy zweryfikować to, co zostało stworzone i czy nie odbiega od wcześniejszych założeń. Otrzymując specyfikację projektu, musimy go zrozumieć, ocenić realność jego wykonania i dopytać, jeśli czegoś nam brakuje. Następnie naszym zadaniem jest to wykonać. My powinniśmy wiedzieć, jakich technologii mamy użyć, z jakich bibliotek skorzystać. Mamy wiedzieć też jak zaimplementować procesy biznesowe, żeby to działało i spełniało oczekiwania klienta.

Tu jest taki specyficzny obszar twórczy, bo mamy zrozumieć te oczekiwania klienta i je spełnić. Ale na końcu mamy konkretny projekt, który ma coś robić. Jeśli klient chce coś dodatkowego, to po prostu powinien nas o tym poinformować i uzgodnić z nami dalsze kroki.

Podsumowanie

O Pythonie można pisać długo. Jest to język bardzo rozbudowany, bogaty w biblioteki, frameworki. Tak, jak już zostało to wspomniane, można się go uczyć przez całe życie, a i tak nie zdąży się nauczyć wszystkiego. 

Jeśli zainteresowaliśmy Cię Pythonem, to śmiało sprawdzaj nasze kursy i zacznij przygodę z programowaniem. Pobierz informator o kursie, aby dowiedzieć się więcej.

Wpis powstał na podstawie rozmowy z trenerem infoShare Academy
Mikołajem Lewandowskim.

Back to top button