Czy Sztuczna inteligencja w najbliższej przyszłości zastąpi juniorów w branży IT i czy warto w ogóle uczyć się jeszcze programowania ?
W tym wpisie zajmiemy się tematami związanymi ze sztuczną inteligencją, która istniała już od jakiegoś czasu ale od niedawna stała się tak bardzo popularna, że niektórzy zaczęli zastanawiać się czy już wkrótce nie zastąpi ona programistów.
Szczególnie głośno zrobiło się po publikacji ChatGPT czyli chatbota wykorzystujący model języka GPT-3 opracowanego przez OpenAI, służący do generowania odpowiedzi na dane wprowadzane przez użytkownika.
Jeśli nie lubisz czytać to sobie obejrzyj 😉
Wszyscy są podnieceni a osoby, które zastanawiały się nad nauką programowania zaczęły mieć wątpliwości czy warto. A czy kasy samoobsługowe w sklepach zastąpiły ludzi ? No nie i tak samo jest i będzie ze sztuczną inteligencją, po prostu zmieni branżę IT i zawód programisty ale… Zapraszam do czytania.
Żeby była jasność dla tych bardziej i mniej zorientowanych, wyjaśnijmy sobie pokrótce czym jest i jak działa sztuczna inteligencja.
Czym jest i jak działa sztuczna inteligencja ?
Termin sztuczna inteligencja pojawił się po raz pierwszy już w latach pięćdziesiątych, ale sztuczna inteligencja stała się bardziej popularna dopiero niedawno dzięki zwiększonej ilości danych, zaawansowanym algorytmom oraz coraz większej mocy obliczeniowej i olbrzymiej pamięci trwałej, która umożliwia przechowywanie dużych ilości danych przez długi czas.
Wczesne badania nad sztuczną inteligencją w latach pięćdziesiątych dotyczyły takich tematów, jak rozwiązywanie problemów i metody symboliczne, które upraszczają pod względem obliczeniowym analizę obwodów prądu przemiennego.
Spokojnie nie będziemy brnęli w ten temat dalej bo ja też tracę grunt. W latach sześćdziesiątych Departament Obrony Stanów Zjednoczonych zainteresował się tego typu pracą i zaczął szkolić komputery aby były one w stanie wykonywać operacje na zasadzie naśladowania człowieka.
Przykładowo DARPA (ang. Defense Advanced Research Projects Agency) czyli amerykańska agencja działającą w dziedzinie zaawansowanych technologii militarnych USA ukończyła projekty mapowania ulic w latach 70.
Dodatkowo to DARPA wyprodukowała inteligentnych asystentów osobistych już na początku 21 wieku, na długo zanim Siri czyli inteligentny asystent osobisty, będący częścią systemów operacyjnych Apple, Alexa czy asystent głosowy stworzony przez firmę Amazon czy Cortana stały się powszechnie znane.
To właśnie dzięki tamtym działaniom różnych komórek Departamentu Obrony Stanów Zjednoczonych otworzona została droga do automatyzacji i dążenia aby komputer wspomagał, uzupełniał i zwiększał ludzkie możliwości.
Sztuczną inteligencję (ang. Artificial Intelligence – AI) Można zdefiniować jako dziedzinę wiedzy obejmującą m.in. sieci neuronowe, robotykę i tworzenie modeli zachowań inteligentnych oraz programów komputerowych symulujących te zachowania, włączając w to również uczenie maszynowe (ang. machine learning), głębokie uczenie (ang. deep learning) oraz uczenie wzmocnione (ang. reinforcement learning).
Sztuczna inteligencja to ogólnie rzecz biorąc zdolność maszyn do wykazywania ludzkich umiejętności, takich jak rozumowanie, uczenie się, planowanie i kreatywność.
Uogólniając są to systemy lub maszyny, które naśladują ludzką inteligencję w celu wykonywania zadań i mogą z czasem usprawniać swoje działanie w oparciu o coraz większą ilość danych którymi operują.
Dlaczego sztuczna inteligencja jest ważna?
Zamiast automatyzować ręczne zadania, sztuczna inteligencja wykonuje częste, wysokonakładowe, skomputeryzowane zadania. I robi to niezawodnie i bez zmęczenia. Oczywiście ludzie nadal są niezbędni do skonfigurowania systemu i zadawania właściwych pytań.
AI dodaje inteligencję do istniejących produktów. Wiele produktów, z których już korzystasz, zostanie ulepszonych dzięki możliwościom sztucznej inteligencji, podobnie jak Siri została dodana jako funkcja do nowej generacji produktów Apple.
Sztuczna inteligencja dostosowuje się za pomocą progresywnych algorytmów uczenia się, aby umożliwić programowanie danych.
Czyli znajduje strukturę i prawidłowości w danych, dzięki czemu algorytmy mogą nabywać umiejętności. Tak jak algorytm może nauczyć się grać w szachy, może nauczyć się, jaki produkt polecać online jako następny. A modele dostosowują się, gdy otrzymują nowe dane.
Sztuczna inteligencja analizuje coraz głębsze dane za pomocą sieci neuronowych, które mają wiele ukrytych warstw. Aby trenować modele głębokiego uczenia się, potrzebujesz wielu danych, ponieważ uczą się one bezpośrednio na podstawie danych.
Sztuczna inteligencja osiąga niesamowitą dokładność dzięki głębokim sieciom neuronowym. Na przykład wszystkie Twoje interakcje z Alexą i Google opierają się na głębokim uczeniu się. Produkty te stają się coraz dokładniejsze, im częściej ich używasz.
Sztuczna inteligencja maksymalnie wykorzystuje dane. Gdy algorytmy uczą się samoczynnie, same dane są wartością. Odpowiedzi są w danych. Wystarczy zastosować sztuczną inteligencję, aby je znaleźć. Ponieważ rola danych jest teraz ważniejsza niż kiedykolwiek, mogą one tworzyć przewagę konkurencyjną. Jeśli masz najlepsze dane w konkurencyjnej branży, nawet jeśli wszyscy stosują podobne techniki, najlepsze dane wygrają.
Jak działa sztuczna inteligencja?
Sztuczna inteligencja działa poprzez łączenie dużych ilości danych z szybkim, iteracyjnym przetwarzaniem i inteligentnymi algorytmami, umożliwiając oprogramowaniu automatyczne uczenie się na podstawie wzorców lub funkcji w danych. Sztuczna inteligencja to szeroka dziedzina nauki, która obejmuje wiele teorii, metod i technologii, a także następujące główne poddziedziny:
Uczenie maszynowe automatyzuje budowanie modeli analitycznych. Wykorzystuje metody z sieci neuronowych, statystyk, badań operacyjnych i fizyki, aby znaleźć ukryte spostrzeżenia w danych bez wyraźnego zaprogramowania, gdzie szukać lub jakie wnioski wyciągnąć.
Sieć neuronowa to rodzaj uczenia maszynowego, które składa się z połączonych ze sobą jednostek (takich jak neurony), które przetwarzają informacje, reagując na zewnętrzne dane wejściowe, przekazując informacje między każdą jednostką. Proces ten wymaga wielu przejść przez dane, aby znaleźć połączenia i wydobyć znaczenie z niezdefiniowanych danych.
Głębokie uczenie się wykorzystuje ogromne sieci neuronowe z wieloma warstwami jednostek przetwarzających, wykorzystując postęp w mocy obliczeniowej i ulepszone techniki szkoleniowe do uczenia się złożonych wzorców w dużych ilościach danych. Typowe zastosowania obejmują rozpoznawanie obrazu i mowy.
Rozpoznawanie obrazów opiera się na rozpoznawaniu wzorców i głębokim uczeniu się, aby rozpoznać, co znajduje się na zdjęciu lub filmie. Kiedy maszyny mogą przetwarzać, analizować i rozumieć obrazy, mogą rejestrować obrazy lub nagrywać filmy w czasie rzeczywistym i interpretować otoczenie.
Przetwarzanie języka naturalnego (NLP) to zdolność komputerów do analizowania, rozumienia i generowania ludzkiego języka, w tym mowy. Kolejnym etapem NLP jest interakcja w języku naturalnym, która pozwala ludziom komunikować się z komputerami przy użyciu normalnego, codziennego języka w celu wykonywania zadań.
Skąd biorą się obawy o zastąpieniu programistów przez sztuczną inteligencję?
Czy AI zastąpi w niedalekiej przyszłości programistów? Chyba tylko wtedy, gdy uda się stworzyć tzw. silną sztuczną inteligencję, czyli taką, która spełnia założenie, że pewne formy sztucznej inteligencji posiadają wszystkie właściwości dostępne ludzkiemu umysłowi.
Nikt nie ma wątpliwości, że sztuczna inteligencja z każdym dniem staje się coraz lepsza w programowaniu. I faktem jest, że narzędzia oparte na sztucznej inteligencji będą ostatecznie znacznie lepsze niż ludzie w programowaniu. Ale maszyny nie uniezależnią się tak szybko od ludzi, a umiejętność tworzenia użytecznego i praktycznego kodu, który obejmuje więcej niż wykonanie prostego i powtarzalnego zadania to cały czas domena ludzi.
Programiści w wielu obszarach korzystają już od dłuższego czasu z różnych inteligentnych narzędzi, które pozwalają im zautomatyzować prace związane chociażby z podpowiadaniem składni, wskazywaniem błędów czy kompilacją.
I to właśnie robi sztuczna inteligencja: wspiera programistów. Ale przyszłość, w której sztuczna inteligencja będzie w stanie podejmować wszystkie właściwe decyzje, aby tworzyć oprogramowanie od podstaw lub interpretować komercyjną wartość każdej funkcji, jest wciąż bardzo odległa.
Zamiast tego większość nowych narzędzi opartych na sztucznej inteligencji poprawia swoją dokładność i wydajność dzięki uczeniu maszynowemu. Dzięki zastosowaniu wielu rozwiązań opartych o architekturę sieci neuronowych pomagają lepiej i precyzyjniej automatyzować zadania.
I w przypadku znajdowania błędów i testowaniu są bardzo często o wiele lepsi niż ludzie, ale nie są wystarczająco autonomiczni i prawdopodobnie nigdy nie będą mieli własnych „opinii” na temat tego, które podejście jest najlepsze do rozwiązania problemu biorąc pod uwagę czynniki biznesowe, logiczne, designu i obecnej sytuacji.
Ostatecznie czyli za x lat ludzie nie będą programistami takimi jak dzisiaj tylko po prostu nauczą się „kierować” swoimi narzędziami, które wykorzystywać będą metody uczenia maszynowego, aby wydajniej ich wspierać.
Ponieważ sztuczna inteligencja automatyzuje złożone zadanie, które wcześniej wymagało bardzo szczegółowej wiedzy, programiści mają dużo więcej czasu, aby skoncentrować się na „ludzkich” aspektach swojej pracy.
Zawsze potrzebni są ludzie, aby wypełnić luki, których zawsze będzie brakować w maszynach, takie jak interakcja z innymi programistami, poszukiwanie nowych, odważnych rozwiązań znanych problemów lub po prostu wdrażanie ich kreatywności.
Zwolennicy klasycznego tworzenia oprogramowania mogą słusznie powiedzieć, że dobre oprogramowanie to coś więcej niż kod: przyjazna dla użytkownika struktura, na przykład poprawne dane testowe i praktyczne środowisko testowe, a także interfejsy do innych aplikacji.
Teraz można by powiedzieć, że to wszystko musi być ułożone przez osobę myślącą logicznie, posiadającą duże doświadczenie aby ostatecznie stworzyć oprogramowanie użyteczne dla użytkownika i łatwe w utrzymaniu oraz rozwoju dla programistów. Oznacza to, że nawet najbardziej inteligentna sztuczna inteligencja potrzebuje specyfikacji danej osoby.
Jak AI może pomóc w pracy programisty?
Frameworki, biblioteki, narzędzia już z definicji w naturalny sposób upraszczają pracę programistów. Rozwój, taki jak konteneryzacja lub koncepcja bez serwerowa czy na przykład chmury obliczeniowej i Internet of Things również idzie w tym kierunku.
Korzystamy już z systemów nauki na małą skalę – od autouzupełniania w wyszukiwarce Google po playlisty, który zawsze oferują odpowiednią muzykę zgodnie z indywidualnym gustem, aktualnym nastrojem i porą dnia.
Zapotrzebowanie na programistów aplikacji znacznie wzrosło. Cyfryzacja zachodzi we wszystkich dziedzinach życia i pracy no właśnie ktoś musi rozwijać AI, sterować nią i udoskonalać.
Na przykład programiści prawdopodobnie będą pisać coraz mniej kodu, a jeszcze mniej go przeglądać lub optymalizować. W przyszłości będą raczej pracować koncepcyjnie w obszarach data science czy innowacji cyfrowych.
Deweloperzy będą musieli również zadbać o to, by sztuczna inteligencja nie była pozostawiona sama sobie i by była testowana zgodnie z ludzkimi warunkami. Może to również oznaczać nie zaprojektowanie strony według wykalkulowanego optimum, ale celową pracę kreatywną.
AI może być doskonałym partnerem. Na przykład wiele firm stosuje techniki programowania w parach, w których dwóch programistów wspólnie tworzy oprogramowanie. Każdy wnosi inne doświadczenia i podejścia.
W Rezultacie powstają lepsze rozwiązania bo co dwie głowy to nie jedna.
Kiedy mówimy o oprogramowaniu 2.0, maszyna ucząca się pojawia się jako wysokiej jakości partner, który może formułować rekomendacje na podstawie tego, czego się nauczyliśmy, i może zautomatyzować przebiegi testów z wieloma danymi.
Jednak to osoba kreatywna decyduje w jakim kierunku pójdzie cała konstrukcja, bo nie każda rekomendacja optymalizacyjna prowadzi do faktycznego celu, którym jest intuicyjne oprogramowanie.
Trzeba przyznać, że sztuczna inteligencja wciąż jest bardzo daleka od kreatywności niezbędnej każdemu dobremu programiście. Daleko nam do sztucznej inteligencji zdolnej do stworzenia Facebooka, zintegrowania karty graficznej czy zarządzania błędami formularza.
A Sztuczna Inteligencja w wersji „deep learning” nie będzie w stanie funkcjonować bez „treningu”, czyli konfrontowania jej z nieskończoną liczbą sytuacji, aby mogła uczyć się sama.
Obecnie mamy wiele narzędzi, które wspomagają pracę programisty od IntelliCode, po automatyczne testy E2E, testy zabezpieczeń, podatności na ataki i wiele innych.
Sam korzystam z TabNine i jestem bardzo zadowolony. Tabnine wykorzystuje technologię generatywnej sztucznej inteligencji do przewidywania i sugerowania kolejnych linii kodu w oparciu o kontekst i składnię.
Jaka jest przyszłość sztucznej inteligencji?
Krótko mówiąc, AI nie jest jeszcze gotowe do zastąpienia programistów. Ale obecne projekty pokazują, że będziemy mogli poprosić go o samodzielne zakodowanie czegoś w stosunkowo niedalekiej przyszłości.
Nie ma więc powodów do zmartwień dla programistów. Niektóre stare miejsca pracy mogą zostać zastąpione. Jednak wykwalifikowanego programisty nie da się zastąpić sztuczną inteligencją przynajmniej przez następną dekadę lub dwie.
Bądź na bieżąco z najnowszymi technologiami i rozwijaj swoje umiejętności. Sztuczna inteligencja jest tutaj tylko po to, by nam pomagać, a nie zastępować nam miejsca pracy.
Jednak prawdą jest, że sztuczna inteligencja będzie miała większy wpływ na świat niż jakiekolwiek inne innowacje w historii.
Czy nadal warto uczyć się programowania?
1. Zapotrzebowanie na programistów tylko rośnie
Według amerykańskiego Biura Statystyki Pracy przewiduje się, że zatrudnienie w zawodach komputerowych i informatycznych wzrośnie o 11% od 2019 do 2029 r., szybciej niż średnia dla wszystkich zawodów. A wraz z rozwojem takich dziedzin, jak nauka o danych i uczenie maszynowe, zapotrzebowanie na wykwalifikowanych programistów będzie tylko rosło.
Właśnie dlatego język programowania ma znaczenie i dlatego warto nad tym się chwilę zastanowić aby w przyszłości mieć duże możliwości rozwoju.
2. Wysokie zarobki
Wraz z wysokim popytem idą wysokie pensje. Wystarczy, że zobaczysz jeden z moich poprzednich filmów o zarobkach w branży IT na podstawie raportów największych platform z ofertami pracy dla specjalistów z IT.
Dodatkowo, gdy zdobędziesz więcej doświadczenia i wyspecjalizujesz się w określonej dziedzinie, Twój potencjał zarobkowy tylko wzrośnie.
3. Nigdy ni było tak łatwo nauczyć się programowania jak teraz
Dawno minęły czasy, gdy trzeba było wydawać kupę kasy na studia zagraniczne lub drogie Bootcampy.
Obecnie dostępnych jest wiele zasobów, gdzie możesz nauczyć się programowania za jakąś część ceny bootcampu lub czesnego na studiach. Wiadomo, że jeśli ktoś jest na etapie liceum lub ma możliwości to warto wybrać studia informatyczne. W przypadku bootcampu no to jak ktoś ma dużą ilość czasu i gotówki to chyba również warto.
4. Umiejętności programistyczne są wartościowe na rynku pracy
Nawet jeśli nie chcesz zostać pełnoetatowym programistą, nauka programowania może być cenna. Umiejętności programistyczne są bardzo poszukiwane w różnych dziedzinach, od finansów, przez marketing, projektowanie, tak naprawdę chyba wszędzie gdzie wykorzystuje się oprogramowanie.
A wraz z rozwojem możesz nawet wykorzystać swoje umiejętności programistyczne do tworzenia i uruchamiania własnych produktów lub firm.
5. Nigdy nie jest za późno, aby zacząć
Powszechnym błędem jest przekonanie, że programowanie jest tylko dla młodych, obeznanych z technologią osób. Ale prawda jest taka, że nigdy nie jest za późno na naukę.
Istnieją niezliczone przykłady odnoszących sukcesy programistów, którzy rozpoczęli naukę dopiero w późnym wieku, a dzięki obecnym możliwościom rozpoczęcie pracy jest łatwiejsze niż kiedykolwiek bez względu na wiek i pochodzenie.
Wiadomo, że konkurencja jest duża zwłaszcza na początku ale wszędzie tam gdzie z pozoru jest najciężej, kryją się największe możliwości. Więc nie pitul, tylko jak chcesz zostać programistą to do roboty.
Rok 2023 to idealny czas na naukę programowania. Przy dużym popycie, wysokich wynagrodzeniach i licznych dostępnych zasobach do nauki jest to cenna umiejętność, która może otworzyć Ci nieograniczone możliwości. Poza tym nigdy nie jest za późno, aby zacząć. Więc jeśli zastanawiasz się nad nauką programowania, teraz jest czas, aby to zrobić.
Trzymam za Ciebie kciuki i do zobaczenia w kolejnych materiałach.