좋은 피드백을 주는 방법

멘토링할 연습 문제를 골랐어요. 이제 좋은 피드백을 줄 차례예요.


이 단계쯤이면 멘토링할 풀이를 이미 골랐을 거예요. 아직 못 골랐다면, 먼저 멘토링할 풀이 고르기를 차근차근 읽어보고 다시 여기로 돌아와요.

첫 피드백

이제 학생에게 첫 피드백을 전하려고 해요. 설레는 일이기도 하지만 꽤 부담스럽기도 하죠. 많은 (그리고 최고의!) 멘토들도 이 단계에서 임포스터 신드롬을 겪고 시작도 하기 전에 포기하곤 해요. 그런 기분이 든다면 충분히 이해할 만하지만, 거의 항상 기우일 뿐이에요. 내 피드백이 충분히 좋을지 고민하고 있다는 것 자체가, 학생들이 정말 고마워할 신중하고 겸손한 코멘트를 남길 가능성이 크다는 뜻이거든요. 그리고 최악의 경우에도 학생은 언제든 대화를 끝내고 다른 멘토에게 받도록 다시 대기열로 돌려보낼 수 있어요. 그러니 한번 해봐요!

마음가짐

가장 먼저 기억할 것은 멘토로서 올바른 마음가짐을 갖는 거예요. 학생들은 자신의 지식을 한 단계 높이고, 미처 몰랐던 것을 알려주기를 바라며 멘토에게 도움을 청해요. 멘토의 일은 학생의 코드에 "점수를 매기는" 게 아니라, 그 풀이를 바탕으로 학생이 익숙하지 않아 하거나 어려워하는 개념을 열어주는 거예요.

대부분의 Exercism 사용자는 새로운 언어를 배우는 경험 많은 개발자라는 점도 기억해 둘 만해요. 그래서 학생의 코드가 나빠 보이더라도, 그것은 단지 이 언어로 코드를 작성하는 데 익숙하지 않기 때문일 수 있어요. 다른 언어에서 비슷한 코드는 완전히 관용적이고 올바를 수도 있거든요. 대화는 한 사람이 다른 사람에게 지식을 뽐내는 방식보다, 두 동료가 함께 주제를 논의하는 방식으로 접근할 때 더 생산적이 되는 경향이 있어요.

학생의 요청에 답하기 vs 새로운 개념 가르치기

학생이 멘토링을 받기 위해 풀이를 제출하면, 그 풀이에서 무엇을 얻고 싶은지 멘토에게 알려 달라는 안내를 받아요. 멘토라면 이 내용을 잘 읽고 피드백에서 다뤄주는 게 정말 중요해요.

그런데 Exercism 멘토링의 핵심 가치 중 하나는 멘토가 학생이 미처 생각하지 못한 개념을 발견하도록 도울 수 있다는 점이에요. 그래서 학생의 풀이를 보고, 고칠 점이 있는지 묻는 코멘트를 읽고는 "와, 이 연습 문제를 정말 하나도 이해하지 못했구나"라고 생각할 수도 있어요. 연습 문제의 핵심을 완전히 놓쳤을 수도 있죠. 멘토로 활동하다 보면, 테스트는 통과하지만 문제의 핵심은 완전히 놓친, 엄청나게 "과하게 맞춘" 풀이를 보게 될 거예요. 아니면 몇 줄의 코드로 다시 쓸 수 있는 믿기 힘들 만큼 복잡한 풀이를 볼 수도 있어요.

멘토의 일은 학생이 지금 있는 곳에서 앞으로 나아가도록 돕는 거예요. 학생의 생각을 열어주고 막힌 곳을 뚫어주기 위해 할 수 있는 가장 큰 일은 무엇일까요? 학생에게 개념을 설명해 주고 머릿속에 전구가 켜지듯 깨닫게 만들 수 있다면, 그 대화는 정말 보람찰 거예요.

답을 그냥 알려주지 않기

멘토링의 목적은 학생이 최적의 풀이에 도달하는 것이 아니라, 새로운 것을 배우는 거예요. 학생에게 그냥 정답을 알려주는 것은 유용하지도, 도움이 되지도 않아요. Exercism은 학생들이 다른 사람의 풀이를 찾아보고 배우도록 권장하기 때문에, 좋은 풀이를 알려준다고 해서 거기서 얻는 가치가 더해지지는 않아요. 멘토가 더하는 가치는 학생이 다르게 생각하고, 사물을 다른 관점에서 보도록 돕는 것이에요.

멘토마다 "힌트"를 줄지 "설명"을 줄지에 대한 접근 방식이 달라요. 일반적으로는 그 중간쯤을 목표로 해요. 학생이 무엇을 시도해야 할지 이해할 수 있을 만큼은 충분히 알려주되, 그냥 답을 알려주고 왜 되는지 설명해 버리지는 않도록 해요.

예를 들어, Ruby에서 삼항 연산자를 쓰면 훨씬 깔끔하게 쓸 수 있는 if 문을 봤다고 해봐요:

# Student's code
if a
  b = 1
else
  b = 2
end

# Mentor's suggestion
b = a ? 1 : 2

"L10의 if 문 대신 b = a ? 1 : 2를 쓰세요"라고 간단히 말할 수도 있지만, 그렇게 하면 학생이 왜 그런지 이해하거나 스스로 깨닫는 순간을 갖도록 돕지 못해요.

대신 삼항 연산자의 개념을 소개하고 학생에게 과제를 던져주는 게 훨씬 좋아요. 예를 들어, "삼항 연산자를 쓰면 10-14번 줄을 한 줄로 줄일 수 있을 것 같아요. 어떻게 하면 될까요?"라고 말할 수 있어요. 그러면 학생은 직접 이것저것 해보며 스스로 해결해야 하지만, 시도해 볼 만큼의 충분한 정보는 얻은 셈이에요.

반대로 "10-14번 줄을 한 줄로 줄여보세요"라고만 하면 어떻게 해야 하는지 전혀 알 수 없어서 학생이 굉장히 답답해할 수 있어요. 학생이 나아갈 수 있을 만큼 충분한 정보를 주도록 해요.

피드백은 얼마나 줘야 할까요

멘토마다 스타일이 다르지만, 기본적으로는 한 이터레이션에 가장 중요한 피드백을 한 개에서 세 개 정도 주는 걸 권장해요. 학생이 그것들을 해결해서 새로운 이터레이션을 제출하면, 그때 또 한 개에서 세 개의 피드백을 주면 돼요. 이렇게 나눠서 진행하면 학생이 부담을 느끼지 않으면서도, 매번 의미 있는 변화를 만들 만큼 충분히 할 일이 생겨요.

멘토링 경험이 쌓이면 학생들이 피드백에 반응하는 다양한 방식을 익히게 되고, 자신의 성격에 맞는 스타일을 만들어 가게 될 거예요.

뭔가 확실하지 않나요? 다른 멘토와 이야기해 볼까요?

Exercism 멘토가 되는 가장 좋은 점 중 하나는 함께 배울 수 있는 다른 멘토들의 커뮤니티예요. 풀이에 대해 궁금한 점이 있거나, 다른 멘토와 아이디어를 주고받고 싶다면 포럼에 들어와서 마음껏 물어봐요! 그곳에서 도움을 줄 수 있는 사람들도 분명 만나게 될 거예요 🙂