AI, Sztuczna Inteligencja, ML, LLM, Gen AI… – na pierwszy rzut oka te wszystkie hasła mogą wydawać się jedynie modnymi terminami, które zdominowały świat technologii.
Czy jednak kryje się za nimi coś więcej i czy programista znajdzie tutaj coś ciekawego?
Zdecydowanie tak!
Żyjemy w czasach, gdzie sztuczna inteligencja stała się niezwykle użytecznym narzędziem właśnie dla programistów, dostarczając rozwiązania, które rewolucjonizują naszą pracę.
W tym wpisie przyjrzymy się, jak AI już teraz wspiera programistów na różnych etapach tworzenia oprogramowania, od automatycznego generowania kodu, przez refaktoryzację kodu, aż po automatyzację codziennych zadań.
Poniżej znajdziesz aż 10 przykładów, jak wykorzystuję AI w mojej pracy jako programista.
Zapraszam! 👇
➡ ZOBACZ 👉: AI vs Człowiek! To będzie prawdziwa walka! Nie Daj Się Zastąpić! ⚔️🥊💥🤼
Spis treści
- 1 Praktyczne przykłady,
jak programista może wykorzystać AI już dziś! 🔥
- 1.1 Automatyczne Generowanie Kodu: Zwiększenie Efektywności Pracy
- 1.2 Automatyczne Testowanie Kodu: Redukcja Błędów na Wczesnym Etapie
- 1.3 Refaktoryzacja Kodu i Inteligentne Sugestie: IDE na Sterydach! 💉
- 1.4 Wykrywanie Błędów i Debugowanie: Nowy Wymiar Jakości
- 1.5 Automatyczne Tworzenie Dokumentacji: AI zrób to za mnie…
- 1.6 Szybsza Nauka i Natychmiastowa Informacja Zwrotna: Personalizacja Procesu Nauki
- 1.7 Podjęcie decyzji skomplikowanych decyzji projektowych
- 1.8 Tworzenie Chatbota lub Asystenta Programisty: Nowe Możliwości w Kodowaniu
- 1.9 Automatyzacja Codziennych Zadań: Zwiększenie Produktywności
- 1.10 Podsumowanie wiadomości i zawsze bycie na bieżąco
- 2 AI to potężne narzędzie
- 3 Warsztat AI dla programistów
- 4 20+ BONUSOWYCH materiałów z programowania
Praktyczne przykłady,
jak programista może wykorzystać AI już dziś! 🔥
Automatyczne Generowanie Kodu: Zwiększenie Efektywności Pracy
Jednym z podstawowych zastosowań AI w programowaniu jest automatyczne generowanie kodu. Narzędzia takie jak GitHub Copilot potrafią sugerować i tworzyć fragmenty kodu na podstawie opisu problemu lub istniejącego kodu.
Kluczową zaletą tego podejścia jest oszczędność czasu – im bardziej precyzyjnie określisz swoje oczekiwania, tym większa szansa na uzyskanie zadowalających wyników.
Oczywiście możemy to też zrobić korzystając z przeglądarkowej wersji ChatGPT, jednak integracja LLM z naszym IDE i łatwy dostęp do plików projektu znacząco usprawnia ten proces!
Jak to wygląda w praktyce?
Przykładem może być sytuacja, w której piszesz polecenie dotyczące zapisu obiektu do pliku. LLM analizuje Twoje potrzeby i dostarcza odpowiednią sugestię kodu.
Czy tak przygotowany kod będzie „idealny” i pozbawiony wszystkich wad?
Niekoniecznie 🙂
Ale z pewnością zajmie Ci mniej czasu dostosowanie go do Twoich potrzeb niż pisanie wszystkiego od zera.
Automatyczne Testowanie Kodu: Redukcja Błędów na Wczesnym Etapie
Testowanie kodu to kolejny obszar, w którym AI może okazać się niezastąpionym wsparciem.
W podstawowej wersji wykorzystujemy tutaj podobne podejście jak przy generowaniu dowolnego innego fragmentu naszego projektu. Czyli „prosimy” naszego LLMa o wygenerowanie testów.
Pamiętaj jednak, że nie jest to tylko klasyczny generator, a odrobinę bardziej zaawansowane narzędzie. Dzięki dostępowi do innych testów i do zawartości naszych klas LLM może dopasować styl testów, czy uzupełnić brakujące przypadki testowe.
Poza pisaniem klasycznych testów możesz też poprosić LLM o analizę Twojego kodu i próbę odnalezienia w nim potencjalnych błędów. To podejście jest podobne do statycznej analizy kodu, tylko działa lepiej 🙂
➡ ZOBACZ 👉: Testowanie oprogramowania
Refaktoryzacja Kodu i Inteligentne Sugestie: IDE na Sterydach! 💉
Kolejnym krokiem w wykorzystaniu AI jest refaktoryzacja kodu oraz inteligentne sugestie bezpośrednio w IDE. Nowoczesne edytory, takie jak Visual Studio Code, czy Intellij Idea zintegrowane z GitHub Copilot, oferują sugestie podczas pisania kodu, przewidując, co programista zamierza napisać.
I to naprawdę działa…
W odróżnieniu od tradycyjnych narzędzi do statycznej analizy kodu, LLM potrafi zasugerować bardziej zaawansowane i kontekstowe poprawki, które można wdrożyć samodzielnie lub poprosić AI o ich wyjaśnienie, dostosowanie do naszych potrzeb, czy nawet bezpośrednie zaimplementowanie w naszym kodzie 🙂
I nie mówimy tutaj tylko o podpowiedzi kolejnego parametru w metodzie, a raczej o całych fragmentach kodu jak np. brakujące metody.
A co jeżeli nie podoba Ci się przygotowana sugestia?
Zawsze możesz spróbować kolejnej i kolejnej… Albo doprecyzować czego potrzebujesz.
➡ ZOBACZ 👉: Refaktoryzacja Kodu | Dlaczego kusi Cię, by wywalić kod i napisać go od nowa?
Wykrywanie Błędów i Debugowanie: Nowy Wymiar Jakości
Skoro jesteśmy już przy pisaniu testów i refaktoryzacji, to warto również wspomnieć o możliwości wykorzystania AI podczas debugowania naszego kodu i poszukiwaniu/naprawie różnego rodzaju błędów.
LLM może samodzielnie podjąć próbę analizy naszego kodu i przygotować sugestie, ale możemy go również wykorzystać do wspólnego prześledzenia logiki biznesowej. Czyli prosisz LLM o dokładne krok po kroku wyjaśnienie jak zachowa się dany fragment kodu, a gdy coś jest nie jasne dopytujesz i doprecyzowujesz. Dzięki takiej współpracy można dość szybko wyłapać braki w rozumowaniu.
Czyli AI może analizować kod pod kątem potencjalnych błędów, sugerować poprawki, a nawet automatycznie naprawiać niektóre z nich.
Oczywiście podczas takiej analizy możemy też wkleić fragment błędu czy nawet cały stacktrace.
A jeżeli chcesz iść już całkiem na całość, to można też przygotować automatyzację, która na produkcji będzie śledziła logi i w razie potrzeby podejmowała odpowiednie kroki!
➡ ZOBACZ 👉: Debugowanie, jakiego jeszcze nie znałeś
Automatyczne Tworzenie Dokumentacji: AI zrób to za mnie…
Lubisz pisać dokumentację? Bo ja nie…
Jest to jednak jeden z tych elementów programowania, o którym lepiej nie zapominać.
Całe szczęście ten proces też możemy sobie usprawnić, chociażby pisząc czysty i samodokumentujący się kod.
Wykorzystując dzisiejsze możliwości AI możemy pójść jeszcze o krok dalej i przy pomocy LLM wygenerować dokumentację dla naszego projektu.
Czy będzie ona idealna i nic nie będziesz musiał robić?
No nie… aż tak dobrze to nie będzie. Ale dzięki takiemu szkicowi z pewnością zajmie Ci to zdecydowanie mniej czasu.
➡ ZOBACZ 👉: Komentarze i samodokumentujący się kod | Kurs Java
Szybsza Nauka i Natychmiastowa Informacja Zwrotna: Personalizacja Procesu Nauki
Od kiedy korzystam w swojej pracy z możliwości dużych modeli językowych mój proces nauki nowych rzeczy znacząco przyspieszył. W dużej mierze związane jest to z bardzo łatwym dostępem do kontekstowej, personalizowanej wiedzy i natychmiastową wręcz informacją zwrotną.
W dzisiejszych czasach nie mamy problemu z dostępem do informacji. Wręcz przeciwnie często tej wiedzy jest tak dużo, że nie wiemy od czego zacząć… 10 książek na półce, czy link do obszernej dokumentacji w żaden sposób nie poprawi Twoje sytuacji.
A teraz wyobraź sobie, że piszesz fragment kodu i nie możesz sobie przypomnieć jaka to była metoda i z jakiej biblioteki – bezpośrednio z poziomu Twojego IDE opisujesz swój problem i już po chwili masz podpowiedzi.
Nie rozumiesz jakiegoś fragmentu kodu? To zaznaczasz go i prosisz o wyjaśnienie!
A co w sytuacji gdy LLM nie ma w swojej bazowej wiedzy np. informacji o najnowszej wersji frameworku?
Wystarczy, że skopiujesz dany fragment dokumentacji i dodasz go do kontekstu.
Z takim wsparciem nauka nowych rzeczy jest dużo dużo prostsza.
➡ ZOBACZ 👉: Nauka Programowania 100x Szybciej dzięki AI
➡ ZOBACZ 👉: Nauka programowania – jak się uczyć programowania, mimo braku czasu i motywacji
Podjęcie decyzji skomplikowanych decyzji projektowych
Jest to kolejny przykład na to jak LLM może być naszym partnerem w procesie wytwarzania oprogramowania.
Pamiętaj: nie chodzi o to, by zrzucić całą odpowiedzialność za zadanie na AI, a o to, by wykorzystać jej potencjał do lepszego i szybszego procesu podejmowania decyzji.
W przypadku trudniejszych decyzji architektonicznych np. wyborze konkretnej technologii, czy rozwiązania zazwyczaj zastanawiamy się miedzy 2-3 opcjami. Coś już wiemy, mamy jakieś przemyślenia, ale trzeba to dobrze ułożyć w głowie, może czegoś doszukać, sprawdzić coś – i dopiero wtedy podjąć ostateczną decyzję.
I właśnie w takim procesie świetnie sprawdzają się LLMy! 🙂
Możemy tutaj wykorzystać np. technikę projektowania promptów drzewo myśli (ang. three of thoughts).
W dużym uproszczeniu polega to na tym, że przygotowujemy dość rozbudowany prompt z naszym kontekstem i to co chcemy osiągnąć, a następnie prosimy LLM o przygotowanie 3 alternatywnych scenariuszy. Nie kończymy jednak w tym momencie, a kontynuujemy proces myślowy rozszerzając te scenariusze. Czyli wspólnie z AI przechodzimy przez cały proces myślowy.
Dzięki tej drobnej zmianie można uzyskać naprawdę świetne rezultaty.
Tworzenie Chatbota lub Asystenta Programisty: Nowe Możliwości w Kodowaniu
Do tej pory mówiliśmy głównie o wykorzystaniu LLMów podczas procesu tworzenia oprogramowania, ale nic nie stoi na przeszkodzie, żeby wykorzystać je również bezpośrednio w kodzie naszych aplikacji! I dzięki temu dostarczyć jeszcze większą wartość dla naszych klientów.
Między innymi tak powstał nasz asystent do nauki programowania, czy asystent wsparcia klienta C3PO.
Asystent nauki programowania
Asystent nauki programowania, którego screen widzisz powyżej, to aplikacja, która powstała w ramach programu KierunekJava.pl, żeby pomóc kursantom jeszcze lepiej i szybciej uczyć się programowania.
Pod spodem wykorzystujemy komunikację z LLM i rozszerzamy jego bazową wiedzę o naszą wewnętrzną bazę wiedzy.
Fajne i bardzo praktyczne, bo kursant dostaje spersonalizowane porady, a my nie musimy odpowiadać n-ty raz na te same pytania.
Asystent wsparcia klienta, C3PO
C3PO, to kolejny z naszych asystentów opartych o AI. Tym razem możliwości LLM zostały wykorzystane między innymi do wywoływania wewnętrznej logiki. Czyli model językowy jest swego rodzaju interfejsem, z którego korzysta użytkownik.
Korzystamy tutaj np. z możliwości przydzielenia odpowiednich uprawnień na discord (wywołanie specjalnego API), czy odpowiedzi na podstawowe pytania bazując na wewnętrznej bazie wiedzy.
Automatyzacja Codziennych Zadań: Zwiększenie Produktywności
AI nie tylko pomaga w tworzeniu kodu, ale również w automatyzacji codziennych zadań, takich jak analiza danych, podsumowanie wiadomości czy nawet odpowiedzi na maile.
Dzięki temu jako programista mogę skupić się na bardziej kreatywnych aspektach pracy, a rutynowe zadania przekazać robotom 🙂
Automatyczna obsługa nagrań ze spotkania
Jedna z moich starszych automatyzacji obsługuje nasze cykliczne spotkania mentoringowe.
W kalendarzu mam cykliczne wydarzenie na spotkanie, które czasami muszę przenieść na inny termin. Jednak poza przyjściem na samo spotkanie, jest to moja jedyna aktywność w tym temacie 🙂
Całą resztę pracy wykonuje automat, czyli:
- Sprawdza kiedy jest spotkanie i informuje o tym kursantów.
- Przypomina o zbliżającym się wydarzeniu.
- Nagrywa spotkanie i przenosi materiał na platformę z nagraniami.
- Aktualizuje stronę z nagraniami i powiadamia zainteresowane osoby.
Analiza ankiet
Analiza dużych zbiorów danych, to kolejne zadanie w którym bardzo chętnie korzystam z AI.
Zasilam model danymi w nieustrukturyzowanej formie, a następnie proszę go o:
- Poukładanie i pozbycie się śmieci oraz duplikatów.
- Streszczenie i podsumowanie.
- Wyciągnięcie wniosków.
- I co tylko jeszcze przyjdzie mi do głowy 🙂
Komunikacja w dzisiejszych czasach zajmuje nam bardzo dużo czasu, a przecież w większości wypadków nie przekłada się to bezpośrednio na nasze wynagrodzenie…
Dodatkowo znaczna część takiej komunikacji przecież się powtarza.
O ile nie zleciłbym jeszcze AI całkowicie obsługi mojego maila 😉 to tutaj też możemy wspierać się jej możliwościami.
Bazując na wcześniejszych naszych odpowiedziach można przygotować bazę wiedzy oraz poprosić model o odtworzenie naszego stylu wypowiedzi.
Wtedy wystarczy już prosta automatyzacja, która przygotuje szablon odpowiedzi do naszej późniejszej weryfikacji i wysłania.
Podsumowanie wiadomości i zawsze bycie na bieżąco
W dzisiejszym szybko zmieniającym się świecie technologii bycie na bieżąco jest bardzo ważne.
Jednak dla przeciętnego śmiertelnika przeczytanie i zweryfikowanie wszystkich pojawiających się informacji jest poza zasięgiem.
Całe szczęście tutaj też możemy wspomóc się LLM.
Jedna z automatyzacji, którą wykorzystuję zbiera mi popularne wpisy z danego tygodnia, a następnie odpowiednio je przefiltrowuje i podsumowuje.
Określiłem tutaj reguły, które definiują co mnie interesuje, a co można pominąć.
AI to potężne narzędzie
AI to nie jest magiczna kula, która wszystko wie i wszystko potrafi…
LLM to potężne, ale jednocześnie dość ograniczone narzędzie!
Czasem „głupie”…
Ale dobrze wykorzystane, potrafi naprawdę bardzo, bardzo dużo!
Warsztat AI dla programistów
Live, AI dla Programistów, co Cię czeka? ⏰
>> Link do szkolenia
i wszystkie niezbędne informacje
Podczas spotkania omówimy 👇
- ✅ Co AI potrafi już dzisiaj i czego spodziewamy się w najbliższych latach. 🤔
- ✅ Jak wykorzystać AI, żeby pisać kod nawet x100 szybciej! 🔥
- ✅ Praktyczne projekty AI z wykorzystaniem dużych modeli językowych. 🚀
- ✅ Dlaczego AI czasem kłamie & jak „nauczyć” LLM nowych rzeczy? 🤯
20+ BONUSOWYCH materiałów z programowania
e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!