EM poleca (#43) Leo Porter, Daniel Zingaro „Programuj ze sztuczną inteligencją”

Programiści to w powszechnym mniemaniu jajogłowi magicy wykonujący niezrozumiałą pracę, niedostępną dla zwykłych zjadaczy kaszy (ryżu). To oczywiście przesada, podobnie jak obecnie panujące przekonanie, że sztuczna inteligencja (AI) wyruguje ich całkowicie, a programy będą się pisały same. To są oczywiste skrajności, niewiele mające wspólnego z rzeczywistością. Ale coś w tym jest. Asystenty (tak, asystenty, a nie asystenci AI, bo to byty nieożywione) zmieniają paradygmat programowania. Polecana książka przedstawia aktualny stan naszego zaawansowania w programowaniu wspomaganym AI. Książka jest przeznaczona dla osób pragnących rozpocząć karierę w branży inżynierii oprogramowania. Oczywiście wspomaganego AI, bo powrotu do stylu klasycznego programowania już raczej nie będzie, co nieco smuci niektórych, w tym niżej podpisanego.
Nowa era: Programowanie w duecie z AI
Jeszcze dekadę temu wizja algorytmu piszącego kod była domeną literatury science-fiction. Dziś, w roku 2026, stoimy u progu rzeczywistości, w której programowanie przestaje być wyłącznie rzemiosłem „ręcznym”, a staje się pracą zbiorową programisty, AI i dorobku paru pokoleń informatyków, który wyszkolił AI w umiejętności programowania. Narzędzia sztucznej inteligencji fundamentalnie przedefiniowały rolę inżyniera oprogramowania.

Symbioza narzędzi: autouzupełnianie vs. konsultacja
W książce przedstawiono dwa najbardziej popularne narzędzia wspomagające programistów: GitHub Copilot i ChatGPT. Choć oba narzędzia opierają się na wielkich modelach językowych (LLM), pełnią one w procesie twórczym odmienne role.
- GitHub Copilot działa jak „cyfrowy czeladnik” wewnątrz środowiska programistycznego (IDE). Dzięki głębokiej integracji z kontekstem projektu, potrafi przewidzieć intencje programisty, generując całe funkcje, testy jednostkowe czy powtarzalny kod (boilerplate) w czasie rzeczywistym. Statystyki pokazują, że programiści używający Copilota kończą zadania o ponad 50% szybciej, eliminując najbardziej nużące etapy pracy.
- ChatGPT pełni rolę „wszechwiedzącego mentora”. Jego siła leży w rozmowie – pozwala na debugowanie skomplikowanych błędów logicznych, wyjaśnianie zawiłości nowych frameworków czy projektowanie architektury systemu. Tam, gdzie Copilot „pisze”, ChatGPT „myśli” razem z użytkownikiem.
Największa zmiana dotyczy obciążenia poznawczego. Tradycyjnie programista spędzał godziny na przeszukiwaniu dokumentacji czy serwisu Stack Overflow. Dziś te informacje są podawane na tacy. To jednak niesie ze sobą nowe wyzwania. Wiedza zdobyta szybko, bez wysiłku, jest przeważnie płytka i nie zostawia po sobie gruntownego zrozumienia. Często zdarza się, że podany przez asystenta kod działa, ale programista (a raczej nadzorca) nie wie dlaczego. Nie potrafi też ocenić jakości tego kodu, zwłaszcza od strony cyberbezpieczeństwa. Oczywiście produktywność brutto takiego programisty kopiuj/wklej rośnie kilkukrotnie, ale czy rośnie jakość jego produktów? Śmiem wątpić.
Paradygmat weryfikacja ponad tworzenie lansowany obecnie jako programistyczna zdobycz cywilizacyjna jest ślepą uliczką, no bo skąd weryfikator kodu ma zdobyć wiedzę niezbędną, żeby tę weryfikację przeprowadzić? Przez natchnienie? Tylko doświadczenie prowadzi do zostania dobrym specjalistą.
Wspomnę też o jednej z głównych bolączek trapiących osoby korzystających z AI, czyli o halucynacjach. Głównym zadaniem inżyniera staje się ocena jakości i bezpieczeństwa kodu wygenerowanego przez AI. Halucynacje modeli – czyli generowanie poprawnie brzmiącego, ale błędnego lub niebezpiecznego kodu – wymagają od człowieka czujności eksperta. I tu kółko się zamyka, bo jak wyszkolić eksperta bez frontowego doświadczenia?
Wyzwania etyczne i techniczne
Rewolucja AI nie jest pozbawiona cieni. Kwestie praw autorskich do kodu, na którym trenowano modele, oraz bezpieczeństwo (możliwość nieświadomego wstrzyknięcia podatności przez AI, czyli złośliwego kodu udającego dane) to tematy, które wciąż budzą debaty w branży. Ponadto, rośnie obawa o przyszłość stanowisk juniorskich – jeśli AI wykonuje proste zadania szybciej, to jak nowi adepci mają zdobywać doświadczenie? O tym problemie pisałem w poprzednim akapicie.
Programista 2.0
No dobrze, zacznijmy myśleć pozytywnie.
Programowanie za pomocą AI to nie zastępowanie człowieka, lecz zwiększanie jego możliwości (tzw. augmentation). Inżynier przyszłości to nie ten, który zna na pamięć każdą bibliotekę, ale ten, który potrafi precyzyjnie sformułować problem i krytycznie ocenić rozwiązanie dostarczone przez maszynę.
W dobie GitHub Copilota i ChatGPT, programowanie staje się mniej kwestią składni, a bardziej kwestią logiki i wizji.
Techniczne podejście do programowania wspomaganego przez AI (AI-Assisted Development) zmienia środek ciężkości z pisania instrukcji na zarządzanie logiką.
Programowanie to nie tylko pisanie kodu, to także parę innych aspektów składających się na produkt końcowy, czyli napisany, przetestowany i wdrożony program komputerowy.
W omawianej książce przeanalizowano kluczowe aspekty techniczne pracy z GitHub Copilotem i ChatGPT.
Projektowanie funkcji i dekompozycja problemu
Współpraca z Copilotem wymusza podejście modularne. Aby AI wygenerowało użyteczny kod, programista musi podzielić złożony problem na mniejsze, atomowe funkcje (dekompozycja). Zamiast prosić o „system obsługi zamówień”, projektujemy sygnaturę konkretnej metody (funkcji), np. calculate_tax_for_order(). Precyzyjne określenie typów wejściowych i wyjściowych pozwala Copilotowi na dopasowanie implementacji do reszty architektury.
Inżynieria promptów (Prompt Engineering) w kodzie
Współpraca z Copilotem wymusza staranność w pisaniu i bieżącym dokumentowaniu kodu. Należy pamiętać, że nie tylko tzw. prompt jest wskazówką dla asystenta, ale także, albo przede wszystkim, kontekst. Narzędzie to analizuje otwarte karty, komentarze nad funkcją oraz nazewnictwo zmiennych. Technicznie sprowadza się to do pisania opisowych komentarzy (tzw. Docstrings), które służą jako instrukcje dla modelu. Dobrze sformułowany komentarz, określający brzegowe warunki działania funkcji, radykalnie zwiększa trafność sugestii kodu.
Testowanie i jakość kodu
Jedną z najsilniejszych stron Copilota jest automatyzacja pisania testów jednostkowych (Unit Tests). Na podstawie istniejącej funkcji, AI potrafi błyskawicznie wygenerować przypadki testowe, w tym scenariusze brzegowe (Edge Cases), o których programista mógłby zapomnieć.
Wyjaśnianie kodu i dokumentowanie
Copilot służy jako potężne narzędzie do inżynierii wstecznej. Dzięki funkcji explain AI analizuje składnię i logikę nieznanego fragmentu kodu, tłumacząc go na język naturalny lub pseudokod. Automatyzacja tworzenia dokumentacji technicznej na podstawie kodu pozwala utrzymać ją w aktualności bez dużego nakładu pracy manualnej. To niezaprzeczalny plus współpracy z asystentem AI.
Debugowanie i analiza błędów
Podczas debugowania, Copilot i ChatGPT działają jak interaktywne debuggery. Zamiast tylko wskazywać miejsce błędu, potrafią przeanalizować stack trace1 i zasugerować poprawkę.
Automatyzacja zadań programistycznych
Poza samym pisaniem logiki biznesowej, AI rewolucjonizuje zadania powtarzalne. AI świetnie radzi sobie z transformacją danych – np. zamianą dużego pliku JSON2 na klasy w języku Python.
Czy wiedza zawarta w książce jest ugruntowana, niezmienna i uniwersalna?
Każda wiedza techniczna starzeje się. Postęp nie oszczędza także (a może przede wszystkim) wiedzy informatycznej. Programowanie z asystentem AI to bardzo młoda dziedzina. Dopiero uczymy się współpracy z oprogramowaniem błyskawicznie podającym rozwiązania problemów sformułowanych w języku naturalnym. Z pewności know-how zaserwowane w tej książce zestarzeje się szybciej, niż można się spodziewać. Rozwój sztucznej inteligencji odbywa się w tempie podwójnie wykładniczym i można się spodziewać, że wiedza z inżynierii programowania zdobyta teraz może się okazać przestarzała już następnym semestrze (ale już po zdanej sesji). Ale nic to, taka jest cena życia w dynamicznych czasach, a zdobyte doświadczenie będzie na pewno procentowało. Książkę warto przeczytać na pewno, choćby dlatego, że jest fotografią rzeczywistości tu-i-teraz i będzie podstawą do zdobywania nowej wiedzy za rok-dwa.
Leo Porter, Daniel Zingaro „Programuj ze sztuczną inteligencją. Twórz kod w Pythonie z wykorzystaniem GitHub Copilot i ChatGPT. Wydanie II” Wydawnictwo Helion 2025
Notka o Autorach
Leo Porter jest profesorem informatyki na Uniwersytecie Kaliforniskim w San Diego. Był wielokrotnie wyróżniany za działalność badawczą w zakresie dydaktyki w informatyce. Daniel Zingaro pracuje na Uniwersytecie w Toronto. Jest laureatem nagród za osiągnięcia w nauczaniu.
Przypisy
- stack trace lub stacktrace to stos wywołań funkcji/metod, szczegółowy raport, który pokazuje sekwencję wyjątków prowadzących do błędu lub awarii ↩︎
- JSON (JavaScript Object Notation) to format wymiany danych komputerowych. JSON jest formatem niezależnym od języka. Wiele języków programowania obsługuje ten format danych przez dodatkowe pakiety bądź biblioteki. ↩︎
Autor

- Jestem informatykiem i analitykiem. Przez trzy lata prezentowałem dane epidemiczne na Twitterze jako @docent_ws. W gronie pasjonatów z Twitterowej Akademii Nauk (TAN) uzupełniamy wiedzę na temat Covid-19. Na BlueSky jako @wieslawseweryn.bsky.social. Piszę o informatyce i Kosmosie, recenzuję i polecam książki popularnonaukowe. Walczę z dezinformacją, którą uważam za największe zagrożenie ery social-mediów, zwłaszcza wspieraną przez niekontrolowaną tzw. "sztuczną inteligencję".
Ostatnie wpisy
EM poleca4 lutego 2026EM poleca (#43) Leo Porter, Daniel Zingaro „Programuj ze sztuczną inteligencją”
EM poleca14 stycznia 2026EM poleca (#41) Ryan Day „Interfejsy API w AI i Data Science. Programowanie w Pythonie z użyciem FastAPI”
EM poleca31 grudnia 2025EM Poleca (#40) Mark Lutz „Python. Wprowadzenie. Wydanie VI”
EM poleca24 grudnia 2025EM Poleca (#39) William Ayd, Matthew Harrison – „Pandas. Receptury”





Ta książka nie jest fotografią rzeczywistości tu-i-teraz. Jest fotografią z przeszłości. Nie ma sensu czytać o silnikach parowych, kiedy obok śmigają auta ze spalinowymi V6. AI rozwija się tak szybko, że jest to pozycja dla archeologów. Wszystkim innym polecam Internet i aktualną wiedzę.
Panie Zenku, „tu i teraz” w postępie technologicznym nie znaczy „tu i teraz” tylko „tam i wtedy”. To jedno. Po drugie nie każdy jest au courant jak Pan, są ludzie, którzy potrzebują przeglądówki niekoniecznie jak brzytwa aktualnej. Zresztą, napisałem, do kogo książka jest adresowana.
Książkowe „tu i teraz” to zamierzchły rok 2024. Moje tu i teraz to początek roku 2026 i do tego się odnoszę. Dzięki pańskiej recenzji wiem, że ta książka jest po prostu mocno przestarzała. Jeśli mowa o brzytwie to to jest taka przytępiona brzytwa w dobie elektrycznych golarek.
Komentuję by wyrazić swoją subiektywną opinię, która jest taka, że nie jest to pozycja warta przeczytania, bo zapewne większość zawartej w niej wiedzy jest nieprzydatna już teraz, a co dopiero za rok czy dwa. Nie skorzystają na tym nawet, a może zwłaszcza, osoby pragnące rozpocząć karierę w branży inżynierii oprogramowania .
Ten kto chce wiedzieć jak to się kiedyś robiło niech czyta śmiało. Wszyscy inni lepiej spożytkują czas zapoznając się z aktualnymi rozwiązaniami dostępnymi w tym obszarze. Kto jest lub chce być w tej branży ten musi być na bieżąco. Kropka.
Programowanie jest trochę sztuką, ale bardziej rzemiosłem wymagającym przemyślanego warsztatu i dobrego, sprawdzonego know-how. A takie rzeczy nie powstają z tygodnia na tydzień, bo jakaś firma objawiła nową i absolutnie genialną wersję LLM-a z pierdyliardem parametrów. Pan jako „pistolet” gardzi rozwiązaniami poniżej Claude Code czy Windsurf. Ma Pan oczywiście prawo do własnej subiektywnej opinii, a ja cieszę się z możliwości podyskutowania bez używania brzydkich wyrazów. W jednym ma Pan rację: cykl produkcji książki trwa za długo, żeby być na bieżąco z nowościami. Książka służy do uczenia ugruntowanych podstaw, które siłą rzeczy muszą być trochę przestarzałe, jak program fizyki w szkole.