토이프로젝트를 할때 흔히 겪을 수 있는 어려운 점들
토이프로젝트에 대해 이야기 하기전에 나 나름의 정의를 내려보고자 한다.
토이프로젝트는 아무 의무도 가지지 않고 재미, 호기심을 기반으로 해보는 말 그대로 장난감 같은 프로젝트이며 이 재미와 호기심이라는 감정은 어떤 아이디어에 기반한다라고 정의해보고자 한다.
이 정의는 내 정의이고 사람마다 다를 수 있으며 아래 이야기는 이 정의를 기반으로 진행한다.
첫번째 어려운점
앞에서 단어 뜻을 정의했듯이 나는 토이프로젝트는 재미, 호기심이 발화점이 되어 시작될 때 토이프로젝트라는 단어가 가장 어울릴것이라고 생각하고 이상적이라고 생각한다.
그런데 "코딩을 잘 하려면 토이프로젝트를 해보세요" 라는 말이 좀 어느정도 "밥을 먹고 바로 누우면 건강에 안좋습니다"같은 상식적인 내용이 되어 보통 어렵지 않게 들을수 있는 말이 되었다.
그래서 이 의미로써, 즉 코딩학습측면에서 토이프로젝트를 시작하고자 하는 경우들이 없지 않을것이라 생각한다.
이 때에는 내게 해보고싶은 것이 생긴 것이 토이프로젝트를 하게 된 동기가 된 것이 아니라 "토이프로젝트를 해야한다"라는 생각이 동기가되는것이다.
이렇게 토이프로젝트를 해야한다는 것 자체가 동기가 될때는 "사실 정작 해보고싶은게 있지는 않다라는 것" 일 가능성이 높다는 것이다.
해보고싶은 무언가가 먼저 있고 이것을 통해 재미와 호기심을 느끼게 된것이 동기가 된다라는 나의 토이프로젝트에 대한 정의를 반하게 되는 모습이다.
이는 토이프로젝트라는것을 해야한다는 사실이 먼저 미리 정해진 상황이다.
근데 토이프로젝트 주제가 없는 상황인거다.. 그래서 이런 상황에서 토이프로젝트로 할것을 생각해내야한다라는 웃지못할 상황이 만들어진다.
할 일이 있어서 그 일을 하는것이 아니라 일을 하긴 해야하는데 정작 할 일이 없어서 뭘 할지를 억지로 떠올리는 상황을 만들어버리는 셈이다.
애초에 없던 호기심, 흥미들을 억지로 만들어내는건 쉽지 않은 일이다.
그래서 흔히들 손쉽게 선택할 수 있는것은 "클론코딩" 이란것이다.
이미 만들어져있는 어떤 결과물을 모방해서 똑같이 만들어보는 활동이다.
물론 이것을 하며 가질 기분은 사람마다 다를것이다. 설령 할게없어서 클론코딩을 선택했다 하더라도 하는 과정에서 알지못했던 재미를 만날수도 있다.
하지만 그러지 못할 가능성도 존재한다.
계속 재미 흥미 호기심을 강조하는데.. 재미 없으면 안되나?
안된다고 생각한다.
재미없으면 안하게될거니까.
재미, 호기심과 같은 동기가 중요한 이유는 사람은 자연히 편한것 관심있는것 좋아하는것으로 손이 가고 생각이 오랜시간 머물기 마련이다.
그리고 무엇보다 내 정의에 따르자면 재미없으면 토이프로젝트라고 부를 수 없다.
두번째 어려운 점
프로젝트라는것은 아무리 토이라고 하더라도 시작이 있으면 끝이 있기 마련이다.
그런데 무언가를 시작해서 끝을 낸다는건 쉬운일이 아니다.
왜 이게 쉽지 않은 일인지에 대해서는 사람의 심리는 사람마다 다르고 복잡한것이라 뭐라고 딱 무자르듯 정의하기 어려울 것이다.
그럼에도 이유를 나름 생각해보자면 정말 많은 이유가 있겠지만 "무언가 쓸모있는것을 만들어야한다" 라는 생각이 있다면 부담으로 작용될 수 있고 이 부담은 실행을 소극적이게 만들지 않을까 한다.
과정은 즐거워야 한다. 그래야 토이프로젝트다. 하지만 어떤 의무가 주어지면 즐거움보다는 부담이 클 수 있고 그래서 안하게되기 쉽다.
내가 정의한 토이프로젝트는 의무를 가지지 않는다는 것에도 반하게되는 모습이다.
세번째 어려운 점
코딩을 해서 무언가를 만들어내는 형태의 프로젝트의 특징은 작업을 할수록 기존에 만들어진 코드에 의해 앞으로의 일의 복잡성이 높아질 수 있다는 점이 있다.
토이프로젝트의 규모가 클수록 코드의 복잡도가 올라갈 가능성이 높고 복잡해진 코드에는 다시 손이 가기 어렵다.
그래서 결국 안하게되는 효과가 생긴다..
물론 프로젝트가 진행되어가도 코드의 복잡성을 최소화할 수 있는것이 이 분야에서의 중요한 능력이기도 하다.
그리고 복잡한 코드를 복잡하지 않도록 만드는것에서도 재미포인트를 찾을 수 있으며 이것이 가능한 경우라면 비교적 큰 규모의 토이프로젝트를 해보는것도 나쁘지 않다.
그러나 이게 어렵다면 거창한것 만드는것이 아닌 한두시간안에 끝을 볼 수 있을정도의 작은 규모의 것들을 많이 만들어보도록 하자.
그래서 어쩌라고
토이프로젝트에서 가장 중요한건 정의에서도 말했듯 재미이다
즉 심신의 안정이다.
이거 하면서 스트레스받으면 절대 안된다.
토이프로젝트는 말그대로 장난감을 가지고 "노는" 활동이여야한다.
애써 인내하고 노력하는 활동이 아니라 편하고 즐겁기위해 하는 "노는" 활동이여야 된다.
그러니까 재미를 느낄 무언가가 없는 상황이라면 그냥 안하는게 낫다.
재미가 아니라 실력을 늘려야한다는 의무를 가지게 되는 순간부터 토이프로젝트라는 이름이 안어울리게 되는것이다.
재미와 연결지을 무언가가 없는 사람은 토이프로젝트를 못하나?
어렵다고 생각한다.
이건 사람의 성향의 문제인것같다.
관심사가 아닌데 관심을 가지기는 어려운거다.
그럼에도 토이프로젝트를 실력향상을 목적으로 하고자한다면 해야할 그 미션을 최소화하는것이 좋다.
거창한것 만드는것이 아닌 한두시간안에 끝을 볼 수 있을정도의 작은 규모의 것들을 많이 만들어보도록 하자.
실력은 실제로 무언가를 만들어가는 과정에서 막히는 것을 해결할때 쌓인다는것은 내가 확신하는 부분이다