ChatGPT로 프로그래밍을 처음부터 다시 배워야 한다면 어떻게 해야 하나요?

15년간의 코딩 여정에서 ChatGPT 탐색 - 단순한 복사 및 붙여넣기 그 이상

코딩은 10살 때부터 제 삶의 일부였습니다. 인터넷 초창기에는 Friendster 프로필의 코드와 CSS를 수정하는 것부터, 재미 삼아 SQL 주입 취약점을 탐구하는 것, 재미 삼아 세 발 로봇을 만드는 것, 그리고 최근에는 파이썬 프로그래밍에 뛰어드는 것까지, 제 코딩 여정은 다채롭고 즐거웠습니다!

다양한 프로그래밍 접근 방식을 통해 제가 배운 점은 다음과 같습니다.

Unsplash의 Arnold Francisca가 찍은 사진

제가 프로그래밍을 배우는 방법은 항상 똑같습니다. 사람들이 말하듯이, 대부분 그냥 복사해서 붙여넣는 거죠. 😅

프로그래밍 세계에서 무언가를 만들 때, 제가 접근하는 방식은 다음과 같습니다.

  1. 적절한 프레임워크나 라이브러리를 선택하세요.
  2. 이전 프로젝트에서 배우기
  3. 단계별로 나누어보세요
    프로젝트를 실행 가능한 단계로 나누어 개발의 스트레스를 줄이세요.
  4. 각 부분을 Google에서 검색해 보세요.
    각 단계에 대해 Google/Bing/DuckDuckGo/선호하는 검색 엔진을 참조하여 통찰력, 지침 및 잠재적 솔루션을 얻으세요.
  5. 프로그래밍 시작
    각 단계를 체계적으로 수행해 보세요.

하지만 아무리 잘 고안된 코드라도 오류가 발생할 수 있습니다. 제가 사용하는 문제 해결 전략은 다음과 같습니다.

1. 프레임워크 문서를 확인하세요. 항상 설명서를 읽으세요!

2. Google과 Stack Overflow에서 검색하세요.Google과 Stack Overflow에서 검색해 보세요. 키워드 예시는 다음과 같습니다.

사이트:stackoverflow.com [프로그래밍 언어] [라이브러리] 오류 [오류 메시지]

사이트:stackoverflow.com Python 오류 ImportError: pandas 모듈을 찾을 수 없습니다

스택 오버플로 솔루션문제가 이미 Stack Overflow에 존재한다면, 가장 많은 투표를 받은 댓글과 해결책을 검색하는데, 종종 빠르고 신뢰할 수 있는 답변을 찾을 수 있습니다. 이 플랫폼은 개발자들이 문제를 해결하는 데 중요한 리소스입니다. 파이썬 오류 루머와 팬더의 도서관.
내 직감을 믿어라Stack Overflow에 답변이 없을 때 나는 본능을 믿고 Google에서 GeeksForGeeks, Kaggle, W3School, Towards와 같은 신뢰할 수 있는 출처를 검색합니다. 데이터 과학 DS 관련해서요 😉

3. 코드 솔루션을 복사하여 붙여넣습니다.

4. 검증 및 테스트마지막 단계는 수정된 코드를 신중하게 검토하고 테스트하여 의도한 대로 작동하는지 확인하는 것입니다. 이를 통해 코드 검증이 필요 없으며 코드가 제대로 테스트되었는지 확인할 수 있습니다.

 

기술적인 문제를 성공적으로 해결했습니다!

정말 아름답지 않나요?

 

하지만 실제로 우리는 아직도 이런 일을 하고 있을까?!

최근 신입 프로그래머들이 프로그래밍에 접근하는 방식에 변화가 생긴 것을 느꼈습니다. 저는 약 3년 동안 코딩 부트캠프, 대학 초청 강연, 그리고 기업 연수를 오가며 전문적으로 프로그래밍을 가르쳐 왔습니다. 프로그래머들이 프로그래밍을 배우는 방식이 상당히 바뀌었는데, 특히 프로그래밍에서의 인공지능 도구.

저는 보통 새로 온 사람들에게 구식 방식으로 검색하고 구글링해서 답을 찾으라고 조언하지만, 사람들은 여전히 ​​ChatGPT를 사용합니다. 그들의 변명은 이렇습니다.

 

"(프로그래밍 목적으로) ChatGPT를 사용하면 마치 반 친구가 한 명 더 생긴 것과 같아요. 마치 일반인처럼 대화할 수 있죠."

특히 연구 결과와 문서에서 사물을 이해하려고 노력할 때 "라고 불리는 것을 개발하는 것은 매우 유용합니다.프로그래머의 직관".

오해는 마세요. 저는 기본적인 것에 전적으로 동의합니다. 탐색하고, 문서를 읽고, 커뮤니티에 질문하는 것, 제 생각에는 이것들이 확실한 단계입니다. ChatGPT에만 의존하는 것은 다소 과할 수 있습니다. 물론, 빠른 답변 요약을 생성할 수는 있지만, 기존의 검색 방식은 프로그래밍 세계에서 매우 중요한 선택과 실험의 자유를 제공합니다.

하지만 마땅히 인정해야 할 부분은 인정해야 합니다. ChatGPT는 특히 검색 결과와 문서에서 무엇이 옳고 그른지 알아내려고 애쓰는 상황에서 답변을 제공하는 속도가 놀라울 정도로 빠릅니다. ChatGPT는 학습 과정을 가속화하고 복잡한 프로그래밍 문제에 대한 해결책을 발견하는 데 강력한 도구입니다.

ChatGPT를 학습 파트너로 활용하는 이러한 변화는 프로그래밍 분야에서만 일어나는 것이 아니라는 것을 알고 있습니다. ChatGPT는 사람들의 학습 방식에 혁명을 일으켰습니다. 저는 이 글의 문법 교정에도 ChatGPT를 사용하고 있습니다. Grammarly, 죄송합니다.

 

ChatGPT 사용을 거부하는 것은 2000년대 초반에 검색 엔진 사용을 거부하는 것과 같습니다.ChatGPT는 신뢰할 수 없는 정보나 사기성이 있는 정보를 포함하는 검색 엔진과 마찬가지로 편견과 오류가 있을 수 있지만, 적절하게 사용하면 ChatGPT를 통해 학습 과정을 가속화할 수 있습니다.

이제 ChatGPT가 디버깅을 돕는 프로그래밍 친구가 되어 도움을 줄 수 있는 실제 시나리오를 상상해 보겠습니다.

 

시나리오: Python 스크립트 디버깅

프로젝트에서 Python 스크립트를 작업하다가 해결할 수 없는 예상치 못한 오류가 발생한다고 상상해 보세요. 이는 소프트웨어 개발에서 흔히 발생하는 문제이며, 고급 디버깅 기술이 필요합니다.

ChatGPT 이전 시대에 제가 디버깅을 배웠던 방법을 소개합니다. 이러한 고전적인 방법들은 디버깅의 기본을 이해하는 데 여전히 유용합니다.

검색 방법론:

  1. 선적 서류 비치:

먼저 오류를 일으킨 모듈이나 함수에 대한 Python 문서를 확인하세요. Python 문서는 다양한 모듈의 작동 방식과 올바른 사용법을 이해하는 데 필수적인 참고 자료이며, 오류의 원인을 파악하고 효율적으로 해결하는 데 도움이 됩니다.

 

على سبيل المثال :
- 방문하다 https://scikit-learn.org/stable/modules/ Scikit Learn 문서입니다.

2. Google과 Stack Overflow에서 검색하세요.

설명서에 해결책이 없으면 Google과 Stack Overflow를 참고하세요. 다양한 포럼 스레드와 토론을 살펴보며 유사한 문제와 해결책을 찾아보세요. 이러한 자료는 머신러닝 분야의 문제 해결에 유용합니다.

3. 직감을 믿으세요.

문제가 독특하거나 제대로 정리되지 않았다면 직감을 믿으세요! 과거에 신뢰할 만하다고 생각했던 Google 문서와 출처를 찾아보고, 비슷한 해결책을 문제에 적용해 볼 수 있습니다. 이러한 접근 방식은 기술적 문제 해결 능력을 향상시켜 줍니다.

위 검색 결과에서 두 결과는 W3school(신뢰받는 코딩 학습 사이트로, 컨닝하기에 좋습니다)에서 나온 것이고, 나머지 두 결과는 Pandas 공식 문서입니다. 검색 엔진이 사용자에게 공식 문서를 확인해 보라고 권장하고 있는 것을 알 수 있습니다. 😉

ChatGPT를 사용하여 문제를 해결하는 방법은 다음과 같습니다.

 

ChatGPT를 활용한 새로운 접근 방식:

  1. 대화에서 ChatGPT와 상호 작용하세요:

문서와 포럼을 탐색하는 대신, ChatGPT와 실시간 채팅을 통해 소통할 수 있습니다. 오류에 대한 간략한 설명을 제공하고 질문을 남겨주세요. 예를 들어, ChatGPT를 사용하면 일반적인 프로그래밍 오류를 이해하고 디버깅하는 데 즉각적인 도움을 받을 수 있습니다.

 

"[프로그래밍 언어] 스크립트에 [오류 설명]과 관련된 문제가 있습니다. 이 오류의 원인을 파악하고 가능한 해결책을 제시해 주시겠습니까?"

2. ChatGPT를 사용하여 개념 설명:

오류가 이해하기 어려운 개념과 관련된 경우 ChatGPT에 설명을 요청할 수 있습니다. 예를 들어,

 

"[특정 개념]이 [프로그래밍 언어]에서 어떻게 작동하는지 설명해 주세요. 제가 겪고 있는 오류와 관련이 있을 것 같습니다. 오류는 [오류]입니다."

3. 문제 해결에 대한 권장 사항을 요청하세요.

Python 프로그램 문제 해결에 대한 일반적인 조언은 ChatGPT에 문의하세요. 예를 들어,

 

"[문제]를 해결하는 데 흔히 쓰이는 전략은 무엇인가요? 도구나 기법에 대한 추천이 있나요?"

잠재적인 이점:

  • 사용자 정의 가이드라인: ChatGPT는 오류에 대한 구체적인 정보와 문제에 대한 이해를 바탕으로 개인 맞춤형 안내를 제공합니다. 이 기능은 ChatGPT의 대규모 언어 모델(LLM) 기능을 활용하여 맞춤형 지원을 제공합니다.
  • 개념 설명: ChatGPT의 대규모 언어 모델(LLM) 기능을 활용하여 ChatGPT에서 직접 개념에 대한 설명과 명확화를 요청할 수 있습니다.
  • 효율적으로 문제를 해결하세요: ChatGPT는 디버깅 프로세스를 단순화할 수 있는 간결하고 관련성 있는 문제 해결 팁을 제공할 수 있습니다.

잠재적인 제한 사항:

이제 ChatGPT에 100% 의존할 때의 단점에 대해 이야기해 보겠습니다. 저는 학생들의 ChatGPT 사용 과정에서 이러한 문제를 많이 목격했습니다. ChatGPT 이후 시대에는 학생들이 명령줄 인터페이스에서 한 줄짜리 오류 메시지를 복사하여 붙여넣곤 했습니다. 오류가 100줄에 달하고 특정 모듈 및 종속성과 관련이 있음에도 불구하고 말입니다. ChatGPT에 한 줄짜리 오류 코드를 제공하여 해결 방법을 설명해 달라고 요청하는 것이 효과적일 수도 있지만, 더 심각한 경우에는 수동 디버깅 작업에 한두 시간이 더 소요될 수 있습니다.

ChatGPT는 코드의 컨텍스트를 볼 수 없다는 한계가 있습니다. 물론, 코드에 컨텍스트를 추가할 수는 있습니다. 하지만 더 복잡한 코드에서는 ChatGPT에 모든 코드 줄을 제공할 수 없을 수도 있습니다. ChatGPT가 코드의 일부만 볼 수 있다는 것은 ChatGPT가 가정한다 나머지 코드는 그의 지식 기반을 기반으로 합니다. 환각.

ChatGPT 사용 시 발생할 수 있는 제한 사항은 다음과 같습니다.

  • 실시간 동적 상호작용 부족: ChatGPT는 귀중한 통찰력을 제공하지만, 포럼이나 토론 스레드에서 제공하는 실시간 상호작용과 역동적인 교류가 부족합니다. StackOverflow에서는 10명의 사용자가 세 가지 서로 다른 해결책을 제안할 수 있는데, 직접 해보거나 추천 수를 확인하여 비교할 수 있습니다.
  • 기존 지식에 의존하여: ChatGPT의 응답 품질은 학습된 정보에 따라 달라지며, 최신 프레임워크 업데이트나 프로젝트의 특정 세부 정보를 알지 못할 수도 있습니다.
  • 디버깅에 추가 시간이 필요할 수 있습니다. ChatGPT에는 전체 코드에 대한 컨텍스트가 없으므로 디버깅에 더 많은 시간이 소요될 수 있습니다.
  • 개념에 대한 이해가 제한적입니다. 기존의 브라우징 방식은 자유롭게 선택하고 실험해 볼 수 있는 자유를 제공하는데, 이는 프로그래밍 세계에서 매우 중요합니다. 적절한 소스를 선택하는 방법을 안다면, 일반적인 ChatGPT 모델에 의존하기보다는 직접 브라우징을 통해 더 많은 것을 배울 수 있을 것입니다.
    프로그래밍 개념과 기술을 전문으로 하는 훈련된 언어 모델, 프로그래밍 주제에 대한 연구 논문, Andrew Ng의 딥 러닝에 대한 인기 강의, X(이전 Twitter)에 게시된 Yann Le Cunn의 트윗에 질문하지 않는 한, ChatGPT는 대체로 일반적인 답변을 제공할 것입니다.

이 시나리오는 ChatGPT가 프로그래밍 툴킷에서 어떻게 유용한 도구가 될 수 있는지, 특히 개인 맞춤형 안내 및 개념 설명에 얼마나 유용한지 보여줍니다. ChatGPT의 강점과 한계를 고려하여 탐색 및 커뮤니티 기반 방법론과 ChatGPT의 지원을 균형 있게 활용해야 합니다.

결론

프로그래머에게 권장: 필수 도구 및 리소스

 

ChatGPT만 사용하는 대신 자동 완성 모델을 실제로 활용하려면 다음과 같은 코드 자동 완성 작업을 위한 VScode 확장 기능을 사용해 보세요. CodeGPT — VScode용 GPT4 확장 프로그램, 또는 GitHub 부조종사Google Colab의 AI 자동 완성 도구는 개발자 생산성을 크게 향상시킵니다.

위의 스크린샷에서 볼 수 있듯이 Google Colab은 사용자에게 다음 코드에 대한 제안을 자동으로 제공합니다.

또 다른 대안은 GitHub Copilot입니다. GitHub Copilot을 사용하면 실시간 AI 기반 제안을 받을 수 있습니다. GitHub Copilot은 개발자가 입력하는 동안 코드 완성을 제안하고, 프로젝트 맥락 및 스타일 규칙에 따라 프롬프트를 코딩 제안으로 변환합니다. 이에 따르면 Github에서 릴리스Copilot Chat은 이제 OpenAI의 GPT-4(ChatGPT에서 사용하는 것과 유사한 모델)를 기반으로 합니다.

튜토리얼을 따라가다 보면 Github Copilot을 무료로 사용할 수 있다는 사실을 알기 전까지 저는 VSCode 확장 프로그램으로 CodeGPT를 적극적으로 사용해 왔습니다. CodeGPT는 VSCode 확장 프로그램 마켓플레이스에서 현재까지 2만 건 이상의 다운로드를 기록했습니다. CodeGPT는 ChatGPT API, Google PaLM XNUMX, Meta Llama와의 원활한 통합을 지원합니다.
댓글을 통해 코드 제안을 받을 수 있습니다.방법은 다음과 같습니다.

  • 특정 코드를 요청하는 댓글을 작성하세요.
  • 딸깍 하는 소리 cmd + shift + i
  • 코드를 사용하세요 😎

대화를 시작할 수도 있습니다. 메뉴의 확장 프로그램을 통해 코딩 대화로 이동하세요 💬

제 프로그래밍 여정을 되돌아볼 때, 제가 얻은 소중한 교훈은 모든 사람에게 맞는 학습 방법은 없다는 것입니다. 탐색 및 커뮤니티 상호작용과 같은 전통적인 학습 방식과 ChatGPT 및 코드 자동 완성 도구와 같은 혁신적인 기능을 결합하여 다양한 학습 방식을 수용하는 것이 필수적입니다.

 

해야 할 일:

  • 개인화된 학습 리소스를 활용하세요: ChatGPT의 학습 자료 추천을 최대한 활용하고 학습 여정의 핵심 도구로 활용하세요.
  • 문제 해결을 위해 협력하세요: 친구들과 함께 코딩하듯이 ChatGPT를 협업 파트너로 활용하면 프로그래밍 과제를 효과적으로 해결하는 능력이 향상됩니다.

피해야 할 사항:

  • ChatGPT에 대한 과도한 의존: ChatGPT에만 전적으로 의존하지 말고, 독립적인 문제 해결 능력을 개발하는 데 균형 잡힌 접근 방식을 취하십시오. ChatGPT는 코드 구조를 이해하고 아이디어를 도출하는 데 강력한 도구이지만, 전적으로 의존하는 것은 유능한 개발자가 되는 데 필수적인 분석적이고 비판적인 사고 능력을 개발하는 데 방해가 될 수 있습니다.
  • 프로그래밍 커뮤니티와의 직접적인 상호 작용을 무시함: ChatGPT가 귀중한 통찰력을 제공하지만, 프로그래밍 커뮤니티와의 직접적인 소통과 피드백을 통해 얻는 이점을 간과해서는 안 됩니다. 이는 커뮤니티에서 긍정적인 평판을 쌓는 데에도 도움이 됩니다. 다른 프로그래머들과 소통하면 그들의 경험을 통해 배우고, 지식을 공유하고, 직면한 과제에 대한 다양한 관점을 얻을 수 있습니다.
  • 실제 프로그래밍 연습을 무시하세요: ChatGPT의 가이드와 실습 프로그래밍을 병행하여 이론 지식과 실무 적용 능력을 향상시키세요. 실무 적용은 이론적인 개념을 실제 기술로 전환하는 데 매우 중요합니다. 직접 코드를 작성하고, 다양한 솔루션을 실험하고, 디버깅해 보세요. 이를 통해 개념에 대한 이해를 강화하고 문제 해결 능력을 키울 수 있습니다.

프로그래밍에 ChatGPT를 어떻게 활용했는지 댓글로 알려주세요!
즐거운 코딩 되세요!

 

댓글이 닫혔습니다.