Lekcja 15 - literatura czyli co dalej po kursie (notatki)

Literatura
- Robust Python : write clean and maintainable code / Patrick Viafore, 2022. - warto sięgnąć, ale dla średniozaawansowanych.
- The Big Book of Small Python Projects, dostępne online.
- Misja Python : utwórz swoją kosmiczną grę! / Sean McManus ; przekład Natalia Chounlamany-Turalska na zlecenie Witkom Witold Sikorski - do wypożyczenia w BUWr, (podobnie jak 88 innych - link)
- Python dla dzieci : programowanie na wesoło / Jason R. Briggs ; przekład Piotr Fabijański na zlecenie WITKOM Witold Sikorski - do wypożyczenia w BUWr
- Python : instrukcje dla programisty / Eric Matthes ; przekład Robert Górczyński - dostępne w MBP we Wrocławiu (podobnie jak 135 innych)
Zestawy książek dotyczących Pythona można znaleźć także do kupienia w pakietach na https://www.humblebundle.com/ oraz https://www.fanatical.com/en/.
Kursy
Spośród kursów online poleca się: 100 Days of Code: The Complete Python Pro Bootcamp na Udemy. Darmowe kursy znaleźć można także na:
- https://www.geeksforgeeks.org/ (choć jakość materiałów jest rożna)
- YouTube, polecamy zwłaszcza kanał CS50, prowadzony przez informatyków na Harawdzie
- dokodu.it - czasem umieszcza kilka kursów za darmo.
- freeCodeCamp, prowadzony przez Beau Carnes (także na YT)
Kolejne zagadnienia
Czyli co warto by opanować następnie:
1) Bazy danych
Podstawy korzystania z baz danych można przećwiczyć np. w LibreOffice. Jednakże w pythonie poleca sie SQLite, bo nie wymaga uruchomienia jakiejś superaplikacji, wystarczy użycie biblioteki. PostgreSQL to z kolei najbardziej rozbudowana, darmowa baza danych. Dodatkiem do niego jest PostGIS (gdy trzeba przechowywać dane geograficzne). Są biblioteki, które zamieniają obiekty bazy danych na pythona np. SQL Alchemy i SQL Model.
2) Obsługa błędów
assert #przyjmij, że coś jest prawdą
try: #najpierw spróbujemy coś zrobić
except:
3) List/Dict comprehension
Do tej pory jak konstruowaliśmy listę to wpisywaliśmy lub konstruowaliśmy za pomocą pętli. Nie jest to jednak jedyny wariant
moja_lista_comp = [number for number in range(1,100) if not number %2]
4) Środowisko wirtualne Venv (ang. Virtual enviroment)
Środowiska wirtualne czyli środowisko wykonawcze dla danej aplikacji (umożliwia posiadanie innych pythonów i innych bibliotek, dostosowanych dla danej aplikacji). Python-Poetry zapewnia tworzenie środowisk oraz instalowanie bibliotek.
5) Pandas - dla inżynierów danych
6) Pandas i Numpy - dla analityków webowych
7) Framework
Do analizy danych poleca się Streamlita, którego poznaliśmy już na zajęciach, stworzone w nim aplikacje można za darmo opublikować na stronie streamlita. Jednak do większych projektów, niekoniecznie związanych z analizą danych, musimy skorzystać z innych frameworków. Największym i najbardziej znanym jest Django, ale nie jest polecany na start. Prostsze dla początkującego użytkownika będą Flask lub FastAPI.
8) Dekoratory
9) Context manager
10) System kontroli wersji (Git)
Wymaga opanowania licznych poleceń terminalowych i zrozumienia jak się wychodzi z konfliktów. Umożliwia każdemu członkowi zespołu pracę nad ustalonym blokiem kodu, który przechowywany jest w repozytorium np. githubie, gitlabie, gitea (gdy chcemy przechowywać na własnym serwerze).
Repozytoria dostępne online są o tyle ważne, że mogą stać się portfolio dla naszego potencjalnego pracodawcy.
Podstaw można się nauczyć grając w Oh MY Git! lub na stronie LearnGitBranch.
11) Konstrukcja:
def powitaj(imie:str) - > None:
print(f"Witaj {imie}!)
def main():
imie = input("Podaj imię: ")
powitaj(imie)
if __name __ == "__main__":
main()
#przydatne gdy importujemy biblioteki do pythona, zabezpiecza by się nie uruchamiały niepożądane rzeczy z zewnętrznego źródła.
- ARGH i KWARGS
Czasami byśmy chcieli, żeby nasza funkcja przyjmowała wiele argumentów, i nie wiemy z góry ile ich będzie.
- Markdown
Markdown - zamiast klikać ikonę pogrub, kursywa itd. można skorzystać z wpisywania na klawiaturze np. podwójnej podłogi przed i po tekście wywołuje jego pogrubienie . Jest to domyślny sposób opisywania w repozytorium aplikacji np. READMY.py.
- I wiele innych...
Inspiracji do dalsze nauki można szukać poprzez różne mind mapy dotyczące pythona.
Pamiętajcie by dokumentować swoją pracę czy przez aplikacje do notatek np. Joplin, Obsidian etc., blogi, generatory stron statycznych lub chociażby w zwykłym zeszycie.
Inne ciekawe aplikacje
Twilio - smsy z powiadomieniami
Python Google Sheets - gsheets