오래전에 읽었던 이북 이야기를 이제서야 꺼내봅니다. 스마트기기를 가진 분이라면 누구나 구글 플레이, 앱스토어에서 무료로 받아 보실 수 있습니다.
분량은 100페이지 가량인데 페이지당 글자 수가 적어서 넉넉잡아 30분 정도면 읽을 수 있습니다.
개인적으로 느끼기에 새로운 것을 배울 때 본받을 만한 자세와 방법론을 담백하게 담고 있다고 여겨져 일독을 권합니다.
책의 제목 그대로 저자는 마흔살에 본격적으로 게임 프로그래밍을 시작하게 됩니다. 물론 그 전에 게임 기획을 하면서 관련 업종에 종사하고 있기는 했지만, 관심을 가지고 있던 프로그래밍 학습의 문턱앞에서는 번번히 좌절을 하고 말았지요.
저자는 개인적 경험을 바탕으로 프로그래밍을 배우는데 도움이 되었던 원리 2가지를 제시하고 있습니다.
1. 배우고자 하는 절실함의 크기를 키운다.
: 새로운 것을 배우는데에는 눈에 보이지 않지만 왠만해서는 넘기기 힘든 문턱이 존재합니다. 새로운 것은 익숙한 것들에 비해 불편하기 마련이고 ‘내가 이렇게까지 해서 이걸 배워야 하나?’하는 의구심들 또한 무럭무럭 자라게 됩니다. 그래서 반드시 이것을 해야만 하는, 배워야만 하는 상황과 이유를 만들어 도망치지 못하게 하는 것이 도움이 됩니다. 전쟁터에서 퇴로를 없애 죽기 아니면 살기라는 마음가짐으로 맹렬하게 싸우기 위해 펼치는 배수의 진을 스스로에게 적용하는 것이지요.
2. 효과적인 방법을 이용한다.
: 일단 이해가 가지 않는다고 멈춰서지말고 물 흐르듯 진도를 나가서 반복 학습을 합니다. 처음부터 완벽하게 하기 위해서 자꾸 멈춰선다면 넓게 배울 수도 없을 뿐더러 깊이 또한 깊어지지 못하고 그만 둘 가능성이 높아지기 때문입니다. 전체적인 흐름을 이해하면서 반복하면 전에 몰랐던 것들이 조금씩 채워지면서 계속 나아갈 수 있는 추진력을 얻을 수 있습니다.
그 후에는 배운 것들을 직접 시도해봅니다. 이 과정에서는 내가 어렴풋이 알고 있다고 믿는 것과 실제로 알고 있는 것들을 구분해 낼 수 있습니다.
그 다음에 지금까지 배운 것들을 수차례 응용&반복해봅니다. 단 한번 해냈다고 해서 그것이 진짜 내 것이 된 것은 아닙니다. 물고 뜯고, 지지고 볶으며 수없이 다듬은 후에야 조금은 부끄럽게 내 것이라고 말할 수 있는 것 입니다.
이 숙달과정에 드는 큰 노력에 비해 가시적인 결과물에는 눈에 띄는 차이가 보이지 않을 수 있지만, 우리는 단지 결과물을 만들기 위해서가 아니라 내 몸에 익혀 “더 잘할 수 있도록 배우는 것”이 목적이기 때문에 이 과정이 제일 중요 합니다.
덧붙여 무엇보다 중요한 것은 기본기입니다. 기교는 모자라도 되지만 기본기는 늘 완벽을 추구해야 합니다.
여기까지 포기하지 않고 왔다면 이제부터 배웠던 것들을 다시 돌이켜보면서 재정리해봅니다. 그동안 일련의 과정들을 통해 여러분들은 이미 초심자를 벗어나셨으리라 생각됩니다.
여기에 저자는 보통 수준 이상으로 더 나아가기 위한 두가지 팁을 더하고 있습니다.
바로 크런치모드(데드라인를 촉박하게 정해놓고 정해진 목표를 몰입해 수행하는 것)와 높은 차원에 대한 경험이 바로 그것입니다.
크런치모드는 비록 고통스러운 것이기는 하지만 차근 차근 쌓아올려 배울 수 있는 수준보다 한발 더 나아가기 위해서는 필수적인 경험입니다. 밀도높은 집중력을 단시간에 한가지 일에 쏟아서 껑충 뛰오는 것은 높이뛰기와 비교할 수 있습니다. 더 높이 오르기 위해서는 더 빠른 추진력이 필요할 수 밖에 없기 때문입니다.
그리고 나보다 훨씬 높은 수준에 대한 경험은 스스로 부딫혀 배우는 것들보다 더욱 빠르게 다른 차원의 배움을 전수해줍니다. 물론 스스로 고민하고 다져가며 성장하는 방법도 있지만 새로운 길을 혼자 만들어가는 것보다는 먼저 그 길을 간 사람들을 넌지시 바라보는 것은 많은 영감을 던져줍니다.
우리는 위에 정리한 내용을 바탕으로 새로운 것을 배울 때 적용해볼만한 프레임을 가질 수 있습니다. 해당 이북에는 게임 프로그래밍 학습에 대한 작은 커리큘럼과 몇가지 정보들이 더 있지만 저는 새로운 것을 배우는 자세에 대해 집중적으로 정리해봤습니다.