Blog Dla Młodszych Programistów C#/.NET

poniedziałek, 27 maja 2024

To pytanie zadaje mi w ostatnich miesiącach sporo osób. Zastanawiają się, czy warto zacząć swoją przygodę z programowaniem. Przeanalizujemy sobie teraz 16 punktów, tez, które świadczą o tym, że sztuczna inteligencja na pewno nie zastąpi programistów.

Czy Sztuczna Inteligencja (AI) Zastąpi Programistów?

1) Ludzie chcą zarabiać na tych narzędziach i robią clickbaitowe tytuły


Ostatnio mamy sporo kolejnych nowych narzędzi opartych na sztucznej inteligencji, takich jak chat gpt, czy devin itd, które tak naprawdę są wytworem dużych firm, które zainwestowały sporo pieniędzy w te narzędzia i nie mogą sobie pozwolić by projekt zakończył się klapą. Po prostu chcą na tych narzędziach zarobić. Przez to często wprowadzają mnóstwo jakichś clickbaitowych nagłówków, które mają działać na wyobraźnie i przekonać swoich potencjalnych klientów do korzystania z ich narzędzi, a oni na tym po prostu zarabiają. Prosty model biznesowy. Także to ma być jaka sexy teoria, kontrowersyjne hasła właśnie typu, że sztuczna inteligencja zastępuje programistów, ale tak naprawdę nie ma to wiele wspólnego z rzeczywistością. Jest to typowy clickbait. Jeżeli przejdziemy do głębszej analizy tych narzędzi, to zauważ, że te firmy pokazuje jakieś najlepsze wybrane rzeczy jak działa ich narzędzie, właśnie by zachęcić ludzi do skorzystania za odpowiednią opłatą. Czyli zależy im, żebyś płacił za korzystanie z tych narzędzi. W związku z tym przekonuje Cię do tego, że jest to super, że jest to rewolucja, a tak jak wspomniałem, nie ma tam nic rewolucyjnego. Oczywiście jest kilka fajnych zastosowań tych narzędzi, o tym później, ale nic szczególnego. Na pewno takie narzędzie nie zastąpi programistów.


2) Jeżeli AI ma zastąpić zawody, to wcześniej zastąpi wiele innych zawodów, akurat programiści są na końcu tej listy


Jeżeli wiesz, jak wygląda praca programisty, to zastanów się na spokojnie, czy faktycznie zawód programisty można tak łatwo zastąpić? Czy programowanie jest naprawdę takie proste, że jest na pierwszej linii do zastąpienia przez sztuczną inteligencję? No raczej nie. A co z innymi zawodami, takimi jak prawnik? lekarz? Raczej jeżeli już, to te zawody zostaną zastąpione dużo wcześniej niż programiści. Jeżeli AI będzie zastępować jakieś zawody, to programiści są właśnie na końcu tej listy. Jeżeli sztuczna inteligencja miała by zastąpić programistów, to po prostu zmieni się cały świat, wszystko będzie inaczej funkcjonować niż teraz. Tak jak wspomniałem programiści zostaną zastąpieni w ostatniej kolejności, wtedy też pojawią się nowe zawody i chyba lepiej mieć wtedy wiedzę techniczną, programistyczną, bo łatwiej sobie poradzisz z nowym światem. Tylko osoby, które nie znają się na programowaniu mogą uważać, że AI zastąpi programistów i dalej napędzają te bańkę.


3) Programowanie ciągle się zmienia


Kiedyś programowało się w jakichś prostych narzędziach, gdzie jeżeli zapomniałeś dodać jednego znaku, to spędziłeś kilka dni, żeby znaleźć ten błąd. Z roku na roku są udoskonalane środowiska programistyczne w których pracują programiści. Teraz mamy visual studio, które między innymi ma intelisense, który podpowiada nam składnie, autocomplete, który po wpisaniu kilku znaków podpowiada nam nazwy metod, czy właściwości z których chcemy skorzystać, mamy code snippety, gdzie napisanie kilku znaków i kliknięcie tabulatora generuje nam całą strukturę, którą chcemy stworzyć. Mnóstwo funkcji, które ułatwiają nam programowania. Kiedyś tego nie było. Teraz jeżeli zrobisz jakąś literówkę w kodzie, to natychmiast otrzymasz o tym w informacje. Edytor to wykryje i wskaże Ci miejsce, gdzie prawdopodobnie zrobiłeś błąd. Także programowanie staje się ciągle łatwiejsze. Te narzędzia nie są tworzone po to, by zastąpić programistów, tylko po to, by ułatwić pracę programistów. Tak samo jest właśnie z AI. Wcześniej można było szukać wiedzy w wyszukiwarce google, korzystało się z różnych forów programistycznych, stackoverflowa itd. Jak miałeś jakiś problem, to szukałeś odpowiedzi na tych portalach, a teraz zamiast tego możesz skorzystać z AI, które może Ci pomóc w szybszym wyszukiwaniu takich niezbyt skomplikowanych informacji, chociaż nie zawsze można tym informacjom zaufać.


4) AI wspomaga pracę programistów


Czyli tak jak już wspominałem. Te narzędzia zostały stworzone po to, by wspomagać pracę programistów i to tylko w prostych powtarzających się zadaniach. Te narzędzia jeżeli już, to ogarniają tylko jakieś podstawowe proste rzeczy i nie poradzą sobie z stworzeniem zaawansowanej aplikacji. To nie jest takie proste. Podobnie jak kilka lat temu był wielki hype na github copilot, który również miał zastąpić programistów, a jak się okazało zwiększył tylko wydajność programistów. Dzięki AI będziemy spędzać mniej czasu na tworzenie prostego, powtarzającego się kodu.


5) Nigdy nie zastąpi najlepszych programistów, stawiaj na rozwój


Programiści są różni. Są osoby, które przez całą karierę się rozwijają i pną się w górze po drabince kariery, a są tacy, którzy dostali pracę i na tym etapie przestali poszerzać swoją wiedzę. W pracy robią najprostsze zadania i dopiero jak mają z czymś problem, to szukają materiałów. Jeżeli boisz się, że sztuczna inteligencja może zabrać Ci pracę, to staraj się być w tej pierwszej grupie. Rozwijaj się, poszerzaj swoją wiedzę, zdobywaj nowe umiejętności, skupiaj się na bardziej zaawansowanych zadaniach i wtedy jestem przekonany, że zawsze sobie poradzisz. Zawsze będzie dla Ciebie praca i rekruterzy będą o Ciebie walczyć na rynku pracy. Tak jak wspomniałem sztuczna inteligencja radzi sobie dobrze tylko z prostymi zadaniami, więc jeżeli jesteś lub chcesz być programistą, który zajmuje się tylko jakimś błahostkami w pracy, prostymi zadaniami, to wtedy możesz się obawiać. Natomiast jeżeli skupiasz się na rozwoju, to możesz spać spokojnie, na pewno znajdziesz pracę i odnajdziesz się w tym zawodzie. Dobry programista nie zostanie zastąpiony przez sztuczną inteligencję.


6) Kod wygenerowany przez AI zawsze wymaga weryfikacji


Nie wyobrażam sobie korzystania z kodu wygenerowanego przez sztuczną inteligencję bez wcześniejszej jego weryfikacji. Ciężko w 100% zaufać takiemu kodu, który został napisany przez kogoś innego. Mało tego, sztuczna inteligencja często robi różne błędy i bazowanie na kodzie bez weryfikacji jest strzałem w kolano. Taki kod zawsze trzeba sprawdzić, bo inaczej będą bugi, wycieki danych i ogromne koszty. Natomiast żeby zweryfikować taki kod, musisz mieć wiedzę programistyczną. Wracając do odpowiedzi sztucznej inteligencji, zauważ, że o co nie zapytasz sztuczną inteligencję, to zawsze otrzymasz jakąś odpowiedz, nawet jeżeli nie wie czy to jest faktycznie poprawne, czy to co napisał jest prawdą, ale tak już została stworzona, by zawsze odpowiedziała. Już nie raz jak testowałem działanie otrzymałem bledną odpowiedz, ale sztuczna inteligencja ciągle twierdziła, że wszystko jest poprawnie. Także zawsze jest potrzebny programista, który będzie nadzorował, to co zostanie wygenerowane.


7) Kod wygenerowany przez AI nie jest bezpieczny


Jak wyobrażasz sobie zarządzanie całym projektem przez zewnętrzne narzędzie, takie jak sztuczna inteligencja, skoro jest tam mnóstwo naszych wrażliwych danych, którymi nie chcemy się dzielić z takimi narzędziami. Firmy nigdy nie będą takim narzędziom udostępniać takich danych, bo nie wiadomo co sztuczna inteligencja z nimi zrobi. Nie wiemy co tam jest w środku, nie wiemy jaki tam jest kod, także nigdy nie możemy temu w 100% zaufać. Tak samo AI nie może mieć dostępu do jakichś danych rządu, czy innych medycznych informacji o pacjentach, to wszystko musi być dobrze zabezpieczone i żadne AI nie może mieć do tego dostępu. Tym bardziej, że później uczy się tych danych i udostępnia je innym lub po prostu bazuje na tych danych proponując kolejne rozwiązania. Jaką masz pewność, że AI nie wykorzysta twojego kodu i nie zostanie on wykradziony? Żadnej. Mało tego, na pewno wykorzysta ten kod, w związku z tym już teraz są zakazy w firmach, by nie wspomagać się AI przy projektowaniu aplikacji.


8) Praca programisty to nie tylko pisanie kodu


Coś z czego nie zdaje sobie sprawy większość osób z poza branży, to znaczy programowanie to nie tylko pisanie kodu. Programowanie to szukanie najlepszego rozwiązania jakiegoś problemu. Praca programisty składa się z różnych rzeczy i etapów, takich jak zapoznanie się z problemem, projektowanie rozwiązania, szukanie optymalnego rozwiązania, zbieranie wymagań, analiza, planowanie zadań, komunikacja z innymi członkami zespołu, poprawa błędów, planowanie, zmiany założeń i dopiero pisanie kodu, testowanie, czy też wdrożenie. Czy AI zastąpi programistę na każdym z tych etapów? Nie sądzę.


9) Firmy mają mnóstwo starych systemów i aplikacji z którymi AI sobie nie poradzi


Sporo aplikacji, dużych systemów zostało już dawno napisanych, firmy teraz utrzymują i rozwijają te rozwiązania. Nie ma szans, żeby AI mogło się odnaleźć w tych projektach i dalej mogło je samo rozwijać. To jest niemożliwe i tylko osoby, które nie mają pojęcia, jak faktycznie wygląda praca programisty mogą wygadywać takie rzeczy. Ciężko żeby AI umiało się odnaleźć w jakimś legacy kodzie, tym bardziej bez żadnej dokumentacji, już pomijając fakt, że te firmy chciałby się tym kodem dzielić z AI. Pamiętaj też, że wymagania klientów są skomplikowany i przede wszystkim dynamiczne, często się zmieniają.


10) Jeżeli są teraz jakieś zwolnienia, to nie wynikają one z tego, że zastąpiło ich AI, tylko wcześniej było za dużo pracy


Niektórzy fanatycy sztucznej inteligencji łączą fakty ostatnich zwolnień programistów z niektórych dużych firm i twierdzą, że zostali zastąpieni przez sztuczną inteligencje. Niestety muszę zmartwić te osoby, bo chociaż faktycznie było kilka głośnych zwolnień, to nie mają one nic wspólnego ze sztuczną inteligencją. Chodzi o to, ze w ostatnich latach jak było głośno na świecie o pewnym wirusie, to bardzo zwiększyło się zapotrzebowanie na pracę programistów. Było mnóstwo zleceń i firmy po prostu pozatrudniały za dużo programistów i teraz musiałby być zwolnienia w tych firmach. Natomiast tacy programiści nie są długo na bezrobociu i znajdują pracę w innych firmach, które po prosty wtedy, aż tak dużo nie zatrudniały. Nie łącz tego faktu, ze sztuczną inteligencją.


11) Już dawno jest mnóstwo narzędzi ułatwiających programowanie takich, jak tworzenie stron za pomocą drag and drop


Jak za pewne wiesz, jest obecnie mnóstwo narzędzi, które umożliwiają tworzenie prostych stron internetowych za pomocą drag and dropa, takie rozwiązania są już znane od wielu lat i jak widzisz to, że jest taka możliwość nie oznacza, że to rozwiazanie zastępuje programistów. Z czego to wynika? Chodzi o to, że w tych narzędziach możesz zrobić tylko jakąś bardzo prostą stronę internetową, która nie ma żadnej logiki i nie jesteś wstanie zrobić tam nic bardziej skomplikowanego. Podobnie jest z wordpressem, który również umożliwia tworzenie stron internetowych, ale tam można tworzyć tylko proste rzeczy. Chociaż prawdę mówiąc i tak wiele osób nietechnicznych tego nie ogarnia i i tak potrzebują programisty, który za nich tworzy tam stronę. Bardziej te wordpressy są obecnie używane przez programistów, osoby techniczne niż przez zwykłych ludzi.

W ogóle opowiem wam śmieszą historię, nie dalej jak kilka dni temu oglądałem story na instagramie od jednego popularnego przedsiębiorcy, który właśnie był zachwycony tym, że w pewnym narzędziu dodał sobie kilka linków, zdjęć i jakiś tekst za pomocą drag and dropa i mógł sobie na tej podstawie zrobić stronę internetową. Następnie udostępnił jakieś komentarze, że programiści w dobie AI powinni bać się o swoją pracę. To tylko pokazuje, jak ludzie są nieświadomi i nie mają pojęcia, jak wygląda programowanie. Nie rozumie tego, że takie narzędzia nawet nie bazują na sztucznej inteligencji, są dostępne od wielu lat i może w niej zrobić jakieś tandetne proste strony. Nic skomplikowanego.

Ogólnie nawet jak są jakieś narzędzia, które ułatwiają tworzenie jakichś stron internetowych, to zwykli ludzie nie chcą ich używać, wolą zlecić takie prace profesionaliście niż sami mieli by się z tym męczyć. Zobacz na inny przykład, to, że np ty umiesz zrobić coś przy samochodzie, np wymieniać filtry, olej, tarcze, klocki, cokolwiek, nie oznacza, że chcesz się tym zajmować, mimo wszystko zazwyczaj wolisz to zlecić fachowcowi, a ty w tym czasie możesz skupić się na tym w czym jesteś dobry.


12) Szybsze programowanie nie oznacza zwolnień programistów


Jak wspomniałem, sztuczna inteligencja może wspierać pracę programistów i ok, do tego się nadaje i warto z tego korzystać jako pomoc w pracy. Dzięki temu zwiększymy wydajność naszej pracy i programowanie będzie po prostu szybsze. Natomiast to dalej nie oznacza, że skoro programowanie jest szybsze, możemy szybciej dowozić wartość, tworzyć aplikacje, to nie oznacza, że programiści będą zwalniani. Dzięki temu będzie więcej pracy, a może też większe zarobki, a nie zwolnienia. Obecnie też wszystko idzie w kierunku cyfryzacji, także programiści mają coraz więcej pracy.


13) AI dobrze radzi sobie z problemami, które już ktoś rozwiązał


Sztuczna inteligencja bazuje na kodzie, który wcześniej powstał, dobrze sobie radzi z problemami, które już ktoś wcześniej rozwiązał i może mieć dostęp do tego kodu, czy tych informacji. Ona bazuje na kodzie, który już został napisany, na problemach, które zostały już rozwiązane i na podstawie tego proponuje swoje rozwiązania. Natomiast ciągle pojawiają się nowe problemy i z nimi sobie sztuczna inteligencja nie poradzi.


14) Ciężko zajrzeć do środka


Jak działa sztuczna inteligencja? Ma jakieś dane wejściowe, następnie przechodzi przez jakąś zaszytą logikę, czyli mechanizmy, których się nauczyła na podstawie jakichś danych i zwraca nam jakieś informacje czy jakieś dane. Natomiast tutaj jest problem, że nie wiemy co jest w środku i ciężko nam to poprawić. Czyli jeżeli wygeneruje nam jakiś bug, to nie będzie można go łatwo naprawić, bo nie mamy dostępu do tego, co jest w środku. W tym przypadku sztuczna inteligencja musi na nowo się uczyć, może faktycznie poprawi błąd, który jej wskażemy, ale z kolei może znowu zrobić inny błąd, także ciężko nam w tym przypadku reagować na jakieś błędy w rozwiązaniu.


15) Mimo wszystko warto z tego korzystać, jako asystent, ale nie jako główne narzędzie


Chciałem z tego zrobić jeszcze osobny punkt, bo mimo tego, że sztuczna inteligencja nie zastąpi programistów, to nie ma co z nią walczyć, tylko traktować jako pomoc w programowaniu. Możemy tego używać jako takiego asystenta w programowaniu i w tej roli może się to sprawdzać. Człowiek musi umieć rozwiązać dany problem, a AI może nam tylko tutaj pomóc w jakichś prostszych powtarzających się zadaniach.


16) Sporo osób zazdrości programistom


Osoby, które zazdroszczą programistom chętnie udostępniają dalej te clickbaitowe tytuły, bo chcą nas atakować i wbijać nam takie szpileczki. Niestety sporo osób z zewnątrz ma złą opinie o programistach, bo zazdroszczą nam naszej pracy. Te osoby myślą, że programiści tylko siedzą sobie przed komputerem, trochę poklikają i zarabiają ogromne pieniądze. Teraz znalazły sobie jakieś clickbaitowe tytuły mówiące o tym, że sztuczna inteligencja zastąpi programistów i chętnie dzielą się tą informacją dalej. Proponuje się tym nie przejmować i iść dalej swoją drogą. Rozwijać się, uczyć się programowania i znaleźć pracę marzeń.


To wszystkie na dzisiaj. Jeżeli taki artykuł Ci się spodobał, to koniecznie dołącz do mojej społeczności – darmowe zapisy, gdzie będziesz również miał dostęp do dodatkowych materiałów i przede wszystkim bonusów. Do zobaczenia w kolejnym artykule.

Poprzedni artykuł - Czym Jest Blazor C#? Zalety Blazora
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
Programista C#/.NET. Specjalizuje się w ASP.NET Core, ASP.NET MVC, ASP.NET Web API, Blazor, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2024 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Regulamin. Polityka prywatności. Design by Kazimierz Szpin