<잠깐만요. 존!> 이유를 몰라도 된다고요? 코드가 어떤 작업을 하는지 알지만 왜 그렇게 하는지를 이해하지 못한다면 그게 무슨 도움이 되죠?
쉽게 말해 무엇을 하는지도 모르는데 이유를 아는 건 절대 불가능하다. 이 책에 등장하는 단어의 의미를 모르면 문장의 의미를 알 수 없고, 문장의 의미를 모르면 책 전체의 의미도 알 수 없다. 즉, 낮은 수준부터 이해해야 한다.
각 줄과 문장이 코드 내에서 어떤 역할을 하는지 확실히 이해하길 바란다. 그걸 이해하지 못하면 왜 그렇게 작동하는지, 어떻게 그렇게 조화롭게 작동하는지 이해할 방도가 없다. 각 줄과 문장의 역할을 이해해야 비로소 그렇게 작동하는 이유도 이해할 수 있다.
그렇다. 줄과 문장이 어떻게 프로그램을 이루고, 그 프로그램이 제 역할을 할 수 있게 각 요소가 어떻게 작동하는지, 그 이유는 무엇인지 이해하는 건 중요하다. 하지만 그러기 위해서는 언어부터 이해해야 한다. 그러므로 지금은 언어를 배우는 데 집중하라. 나머지는 뒤에 등장할 것이다.
첫 번째 단계에서 살펴보았던 소스 코드에서 무작위로 파일을 열어보라. 파일에 있는 코드를 한 줄씩 살펴보면서 각기 어떤 역할을 하는지 정확히 이해하라. 이해가 되지 않을 때는(그런 부분이 많을 것이다) 시간을 들여 생각해보고 이해되지 않는 부분에 대해 찾아보라. 따분한 과정이다. 지루하겠지만 그렇게 시간을 들일 가치는 충분하다. 코드의 각 줄이 어떤 역할을 하는지 모두 안다면(다시 한번 말하지만 이 단계에서 이유까지 알 필요는 없다) 다음 단계로 넘어갈 준비가 된 것이다.