Sztuczna inteligencja coraz mocniej zaznacza swoją obecność w branży technologicznej. Narzędzia wykorzystujące generatywną AI potrafią wspierać programistów podczas tworzenia kodu, wyszukiwania błędów, przygotowywania testów czy analizowania istniejących rozwiązań. Nie oznacza to jednak, że programowanie przestaje wymagać specjalistycznej wiedzy. Wręcz przeciwnie – wraz z upowszechnieniem narzędzi AI większego znaczenia nabiera umiejętność sprawdzania ich wyników oraz rozumienia całego procesu tworzenia oprogramowania.
Programowanie w czasach sztucznej inteligencji nie sprowadza się więc do zastępowania człowieka przez algorytm. Obecnie trafniej można mówić o zmianie sposobu wykonywania części zadań przez specjalistów IT. Jak wygląda ona w praktyce i które kompetencje pozostają szczególnie ważne?
Sztuczna inteligencja w programowaniu – do czego można wykorzystać AI?
Sztuczna inteligencja w programowaniu może wspierać wiele etapów pracy nad oprogramowaniem. Narzędzia wykorzystujące modele generatywne są stosowane między innymi do tworzenia fragmentów kodu, wyjaśniania jego działania, przygotowywania testów, analizy błędów czy proponowania zmian w istniejących rozwiązaniach.
NIST, czyli amerykański National Institute of Standards and Technology, wskazuje, że AI jest wykorzystywana w cyklu tworzenia oprogramowania między innymi do automatyzacji kodowania, analizy bezpieczeństwa, wykrywania podatności oraz wspomagania ich usuwania. Jednocześnie instytucja podkreśla konieczność monitorowania i weryfikowania treści wygenerowanych przez AI przez człowieka.
Oznacza to, że narzędzia AI dla programistów mogą być pomocne podczas wykonywania części zadań, ale ich wyników nie należy traktować jako automatycznie poprawnych.
AI a praca programisty – generowanie kodu nie oznacza jego poprawności
Jedną z najważniejszych zasad korzystania ze sztucznej inteligencji podczas programowania jest weryfikacja otrzymanych odpowiedzi.
Model AI może wygenerować kod, który wygląda przekonująco i jest poprawny składniowo, ale jednocześnie zawiera błędy logiczne, wykorzystuje niewłaściwe zależności albo nie spełnia wymagań dotyczących bezpieczeństwa.
OWASP zwraca uwagę między innymi na możliwość proponowania przez narzędzia AI nieistniejących pakietów oraz przestarzałych wersji zależności, w których mogą występować znane podatności. Organizacja zaleca sprawdzanie bibliotek proponowanych przez AI oraz kontrolowanie ich pod kątem znanych luk bezpieczeństwa.
Dlatego programowanie z AI nadal wymaga znajomości języka, frameworków, architektury aplikacji i zasad bezpiecznego wytwarzania oprogramowania.

Jak zmienia się rola programisty w erze AI?
Nie można z całą pewnością przewidzieć, jak będzie wyglądał zawód programisty za kilka lub kilkanaście lat. Można natomiast wskazać zmiany, które są widoczne już obecnie.
Jeżeli część prostych czynności może zostać zautomatyzowana, specjalista może poświęcić więcej uwagi analizie problemu, projektowaniu rozwiązania oraz sprawdzaniu rezultatów wygenerowanych przez narzędzia. W takich warunkach istotna staje się nie tylko umiejętność napisania kodu, ale także ocena tego, czy zaproponowane rozwiązanie rzeczywiście jest odpowiednie dla konkretnego projektu.
W pracy programisty wykorzystującego AI szczególnego znaczenia nabierają między innymi:
- rozumienie architektury aplikacji i systemów,
- analizowanie wymagań biznesowych,
- weryfikowanie kodu generowanego przez AI,
- testowanie aplikacji,
- znajomość zasad cyberbezpieczeństwa,
- debugowanie i wyszukiwanie przyczyn problemów,
- kontrolowanie wykorzystywanych bibliotek i zależności,
- umiejętność oceny wydajności rozwiązania,
- rozumienie działania baz danych, API i infrastruktury,
- komunikacja z zespołem oraz osobami odpowiedzialnymi za produkt.
Nie są to zupełnie nowe kompetencje. AI powoduje jednak, że mogą być wykorzystywane w nieco innym modelu pracy.
Czy sztuczna inteligencja zastąpi programistów?
Pytanie „czy AI zastąpi programistów?” nie ma dziś jednoznacznej odpowiedzi. Dostępne fakty pozwalają stwierdzić, że sztuczna inteligencja może automatyzować część zadań związanych z tworzeniem oprogramowania. Nie pozwalają natomiast wiarygodnie przesądzić, że zawód programisty zniknie.
Tworzenie aplikacji nie polega wyłącznie na pisaniu kolejnych linii kodu. Wymaga określenia potrzeb użytkowników, wyboru architektury, uwzględnienia ograniczeń technicznych, zapewnienia bezpieczeństwa oraz późniejszego utrzymywania systemu.
Co ważne, oficjalne rekomendacje dotyczące wykorzystania AI w procesie wytwarzania oprogramowania nadal zakładają udział człowieka. NIST wskazuje na potrzebę ludzkiego nadzoru nad treściami generowanymi przez sztuczną inteligencję i weryfikowania ich poprawności oraz wiarygodności.
Dlatego bardziej precyzyjne jest stwierdzenie, że obecnie AI zmienia sposób realizowania niektórych zadań programistycznych, zamiast przedstawiania jej jako pewnego następcy programistów.
Programowanie z AI a cyberbezpieczeństwo
Jednym z najważniejszych obszarów wymagających szczególnej ostrożności jest cyberbezpieczeństwo kodu generowanego przez AI.
Kod zaproponowany przez model nie powinien trafiać do środowiska produkcyjnego wyłącznie dlatego, że działa podczas podstawowego testu. Konieczne może być sprawdzenie sposobu obsługi danych użytkowników, uwierzytelniania, autoryzacji, komunikacji z bazą danych, wykorzystywanych bibliotek czy odporności na typowe klasy ataków.
OWASP podkreśla, że sprawdzenie przez narzędzie AI nie powinno zastępować ludzkiego przeglądu bezpieczeństwa. Organizacja wskazuje również na ryzyko używania przestarzałych komponentów oraz zależności zawierających znane podatności.
Znaczenie bezpieczeństwa potwierdza także NIST. Specjalna publikacja SP 800-218A rozszerza praktyki Secure Software Development Framework o zagadnienia związane z generatywną sztuczną inteligencją i rozwojem systemów AI.
Czy nadal warto uczyć się programowania?
Rozwój generatorów kodu nie oznacza, że znajomość podstaw programowania staje się zbędna. Wręcz przeciwnie – bez odpowiedniej wiedzy trudno ocenić, czy odpowiedź wygenerowana przez AI jest poprawna.
Osoba, która rozumie algorytmy, struktury danych, typowe błędy programistyczne i zasady działania aplikacji, jest w stanie krytycznie przeanalizować propozycję modelu. Może też szybciej zauważyć sytuację, w której kod działa tylko pozornie poprawnie.
Dlatego podczas nauki nadal warto rozwijać podstawowe kompetencje, takie jak:
- algorytmiczne i logiczne myślenie,
- znajomość co najmniej jednego języka programowania,
- struktury danych,
- korzystanie z systemów kontroli wersji,
- podstawy baz danych,
- testowanie,
- debugowanie,
- podstawy bezpieczeństwa aplikacji.
AI można wykorzystywać jako pomoc podczas nauki, ale bezrefleksyjne kopiowanie wygenerowanych odpowiedzi może utrudniać zdobycie umiejętności potrzebnych do samodzielnego rozwiązywania problemów.
Junior developer w czasach sztucznej inteligencji
Szczególnie ciekawa jest sytuacja osób rozpoczynających pracę w branży IT. AI dla programistów może ułatwiać naukę dzięki szybkiemu wyjaśnianiu fragmentów kodu, przedstawianiu przykładów oraz podpowiadaniu możliwych przyczyn błędów.
Jednocześnie pojawia się ryzyko nadmiernego uzależnienia od gotowych odpowiedzi. Junior developer, który potrafi wygenerować rozwiązanie, ale nie rozumie jego działania, może mieć problem z jego późniejszym rozwijaniem, debugowaniem lub zabezpieczeniem.
Z tego względu warto traktować AI jako narzędzie wspierające naukę, a nie jako zamiennik zdobywania podstawowej wiedzy technicznej.
Jakie kompetencje IT mogą zyskiwać na znaczeniu?
Nie da się z pełną pewnością wskazać, które kompetencje będą najbardziej poszukiwane na rynku pracy za kilka lat. Można jednak zauważyć, że rozwój narzędzi automatyzujących pisanie kodu zwiększa znaczenie umiejętności potrzebnych do kontrolowania rezultatów tej automatyzacji.
Dotyczy to szczególnie architektury systemów, testowania, cyberbezpieczeństwa, analizy wymagań oraz rozwiązywania złożonych problemów.
Istotna może być również wiedza domenowa. Programista tworzący oprogramowanie dla finansów, logistyki, przemysłu czy handlu musi nie tylko znać technologie, ale także rozumieć procesy, które system ma obsługiwać. Sama możliwość wygenerowania kodu nie zastępuje znajomości celu tworzonego rozwiązania.
Przyszłość programowania i sztuczna inteligencja – co wiemy, a czego jeszcze nie?
Można z dużą pewnością powiedzieć, że AI jest już wykorzystywana w procesach tworzenia oprogramowania i że instytucje zajmujące się bezpieczeństwem opracowują zasady jej odpowiedzialnego stosowania. NIST posiada osobne zalecenia dotyczące bezpiecznego tworzenia systemów wykorzystujących generatywną AI, a OWASP publikuje praktyczne wskazówki dotyczące bezpiecznego używania AI podczas kodowania.
Nie można natomiast przedstawiać jako faktu stwierdzenia, że AI całkowicie zastąpi programistów albo że na pewno tego nie zrobi. Są to prognozy dotyczące przyszłości, zależne nie tylko od rozwoju technologii, ale również od potrzeb przedsiębiorstw, bezpieczeństwa, regulacji, kosztów i wielu innych czynników.
Dlatego przyszłość programowania lepiej analizować przez pryzmat zmieniających się zadań niż przez proste pytanie o zniknięcie konkretnego zawodu.
Programista w erze AI – podsumowanie
Programowanie w czasach sztucznej inteligencji rzeczywiście się zmienia. AI może wspierać tworzenie kodu, analizę błędów, testowanie oraz inne elementy procesu wytwarzania oprogramowania. Jednocześnie zarówno NIST, jak i OWASP wskazują na potrzebę kontroli, weryfikacji i stosowania zasad bezpieczeństwa podczas korzystania z rozwiązań opartych na sztucznej inteligencji.
Nie ma obecnie podstaw, by traktować koniec zawodu programisty jako przesądzony fakt. Bardziej uzasadnione jest stwierdzenie, że zmienia się zestaw narzędzi wykorzystywanych przez specjalistów oraz sposób wykonywania części obowiązków.
Dlatego znajomość programowania nadal ma znaczenie. W świecie coraz łatwiej dostępnego kodu generowanego przez AI szczególnie cenna staje się umiejętność zrozumienia tego kodu, wykrycia jego wad, zapewnienia bezpieczeństwa oraz podjęcia właściwej decyzji technicznej.


Dodaj komentarz