프로그래밍에서의 기본기란?

Posted by 엘키의 주절 주절 on August 6, 2018

축구로 비유하자면 드리블, 패스, 볼 트래핑 등에 해당하는 부분이 과연 프로그래밍에선 무엇일까?

로우 레벨에 대한 이해도?
다양한 분야에 대한 폭넓은 지식?
신 기술에 대한 경험과 관심?
낮은 러닝 커브?
알고리즘 구현 능력?
코드 리딩 능력?

여러 지인들과 토의 해본 결과, 너무 다양한 이야기가 나와서 새삼 놀랐다. 어느 한명 같지 않았다.

물론 모수가 늘어나면 비슷한 답변이 생길 수 있지만, 축구처럼 기본기에 대한 정의가 명확하지 않다는 느낌을 크게 받았다.

헌데 아이러니하게도 많은 채용 과정에서

기본기가 좋은 사람을 뽑고 싶어요
기본이 되는 친구를 뽑아서 키워야지

와 같은 말은 매우 자주 들었다.

그 과정에서 나온 문제는, 그 회사에 대다수 사람이 만점은 커녕 반도 못맞출 문제를, 이를 위한 스터디나 학습 시간을 들여서 잘 푸는 혹은 경험해보지 않으면 알기 어려운 문제를 암기 해서 풀어야 되는 문제를 내고 이런 어려운 문제를 잘 푸는걸보니 매우 기본기가 훌륭한 친구로군! 이라는 착각을 한다.

어려운 문제를 푸는 능력과 업무 능력과의 연관성이 전혀 없다고 보긴 어렵지만, 그렇다고해서 기본기가 훌륭하다거나, 업무 적응 확률이 매우 높다거나, 그 직원이 회사에 기여할만큼 성장할 수 있을지 여부는 전혀 다른 문제다.

그럼에도 어려운 문제를 통한 검증과 기본기에 대한 검증을 혼동하는 이유는 아마도 기본기에 대한 정의도 못내린 마당에 기본기를 검증하기 어려우니, 어려운 문제를 잘 푸는 인재라면 기본기도 좋을 확률이 높다고 보는게 아닐까 싶다.

내 생각은 탐구심과 향상심이 프로그래머의 기본기라고 생각한다.

앞으로 얼마나 성장할 수 있는 동력을 가지고 있는가나 좋은 가르침도 중요하겠지만, 도전 주제가 주어졌을 때 얼마나 그 문제를 합리적으로 풀면서 성장할 수 있는가는 탐구심과 향상심이라고 생각한다. (여기에 자기 반성도 필요하다. 자신이 틀릴리 없다고 가정하는 경우에 성장 가능성이 낮다는 내 의견은 여러 번 피력한바 있다)

끈기나 열정은 난 기본기라곤 생각하지 않는다. 필요야 하겠지만 넘칠 필요 있을까? 나 역시 밤샘도, 불철주야 근무, 스터디, 습작, 기술 서적 읽기 등을 잠 줄여가며 해봤지만 그 과정에서 얻은 것도 있지만 만만치 않게 정체됐다. 반면, 일정 수준이상의 근면함도 반드시 필요하다고 생각한다. 창의성이나 지식 기반 산업 종사자라고해서 밑도 끝도 없는 나태함이 허용되는 것은 아니다.

어느정도 밸런스 있게 삶을 유지하면서, 몸과 마음의 여유를 갖고 공부하거나 집중했을 때의 성장이 더 효과적이고, 산출물도 좋았다. 즉 배려와 압박의 적정선의 밸런스가 필요하다고 생각한다.

그렇게 밸런스가 있다보면 업무 만족도와 삶의 만족도가 밸런스가 맞게되면서, 업무를 즐길 수 있는 여지가 생긴다. 그리고, 즐거웠기 때문에 쉽게 지속할 수 있다는 점이 어찌보면 가장 큰 동력이 되지 않나 싶다.

중요한 것은 성장과 퀄리티에 대한 욕심을 얼마나 효율적으로 녹여낼 수 있는가다.

이 과정에서 위에서 언급한 일정 수준 이상의 근면함이 요구된다. 엔지니어는 증명해야하는데, 근면함이 부족하다면 자신의 머릿속에 있는 혹은 가상 시나리오를 증명할 수가 없다.

또한 구현해낸 것은 여러가지 의미로 수준 미달일 가능성도 높다.

당연히 과도한 업무 강도나, 과도한 업무 요구치는 문제가 되고, 이는 나역시 반대하는 부분이다.

향상심을 뒷받침 할만큼의 노력은 실력을 쌓기 위한 근간이고, 프로덕트를 완성하기 위한 근간이다. 그래서 난 이 부분 역시 지적 생산자에게는 기본기라고 생각한다.

자신이 탐구심이 있다면, 그 역시 증명해야 한다. 이를 증명하기 위해선 많은 시행착오를 겪게되는데 이 과정에서 필요한 노력이 작지 않다. (시행 착오를 적게했다면 이미 경험했거나, 자신이 깊게 이해하고 있는 분야의 연장선일 가능성이 높다. 혹은 당신이 천재거나)

배움의 기간이 짧아서, 해본 경험의 스케일이 작다고 느껴서, 만들어놓은 결과물의 디테일에 자신이 없어서, 자신이 알고 있는 지식이 적어서 등등.. 자신의 앞으로의 모습이나 성장에 대해 걱정 된다면, 지금부터 라도 향상심과 탐구심을 갖고 노력해보자.

그 과정이 진지하다면, 장기적인 레이스에서는 따라 갈수도 어쩌면 앞서갈 수도 있지 않을까?