Python dla początkujących — od czego zacząć (napisz pętlę dzisiaj)

Zacznij od uruchomienia kodu dzisiaj — w ciągu najbliższych dwudziestu minut, zanim porównasz cztery kursy, cokolwiek zainstalujesz i rozstrzygniesz, czy „masz umysł ścisły". Najpewniejszy sposób na stracenie pierwszego miesiąca to przeznaczenie go na decyzję, jak go przeznaczyć. Niżej: skrypt do napisania jako pierwszy, trzy błędy do popełnienia celowo i plan na siedem dni na tyle konkretny, że da się z nim spierać.

Python dla początkujących — od czego zacząć

Napisz coś, co się uruchamia. To jest cała odpowiedź, reszta tego tekstu to szczegóły pod spodem. Czterdziestogodzinny kurs wideo daje poczucie postępu, bo postęp jest mierzalny — 12% ukończone, trzy moduły z głowy — tyle że mierzy się godziny obejrzane. Nikogo jeszcze nie zatrudniono za godziny obejrzane.

Więc oto pierwszy skrypt, który nie jest hello world. Ma listę, pętlę, decyzję i sumę narastającą — czyli mniej więcej szkielet połowy kodu, jaki kiedykolwiek napiszesz:

prices = [12.50, 4.00, 8.75, 21.30]
total = 0

for price in prices:
    total = total + price
    if price > 10:
        print(f"{price} — over ten")

print(f"total: {total}")
12.5 — over ten
21.3 — over ten
total: 46.55

Spójrz na pierwszą linię wyniku. Wpisałeś 12.50, a Python wypisał 12.5, bo liczba zmiennoprzecinkowa to liczba, a nie tekst, którym ją zapisałeś. Drobiazg, który za pół roku zdezorientuje Cię ponownie — tyle że wtedy przy prawdziwych pieniądzach. A poznałeś go pierwszego dnia, za darmo. To właśnie kupujesz, uruchamiając kod zamiast o nim czytać.

Teraz zepsuj to celowo

Programowanie w dużej mierze polega na czytaniu błędów, a początkujący traktują pierwszy traceback jak wyrok, nie jak komunikat. Odkręć to od razu: przekręć nazwę zmiennej i uruchom ponownie.

Traceback (most recent call last):
  File "prices.py", line 5, in <module>
    total = total + pirce
                    ^^^^^
NameError: name 'pirce' is not defined. Did you mean: 'price'?

Czytaj od dołu: typ błędu, komunikat, linia, plik. Python mówi Ci, że taka nazwa nie istnieje, i zgaduje, o którą Ci chodziło. Nie jest na Ciebie zły.

Zrób to jeszcze dwa razy. Skasuj dwukropek na końcu linii z for — dostaniesz SyntaxError, a daszek pokaże miejsce, w którym parser się poddał, nie zawsze to, w którym pomyliłeś się Ty. Potem wsuń ostatni print o jeden poziom za daleko i patrz, jak suma wypisuje się wewnątrz pętli, cztery razy, bez żadnego błędu. Ciche złe zachowanie to trzecia kategoria i to ona kosztuje później prawdziwe godziny.

A co z instalacją Pythona?

Lokalna instalacja kiedyś będzie potrzebna — prawdziwy projekt wymaga prawdziwego środowiska i lepiej dowiedzieć się, czym jest virtualenv, na długo przed tym, czym jest obraz Dockera. Ale nie dzisiaj. Pierwszego dnia instalowanie Pythona to sposób na spędzenie trzech godzin w terminalu, nienauczenie się niczego o programowaniu i zakończenie wieczoru z problemem ze zmienną PATH i zerem napisanego kodu.

Jeśli chcesz odpowiedź o wersję: Python 3, aktualne wydanie, i dowolny edytor, który już masz otwarty. A jeśli wolisz na razie w ogóle nie dotykać tego tematu — w ProdQuest edytor, terminal i sam Python działają w przeglądarce, na WebAssembly, bez instalacji i bez konfiguracji. Typowy czas od rejestracji do pierwszego zaliczonego, ocenionego zadania to mniej niż 15 minut, i o to dokładnie chodzi: te piętnaście minut idzie w zadanie, nie w setup.

Prawdziwym problemem początkującego nie jest składnia

Składnia jest mała. Rdzeń Pythona to jakieś piętnaście słów kluczowych, których naprawdę używasz, a sensowną część biblioteki standardowej da się trzymać w głowie. Ludzi zatrzymuje co innego: nie wiedzą, co próbować dalej. Zadanie wybrane samodzielnie jest albo tak łatwe, że niczego nie uczy, albo tak daleko przed Tobą, że godzinę przeklejasz kod, którego nie umiesz przeczytać.

Dlatego ProdQuest zaczyna od oceny wstępnej, a nie od sylabusa, i dlatego mentor trzyma potem trudność zadań w paśmie 70–80% skuteczności, korygując ją po każdym zgłoszeniu. Nie dlatego, że 75% to magiczna liczba, tylko dlatego, że w tym paśmie jest dość oporu, żeby się czegoś nauczyć, i za mało, żeby zamknąć kartę. Ucząc się sam, musisz być własnym pokrętłem trudności: gdy trzy zadania z rzędu idą bez wysiłku, następne powinno być niewygodne.

Pierwszy tydzień, który da się wykonać

Nie „poznaj podstawy". Instrukcje:

DzieńCzasCo piszesz
130 minSkrypt z cenami powyżej. Potem zepsuj go na trzy sposoby i przeczytaj wszystkie trzy wyniki.
245 minZamień listę na słownik — {"coffee": 12.50, "tea": 4.00} — i wypisz tylko pozycje powyżej dziesięciu, razem z nazwami. Poznasz .items().
345 minPrzenieś sumowanie do def total_of(prices):, które zwraca liczbę zamiast ją wypisywać. Wywołaj je dwa razy, na różnych listach.
445 minWywołaj total_of([]). Potem total_of([12.50, "free"]). Zdecyduj, co każde z nich powinno zrobić — i spraw, żeby to robiło.
51 hZero nowej składni. Dopisz pod funkcją assert total_of([1, 2]) == 3. Potem napisz asercję, po której spodziewasz się porażki, i uruchom ją.
61 hWeź plik z dnia 3., wprowadź do niego trzy błędy, zamknij na godzinę, a potem napraw — bez przepisywania od zera.
730 minPrzeczytaj ponownie skrypt z dnia 1. Jeśli nic Cię w nim teraz nie uwiera, dni 2–6 się nie wydarzyły.

Dzień 4. znaczy najwięcej, a najmniej przypomina naukę Pythona. Decyzja, co powinna zrobić pusta lista, to pierwszy moment, w którym podejmujesz decyzję inżynierską zamiast wykonywać polecenie — a akurat o takie rozstrzygnięcia (zwrócić zero, rzucić wyjątek, zalogować i pominąć) spiera się code review. Początkującym zwykle każe się to odłożyć na kilka miesięcy. Nie odkładaj.

Jeśli zmieniasz zawód — uczciwa liczba

Tydzień wystarczy, żeby pisać małe programy bez otwartego tutoriala. Nie wystarczy, żeby dać się zatrudnić, a kto sprzedaje Ci to drugie w terminie tego pierwszego, ten po prostu sprzedaje. Fundamenty — składnia, struktury danych, tyle OOP, żeby samodzielnie zbudować i przetestować coś małego — to jakieś 60–100 godzin aktywnej praktyki, a mnożnikiem nie jest talent. Mnożnikiem jest to, jaka część tego czasu leży na właściwej trudności, zamiast być oglądana po raz drugi.

To akurat dobra wiadomość, jeśli robisz to obok pracy. Pięć skupionych godzin tygodniowo, w każdej gdzieś jeden niezaliczony test, zaprowadzi Cię dalej niż bohaterski weekend raz na miesiąc — bo tym, co budujesz, jest nawyk czytania błędów i podejmowania decyzji, a nawyki nie reagują na zrywy.

Zacznij od pętli. A jeśli wolisz, żeby pierwsze zadanie dobrano do Twojego realnego poziomu, oceniono prawdziwymi testami i wytłumaczono, gdy będzie źle — dołącz do zamkniętej bety: ocena wstępna wybiera za Ciebie, więc możesz pominąć etap wybierania.