본문 바로가기

개발이야기

프로그래밍 공부도 방법론을 적용하자

후배1 : 어떻게 공부해야지 프로그래밍언어를 쉽게 있을까요?

본인이 어느 후배에게나 듣는 상담내용입니다. 이 물음의 본인의 답변을 요약 하자면 다음과 같습니다.

  1. 책을 읽어라.
  2. 손으로 읽어라.
  3. 지속해라.

뻔한 답변에 뻔뻔하기까지 한 듯 하네요, 하지만 실제로 하나하나 살을 붙이며 이야기를 전달하고 각종 예를 들어가며 더욱 이해시키고 있습니다.

그럼 책을 어떻게 읽고 지속하는지를 말하기 전에 경험상 실패 사례를 말씀 드리겠습니다.

학생 김철저.

맘먹고 공부하려는 김철저학생은 열심히 공부하겠다는 독한 맘을 먹고 주먹을 불끈 쥔 학생입니다. 이 학생은 철저하고 확실하게 공부하기 위해 두껍고 어려운 책을 골랐습니다.

그 다음 그 두꺼운 책의 한 장을 넘기고 한 글자 한 글자 놓치지 않고 밑줄 그으며 공부를 했습니다. 하지만 처음부터 이해 못하는 것 투성이고 무슨 요상한 단어들로 가득하여 졸음만 올 뿐이었습니다. 그래도 독한 맘은 오래 가서 일주일이 지났습니다. 하지만 갈수록 어려운 단어에 도저히 이해가 되질 않고 이제 겨우 100페이지도 넘겼는데 전에 내용은 하나 생각이 안 나고 과연 할 수 있을까 하는 의심만 생기게 됩니다.

그리고 곧 여태껏 배운 내용은 까마득할 뿐 뭔 발전이 있겠냐며 핑계를 합리화 하고 포기를 하게 됩니다.

이와 같은 학생의 사례는 아주 많이 봐왔습니다. 그리고 도서관의 기초적인 자바나 C,C++ 책을 보면 100페이지 이내는 공부한 흔적으로 닳아 있으나 100페이지 넘어는 깨끗하다는 것을 볼 수 있습니다.

의심이 시작되면 흔들리기 마련이게 되고 포기의 시작이기도 합니다.

폭포수

저는 이 방법론을 단계별 완성을 목표로 하는 폭포수공부법이라고 하겠으며 나쁜 방법이라 말하진 않겠습니다. 이 같은 방법은 지루하지만 앞 단계가 확실히 하고 다음 단계를 학습 해야 하는 학습에 적용 할 수 있을 것입니다.

드럼을 예로 들자면 먼저 원스트록으로 1비트 2비트 3비트 4비트 8비트 9비트 16비트 24비트 32비트를 단계별로 다양한 템포에 연습을 하고 더블 스트록으로 넘어 가야 합니다. 바로 넘어갈 순 있겠지만 오히려 더 늦은 학습이 되거나 뭔가 부족한 게 여력 할 것 입니다.

그럼 프로그래밍언어는 어떻게 공부해야 할까요?

언어는 거대한 건물과 같습니다. 그 건물은 하늘에서 내려다 보거나 멀리서 보면 전체를 볼 수 있지만 볼 수 없다고 가정하고 무척 가까이에 있다고 생각을 해보십시오.

자 그럼 이 건물을 이해하려면 구석구석 살펴봐야 합니다. 위에 글에 김철저학생의 방법은 처음 보이는 벽부터 열심히 조사했다고 할 수 있습니다. 이 벽이 어디 벽이고 어떤 용도의 벽인지 열심히 살펴보고 있다는 것이죠.

쉽게 그리고 반복

우리는 벽이 있구나 하고 지나 다른 곳을 살펴봐야 합니다. 한번 손으로 만져보기도 하고 또 그 다음 벽을 보고 계속 보다 다 보았으면 다시 처음 그 벽을 조사합니다.
그때 처음 이해되지 않았던 벽은 (예를 들어)화장실을 가리는 벽이라는 것을 깨달을 것입니다.
또 반복을 합니다. 그럼 더 깊이 어느 벽하고 연결이 되어 있고 어떤 벽하고 재질을 비교 할 수 있게 됩니다. 이 후 계속 반복을 한다면 벽의 구조가 학습이 되어 어느 정도의 건물을 이해하게 됩니다.


저는 이 방법을 민첩하게 반복하고 회귀하는 애자일공부법이라고 말하겠습니다.반복 주기

본인의 방법은 애자일공부법으로 한 권의 책을 3번 읽은 적도 하나의 챕터를 몇 번씩이나 읽은 적이 많습니다. 그리고 하나의 책보다 많은 책을 보려고 노력 하였고 그 와중에 좋은 책들은 정독을 하였습니다.

저는 되도록 많이 그리고 빨리 그 와중에 자세히라고 말하고 싶습니다.

저의 프로그래밍언어 공부 법을 정리 하자면

  1. 책을 읽어라.
  2. 이해가 되지 않는 챕터는 그냥 읽고 예제를 타이핑해본다.
  3. 그리고 이해되지 못한 챕터를 다시 읽어본다.
  4. 그래도 이해가 안 된다면 그 챕터를 무시하고 다음 챕터를 읽는다.
  5. 책을 다 읽었다면 이해가 되지 못했던 챕터를 다시 읽어본다.
  6. 그래도 이해가 안 된다면 완전 무시해라.
  7. 다른 책을 찾는다.
  8. 다시 1번으로..
  9. (다른 책을 읽어보고 다시 이해가 안되어 완전 무시된 챕터를 다시 읽어본다.)

임하는 자세를 정리하자면

  1. 절대 의심하지 말고 꾸준히 읽어라.
  2. 긍정적으로 생각해라.
  3. 주의에 학습에 대한 핍박이 있더라도 절대 흔들리지 말아라.

학습에 있어서 반복은 아주 큰 도움이 될 것이며 책의 '머리말'이나 '들어가며'라는 부분을 꼭 읽어보시길 바랍니다. 그 곳에 학습하는 방법이 녹아져 있으며 완독에 있어서 중요한 부분이라고 생각을 합니다.

많은 학생들 중 어떤 학생은 책은 소용없고 그냥 프로그램 하나 짜거나 분석하는 게 좋다라는 학생도 있고 강의를 듣는 게 좋다고 하는 학생이 있습니다.

저는 딱 한 권이라도 완독하라고 강조를 합니다.
그리고 책의 첫 장에서의 자신과 끝장에서의 자신은 엄청난 차이가 분명 있다고 덧붙입니다.

꾸준히 반복해라


읽으세요, 그것만큼 빠르고 쉬운 학습은 없습니다.