[{"data":1,"prerenderedAt":1693},["ShallowReactive",2],{"blog-\u002Fblog\u002Fmatematyka\u002Fprzygotowanie-do-matury-z-matematyki":3,"blog-others-\u002Fblog\u002Fmatematyka\u002Fprzygotowanie-do-matury-z-matematyki":174},{"id":4,"title":5,"body":6,"category":161,"cover":162,"date":163,"description":164,"extension":165,"meta":166,"navigation":167,"path":168,"readingTime":169,"seo":170,"sitemap":171,"stem":172,"__hash__":173},"blog\u002Fblog\u002Fmatematyka\u002Fprzygotowanie-do-matury-z-matematyki.md","Jak przygotować się do matury z matematyki (plan + próg 30%)",{"type":7,"value":8,"toc":145},"minimark",[9,13,18,21,24,28,31,50,55,58,67,71,74,102,106,110,113,117,120,124,127,131,138],[10,11,12],"p",{},"Do zdania matury z matematyki wystarczy 30% punktów. Brzmi jak prezent, a mimo to co roku ten próg przekracza się z bolącą głową albo nie przekracza wcale. Nie dlatego, że egzamin jest nieprzewidywalny. Wręcz przeciwnie: typy zadań powtarzają się rok w rok, więc matura to jeden z najbardziej policzalnych egzaminów, jakie istnieją. Poniżej plan, który zamienia próg 30% ze stresu w rachunek.",[14,15,17],"h2",{"id":16},"matura-to-prawo-jazdy-nie-zagadka","Matura to prawo jazdy, nie zagadka",[10,19,20],{},"Na egzaminie na prawo jazdy nikt nie wymyśla zaskakujących manewrów: zestaw jest znany z góry, a kursant ćwiczy go do skutku. Matura z matematyki działa tak samo, bo pula typów zadań jest ograniczona i powtarzalna.",[10,22,23],{},"Z tego faktu wynika cała strategia: nie trzeba umieć całej matematyki, trzeba rozpoznawać i sprawnie rozwiązywać zadania, które faktycznie się pojawiają. Dlatego arkusze CKE z poprzednich lat to nie dodatek do nauki, tylko jej rdzeń.",[14,25,27],{"id":26},"plan-pięć-etapów-zamiast-uczę-się-wszystkiego","Plan: pięć etapów zamiast „uczę się wszystkiego\"",[10,29,30],{},"Przygotowanie rozkłada się na powtarzalne etapy:",[32,33,34,38,41,44,47],"ol",{},[35,36,37],"li",{},"uzupełnienie fundamentów, na których stoją zadania maturalne,",[35,39,40],{},"przećwiczenie najczęstszych typów zadań z arkuszy,",[35,42,43],{},"całe arkusze na czas, w warunkach zbliżonych do egzaminu,",[35,45,46],{},"analiza błędów po każdym arkuszu i powrót do słabych tematów,",[35,48,49],{},"zabezpieczenie „pewnych punktów\", czyli tematów opanowanych do niezawodności.",[51,52,54],"h3",{"id":53},"skąd-wziąć-30-czyli-strategia-punktowa","Skąd wziąć 30%, czyli strategia punktowa",[10,56,57],{},"Nie wszystkie zadania są równe, a każde daje punkty. Zamiast rzucać się na najtrudniejsze, najpierw domyka się te, które punktują najpewniej: działania, procenty, proste równania, odczyt z wykresu. Kilka pewnych tematów, dociągniętych do końca, daje bazę, na której próg 30% przestaje być graniczny, a staje się buforem.",[10,59,60,61,66],{},"Pod tym wszystkim siedzi zrozumienie, nie wkuwanie. Przy lukach w podstawach pierwszy krok opisuje artykuł o ",[62,63,65],"a",{"href":64},"\u002Fblog\u002Fmatematyka\u002Fjak-nauczyc-sie-matematyki","nauce matematyki ze zrozumieniem",".",[14,68,70],{"id":69},"pomyłki-które-co-roku-kosztują-punkty-okiem-nauczyciela","Pomyłki, które co roku kosztują punkty (okiem nauczyciela)",[10,72,73],{},"Przygotowania psują się najczęściej w czterech miejscach:",[75,76,77,84,90,96],"ul",{},[35,78,79,83],{},[80,81,82],"strong",{},"Wszystko naraz."," Rozproszenie po całym materiale zamiast celowania w powtarzalne typy.",[35,85,86,89],{},[80,87,88],{},"Arkusze na sam koniec."," A to one mówią, co faktycznie będzie na egzaminie.",[35,91,92,95],{},[80,93,94],{},"Lekceważenie zadań „za jeden punkt\"."," To one najczęściej przesądzają o progu, a są najłatwiejsze do wzięcia.",[35,97,98,101],{},[80,99,100],{},"Zero pracy na czas."," Umieć zadanie to jedno, zdążyć z całym arkuszem to drugie. To osobna umiejętność i trenuje się ją tylko na pełnych arkuszach.",[14,103,105],{"id":104},"najczęstsze-pytania","Najczęstsze pytania",[51,107,109],{"id":108},"ile-procent-trzeba-mieć-żeby-zdać-maturę-z-matematyki","Ile procent trzeba mieć, żeby zdać maturę z matematyki?",[10,111,112],{},"Na poziomie podstawowym wymagane jest 30% punktów. To cel osiągalny przez pewne opanowanie najczęstszych, prostszych typów zadań, bez ambicji na komplet materiału.",[51,114,116],{"id":115},"kiedy-zacząć-przygotowania-do-matury","Kiedy zacząć przygotowania do matury?",[10,118,119],{},"Im wcześniej, tym spokojniej, ale nawet kilka miesięcy systematycznej pracy robi dużą różnicę. Ważniejsza od daty startu jest regularność i praca na arkuszach, a nie zryw w ostatnich tygodniach.",[51,121,123],{"id":122},"czy-kilka-miesięcy-wystarczy-na-przygotowanie","Czy kilka miesięcy wystarczy na przygotowanie?",[10,125,126],{},"Przy celu równym pewnemu progowi: tak. Fundamenty plus powtarzalne typy zadań pozwalają w tym czasie zbudować realną bazę punktową.",[14,128,130],{"id":129},"podejdź-do-matury-z-rachunkiem-nie-z-nadzieją","Podejdź do matury z rachunkiem, nie z nadzieją",[10,132,133,134,66],{},"Tak pracujemy na zajęciach maturalnych: fundamenty, powtarzalne typy, arkusze na czas i strategia punktowa pod Twój cel. Zobacz, jak wygląda ",[62,135,137],{"href":136},"\u002Fmatematyka","przygotowanie do matury ze mną",[10,139,140,144],{},[62,141,143],{"href":142},"\u002Fkontakt","Umów bezpłatną konsultację"," i ułóżmy Twoją drogę do progu, a najlepiej wyżej.",{"title":146,"searchDepth":147,"depth":147,"links":148},"",3,[149,151,154,155,160],{"id":16,"depth":150,"text":17},2,{"id":26,"depth":150,"text":27,"children":152},[153],{"id":53,"depth":147,"text":54},{"id":69,"depth":150,"text":70},{"id":104,"depth":150,"text":105,"children":156},[157,158,159],{"id":108,"depth":147,"text":109},{"id":115,"depth":147,"text":116},{"id":122,"depth":147,"text":123},{"id":129,"depth":150,"text":130},"Matematyka",null,"2026-06-20","Jak przygotować się do matury z matematyki i pewnie przekroczyć próg 30%? Konkretny plan: fundamenty, arkusze CKE i strategia punktowa krok po kroku.","md",{},true,"\u002Fblog\u002Fmatematyka\u002Fprzygotowanie-do-matury-z-matematyki","3 min",{"title":5,"description":164},{"loc":168},"blog\u002Fmatematyka\u002Fprzygotowanie-do-matury-z-matematyki","AwhDorpcc7iheV3-iKPleWau3u_bfGG0HBaoJPtWpmQ",[175,1095],{"id":176,"title":177,"body":178,"category":1085,"cover":162,"date":1086,"description":1087,"extension":165,"meta":1088,"navigation":167,"path":1089,"readingTime":1090,"seo":1091,"sitemap":1092,"stem":1093,"__hash__":1094},"blog\u002Fblog\u002Fprogramowanie\u002Fjak-zautomatyzowac-prace.md","Jak zautomatyzować pracę: 6 poziomów, od skryptu po AI",{"type":7,"value":179,"toc":1065},[180,183,187,190,210,213,217,220,223,237,240,244,247,267,270,274,277,548,551,562,565,570,581,586,602,605,609,612,620,627,631,642,646,657,660,664,667,670,676,683,686,690,701,705,716,719,723,726,729,735,738,744,747,751,762,766,777,780,784,787,793,796,802,805,809,820,824,840,843,847,850,902,905,909,920,924,935,938,942,945,965,968,972,975,1007,1009,1013,1016,1020,1023,1027,1030,1034,1037,1041,1053,1061],[10,181,182],{},"Poniedziałek, 8:00. Logujesz się do panelu sklepu, eksportujesz zamówienia, wklejasz liczby do arkusza, liczysz sumy, dopisujesz dwa zdania podsumowania i wysyłasz raport do szefa. Czterdzieści pięć minut, co tydzień, rok w rok. Każdy, kto pracuje przy komputerze, ma swoją wersję tego procesu i zwykle próbuje go zautomatyzować od złej strony: sięga po najgłośniejsze narzędzie (dziś: agenta AI), zamiast po najprostsze, które załatwi sprawę. Poniżej biorę ten jeden proces i prowadzę go przez sześć poziomów automatyzacji. Na każdym zobaczysz, co znika z Twojej listy kroków, ile czasu zostaje i gdzie warto się zatrzymać.",[14,184,186],{"id":185},"krótka-odpowiedź","Krótka odpowiedź",[10,188,189],{},"Automatyzacja pracy ma sześć poziomów, od prostego skryptu po autonomiczny system:",[32,191,192,195,198,201,204,207],{},[35,193,194],{},"Skrypty i reguły: deterministyczna automatyzacja bez AI.",[35,196,197],{},"RPA: bot, który klika w interfejs jak człowiek.",[35,199,200],{},"Chat z AI: człowiek steruje, AI przyspiesza.",[35,202,203],{},"Automatyzacja workflow: n8n, Make, Zapier, z możliwością włożenia AI jako klocka.",[35,205,206],{},"Agent w IDE: AI sam planuje kroki, Ty zatwierdzasz je na bieżąco.",[35,208,209],{},"System agentowy: AI działa autonomicznie w tle, Ty zatwierdzasz gotowy wynik.",[10,211,212],{},"Zasada wyboru brzmi: zacznij od najniższego poziomu, który załatwi sprawę. Im wyżej, tym więcej pracy oddajesz maszynie i tym więcej kontroli musisz w zamian zbudować.",[14,214,216],{"id":215},"dwa-światy-automatyzacji-przepis-i-kucharz","Dwa światy automatyzacji: przepis i kucharz",[10,218,219],{},"Pomyśl o kuchni. Możesz gotować z przepisu: odmierzone składniki, dokładne kroki i za każdym razem wychodzi to samo danie. A możesz zatrudnić kucharza: mówisz „zrób coś dobrego na obiad\", a on sam decyduje, co kupi i jak przyprawi. Efekt bywa lepszy niż z przepisu, a bywa zaskoczeniem.",[10,221,222],{},"Wszystkie narzędzia automatyzacji dzielą się na te dwa światy:",[75,224,225,231],{},[35,226,227,230],{},[80,228,229],{},"Przepis (bez AI):"," skrypty, RPA, n8n. Ty zapisujesz kroki, maszyna je powtarza. Raport wygląda za każdym razem identycznie.",[35,232,233,236],{},[80,234,235],{},"Kucharz (z AI):"," chat i agenci. Ty dajesz pytanie albo cel, AI decyduje o krokach. Raport bywa sprytniejszy, ale nigdy nie masz gwarancji, co w nim znajdziesz.",[10,238,239],{},"Zanim wybierzesz narzędzie, odpowiedz sobie na jedno pytanie: czy potrafię zapisać to zadanie jako dokładne kroki? Jeśli tak, zostań w świecie przepisu. AI potrzebujesz dopiero wtedy, gdy kroki nie istnieją, bo każde uruchomienie wygląda inaczej. A na poziomie 4 zobaczysz, jak oba światy potrafią współpracować.",[14,241,243],{"id":242},"punkt-wyjścia-45-minut-ręcznej-roboty","Punkt wyjścia: 45 minut ręcznej roboty",[10,245,246],{},"Nasz proces w wersji ręcznej to sześć kroków:",[32,248,249,252,255,258,261,264],{},[35,250,251],{},"zaloguj się do panelu sklepu,",[35,253,254],{},"wyeksportuj zamówienia z ostatniego tygodnia do pliku,",[35,256,257],{},"wklej dane do arkusza,",[35,259,260],{},"policz sumę sprzedaży i liczbę zamówień,",[35,262,263],{},"dopisz dwa zdania podsumowania,",[35,265,266],{},"wyślij raport mailem do przełożonego.",[10,268,269],{},"Tych sześć kroków to poligon. Niżej widać, jak każdy poziom skraca tę listę i ile kosztuje to skrócenie.",[14,271,273],{"id":272},"poziom-1-skrypt-który-wysyła-raport-za-ciebie","Poziom 1: skrypt, który wysyła raport za Ciebie",[10,275,276],{},"Pierwszy krok na drabinie to deterministyczna automatyzacja bez AI: kroki zapisuje się raz, a wykonuje je maszyna. Kroki 2-4 i 6 bierze na siebie prosty skrypt:",[278,279,283],"pre",{"className":280,"code":281,"language":282,"meta":146,"style":146},"language-js shiki shiki-themes one-dark-pro","const orders = [\n  { status: 'oplacone', amount: 120 },\n  { status: 'anulowane', amount: 80 },\n  { status: 'oplacone', amount: 200 },\n];\n\nconst paidOrders = orders.filter((order) => order.status === 'oplacone');\nconst paidTotal = paidOrders.reduce((sum, order) => sum + order.amount, 0);\n\nconsole.log(`Sprzedaż: ${paidTotal} zł, zamówień: ${paidOrders.length}`);\n\u002F\u002F Sprzedaż: 320 zł, zamówień: 2\n","js",[284,285,286,307,338,360,382,388,394,441,490,495,541],"code",{"__ignoreMap":146},[287,288,291,295,299,303],"span",{"class":289,"line":290},"line",1,[287,292,294],{"class":293},"seHd6","const",[287,296,298],{"class":297},"sU0A5"," orders",[287,300,302],{"class":301},"sjrmR"," =",[287,304,306],{"class":305},"sn6KH"," [\n",[287,308,309,312,316,319,323,326,329,331,335],{"class":289,"line":150},[287,310,311],{"class":305},"  { ",[287,313,315],{"class":314},"sVyAn","status",[287,317,318],{"class":305},": ",[287,320,322],{"class":321},"subq3","'oplacone'",[287,324,325],{"class":305},", ",[287,327,328],{"class":314},"amount",[287,330,318],{"class":305},[287,332,334],{"class":333},"sVC51","120",[287,336,337],{"class":305}," },\n",[287,339,340,342,344,346,349,351,353,355,358],{"class":289,"line":147},[287,341,311],{"class":305},[287,343,315],{"class":314},[287,345,318],{"class":305},[287,347,348],{"class":321},"'anulowane'",[287,350,325],{"class":305},[287,352,328],{"class":314},[287,354,318],{"class":305},[287,356,357],{"class":333},"80",[287,359,337],{"class":305},[287,361,363,365,367,369,371,373,375,377,380],{"class":289,"line":362},4,[287,364,311],{"class":305},[287,366,315],{"class":314},[287,368,318],{"class":305},[287,370,322],{"class":321},[287,372,325],{"class":305},[287,374,328],{"class":314},[287,376,318],{"class":305},[287,378,379],{"class":333},"200",[287,381,337],{"class":305},[287,383,385],{"class":289,"line":384},5,[287,386,387],{"class":305},"];\n",[287,389,391],{"class":289,"line":390},6,[287,392,393],{"emptyLinePlaceholder":167},"\n",[287,395,397,399,402,404,406,408,412,415,419,422,425,428,430,432,435,438],{"class":289,"line":396},7,[287,398,294],{"class":293},[287,400,401],{"class":297}," paidOrders",[287,403,302],{"class":301},[287,405,298],{"class":297},[287,407,66],{"class":305},[287,409,411],{"class":410},"sVbv2","filter",[287,413,414],{"class":305},"((",[287,416,418],{"class":417},"s_ZVi","order",[287,420,421],{"class":305},") ",[287,423,424],{"class":293},"=>",[287,426,427],{"class":297}," order",[287,429,66],{"class":305},[287,431,315],{"class":314},[287,433,434],{"class":301}," ===",[287,436,437],{"class":321}," 'oplacone'",[287,439,440],{"class":305},");\n",[287,442,444,446,449,451,453,455,458,460,463,465,467,469,471,474,477,479,481,483,485,488],{"class":289,"line":443},8,[287,445,294],{"class":293},[287,447,448],{"class":297}," paidTotal",[287,450,302],{"class":301},[287,452,401],{"class":297},[287,454,66],{"class":305},[287,456,457],{"class":410},"reduce",[287,459,414],{"class":305},[287,461,462],{"class":417},"sum",[287,464,325],{"class":305},[287,466,418],{"class":417},[287,468,421],{"class":305},[287,470,424],{"class":293},[287,472,473],{"class":314}," sum",[287,475,476],{"class":301}," +",[287,478,427],{"class":297},[287,480,66],{"class":305},[287,482,328],{"class":314},[287,484,325],{"class":305},[287,486,487],{"class":333},"0",[287,489,440],{"class":305},[287,491,493],{"class":289,"line":492},9,[287,494,393],{"emptyLinePlaceholder":167},[287,496,498,501,503,506,509,512,515,518,521,524,526,529,531,534,536,539],{"class":289,"line":497},10,[287,499,500],{"class":297},"console",[287,502,66],{"class":305},[287,504,505],{"class":410},"log",[287,507,508],{"class":305},"(",[287,510,511],{"class":321},"`Sprzedaż: ",[287,513,514],{"class":293},"${",[287,516,517],{"class":314},"paidTotal",[287,519,520],{"class":293},"}",[287,522,523],{"class":321}," zł, zamówień: ",[287,525,514],{"class":293},[287,527,528],{"class":297},"paidOrders",[287,530,66],{"class":305},[287,532,533],{"class":314},"length",[287,535,520],{"class":293},[287,537,538],{"class":321},"`",[287,540,440],{"class":305},[287,542,544],{"class":289,"line":543},11,[287,545,547],{"class":546},"sV9Aq","\u002F\u002F Sprzedaż: 320 zł, zamówień: 2\n",[10,549,550],{},"Dołóż jedną linijkę w cron i raport wysyła się sam, w każdy poniedziałek o 8:00:",[278,552,556],{"className":553,"code":554,"language":555,"meta":146,"style":146},"language-cron shiki shiki-themes one-dark-pro","0 8 * * 1 node ~\u002Fraporty\u002Fraport.js\n","cron",[284,557,558],{"__ignoreMap":146},[287,559,560],{"class":289,"line":290},[287,561,554],{},[10,563,564],{},"Twoje 45 minut spada do zera.",[10,566,567],{},[80,568,569],{},"Zalety:",[75,571,572,575,578],{},[35,573,574],{},"stuprocentowa przewidywalność: te same dane dają ten sam wynik, zawsze,",[35,576,577],{},"praca bez nadzoru, w nocy i w weekendy, bez zmęczenia,",[35,579,580],{},"najniższy koszt utrzymania z całej drabiny.",[10,582,583],{},[80,584,585],{},"Wady:",[75,587,588,596,599],{},[35,589,590,591,595],{},"wymaga umiejętności zapisania kroków, czyli ",[62,592,594],{"href":593},"\u002Fblog\u002Fprogramowanie\u002Fjak-myslec-jak-programista","myślenia jak programista"," albo kogoś, kto to potrafi,",[35,597,598],{},"sztywność: robi dokładnie to, co zaplanowano, i nic ponad,",[35,600,601],{},"potrzebuje danych dostępnych jako plik albo API.",[10,603,604],{},"Nasz raport ma kroki znane, a dane mają API, więc poziom 1 załatwia sprawę w całości. Wspinaczka wyżej ma sens tylko w dwóch przypadkach: gdy część danych siedzi w systemie bez eksportu (poziom 2) albo gdy raport ma zawierać wnioski, a nie tylko liczby (poziom 3 i dalej).",[14,606,608],{"id":607},"poziom-2-rpa-czyli-bot-który-klika-tam-gdzie-skrypt-nie-sięga","Poziom 2: RPA, czyli bot, który klika tam, gdzie skrypt nie sięga",[10,610,611],{},"Załóżmy, że część danych siedzi w starym systemie magazynowym: bez API, bez eksportu do pliku, tylko ekran i przyciski. Skrypt się tam nie dostanie. Wchodzi RPA (Robotic Process Automation): bot, który powtarza nagrane kliknięcia jak człowiek. Nagrany scenariusz to dosłownie lista kroków:",[278,613,618],{"className":614,"code":616,"language":617,"meta":146},[615],"language-text","1. Otwórz https:\u002F\u002Fmagazyn.firma.local i zaloguj\n2. Kliknij „Raporty\" → „Eksport tygodniowy\"\n3. Zapisz plik jako raporty\u002Fmagazyn.csv\n4. Zamknij system\n","text",[284,619,616],{"__ignoreMap":146},[10,621,622,623,626],{},"Skrypt z poziomu 1 czyta potem ",[284,624,625],{},"magazyn.csv"," jak każdy inny plik. RPA to nie konkurent skryptu, tylko jego pomost: dokleja kliknięcia, których kod nie dosięgnie, a reszta procesu zostaje deterministyczna.",[10,628,629],{},[80,630,569],{},[75,632,633,636,639],{},[35,634,635],{},"działa z systemami bez API i bez eksportu, często to jedyna opcja,",[35,637,638],{},"nie ingeruje w stary system, bo klika z zewnątrz,",[35,640,641],{},"buduje się nagrywaniem, bez programowania.",[10,643,644],{},[80,645,585],{},[75,647,648,651,654],{},[35,649,650],{},"kruche: przesunięty przycisk albo zmieniona etykieta i automat wywraca się w poniedziałek rano,",[35,652,653],{},"działa w tempie człowieka, bo dosłownie klika,",[35,655,656],{},"trudne do testowania i wersjonowania.",[10,658,659],{},"Dlatego RPA traktuj jako ratunek, nie fundament: pomost do skryptu tam, gdzie nie ma API. Im mniej kliknięć w procesie, tym stabilniej.",[14,661,663],{"id":662},"poziom-3-chat-z-ai-czyli-lepsze-wnioski-i-powrót-do-ręcznej-roboty","Poziom 3: chat z AI, czyli lepsze wnioski i powrót do ręcznej roboty",[10,665,666],{},"Poziomy 1-2 wyzerowały kroki mechaniczne, ale został krok 5: podsumowanie. Szef oczekuje nie tylko liczb, ale wniosków: co poszło nie tak, co rośnie, na co zwrócić uwagę. Sztywnego szablonu tu nie napiszesz, bo każde podsumowanie jest inne. Przekraczamy granicę do świata kucharza.",[10,668,669],{},"W praktyce większość ludzi robi to dziś tak: wkleja liczby do chata (ChatGPT, Claude, Gemini), czyta wynik, poprawia i wysyła. Konkretny prompt to cała „konfiguracja\" tego poziomu:",[278,671,674],{"className":672,"code":673,"language":617,"meta":146},[615],"Podsumuj załączone dane sprzedażowe w trzech punktach:\n1. Co sprzedawało się najlepiej?\n2. Co odbiega od normy z ostatnich tygodni?\n3. Na co zwrócić uwagę w przyszłym tygodniu?\n\nTon: rzeczowy, dla zarządu, maksymalnie 150 słów.\n",[284,675,673],{"__ignoreMap":146},[10,677,678],{},[679,680],"img",{"alt":681,"src":682},"Chat AI podsumowujący tygodniowe dane sprzedażowe","\u002Fimg\u002Fblog\u002Fjak-zautomatyzowac-prace-chat.png",[10,684,685],{},"Wnioski są lepsze niż dwa zdania ze skryptu, ale zauważ, co się stało: wróciło 15 minut Twojej pracy. Chatowanie nie jest automatyzacją, bo nic nie dzieje się samo. Ty sterujesz każdym krokiem, AI tylko przyspiesza.",[10,687,688],{},[80,689,569],{},[75,691,692,695,698],{},[35,693,694],{},"zero konfiguracji: działa od razu i na każdy temat,",[35,696,697],{},"radzi sobie z osądem i językiem, czyli tym, czego skrypt nie ogarnie,",[35,699,700],{},"świetny poligon: zanim zautomatyzujesz, sprawdzisz, jakie pytania ma stawiać automat.",[10,702,703],{},[80,704,585],{},[75,706,707,710,713],{},[35,708,709],{},"to nie automatyzacja, tylko pętla kopiuj-wklej-sprawdź,",[35,711,712],{},"wyniki bywają niespójne między uruchomieniami,",[35,714,715],{},"każdą odpowiedź trzeba zweryfikować, halucynacje nie znikają.",[10,717,718],{},"Jeśli co poniedziałek wklejasz te same dane pod ten sam prompt, to nie masz automatyzacji, tylko ręczną robotę z chatbotem. Na szczęście ten sam prompt da się włożyć do automatu. O tym poziom 4.",[14,720,722],{"id":721},"poziom-4-n8n-czyli-przepis-który-zatrudnia-kucharza","Poziom 4: n8n, czyli przepis, który zatrudnia kucharza",[10,724,725],{},"Gdy dane żyją w chmurze (sklep, arkusze, poczta), kleju między nimi nie musisz kodować. Narzędzia workflow takie jak n8n, Make czy Zapier buduje się z klocków: „gdy wydarzy się X w aplikacji A, zrób Y w aplikacji B\".",[10,727,728],{},"Nasz raport w n8n to początkowo cztery klocki: trigger czasowy (poniedziałek, 8:00) → pobranie zamówień z API sklepu → wiersz w arkuszu Google → mail przez Gmaila. A potem dokładamy piąty: klocek AI z promptem z poziomu 3:",[278,730,733],{"className":731,"code":732,"language":617,"meta":146},[615],"[Cron: pon. 8:00] → [Sklep: zamówienia z API] → [Google Sheets: dopisz wiersze]\n    → [AI: podsumowanie] → [Gmail: raport do szefa]\n",[284,734,732],{"__ignoreMap":146},[10,736,737],{},"Liczby z API lecą do modelu, model pisze podsumowanie, a całość ląduje w mailu. Efekt? Raport ma i liczby, i wnioski, a Twoje 45 minut dalej wynosi zero.",[10,739,740],{},[679,741],{"alt":742,"src":743},"Workflow cotygodniowego raportu sprzedaży w n8n","\u002Fimg\u002Fblog\u002Fjak-zautomatyzowac-prace-n8n.png",[10,745,746],{},"To ważny moment na drabinie: poziom 4 łączy oba światy. Workflow to przepis, a klocek AI to kucharz zatrudniony na jednej stacji. Steru nadal pilnujesz Ty, bo reguły ustawiłeś Ty, a AI odpowiada tylko za fragment wymagający języka i osądu.",[10,748,749],{},[80,750,569],{},[75,752,753,756,759],{},[35,754,755],{},"zero kodu i gotowe integracje z setkami aplikacji,",[35,757,758],{},"klocek AI w środku workflow: automatyczne wnioski bez ręcznego wklejania,",[35,760,761],{},"historia uruchomień i alerty o awariach są z pudełka.",[10,763,764],{},[80,765,585],{},[75,767,768,771,774],{},[35,769,770],{},"zawiła logika zamienia diagram w spaghetti i wtedy kod znów wygrywa,",[35,772,773],{},"uzależnienie od platformy: limity, cennik albo self-hosting do ogarnięcia (n8n),",[35,775,776],{},"testowanie i wersjonowanie ubogie w porównaniu z kodem.",[10,778,779],{},"To poziom, na którym kończy się większość firmowych automatyzacji, i słusznie. Wyżej wchodzi się tam, gdzie reguły przestają wystarczać, bo nawet pytania zmieniają się co tydzień.",[14,781,783],{"id":782},"poziom-5-agent-w-ide-czyli-ai-planuje-kroki-na-twoich-oczach","Poziom 5: agent w IDE, czyli AI planuje kroki na Twoich oczach",[10,785,786],{},"Do tej pory automatyzowaliśmy wykonanie raportu. A co z budową i zmianami samego automatu? Tu wchodzi agent w IDE: Cursor, Claude Code, Copilot. Zamiast kodować, piszesz polecenie:",[278,788,791],{"className":789,"code":790,"language":617,"meta":146},[615],"Rozbuduj raport.js:\n- dodaj liczenie zwrotów (status \"zwrocone\") jako osobną pozycję,\n- gdy brakuje pliku z danymi, wypisz czytelny komunikat i zakończ,\n- format istniejącego podsumowania zostaw bez zmian.\n",[284,792,790],{"__ignoreMap":146},[10,794,795],{},"Agent sam planuje kroki: edytuje pliki, uruchamia kod, poprawia błędy. Ale robi to na Twoich oczach, każdą zmianę widzisz na żywo i możesz ją odrzucić.",[10,797,798],{},[679,799],{"alt":800,"src":801},"Agent w IDE proponujący zmiany w skrypcie raportu","\u002Fimg\u002Fblog\u002Fjak-zautomatyzowac-prace-agent-ide.png",[10,803,804],{},"To pierwszy poziom, na którym AI układa plan za Ciebie. Różnica wobec poziomu 3: niczego nie kopiujesz ręcznie, agent działa bezpośrednio w Twoich plikach. Różnica wobec poziomu 6: nadzór masz natychmiastowy, bo siedzicie przy tym samym ekranie.",[10,806,807],{},[80,808,569],{},[75,810,811,814,817],{},[35,812,813],{},"każdy krok widać i można przerwać, nadzór na żywo,",[35,815,816],{},"budowa i utrzymanie automatów z poziomów 1-4 przyspiesza z godzin do minut,",[35,818,819],{},"przy okazji nauka przez patrzenie, jak agent pracuje.",[10,821,822],{},[80,823,585],{},[75,825,826,834,837],{},[35,827,828,829,833],{},"trzeba umieć ocenić to, co wyprodukował: wartość przenosi się z pisania kodu na jego czytanie (o czym pisałem w artykule o ",[62,830,832],{"href":831},"\u002Fblog\u002Fprogramowanie\u002Ffullstack-developer-w-dobie-ai","fullstacku w dobie AI","),",[35,835,836],{},"nie działa w tle: przyspiesza Twoją pracę, ale nie zastępuje zaplanowanego automatu,",[35,838,839],{},"bez jasnych granic potrafi przesadzić z zakresem zmian.",[10,841,842],{},"Agent w IDE to współpracownik siedzący przy Twoim biurku, a nie pracownik wysyłany z zadaniem. Do zadań, które mają działać bez Ciebie, potrzebny jest poziom 6.",[14,844,846],{"id":845},"poziom-6-system-agentowy-czyli-raport-który-sam-stawia-pytania","Poziom 6: system agentowy, czyli raport, który sam stawia pytania",[10,848,849],{},"Na szczycie drabiny nie dajesz już kroków, tylko cel, narzędzia i granice:",[278,851,855],{"className":852,"code":853,"language":854,"meta":146,"style":146},"language-yaml shiki shiki-themes one-dark-pro","cel: co poniedziałek o 8:00 przygotuj raport sprzedaży z minionego tygodnia\nnarzędzia:\n  - API sklepu (tylko odczyt zamówień)\n  - folder raporty\u002F (odczyt eksportów z magazynu)\n  - poczta: wyłącznie drafty, wysyłka po mojej akceptacji\ngranice:\n  - nic nie wysyłaj bez akceptacji\n  - gdy brakuje danych, przerwij i zgłoś problem\nanomalie: odchylenie powyżej 20% od średniej z 4 ostatnich tygodni\n","yaml",[284,856,857,862,867,872,877,882,887,892,897],{"__ignoreMap":146},[287,858,859],{"class":289,"line":290},[287,860,861],{},"cel: co poniedziałek o 8:00 przygotuj raport sprzedaży z minionego tygodnia\n",[287,863,864],{"class":289,"line":150},[287,865,866],{},"narzędzia:\n",[287,868,869],{"class":289,"line":147},[287,870,871],{},"  - API sklepu (tylko odczyt zamówień)\n",[287,873,874],{"class":289,"line":362},[287,875,876],{},"  - folder raporty\u002F (odczyt eksportów z magazynu)\n",[287,878,879],{"class":289,"line":384},[287,880,881],{},"  - poczta: wyłącznie drafty, wysyłka po mojej akceptacji\n",[287,883,884],{"class":289,"line":390},[287,885,886],{},"granice:\n",[287,888,889],{"class":289,"line":396},[287,890,891],{},"  - nic nie wysyłaj bez akceptacji\n",[287,893,894],{"class":289,"line":443},[287,895,896],{},"  - gdy brakuje danych, przerwij i zgłoś problem\n",[287,898,899],{"class":289,"line":492},[287,900,901],{},"anomalie: odchylenie powyżej 20% od średniej z 4 ostatnich tygodni\n",[10,903,904],{},"Agent działa w tle, bez Ciebie: sam pobiera dane, sam liczy, sam decyduje, co sprawdzić. I któregoś tygodnia zauważa, że zwroty rosną trzeci tydzień z rzędu, choć nikt go o to nie pytał. Przygotowuje draft maila, Ty czytasz i zatwierdzasz. Zostaje Ci 5 minut zamiast 45.",[10,906,907],{},[80,908,569],{},[75,910,911,914,917],{},[35,912,913],{},"osąd w każdej iteracji: zauważa to, o co nikt go nie pytał,",[35,915,916],{},"obsługuje zadania, których nie da się zapisać krokami,",[35,918,919],{},"cel zamiast instrukcji, najbliżej zatrudnienia pracownika.",[10,921,922],{},[80,923,585],{},[75,925,926,929,932],{},[35,927,928],{},"wynik niegwarantowany: potrzebuje nadzoru, limitów i ludzkiej akceptacji,",[35,930,931],{},"koszt błędu rośnie razem z uprawnieniami (poczta, płatności, dane klientów),",[35,933,934],{},"najtrudniejszy do przewidzenia: zmienne zachowanie i zmienne koszty.",[10,936,937],{},"Traktuj system agentowy jak szybkiego, pomysłowego pracownika: nie wysłałbyś mu jednak faktur do klientów bez przeglądu. Im większa autonomia, tym ważniejsza staje się kontrola.",[14,939,941],{"id":940},"na-którym-poziomie-się-zatrzymać","Na którym poziomie się zatrzymać?",[10,943,944],{},"Zauważ, jak zmieniała się Twoja rola w naszym raporcie: 45 minut ręcznie, zero na poziomach 1-2, 15 minut z chatem, zero razem z wnioskami na poziomie 4, w końcu 5 minut akceptacji z systemem agentowym. (Poziom 5 celowo nie wchodzi do tego rachunku, bo agent w IDE przyspiesza budowę automatów, nie ich wykonanie.) Mniej roboty to nie zawsze lepszy wybór: wraz z autonomią rośnie wymagane zaufanie i kontrola. Trzy pytania pomogą wybrać właściwy poziom:",[32,946,947,953,959],{},[35,948,949,952],{},[80,950,951],{},"Czy potrafię zapisać kroki dokładnie?"," Tak: poziomy 1, 2, 4. Nie: 3, 5, 6.",[35,954,955,958],{},[80,956,957],{},"Jaki jest koszt błędu?"," Wysoki (faktury, dane klientów, płatności): zostań przy przepisie albo dodaj ludzką akceptację przed wysyłką.",[35,960,961,964],{},[80,962,963],{},"Jak często to robię?"," Codziennie: automatyzuj. Raz na kwartał: czasem taniej zrobić ręcznie niż budować i utrzymywać automat.",[10,966,967],{},"Nasz raport sprzedaży? W większości firm kończy się na poziomie 1 albo 4: kroki są znane, dane mają API, a klocek AI załatwia wnioski. System agentowy z poziomu 6 ma sens dopiero wtedy, gdy „raport\" za każdym razem stawia inne pytania i jego wartość leży właśnie w osądzie, nie w liczbach.",[14,969,971],{"id":970},"gdzie-automatyzacje-się-psują","Gdzie automatyzacje się psują",[10,973,974],{},"Automatyzacje psują się w przewidywalnych miejscach:",[75,976,977,983,989,995,1001],{},[35,978,979,982],{},[80,980,981],{},"Start od agenta, gdy wystarczy skrypt."," Hype ciągnie na szczyt drabiny, a większość biurowej automatyzacji to poziomy 1-4. Agent do zadania regułowego to jak kucharz wynajęty do zagotowania wody.",[35,984,985,988],{},[80,986,987],{},"Automatyzowanie chaosu."," Zautomatyzowany zły proces to zły proces, który działa szybciej. Najpierw uprość, dopiero potem automatyzuj.",[35,990,991,994],{},[80,992,993],{},"Wiara, że automat jest wieczny."," Każda automatyzacja łamie się, gdy świat się zmieni: nowe API, nowy interfejs, nowy format pliku. Ktoś musi być jej właścicielem.",[35,996,997,1000],{},[80,998,999],{},"Brak kontroli tam, gdzie błąd boli."," Im bardziej autonomiczne narzędzie, tym droższy błąd. Agent z nieograniczonym dostępem do poczty klientów to proszenie się o kłopoty.",[35,1002,1003,1006],{},[80,1004,1005],{},"Chat z AI udający system."," Powtarzalny poniedziałkowy prompt z tymi samymi danymi to nie automatyzacja, tylko ręczna robota w przebraniu. Włóż ten prompt jako klocek do workflow z poziomu 4.",[14,1008,105],{"id":104},[51,1010,1012],{"id":1011},"czy-trzeba-umieć-programować-żeby-automatyzować-pracę","Czy trzeba umieć programować, żeby automatyzować pracę?",[10,1014,1015],{},"Nie zawsze. n8n, Make czy RPA działają bez kodu, a formuły w arkuszu to już pełnoprawna automatyzacja. Fundament jest jednak wspólny dla wszystkich poziomów: rozbicie procesu na dokładne kroki. Bez tego żaden klocek ani agent nie pomoże.",[51,1017,1019],{"id":1018},"czym-różni-się-rpa-od-agenta-ai","Czym różni się RPA od agenta AI?",[10,1021,1022],{},"RPA sztywno powtarza nagrane kliknięcia: zero osądu, łamie się przy zmianie interfejsu. Agent sam decyduje o krokach, żeby osiągnąć cel, więc jest elastyczny, ale mniej przewidywalny. Jedno to nagranie, drugie to improwizacja.",[51,1024,1026],{"id":1025},"czym-różni-się-agent-w-ide-od-systemu-agentowego","Czym różni się agent w IDE od systemu agentowego?",[10,1028,1029],{},"Agent w IDE pracuje razem z człowiekiem, na jego oczach: każdą zmianę widać w trakcie i można ją odrzucić. System agentowy działa w tle, a efekt końcowy trafia do akceptacji po fakcie. Pierwszy to współpracownik przy biurku, drugi to pracownik, któremu zleca się zadanie. Nadzór na żywo kontra akceptacja gotowego wyniku.",[51,1031,1033],{"id":1032},"od-czego-zacząć-automatyzację-własnej-pracy","Od czego zacząć automatyzację własnej pracy?",[10,1035,1036],{},"Od tygodnia spisywania powtarzalnych zadań. Potem wybór zadania najczęstszego i najbardziej „regułowego\" i start od najniższego poziomu drabiny, który je załatwi. Zaskoczenie: najczęściej koniec na formule w arkuszu albo kilkunastu linijkach skryptu.",[14,1038,1040],{"id":1039},"zautomatyzuj-coś-w-ten-poniedziałek","Zautomatyzuj coś w ten poniedziałek",[10,1042,1043,1044,1048,1049,1052],{},"Narzędzia będą się zmieniać co roku, ale fundament zostaje ten sam: rozbicie procesu na kroki, zanim wybierzesz technologię. To umiejętność, którą trenuję z uczniami od pierwszych zajęć, na realnych zadaniach i z AI używanym z głową. Zobacz, jak wygląda ",[62,1045,1047],{"href":1046},"\u002Fprogramowanie","nauka programowania ze mną",", albo ",[62,1050,1051],{"href":142},"umów bezpłatną konsultację"," i opowiedz, który proces chcesz zautomatyzować: wspólnie znajdziemy najprostszy sposób.",[10,1054,1055,1056,1060],{},"A jeśli chcesz zobaczyć automatyzację w praktyce, w ",[62,1057,1059],{"href":1058},"\u002Fkursy","kursie DevChallenge"," budujesz i wdrażasz własną aplikację z AI: od frontendu, przez backend i integracje, po publiczny deploy.",[1062,1063,1064],"style",{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":146,"searchDepth":147,"depth":147,"links":1066},[1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1084],{"id":185,"depth":150,"text":186},{"id":215,"depth":150,"text":216},{"id":242,"depth":150,"text":243},{"id":272,"depth":150,"text":273},{"id":607,"depth":150,"text":608},{"id":662,"depth":150,"text":663},{"id":721,"depth":150,"text":722},{"id":782,"depth":150,"text":783},{"id":845,"depth":150,"text":846},{"id":940,"depth":150,"text":941},{"id":970,"depth":150,"text":971},{"id":104,"depth":150,"text":105,"children":1079},[1080,1081,1082,1083],{"id":1011,"depth":147,"text":1012},{"id":1018,"depth":147,"text":1019},{"id":1025,"depth":147,"text":1026},{"id":1032,"depth":147,"text":1033},{"id":1039,"depth":150,"text":1040},"AI & Programowanie","2026-07-24","Jak zautomatyzować pracę? 6 poziomów: skrypty, RPA, chat z AI, n8n, agent w IDE i system agentowy - jeden proces od ręcznej roboty po autonomię.",{},"\u002Fblog\u002Fprogramowanie\u002Fjak-zautomatyzowac-prace","12 min",{"title":177,"description":1087},{"loc":1089},"blog\u002Fprogramowanie\u002Fjak-zautomatyzowac-prace","6qxUp5gnGNxaORxoRvBbpYhxhDkCt4vtD6UtAoWI2kY",{"id":1096,"title":1097,"body":1098,"category":1085,"cover":162,"date":1685,"description":1686,"extension":165,"meta":1687,"navigation":167,"path":831,"readingTime":1688,"seo":1689,"sitemap":1690,"stem":1691,"__hash__":1692},"blog\u002Fblog\u002Fprogramowanie\u002Ffullstack-developer-w-dobie-ai.md","Fullstack developer w erze AI: czego uczyć się po kolei",{"type":7,"value":1099,"toc":1672},[1100,1103,1107,1110,1113,1144,1148,1151,1154,1158,1161,1215,1222,1232,1235,1439,1452,1461,1465,1468,1540,1545,1548,1574,1577,1583,1586,1590,1593,1625,1627,1631,1634,1638,1645,1649,1652,1656,1663,1669],[10,1101,1102],{},"„Skoro AI pisze kod, to po co się tego uczyć?\". To pytanie słyszę od uczniów coraz częściej i rozumiem, skąd się bierze: AI naprawdę pisze kod, często szybciej niż człowiek. Wniosek „nie ma więc sensu się uczyć\" jest jednak fałszywy. Wartość programisty nie zniknęła, tylko przeniosła się z pisania kodu na jego rozumienie, łączenie i ocenianie. Najlepiej w tej roli odnajduje się fullstack developer, czyli osoba rozumiejąca cały system, od przeglądarki po bazę danych. Poniżej konkretna ścieżka technologii i proces nauki, w którym analiza kodu liczy się bardziej niż wkuwanie składni.",[14,1104,1106],{"id":1105},"co-ai-naprawdę-zmieniło","Co AI naprawdę zmieniło",[10,1108,1109],{},"Jeszcze kilka lat temu programista przypominał tłumacza, który musi znać słownictwo na pamięć: bez opanowanej składni nie powstaje ani linia. Dziś AI zna „słownictwo\" lepiej niż ktokolwiek z nas, więc rola przesunęła się z tłumacza na redaktora. Dostajesz wygenerowany tekst, a Twoją robotą jest ocenić, czy ma sens, czy pasuje do całości i co poprawić.",[10,1111,1112],{},"Konsekwencje są trzy i wszystkie konkretne:",[75,1114,1115,1132,1138],{},[35,1116,1117,1120,1121,1124,1125,1128,1129,1131],{},[80,1118,1119],{},"Składnia przestała być walutą."," Nie trzeba pamiętać dokładnej formy ",[284,1122,1123],{},"map()"," ani zapisu zapytania SQL. Trzeba wiedzieć, czym ",[284,1126,1127],{},"map"," różni się od ",[284,1130,411],{}," i kiedy które użyć.",[35,1133,1134,1137],{},[80,1135,1136],{},"Czytanie kodu to umiejętność numer jeden."," Większość dnia to nie pisanie, tylko czytanie tego, co wygenerowało AI, i sprawdzanie, czy robi to, co powinno.",[35,1139,1140,1143],{},[80,1141,1142],{},"Debugowanie bije zapamiętywanie."," Błąd w wygenerowanym kodzie znajdziesz tylko wtedy, gdy rozumiesz, jak dane przepływają przez program.",[14,1145,1147],{"id":1146},"dlaczego-akurat-fullstack","Dlaczego akurat fullstack",[10,1149,1150],{},"Paradoks brzmi tak: im lepiej AI generuje kawałki, tym droższy jest człowiek widzący całość. Pojedynczy komponent albo funkcja? Zrobi świetnie. Ale aplikacja to nie suma komponentów, tylko decyzje: jak dane płyną od formularza przez API do bazy i z powrotem, gdzie je walidować, co się dzieje, gdy coś padnie o trzeciej w nocy.",[10,1152,1153],{},"Fullstack developer z AI w ręku robi dziś to, co niedawno wymagało małego zespołu. Pod jednym warunkiem: każdą warstwę rozumie na tyle, żeby zweryfikować to, co AI wyprodukowało. Ścieżka niżej buduje dokładnie to rozumienie.",[14,1155,1157],{"id":1156},"ścieżka-osiem-warstw-jeden-projekt","Ścieżka: osiem warstw, jeden projekt",[10,1159,1160],{},"Kolejność nie jest przypadkowa. Każdy etap stoi na poprzednim i kończy się małym projektem:",[32,1162,1163,1169,1179,1185,1191,1197,1203,1209],{},[35,1164,1165,1168],{},[80,1166,1167],{},"HTML + CSS."," Szkielet i wygląd strony: semantyczne tagi, formularze, flexbox i grid. Projekt: własna strona-wizytówka.",[35,1170,1171,1174,1175,1178],{},[80,1172,1173],{},"JavaScript."," Pierwszy prawdziwy język: zmienne, funkcje, metody tablic, asynchroniczność, pobieranie danych z API. Tu trenuje się też ",[62,1176,1177],{"href":593},"myślenie jak programista",". Projekt: lista zadań albo quiz w przeglądarce.",[35,1180,1181,1184],{},[80,1182,1183],{},"Git."," Z AI eksperymentuje się dużo, więc trzeba umieć wrócić do wersji, która działała.",[35,1186,1187,1190],{},[80,1188,1189],{},"React + Next.js."," Komponenty, stan, routing, renderowanie po stronie serwera. Równorzędna alternatywa to Vue z Nuxtem: jeden ekosystem, wybrany i trzymany. Projekt: aplikacja z kilkoma podstronami, zasilana z zewnętrznego API.",[35,1192,1193,1196],{},[80,1194,1195],{},"TypeScript."," Typy to dokumentacja czytelna i dla człowieka, i dla AI: wygenerowany kod z typami znacznie trudniej zepsuć bez wykrycia.",[35,1198,1199,1202],{},[80,1200,1201],{},"Backend na Node.js."," Własne API: endpointy, walidacja danych, uwierzytelnianie. Samodzielny serwer albo server routes wbudowane we framework, tak działa na przykład Nitro, silnik serwerowy Nuxta. Projekt: backend, z którego korzysta frontend z punktu 4.",[35,1204,1205,1208],{},[80,1206,1207],{},"Baza danych."," SQL, na przykład PostgreSQL, plus ORM łączący bazę z kodem: tabele, relacje, zapytania.",[35,1210,1211,1214],{},[80,1212,1213],{},"Deploy."," Vercel albo własny serwer, zmienne środowiskowe, domena. Aplikacja istnieje dopiero wtedy, gdy ktoś może z niej skorzystać.",[10,1216,1217,1218,1221],{},"To nie lista „technologii do zebrania\", tylko warstwy jednego systemu, i dlatego najlepiej uczyć się ich na jednym rosnącym projekcie, nie na ośmiu osobnych tutorialach. Tak jest zbudowana aplikacja z mojego ",[62,1219,1220],{"href":1058},"kursu DevChallenge",": AI generuje pytania do wyzwań, frontend pokazuje je graczowi, backend na Nitrze liczy wynik, a rezultaty trafiają do bazy i na publiczny leaderboard. Każda warstwa ze ścieżki, spięta w jeden produkt.",[10,1223,1224,1228],{},[679,1225],{"alt":1226,"src":1227},"Kreator wyzwania w aplikacji z kursu DevChallenge - temat, poziom i typy pytań","\u002Fimg\u002Fcourse\u002Fcreator-poster.jpg",[1229,1230,1231],"em",{},"Kreator wyzwania: użytkownik wybiera temat, poziom i typy pytań, a resztę robi pipeline budowany warstwa po warstwie.",[10,1233,1234],{},"A serce backendu takiej aplikacji to w Nitrze kilkanaście linijek i jeden server route:",[278,1236,1240],{"className":1237,"code":1238,"language":1239,"meta":146,"style":146},"language-ts shiki shiki-themes one-dark-pro","\u002F\u002F server\u002Fapi\u002Fscore.post.ts\nexport default defineEventHandler(async (event) => {\n  const body = await readBody(event)\n\n  if (!Array.isArray(body?.answers)) {\n    throw createError({ statusCode: 400, statusMessage: 'Brak odpowiedzi' })\n  }\n\n  const score = await scoreAnswers(body.gameId, body.answers)\n\n  \u002F\u002F do przeglądarki wraca tylko wynik - poprawne odpowiedzi zostają na serwerze\n  return { score }\n})\n","ts",[284,1241,1242,1247,1276,1299,1303,1335,1367,1372,1376,1409,1413,1418,1433],{"__ignoreMap":146},[287,1243,1244],{"class":289,"line":290},[287,1245,1246],{"class":546},"\u002F\u002F server\u002Fapi\u002Fscore.post.ts\n",[287,1248,1249,1252,1255,1258,1260,1263,1266,1269,1271,1273],{"class":289,"line":150},[287,1250,1251],{"class":293},"export",[287,1253,1254],{"class":293}," default",[287,1256,1257],{"class":410}," defineEventHandler",[287,1259,508],{"class":305},[287,1261,1262],{"class":293},"async",[287,1264,1265],{"class":305}," (",[287,1267,1268],{"class":417},"event",[287,1270,421],{"class":305},[287,1272,424],{"class":293},[287,1274,1275],{"class":305}," {\n",[287,1277,1278,1281,1284,1286,1289,1292,1294,1296],{"class":289,"line":147},[287,1279,1280],{"class":293},"  const",[287,1282,1283],{"class":297}," body",[287,1285,302],{"class":301},[287,1287,1288],{"class":293}," await",[287,1290,1291],{"class":410}," readBody",[287,1293,508],{"class":305},[287,1295,1268],{"class":314},[287,1297,1298],{"class":305},")\n",[287,1300,1301],{"class":289,"line":362},[287,1302,393],{"emptyLinePlaceholder":167},[287,1304,1305,1308,1310,1313,1316,1318,1321,1323,1326,1329,1332],{"class":289,"line":384},[287,1306,1307],{"class":293},"  if",[287,1309,1265],{"class":305},[287,1311,1312],{"class":301},"!",[287,1314,1315],{"class":297},"Array",[287,1317,66],{"class":305},[287,1319,1320],{"class":410},"isArray",[287,1322,508],{"class":305},[287,1324,1325],{"class":297},"body",[287,1327,1328],{"class":305},"?.",[287,1330,1331],{"class":314},"answers",[287,1333,1334],{"class":305},")) {\n",[287,1336,1337,1340,1343,1346,1349,1351,1354,1356,1359,1361,1364],{"class":289,"line":390},[287,1338,1339],{"class":293},"    throw",[287,1341,1342],{"class":410}," createError",[287,1344,1345],{"class":305},"({ ",[287,1347,1348],{"class":314},"statusCode",[287,1350,318],{"class":305},[287,1352,1353],{"class":333},"400",[287,1355,325],{"class":305},[287,1357,1358],{"class":314},"statusMessage",[287,1360,318],{"class":305},[287,1362,1363],{"class":321},"'Brak odpowiedzi'",[287,1365,1366],{"class":305}," })\n",[287,1368,1369],{"class":289,"line":396},[287,1370,1371],{"class":305},"  }\n",[287,1373,1374],{"class":289,"line":443},[287,1375,393],{"emptyLinePlaceholder":167},[287,1377,1378,1380,1383,1385,1387,1390,1392,1394,1396,1399,1401,1403,1405,1407],{"class":289,"line":492},[287,1379,1280],{"class":293},[287,1381,1382],{"class":297}," score",[287,1384,302],{"class":301},[287,1386,1288],{"class":293},[287,1388,1389],{"class":410}," scoreAnswers",[287,1391,508],{"class":305},[287,1393,1325],{"class":297},[287,1395,66],{"class":305},[287,1397,1398],{"class":314},"gameId",[287,1400,325],{"class":305},[287,1402,1325],{"class":297},[287,1404,66],{"class":305},[287,1406,1331],{"class":314},[287,1408,1298],{"class":305},[287,1410,1411],{"class":289,"line":497},[287,1412,393],{"emptyLinePlaceholder":167},[287,1414,1415],{"class":289,"line":543},[287,1416,1417],{"class":546},"  \u002F\u002F do przeglądarki wraca tylko wynik - poprawne odpowiedzi zostają na serwerze\n",[287,1419,1421,1424,1427,1430],{"class":289,"line":1420},12,[287,1422,1423],{"class":293},"  return",[287,1425,1426],{"class":305}," { ",[287,1428,1429],{"class":314},"score",[287,1431,1432],{"class":305}," }\n",[287,1434,1436],{"class":289,"line":1435},13,[287,1437,1438],{"class":305},"})\n",[10,1440,1441,325,1444,1447,1448,1451],{},[284,1442,1443],{},"defineEventHandler",[284,1445,1446],{},"readBody"," i ",[284,1449,1450],{},"createError"," to API Nitra, które Nuxt importuje automatycznie. Cała reszta to zwykły JavaScript z warstwy drugiej: warunek, tablica, funkcja.",[10,1453,1454,1458],{},[679,1455],{"alt":1456,"src":1457},"Ekran wyniku w aplikacji DevChallenge - punktacja i poprawne odpowiedzi","\u002Fimg\u002Fcourse\u002Fresult-poster.jpg",[1229,1459,1460],{},"Wynik liczony po stronie serwera: przeglądarka dostaje punktację i podgląd odpowiedzi, ale nigdy klucz przed czasem.",[14,1462,1464],{"id":1463},"nauka-z-ai-nie-pomimo-ai","Nauka z AI, nie pomimo AI",[10,1466,1467],{},"Wkuwanie miało sens, gdy wąskim gardłem było pisanie. Dziś wąskim gardłem jest rozumienie, więc wygrywa analiza. AI wygenerowało taki fragment:",[278,1469,1471],{"className":280,"code":1470,"language":282,"meta":146,"style":146},"const activeEmails = users\n  .filter((user) => user.lastLoginDaysAgo \u003C= 30)\n  .map((user) => user.email);\n",[284,1472,1473,1485,1517],{"__ignoreMap":146},[287,1474,1475,1477,1480,1482],{"class":289,"line":290},[287,1476,294],{"class":293},[287,1478,1479],{"class":297}," activeEmails",[287,1481,302],{"class":301},[287,1483,1484],{"class":314}," users\n",[287,1486,1487,1490,1492,1494,1497,1499,1501,1504,1506,1509,1512,1515],{"class":289,"line":150},[287,1488,1489],{"class":305},"  .",[287,1491,411],{"class":410},[287,1493,414],{"class":305},[287,1495,1496],{"class":417},"user",[287,1498,421],{"class":305},[287,1500,424],{"class":293},[287,1502,1503],{"class":297}," user",[287,1505,66],{"class":305},[287,1507,1508],{"class":314},"lastLoginDaysAgo",[287,1510,1511],{"class":301}," \u003C=",[287,1513,1514],{"class":333}," 30",[287,1516,1298],{"class":305},[287,1518,1519,1521,1523,1525,1527,1529,1531,1533,1535,1538],{"class":289,"line":147},[287,1520,1489],{"class":305},[287,1522,1127],{"class":410},[287,1524,414],{"class":305},[287,1526,1496],{"class":417},[287,1528,421],{"class":305},[287,1530,424],{"class":293},[287,1532,1503],{"class":297},[287,1534,66],{"class":305},[287,1536,1537],{"class":314},"email",[287,1539,440],{"class":305},[10,1541,1542,1543,66],{},"Nie wklejaj go od razu. Powiedz na głos, co robi: bierze użytkowników, zostawia zalogowanych w ostatnich trzydziestu dniach i wyciąga ich adresy. Brzmi banalnie, a wyłapuje większość problemów z kodem od AI. Na przykład taki: w Twoich danych nie ma w ogóle pola ",[284,1544,1508],{},[10,1546,1547],{},"Wokół tego gestu buduje się cała reszta:",[75,1549,1550,1556,1562,1568],{},[35,1551,1552,1555],{},[80,1553,1554],{},"Analiza każdego wygenerowanego fragmentu."," Kod, którego nie da się opisać własnymi słowami, nie jest jeszcze zrozumiany, więc nie nadaje się do wklejenia.",[35,1557,1558,1561],{},[80,1559,1560],{},"„Dlaczego\", nie samo „jak\"."," AI to cierpliwy mentor: poproś o wyjaśnienie decyzji, o alternatywy, o review własnego kodu. Z gotowej odpowiedzi bez „dlaczego\" zostaje zero.",[35,1563,1564,1567],{},[80,1565,1566],{},"Najpierw plan, potem prompt."," Problem rozbity po polsku przed promptem pozwala zweryfikować wynik wobec własnego planu, a nie brać, co popadnie.",[35,1569,1570,1573],{},[80,1571,1572],{},"Projekty, w których AI pisze 80%, a Ty rozumiesz 100%."," Proporcje kodu nie są problemem. Proporcje rozumienia są.",[10,1575,1576],{},"Różnicę widać na promptach. Słaby brzmi „napisz mi aplikację z quizem\". Dobry to plan przełożony na kontekst i wymagania:",[278,1578,1581],{"className":1579,"code":1580,"language":617,"meta":146},[615],"Jestem na etapie backendu aplikacji z wyzwaniami (Nuxt, server routes na Nitrze).\nNapisz server route POST \u002Fapi\u002Fscore, który:\n1. przyjmuje id gry i odpowiedzi gracza,\n2. pobiera poprawne odpowiedzi z bazy - nigdy nie wysyła ich do klienta,\n3. zwraca wyłącznie wynik.\nZanim napiszesz kod, wypunktuj przypadki brzegowe, które powinienem obsłużyć.\n",[284,1582,1580],{"__ignoreMap":146},[10,1584,1585],{},"Ten prompt zaczyna się od kontekstu, a kończy pytaniem „czego nie wiem\". To drugie zamienia automat w mentora.",[14,1587,1589],{"id":1588},"błędy-które-ai-tylko-podkręciło","Błędy, które AI tylko podkręciło",[10,1591,1592],{},"Pułapki w nauce są te same co zawsze, tylko w nowym opakowaniu:",[75,1594,1595,1601,1607,1613,1619],{},[35,1596,1597,1600],{},[80,1598,1599],{},"Kopiuj-wklej bez czytania."," Kod z AI działa, dopóki się nie zepsuje. A psuje się przy pierwszej zmianie wymagań i wtedy zostajesz sam z kodem, którego nie rozumiesz.",[35,1602,1603,1606],{},[80,1604,1605],{},"Skok prosto do frameworków."," React bez solidnego JavaScriptu to domek na piasku. AI to maskuje, bo „działa\", aż do pierwszego nietypowego błędu.",[35,1608,1609,1612],{},[80,1610,1611],{},"Wkuwanie składni jak na sprawdzian."," Składnia żyje w dokumentacji i w AI. W głowie trzymaj koncepcje: przepływ danych, cykl życia komponentu, relacje w bazie.",[35,1614,1615,1618],{},[80,1616,1617],{},"Zbieranie technologii zamiast łączenia ich."," Osiem tutoriali z ośmiu technologii uczy mniej niż jedna aplikacja przechodząca przez wszystkie warstwy.",[35,1620,1621,1624],{},[80,1622,1623],{},"„AI i tak zastąpi początkujących\"."," Zastępuje tych, którzy tylko przepisują. Nagradza tych, którzy rozumieją, a rozumienie bierze się z praktyki, której nie da się pominąć.",[14,1626,105],{"id":104},[51,1628,1630],{"id":1629},"czy-ai-nie-zastąpi-programistów","Czy AI nie zastąpi programistów?",[10,1632,1633],{},"Zastępuje fragmenty pracy, nie całość. Znika programista-przepisacz, rośnie znaczenie tego, który rozumie system i czyta cudzy kod. Im więcej kodu generują modele, tym więcej ludzi potrzeba do jego oceny i utrzymania.",[51,1635,1637],{"id":1636},"od-której-technologii-zacząć","Od której technologii zacząć?",[10,1639,1640,1641,66],{},"Od HTML, CSS i JavaScriptu, dokładnie w tej kolejności. To baza, na której stoi cały web; bez niej każda kolejna technologia będzie magią. Szczegółowy plan startu opisuje artykuł ",[62,1642,1644],{"href":1643},"\u002Fblog\u002Fprogramowanie\u002Fjak-zaczac-programowac-od-zera","jak zacząć programować od zera",[51,1646,1648],{"id":1647},"ile-trwa-droga-do-fullstacka","Ile trwa droga do fullstacka?",[10,1650,1651],{},"Przy regularnej, projektowej nauce pierwsza kompletna aplikacja powstaje po kilku miesiącach, a poziom pierwszej pracy to zwykle rok do półtora. AI skraca pisanie kodu, nie skraca budowania rozumienia. I dobrze, bo to ono jest dziś najbardziej opłacalne.",[14,1653,1655],{"id":1654},"chcesz-przejść-tę-ścieżkę-z-planem","Chcesz przejść tę ścieżkę z planem?",[10,1657,1658,1659,1048,1661,66],{},"Najwięcej czasu zabiera nie nauka, tylko zgadywanie kolejności i szukanie materiałów. Na zajęciach układamy ścieżkę pod cel i od początku pracujemy na kodzie, który analizujemy i rozumiemy, z AI używanym z głową. Zobacz, jak wygląda ",[62,1660,1047],{"href":1046},[62,1662,1051],{"href":142},[10,1664,1665,1666,66],{},"A jeśli podstawy są już na miejscu i chcesz zbudować opisaną wyżej aplikację od zera, krok po kroku i z publicznym deployem, zobacz ",[62,1667,1668],{"href":1058},"kurs DevChallenge",[1062,1670,1671],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":146,"searchDepth":147,"depth":147,"links":1673},[1674,1675,1676,1677,1678,1679,1684],{"id":1105,"depth":150,"text":1106},{"id":1146,"depth":150,"text":1147},{"id":1156,"depth":150,"text":1157},{"id":1463,"depth":150,"text":1464},{"id":1588,"depth":150,"text":1589},{"id":104,"depth":150,"text":105,"children":1680},[1681,1682,1683],{"id":1629,"depth":147,"text":1630},{"id":1636,"depth":147,"text":1637},{"id":1647,"depth":147,"text":1648},{"id":1654,"depth":150,"text":1655},"2026-07-17","Jak zostać fullstack developerem w dobie AI? Ścieżka od HTML po deploy i nauka, w której analiza kodu bije wkuwanie składni.",{},"8 min",{"title":1097,"description":1686},{"loc":831},"blog\u002Fprogramowanie\u002Ffullstack-developer-w-dobie-ai","DT0lCAwR8AMwmo8SP-Ka-FfoW4sD8M2Dj4kGI1JZCng",1785459977656]