brunch

You can make anything
by writing

C.S.Lewis

실력이 좋은 개발자는 좋은 질문을 한다

글로 배우는 코딩 2 | 좋은 질문의 조건이란?

질문 실력도 코딩 실력이다.


좋은 프로그래머가 되기 위해 중요한 역량 중 하나는 좋은 질문을 하는 것이다. 이번 글에서는 왜 좋은 질문을 해야 하는지 또 어떻게 그것을 해야 하는지에 대해 이야기해보자. 자신의 질문 방법을 되돌아보고 좋은 질문하는 방법을 익힐 수 있으면 좋겠다.


많은 코딩 학습자들이 코드 자체에만 매몰된 나머지, 학습 방법론에 대해서는 신경을 쓰지 않고 있다. 훌륭한 프로그래머는 코드는 물론이거니와 커뮤니케이션, 새로운 것을 습득하는 능력 그리고 질문하는 능력 등 다양한 역량이 요구된다.    


강의를 듣는 것은 TV를 보는 것과 같다.


지난 글에서는 코딩을 배우기 위해 티칭이 아니라 코칭이 필요하다는 이야기를 했다. 티칭을 받기 위해서는 강의력 좋은 강사를 찾아가면 되지만, 코칭을 받기 위해서는 먼저 학습자 스스로가 적극적인 태도를 취해야 한다. 강의를 듣는 중에도 자신의 태도는 충분히 적극적이라 생각한다면 아래의 그래프를 확인해보자.


활동의 종류에 따른 뇌파의 변화

2014년 Medical Teacher에서 발표한 위 그래프는 교육계에 큰 파장을 일으켰다. 그래프가 의미하는 것은 각 활동 중에 뇌가 얼마나 활발히 활동하고 있는지이다. 충격적 이게도 강의를 듣는 동안 학생들의 뇌는 TV를 볼 때만큼 소극적으로 활동한다. 한마디로 우리는 단지 강의를 관람하고 있었을 뿐이다. 특히 한국에서는 강의 중에 학생들이 적극적으로 의문을 제기하거나 모르는 것을 질문하는 분위기가 아니다. 강사의 설명을 열심히 흡수하고 있다고 생각했겠지만, 안타깝게도 강의를 듣는 동안 우리의 뇌는 거의 잠들어있는 상태에 가깝다.

질문하는 것이 중요한 이유가 여기에 있다. 질문은 강의를 듣는 것만큼 쉬운 일이 아니며, 좋은 질문을 하기 위해서 우리의 뇌는 매우 적극적으로 활동해야 한다. 그렇기 때문에 질문하는 것은 효과적인 학습 방법 중 하나이다.




질문을 하는 것은 쉬운 일이 아니다.


좋은 질문을 하는 것이 왜 어려운 일인지 잘 이해가 되지 않는다면 다음의 예시를 참고해보자. 이 포스팅을 읽고 있다면 아마도 이미 코딩 공부를 시작했을 것이라고 짐작한다. 해결되지 않는 문제를 붙잡고 몇 시간째 코드를 썼다 지웠다 하는 동안 도움을 구할 사람을 찾고 싶었던 적이 있지 않은가? 습관처럼 구글을 켜고 무엇이든 검색해보는 평소와는 달리, 코딩을 공부할 때 우리는 쉽사리 검색어를 입력하지 못한다.


여러분이 당면해 있는 문제가 ‘김치찌개를 끓이는 방법’을 모르는 것이라면 검색창에 “김치찌개 레시피”를 검색하거나 지도 앱을 켜고 “김치찌개 맛집”을 검색했을 것이다. 그러나 코딩을 공부하면서 당면하게 되는 문제는 김치찌개를 끓이는 방법만큼 단순하지 않다. 오히려 대부분의 경우 문제가 무엇인지 모르는 것이 문제이다.


질문을 하는 것은 매듭을 푸는 일과 같다.


왜냐하면 어디에서 엉키기 시작했는지를 찾아보는 작업이 중요하기 때문이다. 질문을 함에 있어서 엉킨 지점을 찾는 작업은 자신의 문제를 설명하는 것을 의미한다. 특히 자신의 질문을 글로 정리해보는 것은 자신이 무엇을 모르고 있는지를 발견하는 데에 효과적이다. 자신이 어떤 문제에 봉착해 있는지, 왜 그 문제가 생겼는지, 이를 해결하기 위해 어떤 시도를 해보았는지를 글로 써보는 것만으로도 무엇을 모르는지 모르겠는 답답함은 어느 정도 해소된다. 무엇을 모르는 것인지 정리가 된 이후에는 비로소 검색할 키워드가 떠오를 것이다.


좋은 질문은 시행착오를 구체적으로 설명한다.


자신의 질문을 다른 사람이 이해할 수 있도록 하기 위해서는 충분한 설명이 필요하다. 충분한 설명이란 다음과 같은 것을 의미한다.


1. 자신이 왜 그 문제에 봉착하게 되었는지를 설명하는 것부터 시작한다.

문제의 맥락을 설명하지 않으면, 의도치 않게 엉뚱한 답변을 듣게 될 수도 있다.


2. 왜 해결하기 까다로운 문제인지를 설명한다.

이때 문제를 스스로 해결하기 위해 시도해본 방법들을 구체적으로 제시해주어야 한다. 그러한 방법들이 실패한 이유는 특정 개념을 오해하고 있기 때문일 가능성이 높기 때문이다.


3. 필요에 따라 코드를 첨부한다.

모든 경우에 직접 자신의 코드를 보여주며 문제를 설명할 필요가 있는 것은 아니다. 코드를 첨부할 때에도 코드 전체를 통째로 보여주어서는 안 된다. 현재 당면해 있는 문제와는 관련성이 적은 코드는 오히려 문제 상황을 파악하는 데 방해가 될 뿐이다.


좋은 개발자는 좋은 질문을 한다.


개발자에게 좋은 질문하는 하는 역량, 혹은 검색을 잘하는 능력은 매우 중요하다. 이를 방증하는 것이 Stack overflow의 이용률이다. Stack overflow는 전 세계 모든 개발자들이 애용하는 질문 게시판이다. 그 어느 분야도 특정 분야에 특화된 질문 게시판이 이토록 많은 이용자를 갖고 있는 경우는 없을 것이다. 실력이 좋은 개발자들은 좋은 질문을 한다. 물론 그들도 처음부터 그랬던 것은 아니다. 그들도 시행착오를 겪으며 자신의 질문 방식과 내용을 개선해 나간다. 질문도 훈련이 필요하기 때문이다.


이러한 훈련을 혼자 하면 가장 좋겠지만, 처음에는 방향도 잡기 힘들고 질문을 해도 바로 알려줄 사람이 없기 때문에 힘들 것이다. 그래서 코드스테이츠와 같은 교육기관을 찾는 것을 추천한다. 코드스테이츠에서는 질문하는 훈련을 교육과정의 일부로 도입했다. 코드스테이츠가 사용하는 Piazza는 아이비리그에 속한 대부분의 대학교에서 사용하는 질문 플랫폼이다. 코드스테이츠 수강생들은 서로 질문을 주고받으며 스스로 성장한다. 교육 기관의 입장에서는 코딩만 가르치면 훨씬 더 편하다. 하지만 좋은 코더가 아니라 좋은 프로그래머를 양성하기 위해서는 좋은 질문하는 방법을 반드시 코칭해 주어야 한다.


매거진의 이전글 개발자 글쓰기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari