기획자 본인만큼 잡다한 블로그

greentec.egloos.com

포토로그




<Nature of Code> - 다니엘 쉬프만 지음, 윤인성 옮김 독서




군대에서 만났던 사무실 선임은 컴퓨터 학원 강사를 했었고 해커 경력도 있는 사람이었다. 본격적으로 프로그래밍 언어를 배우기 위해 혼자 끙끙대던 내게 그 형이 해준 말이 있었다.

"화면 가운데에 원 하나를 그리고 그걸 이리 저리 조작해 보는 과정에서 뭔가 배울 수 있어."

그 형에게는 결국 코드 한 줄 배우지 못했고 조언은 그 한마디 뿐이었다. 정확히 그 조언대로 하지는 않았지만 나는 플래시를 이용해서 물리 시뮬레이션(주로 원을 그리고 그걸 등속도로 움직여보고, 가속도로 움직여보고, 색깔을 바꿔보고, 여러 개 그려보는 식의)을 하는 책(링크)의 코드를 처음부터 끝까지 쳤고, 그 과정에서 '뭔가 배울 수' 있었다. 그 책을 떼고 난 다음부터 내가 만들고자 하는 것을 초보적으로나마 구현할 수 있는 수준이 된 것이다.

이 책은 위에서 말한 책과 비슷한 내용으로, 프로세싱 언어 버전이라고 할 수 있겠다. 즉 이 책은 프로세싱 언어를 이용해서 컴퓨터를 이용한 물리 시뮬레이션의 기초를 학습하는 데에 초점이 맞춰져 있다.

원래 프로세싱은 프로그래밍 비전공자를 대상으로 쉽고 간단하게 원하는 이미지를 화면에 표현하기 위한 수단으로 개발되었다. 단점은 엄청나게 느리다는 것이지만 여기서 만족하지 못하면 코드를 최대한 최적화를 시키거나 더 빠른 언어로 넘어가면 된다(그럼 이미 비전공자가 아닌 건가).

책은 크게 두 부분으로 나눌 수 있다. 1~4장은 물체 시뮬레이션, 6~10장은 생물 시뮬레이션이다. 5장은 물리 시뮬레이션 라이브러리에 대한 부분인데 사실 그렇게 중요한 내용은 아니고 필요 이상으로 어렵게 느껴질 수 있으므로 초보자는 넘어가도 무방하다.

한글판은 한빛미디어에서 나왔고, 원서를 natureofcode.com 에서 무료로 볼 수 있고 pdf 를 원하는 가격을 내고 주문할 수도 있다. 그리고 가장 좋은 것은 칸 아카데미에서 같은 내용의 과정을 자바스크립트(ProcessingJS)로 바꿔서 강의하고 있는데 코드를 직접 쳐보고 문제를 푸는 과정이기 때문에, 몰입도가 제일 높다.

이 책을 읽는다고 당장 프로그래밍의 고수가 될 수는 없지만 입문서가 해야할 가장 모범적인 역할을 하고 있는 것 같다. 셀룰러 오토마타, 프랙탈, 유전 알고리즘, 신경망 등의 어렵고 복잡한 개념을 최대한 친절하고 알기 쉽게 설명하면서 해당 분야에 흥미를 가지게 하는 것이다. 공부란 결국 어떤 분야에 다른 것보다 깊은 흥미를 가지고 계속 파고 들어가는 것이니까 말이다.

덧글

댓글 입력 영역

애드센스