AI 시대에 코딩을 배우는 것에 대해 아무도 말해주지 않는 것
요약
AI 시대에 단순한 코드 소비를 넘어 진정한 코딩 실력을 쌓기 위한 능동적 학습법을 제안합니다. LLM에 의존하는 수동적 학습의 위험성을 경고하며, 개념 이해부터 실전 응용까지 이어지는 5단계 학습 시스템을 소개합니다.
핵심 포인트
- AI가 코드를 대신 짜주는 시대일수록 독립적 사고 능력이 필수적임
- 단순 시청이나 AI 답변 확인은 '활동'일 뿐 '진전'이 아님
- 코드를 의도적으로 망가뜨려 보며 오류의 원인을 파악하는 과정이 중요함
- LLM을 정답지가 아닌 학습을 위한 압박 테스트 도구로 활용해야 함
올해 1월, 내가 신뢰하는 선배가 나에게 한 가지 명확한 지침을 주었습니다: 이번 학기에는 Python 기초를 배워라. 그 외에는 아무것도 하지 마라. 프로젝트도, ML (머신러닝) 이론도, 앞서 나가려는 시도도 하지 마라. 오직 Python뿐이다.
그는 나보다 이 길을 더 앞서 걷고 있는 사람이며, 그런 사람이 단 하나의 명확한 지시를 내린다면 그대로 따라야 합니다. 그래서 나는 따랐습니다. 내가 예상하지 못했던 것은 그것이 얼마나 어려울지였습니다. Python 자체가 아니라, 실제로 어떻게 배워야 하는지를 파악하는 것이 어려웠습니다. 그는 시작하기 위한 YouTube 재생 목록을 공유해 주었습니다. 충분히 간단해 보였습니다. 하지만 영상을 본 후에 무엇을 해야 하는지는 아무도 말해주지 않았습니다. 다시 시청해야 할까요? 필기를 해야 할까요? 바로 코드로 넘어가야 할까요? 나에게는 시스템이 없었습니다. 개념을 보고 이해했다고 느낀 뒤, VS Code를 열면 빈 파일만 멍하니 바라보게 되었습니다.
그때 나는 내가 수동적 학습 (passive learning)에 빠졌다는 것을 깨달았습니다. 그리고 AI 시대의 수동적 학습은 특히 위험한 함정입니다. 활동(activity)을 진전(progress)으로 착각하기가 너무 쉽기 때문입니다. 영상을 보고 기분이 좋아질 수 있습니다. Claude에게 개념 설명을 요구하고 기분이 좋아질 수 있습니다. 심지어 AI에게 코드를 작성하게 한 뒤, 그것을 읽고 고개를 끄덕이며 무언가를 배웠다고 느낄 수도 있습니다. 하지만 그렇지 않았습니다. 나는 그저 소비했을 뿐입니다. 이 둘 사이에는 차이가 있습니다.
진정한 정직의 순간은 코딩 문제에 막혔을 때 찾아왔습니다. 나의 본능, 그리고 이제는 모든 사람의 본능인 것은 즉시 ChatGPT나 Claude를 여는 것입니다. 그리고 커서가 깜빡이는 화면 앞에 앉아 있을 때, 막힐 때마다 매번 그렇게 한다면 나는 아무것도 쌓아 올리지 못하고 있다는 것을 알았습니다. 내 뇌는 문제를 해결해 나가는 근육을 결코 발달시키지 못할 것입니다. 나는 코드로 생각할 수 있는 사람이 아니라, AI에게 코딩을 하도록 프롬프트 (prompt)를 입력할 수 있는 사람이 될 것입니다. 그리고 AI가 이미 괜찮은 코드를 작성할 수 있는 세상에서, 독립적으로 생각할 수 없는 사람은 가치가 없습니다. 그들은 대체 가능합니다.
그래서 나는 실제로 학습할 수밖에 없는 시스템을 구축해야 했습니다. 많은 시행착오 끝에, 나는 손으로 직접 적어 노트북 옆에 두는 5단계 체크리스트를 만들었습니다.
1단계 (Phase 1): 제가 '첫 접촉 (First Contact)'이라고 부르는 단계입니다. 집중도 높은 영상을 하나 시청한 다음, 순수하게 기억만으로 요약본을 작성합니다. 그 후 LLM (대규모 언어 모델)과 대화하며 정답을 얻는 것이 아니라, 내가 이해했다고 생각한 내용이 맞는지 압박 테스트 (pressure-test)를 진행합니다.
2단계 (Phase 2): '깊은 이해 (Deep Understanding)' 단계입니다. 글로 된 자료를 읽고, 제대로 된 노트를 작성하며, 개념을 시각적으로 도식화하고, 찾을 수 있는 모든 예외 상황 (edge case)과 예외 사항을 나열합니다.
3단계 (Phase 3): '실전 연습 (Hands-On Practice)' 단계입니다. 3~5개의 작고 독립적인 예제를 처음부터 직접 작성해 봅니다. 그다음 의도적으로 코드를 망가뜨려 봅니다. 왜 무언가가 고장 나는지를 이해하는 것이 정답을 맞히는 것보다 더 많은 것을 가르쳐 주기 때문입니다.
4단계 (Phase 4): '스트레스 테스트 (Stress Test)' 단계입니다. LLM에게 내가 한계에 부딪힐 때까지 퀴즈를 내달라고 요청하고, 해당 개념을 LLM에게 다시 가르쳐 보며, "면접관이라면 이 내용에 대해 무엇을 물어볼까요?"라고 질문합니다.
5단계 (Phase 5): '굳히기와 연결 (Cement and Connect)' 단계입니다. 해당 개념을 실제 진행 중인 프로젝트에 사용하고, 동료 학습자에게 해줄 수 있는 조언을 한 문장으로 적어본 뒤, 간격 반복 (spaced review) 일정을 잡습니다.
이 모든 과정 동안 제가 스스로에게 세운 규칙은 다음과 같습니다: AI는 막힌 문제를 해결하기 위한 지팡이가 아니라, 테스트와 압박을 위한 도구여야 한다는 것입니다. 문제에 부딪히면, 저는 그 문제와 함께 앉아 있습니다. 고군분투합니다. 그리고 다시 돌아옵니다. 진정한 노력을 기울인 후에야 AI를 사용하며, 그때조차도 AI에게 문제를 풀어달라고 하는 것이 아니라 가이드를 해달라고 요청합니다. 편안한 과정은 아니었습니다. 지금도 여전히 그렇습니다. 하지만 6개월이 지난 지금, 저는 Python 라이브러리들을 다루고 ML (머신러닝) 이론을 시작하고 있으며, 처음으로 이것이 겉치레가 아닌 기초 (foundation)처럼 느껴집니다.
만약 여러분이 코딩 학습의 초기 몇 주 차에 있다면, 질문은 어떤 리소스를 사용할 것인가가 아닙니다. 여러분이 실제로 뇌 속에 무언가를 구축하고 있는지, 아니면 그저 눈으로 콘텐츠를 흘려보내고 있는지에 대한 것입니다. 그 차이는 그 어느 때보다 지금 더 중요합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기