ChatGPT zabierze pracę programistom

ChatGPT zabierze pracę programistom
Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:10 miesięcy
  • Postów:4700
1
ehb.dev napisał(a):

Pomijam opór spoleczny, przecież już teraz wieeeele zawodów i aspektów można by w pełni zautomatyzować, ograniczyć itd, choćby biurokrację, ale politycy tego nie robią, bo obawiają się reakcji elektoratu.

Święte słowa. Nawet jak AI będzie klepał kod lepiej niż przeciętny programista, to politycy wezmą pod opiekę programistów z korpo i firm outsourcingowych i będą im płacić 30k żeby nie drażnić elektoratu. Tak będzie, nie kłamię.

Mówiąc serio, to politycy nie ograniczają biurokracji, ponieważ nie muszą. Gdybyś doił frajerów z kasy i mógł ją wydać na co chcesz to czy martwiłbyś się, że rozpierdalasz ten hajs na bzdury? Poza tym urzędnicy to naturalni wyborcy partii. Przecież urzędy to naturalne ciepłe posadki dla wszystkich znajomych królika. Słyszałeś o siostrze Morawieckiego, która miała ciepłą posadkę w jakimś urzędzie, chociaż nikt jej nigdy nie widział w robocie? Ile jest takich sióstr, braci, kuzynów ale mniej znanych polityków?

AI to olbrzymia szansa dla nas, ze względu na nowe stanowiska, jeszcze większe ssanie na programistów i jeszcze wyższe stawki. Niestety to również wielkie zagrożenie, ponieważ LLM to zgodnie z definicją model posiadający umiejętność rozumienia tekstu i generowania nowego. Nasza praca w dużej mierze na tym właśnie polega, staramy się zrozumieć wymagania biznesu (rozumienie tekstu) i napisać kod, który będzie realizował wymagania biznesowe (generowanie nowego).

W postach powyżej pojawiły się obserwacje, że AI np. "Raz że potrafi to wygenerować boilerplate, dwa że ma ten kod sens (ale architektury brak).". Teraz pojawia się kwestia czy osoba która to pisała próbowała zapytać AI o architekturę?

Przecież my też nie jesteśmy w stanie ogarnąć samodzielnie dużego projektu w jednej iteracji. Pracujemy w grupie gdzie są ludzie o uzupełniających się skillach, z których każda dokłada w sprincie cegiełkę, która na koniec po x sprintów daje całe gotowe rozwiązanie. Dlaczego wymagacie od AI, żeby w jednej krótkiej odpowiedzi ogarnęła cały projekt, architekturę, zrozumiała niejasno napisane wymagania i jeszcze za pierwszym razem zrobiła to dobrze? Czy sami pracujecie w ten sposób? Raczej nie. Trzeba do tematu podejść inaczej i pracując z AI odwzorować cały przepływ pracy z projektu IT czyli biznes daje wymagania, później milion iteracji i mamy gotowy produkt. Przecież normalną sytuacją jest, że programiści też popełniają błędy, albo piszą kod który nie realizuje wymagań, albo te wymagania są na tyle niedoskonale spisane, że trzeba kolejnych iteracji żeby temat uściślić i zrobić porządnie. Jeżeli ktoś z was będzie pracował z AI w ten sposób, to nagle okaże się, że AI zaczyna ogarniać i to dużo więcej niż się początkowo wydawało.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
edytowany 1x, ostatnio: Haskell
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8397
0
Haskell napisał(a):

Dlaczego wymagacie od AI, żeby w jednej krótkiej odpowiedzi ogarnęła cały projekt, architekturę, zrozumiała niejasno napisane wymagania i jeszcze za pierwszym razem zrobiła to dobrze? Czy sami pracujecie w ten sposób? Raczej nie. Trzeba do tematu podejść inaczej i pracując z AI odwzorować cały przepływ pracy z projektu IT czyli biznes daje wymagania, później milion iteracji i mamy gotowy produkt.

Jestem ciekaw, czy są już narzędzia AI do tego (albo czy ktoś przynajmniej robi startup w tym kierunku).

Tj. właśnie takie nie na zasadzie, że mówisz, jaki kod ma napisać, ale że gadasz sobie z AI o tym, co ma być robione pod kątem biznesowym, AI wypluwa back log, mówisz swoje uwagi, jesteś takim PMem, potem są "sprinty" i AI podpowiada, co ma być w sprincie i zatwierdzasz to i AI wypluwa wstępną wersję, potem znowu dajesz swój feedback (również mógłbyś dawać feedback nt architektury kodu itp.), a potem kolejny sprint i AI znowu wypluwa kolejną wersję, już z nowymi ficzerami i z refaktorem...

I potem masz np. miesiąc kilkuosobowego developmentu zrobione podczas kilku godzin instruktuowania AI.

Jeśli nie ma choćby z 10 startupów, które coś takiego próbują osiągnąć w tej chwili, to znaczyć może, że takie coś byłoby zbyt trudne jak na możliwości dzisiejszego AI. Ew. że nikt na to jeszcze nie wpadł, bo wszyscy się skupiają na generowaniu prostych snippetów z kodem zamiast na tworzeniu całych aplikacji.


edytowany 2x, ostatnio: LukeJL
FA
  • Rejestracja:około 5 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:warszawa
  • Postów:301
1

Ale jednocześnie będzie coraz trudniej się dostać do pracy jako programista i coraz więcej będzie zwolnień, ale to raczej jest wynik wielu różnych zjawisk (każdy dzisiaj jest albo chce być programistą, więc duża konkurencja, post-pandemiczny kac, który powoduje, że firmy zwalniają nadwyżkę programistów itp.). Być może AI odegra jakąś rolę, ale to będzie wisienka na torcie.

Według "The mytical man-month" do świadczony programista jest 5-10 razy bardziej wydajny, a kosztuje tylko 2 razy wiecej, rachunek ekonomiczny mówi ze juniory sie nie opłacają. Inną ciekawą obserwacją jest to że z jednej strony prawo moora zdycha, z drugiej, tragedii raczej nie będzie, bo coraz lepsze narzadzia przyśpieszają prace i zbijają koszt tworzenia softu. Taki chat gtp wpisuje się w taki trend. Tylko że to rujnuje prace dla juniorów jeszcze bardziej, bo przewaga w wydajności pracy to nie jest 2-4 razy w przeliczeniu na złotówke, tylko jest mnożna przez wydajność narzedzi, i wychodzi 10-20 razy a punktowo pewnie 100 bardziej wydajnie. Wiec jeśli nie pojawi sie jakiś nagły skok popytu to szału nie będzie. Na moje juniorą bedzie cieżko, szybko to się nie zmieni. Z dobrych rzeczy, jeśi nie pojawi się Prawidziwa sztuczna iteligecja, lub przełom w procesorach. To sytuacja seniorów będzie stabilna.

Z innych zjawisk warto dodać, ze teraz cały świat zaczął się z broić, już tysiące miliarów dolarów, zamiast w R&D zostały rozplanowe na "przekuwanie" stali na armaty i silniki znanych wzorów.. Zamiast na R&D mosty, fabryki i światłowody. Wiec siła rzeczy inne gałezie ekonomii w tym it więdną, nie podlewane.

Miang
ale wydajny w pracy a nie w byciu przydupasem TL,
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8397
0
_flamingAccount napisał(a):

Według "The mytical man-month" do świadczony programista jest 5-10 razy bardziej wydajny, a kosztuje tylko 2 razy wiecej, rachunek ekonomiczny mówi ze juniory sie nie opłacają. Inną ciekawą obserwacją jest to że z jednej strony prawo moora zdycha, z drugiej, tragedii raczej nie będzie, bo coraz lepsze narzadzia przyśpieszają prace i zbijają koszt tworzenia softu. Taki chat gtp wpisuje się w taki trend. Tylko że to rujnuje prace dla juniorów jeszcze bardziej, bo przewaga w wydajności pracy to nie jest 2-4 razy w przeliczeniu na złotówke, tylko jest mnożna przez wydajność narzedzi, i wychodzi 10-20 razy a punktowo pewnie 100 bardziej wydajnie.

Nie każda firma potrzebuje "doświadczonego programisty". Wiele firm potrzebuje zwykłych klepaczy i wtedy doświadczony programista to tylko dodatkowy kłopot dla firm:

  • ma wyższe wymagania finansowe
  • zadaje więcej pytań, poddaje w wątpliwość więcej rzeczy
  • traci czas na jakość kodu, refaktor, testy itp.
    A klepacz:
  • tani
  • posłuszny, robi, jak biznes każe, nawet jak to nie ma sensu
  • nie bawi się w jakość kodu, tylko klepie szybciutko spaghetti

Jak firma potrzebuje doświadczonego programisty do rozwiązywania trudnych problemów, to klepacz nawet z ChatGPT nie da rady, ale jak firma szuka klepacza, to doświadczony programista im się nie przyda i lepszy już będzie junior z ChatGPT.


FA
Chyba kwestia skali, pracowałem tylko w długo terminowych projektach, zarabiających pieniądze dla firmy, z tej perspektywy podpisuje sie pod twierdzeniem, że dobry programista opłaca sie bardziej, a "praca jakościowa" procentuje. Jak to wygląda rentowność jest niższa, projekty krótsze, a problemy tylko doraźne, nie wiem. Ale mogę uwierzyć, że bilans zysków i strat wygląda inaczej.
marian pazdzioch
Problem z ChatGPT jest taki że trzeba wiedzieć o co pytać. Junior tego nie wie. Latwiutko wygenerować z ChatGPT legacy kod. Chyba że wiesz o co pytać.
renderme
  • Rejestracja:około 6 lat
  • Ostatnio:około 11 godzin
  • Postów:1461
0

Dzisiaj prosiłem go o skonfigurowanie VPNa i go to przerosło :(.


Granie w gry i robienie gier ma tyle wspólnego, co uprawianie seksu z pracą ginekologa.
G8
  • Rejestracja:około 3 lata
  • Ostatnio:około rok
  • Postów:2000
0

Chyba już zaczyna się bunt maszyn:
https://businessinsider.com.pl/technologie/motoryzacja/robot-w-fabryce-tesli-zaatakowal-pracownika-elon-musk-grzmi-wstyd/3gnke8w

To tak jak w tym filmie, tam jeden zaatakował Willa Smitha. Tam też na początku mówili że to nie robot zabija.

edytowany 1x, ostatnio: gajusz800
Miang
w którym filmie?
FA
  • Rejestracja:około 5 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:warszawa
  • Postów:301
0
LukeJL napisał(a):
Haskell napisał(a):

Dlaczego wymagacie od AI, żeby w jednej krótkiej odpowiedzi ogarnęła cały projekt, architekturę, zrozumiała niejasno napisane wymagania i jeszcze za pierwszym razem zrobiła to dobrze? Czy sami pracujecie w ten sposób? Raczej nie. Trzeba do tematu podejść inaczej i pracując z AI odwzorować cały przepływ pracy z projektu IT czyli biznes daje wymagania, później milion iteracji i mamy gotowy produkt.

Jestem ciekaw, czy są już narzędzia AI do tego (albo czy ktoś przynajmniej robi startup w tym kierunku).

Tj. właśnie takie nie na zasadzie, że mówisz, jaki kod ma napisać, ale że gadasz sobie z AI o tym, co ma być robione pod kątem biznesowym, AI wypluwa back log, mówisz swoje uwagi, jesteś takim PMem, potem są "sprinty" i AI podpowiada, co ma być w sprincie i zatwierdzasz to i AI wypluwa wstępną wersję, potem znowu dajesz swój feedback (również mógłbyś dawać feedback nt architektury kodu itp.), a potem kolejny sprint i AI znowu wypluwa kolejną wersję, już z nowymi ficzerami i z refaktorem...

I potem masz np. miesiąc kilkuosobowego developmentu zrobione podczas kilku godzin instruktuowania AI.

Jeśli nie ma choćby z 10 startupów, które coś takiego próbują osiągnąć w tej chwili, to znaczyć może, że takie coś byłoby zbyt trudne jak na możliwości dzisiejszego AI. Ew. że nikt na to jeszcze nie wpadł, bo wszyscy się skupiają na "generowaniu kodziku".

Jak dla mnie to ma mega potecjał, i strasznie dużo można ugrać symulując zapomoca ai tekie procesy przetwarzania informacji.

że takie coś byłoby zbyt trudne jak na możliwości dzisiejszego AI. Ew. że nikt na to jeszcze nie wpadł, bo wszyscy się skupiają na "generowaniu kodziku".

NIe wiem czy są na te chwile takie start'up, ale na szybko jest kilka limitacji, zeby zrobić pełen symulator procesu devlopmentu:

-Chat ma ograniczony kontekst, wiec bedzie gubił, zapominał i bładził we mgle. Trzeba było by napisać cały system, kompresowania wnioskow i zapisywania ich w drzewach.
-Probleme bedzie dostęp do informacji z tych drzew. bo musisz jakoś mu te informacje wepchnąć.
-koszty wiele pod systemów, wymieniajacych informacje, kosztuje,
-Cena API zwiekszym limitem danych rośnie wykładniczo. wiec szybko tego nie przeszkoczą
-Problemem bedącym wartym założenia 10 start'upów, jest integracja tego ze srodowiskiem, system. Podbno już od iluś miesiecy całe zespoły nad takim integracjami pracją
-może mozna to przeskoczyć analizą fotografii, którą dodali, ale ona jest droga, a stosowana w petlach bardzo droga.
-Problemem elementarnym jest to ze jako model jezykowych chat GTP jest autentycznie głupi. Powatarzają to wszedzie, tak ze traci to znaczenie, ale rodzi to kilka problemów. Jeśli władujesz go w niszową technologie i skomplikowaną technologie(np. rozszerzenia do IDE) to traci zdolność programowania, najprostszych funkcji. Daje właściwe nazwy metod, trzeba zrobic to i to, ale nie umie ich napisać.
Kolejnym problemem głupoty jest brak możliwości nauki. Każdy edge case, bedzie wymagał korzystania z systemu od wniosków z punktu 1), powoli go zapychając i genurjąc koszty, lub spowalnijac system czekajac na odpowiedzi. Optymalizacja tego procesu, była by wyzwaniem inzynieryjnym w samym w sobie.
ps. jeszcze jedną wadą głupoty, jest to ze gtp nigdy nie był szkolny zeby był dobry w logike, wiec wnioski, porównania, efektywne starategie, musiał by liczyć jakiś inny system. Na pewno są firmy, z ai do optymalizacji, ale jak powszechne one sa i łatwe do integracji nie mam pojecia.

Ostanie ale ważne, nawet mając to wszystko, jak przekazać wiedze domenową i możliwość oceny czy robimy wlaciwą rzecz.

edytowany 4x, ostatnio: _flamingAccount
elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 23 godziny
1

Podobno te strachy o tym, że technologia X zabierze ludziom pracę to juz co najmniej od 100 lat panują. Technologia zabiera pracę, ale świat idzie do przodu. Pewnie jeszcze nie teraz, bo ChatGPT jest dość głupiutkie (choć nie próbowałem tych nowych), chociaż jeśli nakierować na rozwiązanie, wyłącznie krytycznym myśleniem to tak w 70% przypadków znajduje mi rozwiązanie. Myślę, że gdyby podpiąć ChatGPT do kompilatora (może też jakiejś statycznej analizy kodu), tak, żeby mógł testować swoje kody, i na tym się uczyć to jego jakość mogłaby się poprawić bardzo znacznie. Można też po prostu wytrenować ChatGPT do czepiania się, żeby sam się siebie czepnął tak z 10 razy zanim coś napisze.

Pewnie zmieniejszy to zapotrzebowanie na programistów, ale: (1) ChatGPT radzi sobie w przypadkach co do których ma dość przykładów na stack overflow, (2) raczej napisze ci kod, który już wiesz jak ma działać, (3) jako programiści cały czas babramy się z jakimiś głupimi problemami pobocznymi, więc myślę, ze w najbliższych dekadach AI, jeśli już, odblokuje potencjał uzdolnionych programistów, tych którzy umieją używać sztucznej inteligencji, (4) docelowo takie instancje AI musiałyby chodzić lokalnie, bo większość pracodawców raczej nie chce wycieku swojego IP, (5) trzeba trochę czasu zanim to będzie dosyć stabilne i ludzie dostatecznie temu zaufał, żeby znacząco obniżyć ilość uwagi, której wypocinom AI jakiś cżłowiek będzie musiał poświęcić.


edytowany 5x, ostatnio: elwis
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)