Czy kopiujecie kod z ChatGPT czy manualnie go przepisujecie?

1

Pamietam, kiedys byl wywiad z polskim fejmem z dziedziny bezpieczenstwa, CTFow, nie pamietam ksywki. On mowil, ze z ksiazek np zawsze przepisuje kod recznie, bo tak sie szybciej czlowiek nauczy. Wiec tez tak robie w kwestii ChatGPT, wierze mu, ze to pomoze utwierdzic wiedze.
Ale mysle, ze osoby uzywajace ChatGPT na maszynie roboczej i ktorzy po prostu kopiuja ten kod, szybciesz pokoncza taski.
Wiec, to tez moze o mnie gorzej swiadczyc, bo mozna powiedziec, ze kto szybciej kopiuje kod z ChatGPT jest lepszym devem

1

Nie korzystam z chatuGTP, bo żadnego problemu by u nas w kodzie nie rozwiązał.

3

Kopiuje, oczywiście że kopiuje. Przecież nie będę przepisywał. Co prawda jeszcze nic nie skopiowałem do pracy, ale jakbym miał możliwość to bym kopiował

0

Ostatnio komuś pomagałem i podesłał mi kod źródłowy z chatGPT i akurat wyglądał poprawnie.

Ale potem jak z bliska zobaczyłem problem to zauważyłem, że chatGPT pisze pseudokod w zwykłym języku.
Człowiek pseudokod pisze zwykle w jakimś urojonym języku, który często jak python wygląda ze względu prosty, a chatGPT jaki tekst mu podasz to napisze ten pseudokod z NLP w postaci danego języka formy.

Oczywiście kod nie działał, ale większość operacji była prawidłowa syntaktycznie i semantycznie, że widziałem w którym miejscu będzie problem, ale jak zobaczyłem konkretny problem to okazało się, że brakuje bardzo dużej ilości pseudokodu opisującego daną domenę.

Ale tak większość kodu była poprawna prócz tam kilku rzeczy, po prostu dobrze napisany pseudokod, czasem jeśli problem jest prosty taki pseudokod zadziała bez problemu.

2

u mnie rozwiązał, gdy jakieś archaiczne EJB timery średnio działały, wkleiłem mu kod funkcji, opisałem co ma zrobić i cyk, zadziałało xD polecam do legacy. nawet dokumentacji tego shitu nie musiałem czytać :D

0

Chyba tylko kilka razy spotkałem się z jakąkolwiek chęcią pomocy z ChatGPT, i za każdym razem wypluł mi taki bezsens, że nawet nie opłacało się tego brać pod uwagę.

0

Poprawcie mnie jeśli się mylę. A to nie jest tak, że im więcej mu podajemy różnych problemów tym bardziej jest on mądrzejszy? W sensie uczy się? Wiele osób obawia się, że zabierze robotę a jednocześnie pomaga aby był jeszcze lepszy.

0

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

0
Hodor napisał(a):

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

ChatGPT 4 napisał nawet gorszą wersję niż ChatGPT3.5.

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Jak zapytałem ChatGPT 4 o to samo to napisał mi ten bezsens:

<?php

use PHPUnit\Framework\TestCase;

class RegexParserTest extends TestCase
{
    public function testValidEmail()
    {
        $regexParser = new RegexParser();

        $this->assertTrue($regexParser->isValidEmail('[email protected]'));
        $this->assertFalse($regexParser->isValidEmail('test@example'));
        $this->assertFalse($regexParser->isValidEmail('testexample.com'));
    }

    public function testValidPhone()
    {
        $regexParser = new RegexParser();

        $this->assertTrue($regexParser->isValidPhone('123-456-7890'));
        $this->assertFalse($regexParser->isValidPhone('123-4567-890'));
        $this->assertFalse($regexParser->isValidPhone('123-45-67890'));
    }

Żaden człowiek przy zdrowych zmysłach poproszony o napisanie parsera nie napisałby czegoś takiego.

0
Riddle napisał(a):

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Żaden człowiek przy zdrowych zmysłach poproszony o napisanie parsera nie napisałby czegoś takiego.

Jeśli bot miał napisać testy dla regex parsera w php to tam widać jakieś asserty czy funkcja zwraca dla isValidEmail True gdzie jest podany poprawny adres email.
Może nie jest to jakiś imponujący zestaw testowy, ale jakieś testy są, a na dole piszesz, że miał parsera napisać, może przypadkiem złe zadanie mu zadałeś?

Chyba, że miał jeszcze testować ci prefix i domenę czy poprawnie wyciągnął z tego adresu email.

2
szydlak napisał(a):

Poprawcie mnie jeśli się mylę. A to nie jest tak, że im więcej mu podajemy różnych problemów tym bardziej jest on mądrzejszy? W sensie uczy się? Wiele osób obawia się, że zabierze robotę a jednocześnie pomaga aby był jeszcze lepszy.

Nie jest tak, GPT-4 zostało wyuczone na bazie danych do 2021 roku i nie updatuje wag już.

0
Riddle napisał(a):
Hodor napisał(a):

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

ChatGPT 4 napisał nawet gorszą wersję niż ChatGPT3.5.

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Nie znam się na PHP, ale czy gpt nie zrobił to o co prosiłeś? Jeśli nie to można próbować przekazywać swoje wymagania trochę bardziej precyzyjnie, np. w jaki sposób ma coś zrobić, a w razie błędów przede wszystkim mu to wytłumaczyć.

Ja mam z GPT doświadczenie takie, że może być to niezłe narzędzie do pair programmingu, debuggingu, eksploracji rozwiązań alternatywnych, i nauki. Nie daję mu ogólnych wymagań typu "read my mind, do what I want". GPT non stop się myli, wtedy go poprawiam, albo redefiniuję wymagania, i często się nie zawodzę. Ofc trzeba GPT 4 mieć.

Mi wygenerował coś takiego:

Write unit tests for parsing regex, matching numbers with two decimal places. The numbers can be negative. These numbers always have two decimal places (e.g., 2.00 or 2,00) and can use either a comma or a dot as a decimal separator.

Spock framework.

Edge cases is must.

well-written, clean code, maintainable, extensible, best practices

import spock.lang.Specification
import spock.lang.Unroll

class DecimalParserSpec extends Specification {
    DecimalParser decimalParser = new DecimalParser()

    @Unroll
    def "test matchesTwoDecimalNumber with #input should return #expected"(String input, boolean expected) {
        expect:
        decimalParser.matchesTwoDecimalNumber(input) == expected

        where:
        input   || expected
        "2.00"  || true
        "2,00"  || true
        "-2.00" || true
        "-2,00" || true
        "-2"    || false
        "2.0"   || false
        "2,0"   || false
        "-2.0"  || false
        "-2,0"  || false
        "abc"   || false
        ""      || false
        null    || false
    }
}

can improve?

import spock.lang.Specification
import spock.lang.Unroll

class DecimalParserSpec extends Specification {
    DecimalParser decimalParser = new DecimalParser()

    @Unroll
    def "test matchesTwoDecimalNumber with '#input' should return #expected"(String input, boolean expected) {
        expect:
        decimalParser.matchesTwoDecimalNumber(input) == expected

        where:
        input    || expected
        "2.00"   || true
        "2,00"   || true
        "-2.00"  || true
        "-2,00"  || true
        "0.00"   || true
        "0,00"   || true
        "-0.00"  || true
        "-0,00"  || true
        "-2"     || false
        "2.0"    || false
        "2,0"    || false
        "-2.0"   || false
        "-2,0"   || false
        "200.00" || true
        "200,00" || true
        "-200.00"|| true
        "-200,00"|| true
        "abc"    || false
        ""       || false
        null     || false
        " "      || false
        "- 2.00" || false
        "2.000"  || false
        "2,000"  || false
        "-2.000" || false
        "-2,000" || false
    }
}

A do maili:

import spock.lang.Specification
import spock.lang.Unroll

class EmailRegexParserSpec extends Specification {

    def parser = new EmailRegexParser()

    @Unroll
    def "should validate valid email address: #email"() {
        expect:
        parser.isValid(email) == true

        where:
        email << [
            "[email protected]", 
            "[email protected]", 
            "user@localhost", 
            "[email protected]", 
            "user@[IPv6:2001:db8::1]", 
            "[email protected]"
        ]
    }

    @Unroll
    def "should not validate invalid email address: #email"() {
        expect:
        parser.isValid(email) == false

        where:
        email << [
            "plainaddress", 
            "@no-local-part.com", 
            "invalid@syntax.@", 
            "[email protected]", 
            "[email protected]", 
            "[email protected] (comment)", 
            "[email protected]", 
            "", 
            null
        ]
    }
}


W każdym razie z powodzeniem można używać GPT do ambitniejszych rzeczy niż regexy

1

Czasami użyje, żeby wygenerował mi fabryki testowe, gdy mam sporo tabel w projekcie. Za każdym razem muszę po nim poprawiać. Zdarza się, że generuje kod, który się nawet nie skompiluje. Bezmyslne copy-paste to igranie z ogniem.

1
szydlak napisał(a):

Poprawcie mnie jeśli się mylę. A to nie jest tak, że im więcej mu podajemy różnych problemów tym bardziej jest on mądrzejszy? W sensie uczy się? Wiele osób obawia się, że zabierze robotę a jednocześnie pomaga aby był jeszcze lepszy.

Ponoć się coś tam uczy, niedawno był jakiś news że zaczął podawać innym wartości z kodu źródłowego który ktoś tam inny mu wkleił.
Ci którzy pomagają żeby był jeszcze lepszy to ci którzy wykupują konto premium i dają im kasę.

Wracając do tematu - jeszcze mi się nie udało wygenerować niczego większego sensownego, małe fragmenty kodu kopiuję ale potem zmieniam bo zawsze czegoś brakuje lub coś mi nie pasuje - choćby nazwa zmiennej.

0

Ogólnie to należy rozdzielić naukę od pisania w pracy. Jakbym się uczył z ChatGPT to bym raczej przepisywał kod i na bieżąco go analizował, ale jeśli korzystałbym z niego jako narzędzia do pracy - to bym kopiował.

Natomiast uważałbym przy wklejaniu kodu do ChatGPT, a raczej - nie wrzucałbym kodu firmowego (ani żadnego, którym chciałbym się dzielić ze światem).

2

W pracy praktycznie nie, większość zadań mam zbyt złożonych żeby chatGPT to ogarnął.
Za to do zlecenia na boku tak..dużo generuje i kopiuje. później sprawdzam tylko czy kod nie ma oczywistych bugów bo chat robi ich trochę;]
Generuje głównie rzeczy które po prostu nie chce mi się pisać jak np UX, chat generuje to w moment, klepanie tego ...strata czasu

3

Używam chatGPT-4.

Nie jest w stanie napisać niczego co nadawałoby się na produkcję.

Nie sprawia, że jesteś 10x bardziej produktywny. Już miałem przypadek kontraktora który twierdził, że jest 10 razy bardziej produktywny ale nie chciał sobie przypisać 130 punktów na Sprinta :(

Po kilku iteracjach zaczyna się gubić, i popełniać już poprawione błędy.

Pisałem to raz i napiszę kolejny, jeżeli w pracy piszesz ping-ponga, CRUDy lub siedzisz w zamkniętym pokoju i tylko dostarczasz metody bez zrozumienia kontekstu, to może Ci to pomoc.

GPT-4 Web-browsing - powodzenia - dużo czasu i cierpliwości. Znalezienie ceny BTC/USDT w Binance zajmuje około 20 sekund i daje przestrzale rezultaty.

Wielu tutaj wpadło w pułapkę marketingowa pewnej dużej firmy. Sprawnie zorganizowana kampania aby zainwestowane pieniądze się zwróciły :)

0
Hodor napisał(a):
Riddle napisał(a):
Hodor napisał(a):

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

ChatGPT 4 napisał nawet gorszą wersję niż ChatGPT3.5.

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Nie znam się na PHP, ale czy gpt nie zrobił to o co prosiłeś? Jeśli nie to można próbować przekazywać swoje wymagania trochę bardziej precyzyjnie, np. w jaki sposób ma coś zrobić, a w razie błędów przede wszystkim mu to wytłumaczyć.

Ja mam z GPT doświadczenie takie, że może być to niezłe narzędzie do pair programmingu, debuggingu, eksploracji rozwiązań alternatywnych, i nauki. Nie daję mu ogólnych wymagań typu "read my mind, do what I want". GPT non stop się myli, wtedy go poprawiam, albo redefiniuję wymagania, i często się nie zawodzę. Ofc trzeba GPT 4 mieć.

Mi wygenerował coś takiego:

Write unit tests for parsing regex, matching numbers with two decimal places. The numbers can be negative. These numbers always have two decimal places (e.g., 2.00 or 2,00) and can use either a comma or a dot as a decimal separator.

W każdym razie z powodzeniem można używać GPT do ambitniejszych rzeczy niż regexy

I to ma być parser?

Miał napisać parser, z lexerem i AST, z obsługą escape'owania i character class. To co napisał to jest Funckja którą można znaleźć w Google w sekundy.

1

Fajnie pisze bojlerplate i robi proste refactoringi w obrębie jednego pliku.

0
lambdadziara napisał(a):

Pamietam, kiedys byl wywiad z polskim fejmem z dziedziny bezpieczenstwa, CTFow, nie pamietam ksywki. On mowil, ze z ksiazek np zawsze przepisuje kod recznie, bo tak sie szybciej czlowiek nauczy. Wiec tez tak robie w kwestii ChatGPT, wierze mu, ze to pomoze utwierdzic wiedze.

Może po prostu lubi mieć kontrolę nad kodem.

0

W połowie przypadków wkurzam się na niego i postanawiam sobie wygooglać rozwiązanie, bo on lubi zmyślać.

2

Jakiś czas temu zaczynałem w obszarze, który był dla mnie całkowicie nowy.
Wysoki próg wejścia, a trzeba zacząć dostarczać.
Postanowiłem wykorzystać ChatGPT (3.5) i mam takie spostrzeżenia:

  • kiedy kazałem mu tłumaczyć sobie różne rzeczy to szło to dobrze i było moim zdaniem dużo bardziej efektywne niż szukanie w dokumentacji, Google, czy SO. Przypomnę, że mowa o sytuacji, kiedy o zagadnieniu nie wiedziałem prawie nic. W przypadku, kiedy pracuję z czymś, z czym mam doświadczenie tradycyjne narzędzia wciąż wydają mi się bardziej efektywne.
  • kiedy kazałem napisać jakiś kod to pi razy oko było OK, ale pewne rzeczy były kompletnie od czapy i trzeba było być bardzo czujnym, no i na pewno nie kopiować kodu 1:1. Trochę jak na tych wygenerowanych obrazach, gdzie ludzie mają po 3 kostki w palcach. Ludzki malarz nigdy by nie popełnił takiego błędu, a SI najwyraźniej ma takie dziwne odchyły.

1 użytkowników online, w tym zalogowanych: 0, gości: 1