Jak mogę nauczyć się programowania z ChatGPT, jeśli muszę zaczynać od nowa?
Odkrywanie ChatGPT w trakcie mojej 15-letniej przygody z kodowaniem – wykraczanie poza proste kopiowanie i wklejanie
Kodowanie jest częścią mojego życia odkąd skończyłem 10 lat. Od poprawiania kodu i CSS na moim profilu w serwisie Friendster w początkach internetu, przez eksplorowanie luk w zabezpieczeniach SQL injection dla samej przyjemności, budowanie trójnożnego robota dla zabawy, aż po ostatnio zagłębianie się w programowanie w Pythonie – moja przygoda z kodowaniem była różnorodna i pełna wrażeń!
Oto czego nauczyłem się dzięki różnym podejściom do programowania.

Uczę się programowania zawsze w ten sam sposób; jak mówią ludzie, po prostu kopiuj i wklej. 😅
Jeśli chodzi o tworzenie czegoś w świecie programowania, moje podejście wygląda następująco:
- Wybierz odpowiednią strukturę lub bibliotekę.
- Ucz się na poprzednich projektach
- Podziel to na kroki
Podziel swój projekt na wykonalne kroki, dzięki czemu jego realizacja będzie mniej stresująca. - Wyszukaj każdą część w Google.
Przed każdym krokiem skonsultuj się z wyszukiwarką Google/Bing/DuckDuckGo/dowolną inną, którą preferujesz, aby uzyskać informacje, wskazówki i potencjalne rozwiązania. - Rozpocznij programowanie
Staraj się wykonywać każdy krok systematycznie.
Jednak nawet dobrze przemyślany kod może napotkać błędy. Oto moja strategia rozwiązywania problemów:
1. Sprawdź dokumentację Frameworka: Zawsze czytaj dokumentację!
2. Wyszukaj w Google i Stack OverflowWyszukaj w Google i Stack Overflow. Przykładowe słowa kluczowe to:
site:stackoverflow.com [język programowania] [biblioteka] Błąd [komunikat o błędzie]
site:stackoverflow.com Błąd Pythona ImportError: pandas Moduł nie został znaleziony
- Rozwiązania Stack OverflowJeśli problem już istnieje na Stack Overflow, szukam komentarzy i rozwiązań z największą liczbą głosów i często znajduję szybką i rzetelną odpowiedź. Ta platforma jest ważnym źródłem rozwiązań dla programistów. Błędy Pythona Plotka i Biblioteka Pandy.
- zaufaj mojej intuicjiKiedy Stack Overflow nie ma odpowiedzi, ufam swojemu instynktowi i szukam wiarygodnych źródeł w Google: GeeksForGeeks, Kaggle, W3School i Towards Nauka danych Dla rzeczy DS 😉
3. Skopiuj i wklej rozwiązanie kodu.
4. Weryfikacja i testowanieOstatnim krokiem jest dokładne sprawdzenie i przetestowanie zmodyfikowanego kodu, aby upewnić się, że działa zgodnie z przeznaczeniem. Gwarantuje to brak weryfikacji kodu i jego prawidłowe przetestowanie.
Pomyślnie rozwiązałeś problem techniczny!

Czyż to nie jest piękne?
Ale czy naprawdę nadal to robimy?!
Ostatnio zauważyłem zmianę w podejściu początkujących programistów do programowania. Od około trzech lat zawodowo uczę programowania, na zmianę prowadząc bootcampy programistyczne, wykłady gościnne na uniwersytetach i szkolenia korporacyjne. Sposób, w jaki programiści podchodzą do nauki programowania, uległ znacznej zmianie, ze szczególnym naciskiem na… Narzędzia sztucznej inteligencji w programowaniu.
Zazwyczaj radzę nowym użytkownikom, aby trzymali się staromodnego sposobu przeglądania i szukania odpowiedzi w Google, ale ludzie i tak korzystają z ChatGPT. Ich wymówka brzmi:
„Korzystanie z ChatGPT (w celach programistycznych) jest jak posiadanie dodatkowego kolegi z klasy — rozmawiającego z tobą jak normalna osoba”.
Jest to bardzo przydatne, zwłaszcza gdy wciąż próbujesz zrozumieć rzeczy na podstawie wyników badań i dokumentów – aby opracować to, co nazywa się „Intuicja programisty".
Nie zrozumcie mnie źle, jestem zwolennikiem podstaw. Przeglądanie, czytanie dokumentacji i zadawanie pytań w społeczności – to moim zdaniem solidne kroki. Poleganie wyłącznie na ChatGPT może być nieco naciągane. Jasne, może on wygenerować szybkie podsumowanie odpowiedzi, ale Tradycyjne metody przeglądania dają Ci swobodę wyboru i eksperymentowania, co jest kluczowe w świecie programowania.
Muszę jednak oddać sprawiedliwość tym, którzy na nią zasługują – ChatGPT niezwykle szybko udziela odpowiedzi, zwłaszcza gdy wciąż próbujesz ustalić, co jest poprawne, a co nie w wynikach wyszukiwania i dokumentach. ChatGPT to potężne narzędzie przyspieszające proces nauki i znajdowania rozwiązań złożonych problemów programistycznych.
Zdaję sobie sprawę, że ta zmiana w korzystaniu z ChatGPT jako partnera do nauki nie dotyczy tylko programowania. ChatGPT zrewolucjonizował sposób, w jaki ludzie się uczą. Używam ChatGPT nawet do poprawiania gramatyki w tym poście, przepraszam Grammarly.
Odmowa korzystania z ChatGPT przypomina odmowę korzystania z wyszukiwarek na początku XXI wieku.Mimo że ChatGPT może zawierać błędy i odchylenia od normy, podobnie jak wyszukiwarki zawierające niepewne informacje lub oszustwa, to jednak jeśli jest używany prawidłowo, może przyspieszyć proces uczenia się.
Wyobraźmy sobie teraz sytuację z życia realnego, w której ChatGPT może Ci pomóc, będąc Twoim partnerem programistycznym i pomagając w debugowaniu.
Scenariusz: debugowanie skryptu Pythona
Wyobraź sobie, że pracujesz nad skryptem w Pythonie w ramach projektu i napotykasz nieoczekiwany błąd, którego nie potrafisz rozwiązać. To częsty problem w rozwoju oprogramowania i wymaga zaawansowanych umiejętności debugowania.
Oto jak nauczyłem się debugowania w dawnych czasach – w erze przed ChatGPT. Te klasyczne metody są nadal cenne w zrozumieniu podstaw debugowania.
Metodyka przeglądania:
- Dokumentacja:
Zacznij od sprawdzenia dokumentacji Pythona dotyczącej modułu lub funkcji, która spowodowała błąd. Dokumentacja Pythona to niezbędne źródło informacji, pozwalające zrozumieć, jak działają różne moduły i jak z nich prawidłowo korzystać. Pomaga to zidentyfikować przyczyny błędów i skutecznie je naprawić.
Na przykład:
- Odwiedzać https://scikit-learn.org/stable/modules/ Aby zapoznać się z dokumentacją Scikit Learn.
2. Wyszukaj w Google i Stack Overflow:
Jeśli dokumentacja nie oferuje rozwiązania, możesz skorzystać z Google i Stack Overflow. Przejrzyj różne wątki i dyskusje na forach, aby znaleźć podobny problem i jego rozwiązanie. Te zasoby są cenne w rozwiązywaniu problemów w dziedzinie uczenia maszynowego.

3. Zaufaj swojej intuicji:
Jeśli problem jest nietypowy lub słabo udokumentowany, zaufaj swojej intuicji! Możesz przejrzeć artykuły i źródła w Google, które w przeszłości uznałeś za godne zaufania, i spróbować zastosować podobne rozwiązania do swojego problemu. Takie podejście wzmacnia Twoje umiejętności rozwiązywania problemów technicznych.
Jak widać, w powyższym wyniku wyszukiwania, wyniki pochodzą z W3school – (zaufanej strony do nauki kodowania, idealnej do oszukiwania), a pozostałe dwa to oficjalna dokumentacja Pandas. Wyszukiwarki sugerują użytkownikom zapoznanie się z oficjalną dokumentacją. 😉
Oto, w jaki sposób możesz użyć ChatGPT, aby rozwiązać problem.
Nowe podejście z ChatGPT:
- Współdziałaj z ChatGPT w rozmowach:
Zamiast tylko przeglądać dokumentację i fora, możesz komunikować się z ChatGPT na czacie na żywo. Podaj krótki opis błędu i zadaj pytanie. Możesz na przykład skorzystać z ChatGPT, aby uzyskać natychmiastową pomoc w zrozumieniu i debugowaniu typowych błędów programistycznych.
„Mam problem ze skryptem w [języku programowania], gdzie występuje [opis błędu]. Czy możesz mi pomóc zrozumieć możliwe przyczyny tego błędu i zaproponować możliwe rozwiązanie?”

2. Wyjaśnianie pojęć za pomocą ChatGPT:
Jeśli błąd dotyczy pojęcia, którego nie rozumiesz, możesz poprosić ChatGPT o wyjaśnienie. Na przykład:
„Wyjaśnij, jak działa [konkretna koncepcja] w [języku programowania]? Myślę, że może to mieć związek z błędem, który mi się wyświetla. Błąd to: [błąd]”

3. Poproś o zalecenia dotyczące rozwiązywania problemów:
Możesz poprosić ChatGPT o ogólne porady dotyczące rozwiązywania problemów z programami w Pythonie. Na przykład:
„Jakie są typowe strategie radzenia sobie z [problemem]? Czy masz jakieś rekomendacje dotyczące narzędzi lub technik?”

Potencjalne korzyści:
- Wytyczne niestandardowe: ChatGPT może zapewnić spersonalizowane wsparcie w oparciu o podane przez Ciebie szczegółowe informacje o błędzie i Twoim zrozumieniu problemu. Funkcja ta wykorzystuje możliwości dużego modelu językowego (LLM) ChatGPT, aby zapewnić spersonalizowaną pomoc.
- Wyjaśnienie pojęć: Możesz poprosić o wyjaśnienia i uściślenia pojęć bezpośrednio w ChatGPT, wykorzystując możliwości jego dużego modelu językowego (LLM).
- Skuteczne rozwiązywanie problemów: ChatGPT może zapewnić zwięzłe i trafne wskazówki dotyczące rozwiązywania problemów, które mogą uprościć proces debugowania.
Potencjalne ograniczenia:
Porozmawiajmy teraz o wadach polegania w 100% na ChatGPT. Często zauważałem te problemy podczas korzystania z ChatGPT przez moich studentów. W erze po ChatGPT, moi studenci kopiowali i wklejali jednowierszowy komunikat o błędzie z interfejsu wiersza poleceń, mimo że błąd liczył 100 wierszy i dotyczył określonych modułów i zależności. Czasami poproszenie ChatGPT o wyjaśnienie obejścia poprzez podanie jednowierszowego kodu błędu może zadziałać, lub co gorsza – może wydłużyć czas ręcznego debugowania o godzinę lub dwie.
ChatGPT ma ograniczenie polegające na tym, że nie widzi kontekstu kodu. Oczywiście, zawsze możesz nadać kontekst swojemu kodowi. W bardziej złożonym kodzie może nie być możliwe przekazanie ChatGPT każdej linijki kodu. Fakt, że ChatGPT widzi tylko niewielką część kodu, oznacza, że ChatGPT może: Zakłada się, że Reszta kodu opiera się na jego bazie wiedzy lub halucynacje.
Poniżej przedstawiono potencjalne ograniczenia korzystania z ChatGPT:
- Brak dynamicznej interakcji w czasie rzeczywistym: Chociaż ChatGPT dostarcza cennych informacji, brakuje mu interakcji w czasie rzeczywistym i dynamicznej wymiany informacji, jaką oferują fora lub wątki dyskusyjne. Na StackOverflow 10 różnych osób może zaproponować trzy różne rozwiązania, które możesz porównać, samodzielnie (zrób to sam, spróbuj) lub sprawdzając liczbę głosów na tak.
- Poleganie na wcześniejszej wiedzy: Jakość odpowiedzi ChatGPT zależy od informacji, na których narzędzie zostało przeszkolone. Może ono nie być świadome najnowszych aktualizacji struktury lub konkretnych szczegółów Twojego projektu.
- Może wydłużyć czas debugowania: ChatGPT nie ma kontekstu dla całego kodu, więc może to wydłużyć czas debugowania.
- Ograniczone zrozumienie koncepcji: Tradycyjne metody przeglądania dają swobodę wyboru i eksperymentowania, co jest kluczowe w świecie programowania. Jeśli wiesz, jak wybrać odpowiednie źródło, możesz dowiedzieć się więcej, przeglądając zasoby samodzielnie, zamiast polegać na ogólnym modelu ChatGPT.
O ile nie zapytasz wyszkolonego modelu języka specjalizującego się w koncepcjach programowania i technologii, prac badawczych na temat programowania, popularnych wykładów Andrew Nga na temat głębokiego uczenia się lub tweeta Yanna Le Cunna na X (dawniej Twitter), ChatGPT udzieli w dużej mierze ogólnej odpowiedzi.
Ten scenariusz pokazuje, jak ChatGPT może być cennym narzędziem w Twoim zestawie narzędzi programistycznych, zwłaszcza w zakresie spersonalizowanego wsparcia i wyjaśniania pojęć. Pamiętaj, aby zrównoważyć wsparcie ChatGPT z przeglądaniem i metodami opartymi na społeczności, biorąc pod uwagę jego mocne i słabe strony.
Podsumowując
Polecane programistom: Niezbędne narzędzia i zasoby
Jeśli naprawdę chcesz skorzystać z modelu automatycznego uzupełniania, zamiast używać tylko ChatGPT, spróbuj użyć rozszerzeń VScode do zadań automatycznego uzupełniania kodu, takich jak CodeGPT — rozszerzenie GPT4 dla VScode, أو Drugi pilot GitHublub narzędzia do automatycznego uzupełniania AI w Google Colab. Te narzędzia znacząco zwiększają produktywność programistów.

Jak widać na powyższym zrzucie ekranu, Google Colab automatycznie podpowiada użytkownikowi sugestie dotyczące następnego kodu.
Inną alternatywą jest GitHub Copilot. Dzięki GitHub Copilot możesz otrzymywać sugestie oparte na sztucznej inteligencji w czasie rzeczywistym. GitHub Copilot sugeruje uzupełnianie kodu w miarę pisania przez programistów i przekształca podpowiedzi w sugestie kodowania oparte na kontekście projektu i konwencjach stylistycznych. Zgodnie z tym Wydanie z GithubCopilot Chat korzysta teraz z OpenAI GPT-4 (model podobny do tego używanego przez ChatGPT).

Aktywnie korzystałem z CodeGPT jako rozszerzenia VSCode, zanim dowiedziałem się, że Github Copilot jest dostępny za darmo, jeśli korzystasz z samouczka. CodeGPT zebrał już ponad milion pobrań w VSCode Extension Marketplace. CodeGPT umożliwia bezproblemową integrację z API ChatGPT, Google PaLM 2 i Meta Llama.
Sugestie dotyczące kodu można uzyskać w komentarzach.Oto jak:
- Napisz komentarz z prośbą o konkretny kod.
- ضغط
cmd + shift + i - Użyj kodu 😎

Możesz także rozpocząć rozmowę. Poprzez rozszerzenie w menu i przejdź do konwersacji kodowania 💬

Myśląc o swojej drodze programistycznej, wyciągam z niej cenną lekcję: nie ma jednego, uniwersalnego sposobu nauki. Kluczowe jest korzystanie z różnorodnych metod nauczania, łącząc tradycyjne metody, takie jak przeglądanie stron internetowych i interakcja ze społecznością, z innowacyjnymi możliwościami narzędzi takich jak ChatGPT i narzędzia do autouzupełniania kodu.
Co zrobić:
- Skorzystaj z zasobów edukacyjnych dostosowanych do indywidualnych potrzeb: Skorzystaj z rekomendacji materiałów edukacyjnych ChatGPT i potraktuj je jako kluczowe narzędzie w swojej nauce.
- Współpracuj, aby rozwiązywać problemy: Korzystaj z ChatGPT jako partnera do współpracy, tak jak robiłbyś to wspólnie ze znajomymi, zwiększając w ten sposób swoje możliwości efektywnego stawiania czoła wyzwaniom programistycznym.
Czego należy unikać:
- Nadmierne poleganie na ChatGPT: Unikaj całkowitego polegania na ChatGPT i podejdź do rozwijania swoich umiejętności samodzielnego rozwiązywania problemów w zrównoważony sposób. Chociaż ChatGPT jest potężnym narzędziem wspomagającym zrozumienie struktur kodu i generowanie pomysłów, poleganie wyłącznie na nim może utrudniać rozwój własnych umiejętności analitycznego i krytycznego myślenia, niezbędnych do stania się kompetentnym programistą.
- Zaniedbywanie bezpośredniej interakcji ze społecznością programistyczną: Chociaż ChatGPT dostarcza cennych informacji, nie zapominaj o korzyściach płynących z bezpośredniej interakcji i informacji zwrotnych od społeczności programistów. Pomaga to również budować pozytywną reputację w społeczności. Interakcja z innymi programistami daje Ci możliwość uczenia się z ich doświadczeń, wymiany wiedzy i poznania różnych perspektyw na stojące przed Tobą wyzwania.
- Ignorowanie praktycznej praktyki programowania: Łącz wskazówki ChatGPT z praktycznym programowaniem, aby poszerzyć swoją wiedzę teoretyczną o praktyczne zastosowania. Praktyczne zastosowanie jest kluczem do przekształcenia teoretycznych koncepcji w praktyczne umiejętności. Spróbuj samodzielnie pisać kod, eksperymentować z różnymi rozwiązaniami i debugować. To pomoże Ci utrwalić zrozumienie pojęć i rozwinąć umiejętności rozwiązywania problemów.
Dajcie znać w komentarzach, jak Wy wykorzystujecie ChatGPT do wspomagania programowania!
Miłego kodowania!
Możliwość dodawania komentarzy nie jest dostępna.