우리는 목표를 가지고 살고 있습니다. 그리고 대부분의 나의 시간과 노력은 이 목표를 달성하기 위해 사용합니다. 앞으로 나아가고 더 나은 미래를 바라보면서 움직이는 것은 너무나 자연스러운 모습입니다. 그리고 시간이 지나면 더 잘 해질 것이라는 기대도 하고 있죠.

개발을 잘해지는 미래에 도달하려면 학습하고 연습할 에너지와 시간이 필요합니다. 즉 동기가 필요하다는 뜻 입니다. 동기의 정의를 살펴보면 행동하게 만드는 힘입니다. 더 자세하게 적보자면 “동기는 행동을 시작하게 만들고 방향을 설정하며 행동을 유지하게 만드는 힘” 입니다. 그러므로 내가 목표하는 바를 이루기 위해서는 에너지가 필요하고 그 에너지의 정체는 동기였던 것 이죠. 그리고 이 동기에는 2종류가 있습니다.

바로 외적동기와 내적동기 입니다.

내적동기와 외적동기

내적동기란 내가 하는 활동이 즐겁기 때문에 행동하게 만드는 능동적인 힘입니다. 보상이 주어지지 않아도 내가 즐거워서 하도록 만드는 힘입니다.

예를 들면 책임감, 성취감, 보람, 재미와 같은 것들이 있습니다.

행동과 활동 자체에 만족감이 있기 때문에 여러 방면으로 관심을 가지게 됩니다. 그렇기 때문에 활동에 지속해서 관심을 가지고 오랜 시간 유지할 수 있는 모습을 그리게 됩니다. 활동을 하면서 겪는 경험과 배움 자체가 의미가 있고 재미를 느끼며 새로운 동기를 찾아냅니다.

개발을 하는데 내적동기가 있다면 이 코드는 왜 이렇게 동작하는 걸까? 라는 호기심이 생기거나 다른 방법으로 문제를 해결할 수는 없을까? 내가 드디어 이 문제를 풀었어와 같은 성취감 재미를 느끼고 있을 것 입니다.

이와는 반대인 외적동기입니다. 활동의 즐거움과는 별개로 활동의 결과로 따라오는 것들이 주는 즐거움 때문에 활동을 하도록 만드는 힘입니다. 보상에 따라 발생하기 때문에 수동적인 힘입니다.

예를 들면 결과에 따른 보상받기 혹은 벌을 피하기 위한 것들이 있습니다. 외적동기는 외부에서 주어지기 때문에 언제든지 사라질 수 있습니다. 그리고 더 이상 외적동기가 주어지지 않는 사람은 활동을 멈출 것 입니다.

예를들면 “이 알고리즘 문제를 풀어서 내가 등수가 올랐어.” “이 코드를 완성하면 포트폴리오에 사용할 수 있어.” “이 기술을 모르면 나만 취직할 수 없어”와 같은 동기들이 외적 동기들 입니다. 외부에서 무언가를 바라거나 벌을 받지 않기 위한 동기들 입니다.

우리는 나를 구성하는 동기들이 내적동기와 외적동기들로 이루어져있고, 이 들을 구분할 수 있어야 합니다. 그렇지 않으면 나의 미래를 알기 힘들기 때문입니다.

개발의 시작과 외적동기

개발을 시작할 때 내적동기로 시작하기는 쉽지 않습니다. 왜냐하면 추상적인 개념들과 생소한 개념들 결과적으로 배우기가 어렵기 때문입니다. 내 안에서 배움을 원해서 즐거워서 개발을 시작하신 분이 계신다면… 천직입니다!

많이 접한 목표들은 높은 연봉과 좋은 회사에 취직 그리고 보장되는 미래와 같은 외적 동기들입니다. 물론 동기들이 100:0으로 구성되어 있지는 않지만 무언가를 시작할 때는 외적동기로 시작하는 것도 이상하진 않습니다. 그리고 빠른 추진력을 주기도 합니다.

하지만 외적 동기만으로 개발학습, 코딩, 프로젝트 활동들을 계속 이어가는 것은 힘듭니다. 심하면 번아웃이 오거나 하던 것들을 그만두고 이탈을 하는 일도 발생합니다. 그래서 우리는 계속 개발자로 성장하려면 에너지가 필요한데 이때 필요한게 내적동기 입니다.