개발 실력을 키우려면 어떻게 해야 할까요? 이 질문에 대다수 개발자들이 좋은 업무 환경이 가장 우선이라고 답을 합니다. 환경 중에서도 누구랑 같이 일하느냐, 특히 나와 가까이 일하는 사수의 존재가 중요하다고 말하죠. 내 업무를 지속적으로 코칭해 줄 사람, 어려운 문제에 봉착해도 적절하게 답을 줄 수 있는 사람, 성장에 대한 고민을 지속적으로 들어주고 올바른 해답을 줄 수 있는 멘토가 곁에 있을 때 우리는 성장할 수 있다고 믿습니다.
그런데 어떤 멘토가 좋은 멘토인지에 대해서는 고민해 볼 필요가 있습니다. 어려운 문제에 봉착할 때마다 척척 해결해 주는 멘토는 과연 좋은 멘토일까요? 이런 멘토를 두는 것은 마치 RPG 게임에서 든든한 버스가 있는 것과 비슷합니다. 나 대신 몬스터와 싸워주고 경험치는 나눠가져 주니까요. 2-3시간 지나고 나면 나 혼자 4시간 동안 쌓을 경험치가 순식간에 쌓이고 레벨업이 쭉쭉 늘어납니다. 업무에도 이런 멘토를 두게 되면 투자한 시간 대비 업무 경력이 쑥쑥 늘어나고 이력서에 쓸 말도 늘어나게 됩니다.
그러나 게임에선 나의 실력을 증명할 필요가 없더라도, 현실에선 언젠가 나의 커리어를 실력으로 증명해야 합니다. 그런데 그동안 멘토가 나를 대신해서 문제를 풀어줬다면 쉽지 않을 겁니다. 경력은 쌓였지만 실력은 비례하지 않을 거니까요. 조수석에서 멘토가 열심히 운전하는 모습을 눈여겨봤더라도 실제로 운전하는 것은 다릅니다. 한적한 동네에선 흉내는 낼 수 있을지 몰라도 외제차가 빽빽하게 지나다니는 고속도로에선 바로 들통나게 되죠. 이때 나는 옆에서 배웠다는 변명은 통하지 않습니다.
그러면 멘토 없이 일하는 분들은 어떨까요? 저는 멘토 없이 일당백으로 2-3년간 일하셨던 분과 함께 일해본 경험이 있습니다. 그분들과 업무와 관련된 대화를 나눌 때마다 참으로 놀랍습니다. 우선 그분들은 오랜 시간 나 홀로 일했기 때문에 최신 기술 트렌드나 지식의 넓이 측면에서는 둔감한 면이 있습니다. 그러나 그분들의 업무 방식은 확실히 다릅니다. 문제를 바라보는 각도도 다르고 해결 방법도 다른 사람들이 생각해 내기 어려운 최적화된 답안을 제시하기도 하죠. 이분들은 시스템에서 장애가 생기거나 버그가 생기면 누구보다 발 빠르게 대처합니다. 지식은 부족할 수 있지만 문제해결력만큼은 그 누구보다 뛰어나신 분들입니다.
저는 그분들의 문제해결력은 스스로 문제를 풀어본 경험에서 나온다고 생각합니다. ‘나 아니면 안 된다’는 배수의 진을 친 심정으로 개발하다 보면 많은 문제를 다양한 방식으로 사고하는 방법을 터득하게 되셨습니다. 척박한 디버깅 환경에서도 실낱같은 단서부터 문제의 원인을 찾기 위해서는 반드시 여러 가지 각도에서 문제를 봐야 하기 때문이죠. 이런 과정을 반복하다 보면 여러 가지 문제 해결 방법을 생각해 내게 되고 자연스레 창의적 아이디어를 생각해 내는 방법을 훈련하게 됩니다.
마치 수학 공부를 할 때랑 비슷합니다. 답안지를 보고 싶은 유혹을 뿌리치고 혼자서 몇 시간 동안 어려운 수학 문제를 풀려고 노력하다 보면 비로소 실력이 상승하게 됩니다. 그러나 옆에 정승제, 현우진처럼 훌륭한 수학 선생님이 있어도 내가 문제를 풀기 위해 노력하지 않으면 아무 소용없습니다. 선생님들은 수학 공식은 알려줄 수 있어도 문제 푸는 방법은 스스로 터득하는 것이기 때문이죠.
남의 도움 없이 스스로 문제를 해결하려고 노력할 때 진짜 나의 경험치가 쌓입니다. 그래서 저는 개발을 꿈꾸는 분들에게 가능한 멘토뿐만 아니라 주변 동료의 도움을 받지 않고 어려운 과제에 적극적으로 도전해 보라고 권유합니다. 과정에선 스트레스도 받고 실수도 하고 어려움을 겪게 되겠지만 시행착오가 차곡차곡 경험치로 쌓이면서 어떤 문제든 해결할 수 있는 문제 해결력의 밑거름이 됩니다. 반대로 언제나 예상가능한 수준의 업무만 반복한다면 스트레스는 덜 받겠지만 결코 업무 실력의 상승으로는 이어지기는 어려울 겁니다.
지금 당신의 현재 업무는 어떤가요? 업무가 너무 쉽나요? 그렇다면 지금의 업무는 당신의 성장에 도움이 되진 않습니다. 어려울 때마다 멘토가 척척 대신해서 해결해주나요? 그렇다면 멘토가 당신의 성장을 방해하고 있는 것입니다.