개발자는 성장에 대한 욕심이 많은 것 같다. 사람마다 성장에 대한 기준은 천차만별일 것이다. 그러나 모든 성장에는 공통적인 면모가 있다고 생각한다. 예컨대 우리가 매일 먹는 쌀이 식탁에 오기까지 거치는 벼의 성장과도 다를 바 없다는 의미다. 어떤 공통점이 있는지 살펴보자.
벼농사의 시작은 모종을 키우는 일이다. 개발자에게 있어 모종은 기본기이다. 혹자는 개발 실력을 쌓으려면 프로젝트를 진행하라고 한다. 반은 맞는 말이다. 기본기가 없다면 프로젝트는 거대한 벽처럼 느껴질 것이고 개발에 대한 흥미를 잃게 할 수 있다. 어떻게든 꾸역꾸역 프로젝트를 진행하면 주먹구구식의 코드로 대처할 가능성도 있다. 병약한 모종으로 한 해 농사를 시작해서 풍년을 기대하는 것이 과연 합리적일까? 완벽한 기본기를 다지라는 것이 아니다. 최소한 기본서는 제대로 읽고 넘어가야 한다.
기본서를 한 권 읽었다고 해서 개발이 뜻처럼 쉽게 되진 않는다. 분명 공부했는데 막상 뭔가 해보려고 하니 막막한 심정을 대부분 겪었을 것이다. 그렇기에 모종을 하나씩 힘들게 심어야 하는 과정이 필요하다. 책으로 본 지식과 타이핑했던 예제들을 기반으로 작은 목표를 세우고 직접 구현하는 과정이 개발자의 모내기이다. 온실에서는 잘 자란 모종이더라도 외부의 풍파를 잘 견딘다는 보장은 없다. 책을 보며 이해한 지식이더라도 어떻게 적절히 사용할지에 대한 고민하는 과정이 없다면 죽은 지식이 된다.
모내기를 끝낸 후 가만히 방치한다고 해서 벼가 저절로 자라는 것은 아니다. 장마철엔 논에 물을 빼야 하고 벌레가 생기면 농약을 뿌려야 한다. 개발도 마찬가지이다. 메모리 누수를 방지하고 버그가 발견되면 수정해야 한다. 이런 관리 과정이 없다면 벼는 죽을지도 모른다. 그러나 관리를 잘하는 만큼 벼는 더욱 건강하게 자랄 것이다. 어떤 프로그램을 개발했더라도 그저 잘 돌아가게만 만들어놨다면 그건 결국 쓸데없는 경력이라는 화살이 되어 자신에게 돌아온다.
모든 생명체의 성장에는 양분 공급이 필수이다. 양분 공급이 부족하면 제아무리 뛰어난 유전자를 가졌다고 해도 성장에 한계를 가진다. 벼농사에 적절한 햇빛과 수분, 좋은 거름이 필요하듯 개발 실력을 키우기 위해서도 양분이 필요하다.
그 양분은 무엇일까? 개발에 필요한 정보다. 양분을 얻는 방법은 간단하다. 바로 검색과 질문이다. 검색하는 능력과 질문하는 능력을 쉽게 생각하면 안 된다. 찾지 못해서 질문한다는 경우에도 다른 사람들은 찾아서 답변해주는 경우가 허다하다. 얼마큼 치열하게 혹은 센스 있게 찾아봤는가의 차이가 아닐까 싶다. 또한 코드 한 줄 보여주지 않고 '구현했는데 동작이 안된다. 무슨 문제일까?'라는 식의 질문은 좋은 답변을 받기 힘들다. 이것은 곧 양질의 양분을 얻지 못한다는 것이고 성장의 한계에 직결된다. 또한 양분이 공급되어도 흡수하지 못하면 의미가 없다. 따라서 개발자는 힘들게 찾은 정보를 이해할 수 있는 학습 능력 또한 중요하다.
이러한 과정을 거치면 어느새 벼가 익어 쌀을 수확할 수 있다. 그리고 잘 익은 벼는 고개를 숙이는 법이다. 세상에는 수많은 고수들이 있으니 항상 겸손함을 잃지 말자. 이것이 마지막 성장 비결이라고 감히 말하고 싶다.
해당 포스팅은 교보문고 readIT Zine #1에 투고하여 수록된 글입니다.