ChatGPT jest przerażająco dobry w pisaniu kodu.
Wszyscy o tym słyszeli ChatGPT na tym etapie. To chatbot oparty na sztucznej inteligencji, który wykorzystuje modele przetwarzania języka naturalnego do udzielania odpowiedzi na skomplikowane pytania. Te odpowiedzi niekoniecznie zawsze muszą być dokładne, ale są na tyle szczegółowe, że można dość łatwo sprawdzić fakty, które daje. Co by było, gdybyś wziął ChatGPT i spróbował napisać za jego pomocą kod?
Jak się okazuje, jest to coś, co możesz zrobić z różnym skutkiem, w zależności od języków, których chcesz używać i tego, co chcesz z nimi osiągnąć. Poddałem go testowi, aby zobaczyć, jak dobrze radzi sobie w różnych językach programowania, wykonując różne zadania. Nie będę również wprowadzał żadnych zmian w kodzie tworzonym przez ChatGPT, poprowadzę go tylko do stworzenia działającego kodu, jeśli kod, który tworzy, nie działa.
Użyłem trzech języków, które już znam, aby przetestować ChatGPT: Python, C i Java. Wyniki były szczególnie zaskakujące, ponieważ miał trochę problemów z Pythonem ze względu na abstrakcyjny charakter tego, o co go prosiłem, ale z łatwością poradził sobie z C i podstawową Javą. ja też
stworzył repozytorium GitHub z całym kodem tutaj dostępnym, abyś mógł sam go wypróbować.Automatyczne sprawdzanie strony w Pythonie
Python jest moim ulubionym językiem programowania do pracy, a to dzięki jego możliwościom i prostocie użycia. W przeszłości napisałem wiele narzędzi w Pythonie, aby zautomatyzować część mojego przepływu pracy, a moja praca licencjacka z informatyki została nawet napisana w całości za pomocą Pythona. Poprosiłem ChatGPT o napisanie programu, który mógłby skanować stronę internetową w poszukiwaniu zmian w okresowych odstępach czasu, i w większości załatwił sprawę.
Problem z powyższym kodem, który mi daje, polega na tym, że nie symuluje on prawdziwej przeglądarki. Witryny internetowe sprawdzają w Twojej przeglądarce parametr zwany „klientem użytkownika”, który określa, jakiego rodzaju przeglądarki używasz lub czy jesteś botem. Wiele stron internetowych nie akceptuje połączeń, które nie definiują agenta użytkownika, i wpadłem na to, kiedy wskazałem to na XDA. Poprosiłem go o dodanie niestandardowych nagłówków do żądania w celu symulacji prawdziwej przeglądarki i spełniło się.
Powyższy kod działa w przypadku statycznych stron internetowych, ale problem polega na tym, że większość treści, które czytasz online, jest dynamiczna. Jeśli strona zwraca bieżący czas, na przykład gdzieś na stronie, to powyższy kod zawsze powie, że strona zmieniła się przy każdym odświeżeniu. Kiedy zwróciłem na to uwagę ChatGPT, wpadłem w zakłopotanie i dostałem całkowicie niepoprawne rozwiązanie problemu.
Powyższe jest błędnym wyjaśnieniem działania skrótów. Chodzi o to, że niewielka zmiana danych wejściowych spowoduje znaczną różnicę w mieszaniu, ponieważ dwa skróty są w zasadzie nieporównywalne. Kiedy powiedziałem mu, że niepoprawnym twierdzeniem jest sugerowanie, że skróty są najlepszym sposobem porównywania i wyszukiwania zmian, odpowiedział przeprosinami i dał mi coś, co zrobił praca.
Jedynym problemem, który odkryłem w powyższym kodzie, jest to, że w przypadku większych witryn jest to kosztowne obliczeniowo, ponieważ wykorzystuje przetwarzanie języka naturalnego do porównywania i obliczania różnicy między nimi. Mimo to próg 5% w zmienionej treści jest wystarczający dla większości witryn, jeśli chcesz sprawdzić dostępność aktualizacji, i możesz dostosować próg, jeśli zajdzie taka potrzeba. Trochę to trwało, ale w końcu się udało.
Istnieje wiele powodów, dla których możesz chcieć skrobaka internetowego takiego jak jeden z tych, i chociaż istnieją narzędzia, które mogą to zrobić, fajnie jest zbudować własne. Możesz ich użyć do śledzenia przesyłek lub, w moim przypadku, do wyszukiwania nowych nieruchomości, które są wynajmowane na lokalnych stronach z nieruchomościami.
Generator haseł w C
Ponieważ bezpieczeństwo jest ostatnio modne, ważne jest, aby używać bezpiecznych haseł, a także korzystać z uwierzytelniania dwuskładnikowego. Jeśli zmagasz się z częścią dotyczącą bezpiecznego hasła, dość łatwo jest napisać generator haseł w C. ChatGPT poradził sobie z tym dość łatwo, a jedynym problemem, jaki odkryłem, było to, że kiedy poprosiłem go o utworzenie generatora haseł, nie zaimportował biblioteki String C. Powiedziałem to i dodał to do importu na początku.
Zwiększyłem zmienną globalną MAX_LENGTH do 32 znaków zamiast 16 i wygenerowałem dla mnie następujące hasło: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Śmiało można powiedzieć, że to działa!
Kalkulator w Javie
Dość podstawowym programem, z którym wiele osób ma doświadczenie w Javie, jest tworzenie kalkulatora. Jest to jedno z najwcześniejszych wyzwań, przed którymi stoją informatycy w swojej karierze programistycznej, bez względu na to, jakiego języka nauczą się najpierw. Poprosiłem ChatGPT o napisanie kalkulatora w Javie, który wykorzystywałby co najmniej dwie klasy i zadziałał doskonale za pierwszym podejściem.
To jest klasa kalkulatora:
To jest główna klasa:
Utworzenie obu tych klas w moim IDE, IntelliJ i wykonanie głównej klasy skutkuje doskonałym działaniem program kalkulatora, który pobiera dwie liczby i operator dodawania, odejmowania, mnożenia lub dział.
ChatGPT jest przyzwoity w programowaniu
Chociaż nie polegałbym na tym, że ChatGPT zrobi wszystko za Ciebie, jasne jest, że potrafi całkiem nieźle tworzyć programy i brać pod uwagę krytykę, gdy pojawiają się problemy. Byłem zaskoczony, widząc, że sugeruje algorytm haszujący jako sposób na rozróżnienie drobnych zmian na stronie internetowej, ale poza tym nie miał problemów z bardziej podstawowymi zadaniami. Nawet w przypadku programu w Pythonie od samego początku miał on słuszny pomysł i na bardziej statycznych stronach działałby idealnie.
Oczywiście ChatGPT nie zastąpi w najbliższym czasie programistów, ale jest na dobrej drodze, by stać się bardzo dobrym narzędziem dla pracowników. Drugi pilot GitHubakorzysta np GPT technologia, która pomaga ludziom pisać kod, a z biegiem czasu będzie coraz bardziej zaawansowana. Nawet jeśli jesteś początkującym programistą, tego rodzaju narzędzie może potencjalnie pomóc w nauce, jeśli możesz mu w pełni zaufać, ale czasami popełnia dziwne błędy, jak widzieliśmy.
Oczywiście podane tutaj przykłady są bardzo proste i większość programistów byłaby w stanie napisać je dość łatwo, ale nie o to chodzi. Jest przerażająco dobry w budowaniu rozwiązań prostych zadań i wydaje się, że przyzwoicie radzi sobie również z bardziej złożonymi zadaniami. Nie możemy się doczekać, aby zobaczyć, dokąd takie narzędzia pójdą w przyszłości i pomogą ludziom doskonalić ich umiejętności.