[리뷰] 크리에이티브 프로그래머
in Review on Review, Book, 창의성, 프로그래밍, 기술, 지식, 커뮤니케이션, 제약, 비판적사고, 호기심, 마인드셋, 기법
한빛미디어
출판사의"크리에이티브 프로그래머(바우테르 흐루네벨트 저/차건회 역)"
를 읽고 작성한 리뷰입니다.
창의성을 다룬 책 답게 창의성의 정의를 창의적이지 않은 방법으로 기술하지 않아 간만에 창의적으로 창의성을 생각해 볼 수 있어 뜻 깊은 시간이었다.
프로그래머가 창의성을 키우는 방법
과 창의성을 기술에 적용하는 방법
을 다룬 책이다. 창의성 주제를 다룬 책 답게 이 책의 가장 마지막 페이지에는 저자가 본 도서를 요약한 마인드 맵
이 수록되어있는데 이 책을 한 눈에 바라볼 수 있는 방법이기도 하다.
마인드 맵이라는 것이 사람의 신경망의 구조와 닮은 부분이 많아 이해하기 쉽다. 그림에서 보듯 이 책에는 창의적 프로그래머에게 필요한 7가지의 큰 그림이 있다.
시계 방향으로 바라보면 크게 기술 지식, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 커뮤니케이션, 창의적 기법
등의 7가지 주제로 이뤄져있다는 것을 예상할 수 있다.
개인적으로는 이 책을 읽기 전에
이 마인드 맵을 먼저 읽기를 권하고 싶다. 최대한 저자가 어떤 주제를 이야기 하려는 것인지, 7가지 주제에 세부적으로 그려져 있는 메시지들은 무엇을 말하고자 하는 것인지 독자 스스로 그간의 경험을 바탕으로 최대한 유추해보고 시간을 들여 고민도 해 본 후 책을 읽어나간다면 더 재미있게 읽을 수 있을 뿐만 아니라 저자가 던지는 메시지의 본질을 더 잘 캐치해 낼 수 있을거라 생각한다.
그리고 난 후 스스로의 경험과 융합하여 7가지의 동그라미를 파괴도 해보고 재구성도 해보고 연결고리를 바꾸는 작업도
유의미할 것 같다. 그간 유사한 도서를 많이 읽고 개인적인 경험으로 정리해 본 바 인간의 뇌는 한 방향으로 깊이있게 뻗어나가는데는 특화되어있지만 첫 출발점이 되는 7가지 동그라미를 즉각적으로 떠올리는 데에는 다소 취약한 것 같다.
하지만 그 취약한 부분은 인간 누구에게나 갖고 있는 맹점이 되기 때문에 이를 어떻게 재구성하는지에 따라 그동안 보지 못한 독창적인 솔루션이 될 수도 있고 그런 부분에서 또 한가닥의 창의성을 얻을 수 있지 않을까?
말미에는 내가 이 책을 읽고 재구성한 나름의 첫번째 동그라미도 소개하겠지만 리뷰 취지에 맞게 간단하게나마 이 책을 소개해볼까 한다. 앞서 소개한 7가지 주제는 사실 서로 연관되어 있는 듯 하다.
책의 구성이라는 제약에 맞게 유사한 주제를 헤쳐모여 한것이기에 굳이 순서대로 읽을 필요도 없고 눈에 띄거나 읽고 싶은 부분을 먼저 읽어도 저자가 전달하고자 하는 메시지를 이해하기에는 영향이 없어 보인다.
그렇기에 스스로 생각하는 이 책은 크게 프로그래밍과 관련된 부분과 관련되지 않은 부분 즉, 일반적인 창의성에 관련된 주제로 나눌 수 있을 것 같다.
전자에 해당되는 주제 중 하나는 커뮤니티 스멜
과 같은 주제이다. 클린 코드나 실용주의 프로그래머 등 프로그래머들이 고전처럼 취급하는 명저들에 언급되었던 코드 스멜과 유사하지만 그동안 주목을 받지 못했던 주제이기도 하다.
창의성도 결국은 사람들의 모임에 종속될 수 밖에 없기에 커뮤니티를 망하게 만드는 냄새 또한 중요하다. 아래 그림에 잘 정리되어 있지만 성공적인 팀을 빌딩하고 운영해 나가는 데 꽤 중요한 부분이다.
또한 본 도서의 메인 주제는 아니지만 프로세싱 언어에서 파생되어 나온 P5
도 눈여겨 읽은 부분이다. 프로세싱은 주류 언어는 아니지만 마치 프로그램 언어와 비 프로그래밍 도구 어느 중간에 위치한 표현력 좋은 도구이다.
이 언어나 도구를 사용하는 각기 다른 나름의 목적이 존재하겠지만 나의 경우는 창의성을 키우는데 많은 도움을 받았던 도구인데 이 책에도 소개되어있어 사실 조금 놀랐다.
생각을 시각화 하다보면 스스로의 생각에 갇힌 틀과 실제로 구현된 세계간에 생각보다 큰 갭이 존재한다는 것을 깨달으며 놀라곤 했기 때문이다. Nature of Code라는 책에서 프로세싱 언어를 처음 접하고 심심할 때마다 즐기곤 했는데 이 책에도 같은 생각이 담겨있어 꽤 반가웠다.
이 책은 창의성 주제를 다룬 책 답게 창의성을 정의하는데 집중하거나 다른 창의성들을 모아놓은 창의적이지 않은 방법으로 창의성을 기술하지 않는다
는 점이 가장 마음에 드는 부분이다.
읽다보면 다소 두서나 체계가 없다는 느낌을 자주 받을 수 있는데 정말 다양한 각도에서 창의성의 본질을 설명하고자 노력한 것 같아 만족스러웠다. 잠시 책을 접어두고 저자가 언급한 주제를 정리하고 생각하다보면 내가 지금 어떤 주제에 소속되어있는지 감을 잡기 힘들 정도로 나를 이쪽 세계에 빠드렸다가 저 쪽 세계에 빠뜨리곤 한다.
창의성과 대우
문제 문제도 흥미롭다. 창의성이 좋으면 한번에 혹은 쉽게 눈에 들어오지 않는 업계의 본질도 드러나기 마련이다. 아래 그림에 보상받지 못하는 지식이 특히 그런 부분이다. 내가 남보다 대단하다고 생각함에도 왜 인정받지 못하는지에 대한 질문에 이 그림보다 완벽한 설명이 있을까?
그런가 하면 창의성이 주제인만큼 프로그래밍과는 크게 관련없어 보이는 창의성 본연의 성질에 대한 고찰도 다양하게 담겨있다. 스스로의 지식을 어떻게 표현하고 정리할 수 있을지 그 체계
를 담아내기 위한 고찰도 그런 분이다.
인간의 뇌의 기가막힌 기능 중 하나도 망각이기에 결국 망각을 저장하고 다시 불러오는 부분에 대한 고찰도 중요하다. 개인적으로도 그 IO 과정에서 지식의 표현 형태는 변경되기에 그 사이에 손실이나 잡음 증폭
이 존재할거라 생각해왔는데 그 부분에 대한 학계의 깊은 연구가 쉽게 요약정리 되어있어 매우 만족스럽게 읽은 부분이기도 하다.
가끔 머리를 식혀주는 퀴즈들이 등장하는 것도 재미있는 부분이다. 읽다보면 다른 프로그래밍 도서는 내가 읽고 있는 현재의 위치를 파악하는 것이 중요할 때가 많은 데 이 책은 다른 프로그래밍 도서와는 달리 지금 내가 어디에 위치하고 있는지 파악하기 어렵다. 대신 정신없는 만큼 재미는 있다.
아무튼 책 소개를 위해 프로그래밍에 관련된 주제와 그렇지 않은 주제로 나눠 인상적이었던 주제를 몇가지 소개했지만 결론은 창의성이라는 주제에 대해 오오트 구름처럼 불투명해 보일지라도 감으로나마 정리는 해두면 좋겠다는 생각이다.
개인적으로 고찰해 온 것들과 경험에서 비롯된 것들 그리고 이 책을 읽으며 떠올렸던 내용들을 종합하여 창의성에 도움이 되는 몇가지 방법을 간략히 정리해보며 리뷰를 마친다.
Min-Max
어떤 일이든 어떤 사고든 미래에 대한 예측이든 그 바운더리 즉, Min - Max가 어디인지 그 끝을 쫓아보는 것이 좋다. 이 책에 등장하는 제약이라는 주제도 비슷한 맥락이다.절대 위치와 상대위치
객체의 위치를 파악하려고만 하지 말고 주체 혹은 관찰자의 위치를 바꿔보는 것이 문제나 현상의 본질을 이해하는 데 큰 도움이 된다. 폴 세잔의 사과처럼 다양한 시각에서 대상을 바라보고자 노력한다면 남들이 보지 못하는 본질을 얻을 수 있다.추상과 구체
어떤 현상이나 물체의 본질을 알고 싶다면 매우 추상적인 관점에서 바라볼 필요도 있고 혹은 반대로 매우 미시적인 관점에서 바라볼 필요도 있다. 멀리서 본 전깃줄은 1차원이지만 가까이서 본 전깃줄은 3차원이다. 우주의 세계와 양자의 세계는 닮았다. 비슷한 법칙이 작용하면서 동시에 상반된 법칙이 공존한다.