조폭영화나 드라마에서나 나오는 흔한 대사.
강한 자가 살아남는게 아니라 살아남는 자가 강한것이다.
난 밥벌어 먹은걸로 치면 15년, 비공식으로는 25년 프로그래밍을 했다. 하지만 누구 앞에서도 "고수" 라고 스스로를 칭하지 못한다. 고수는 커녕, "프로그래밍에 소질 없다"고 공표하고 다닌다. 이건 겸손한척 하는것이 아니라 진짜다. 나는 정말로 소질이 없는 것 같다. 지금도 프로그래머로 먹고살고 있고, 회사에서도 민폐는 끼치지 않고 있으며, 계속 이직이 되는걸 보니 돈 주는만큼 일은 하는가 싶다. 하지만 개발을 정말 좋아하고, 정말 잘하는가라는 질문에는 해가 갈수록 "아니다" 라고 대답할 이유만 늘어가는 것 같다.
사회 초년생때 막연히 상상했던 십수년후의 나의 모습과 현재의 나의 모습을 비교해보면, 전혀 맞지 않다. 지식과 기술의 깊이를 갖추고 고수의 반열에 올라, 소프트웨어 개발 전반에서 내공을 뿜어내며, 안경을 밀어올리는 뭔가 천재중년의 모습을 상상했다. 하지만 지금도 나는 뭐든 깊이 들어가면 잘 모르겠고, 복잡해지면 머리가 멍해지고, 새로운걸 익힐생각을 하면 숨이 턱턱 막힌다. C++ 을 12년 했어도, 템플릿 메타프로그래밍정도의 복잡도에 접어들면 I'm not sure 가 입에서 떠나질 않는다. 리눅스에서 10년 윈도우에서 5년 서버개발을 했지만, 고부하시에 race condition이 발생하면 아직도 명쾌한 설명이 어렵다. C14 17이 쭉쭉 나오는데 아직도 C11의 move semantics 도 잘 설명 못하고, 실제로 필요할때까지는 아마 계속 설명 못할것이다.
지식은 또 어떠한가. 웹4년, 텔레콤 3년, 방송 5년, 보안 2년을 일했지만, 어느 분야 하나 어깨 쫙 펴고 가오 잡으며 썰을 풀어내지 못한다. 내가 당장 필요로 했던 기술, 필요로 했던 지식, 필요로 했던 알고리즘, 프로토콜, 아키텍쳐만 익히고, 깊이 들어가지 못했기 때문이다. 수박 겉핥기식이다. 새로운것을 공부할때는, 필요한거만 보고 난해한것은 필요할때까지는 다시 보지 않는다. 중요한 문서라 해도 처음부터 끝까지 정독 숙독을 못한다. 일하는것도 그렇다. 집중을 오래 하지 못한다. 스프린터 스타일이라, 짧은시간에 퍼포먼스는 남들보다 좋은데 지속을 못한다. 일주일에 일하는시간이 몇시간 안된다. 나머지 시간은 딴짓.
나는 안다. 나는 60까지 프로그래머로 살아도 지금하고 별반 차이가 없을거라는 것을. 그리고 네임드 개발자가 되는것은 죽었다 깨어나도 불가능할 거라는것을 알고있다. 아마도 소프트웨어 분야에서 성공한 사람이 되려면, 엔지니어나 아키텍트보다는 컨설턴트가 더 맞는지도 모르겠다. 실력이 부족한데도 용하게도 꾸역꾸역 이직하는거보면, 고객(현재로써는 회사)의 니즈에 맞추는 언변은 있는것 같으니 말이다.
나는 내가 상상했던 훌륭한 프로그래머가 될수 없었다. 앞으로도 힘들것이다. 성향도 사고방식도 내 직업과 조율될 수 없음을 나날이 느낀다. 하지만 꽤나 긴 시간동안 수많은 기술 변화 속에서 살아남았고, 남의 나라에 와서도 도태되지 않고 버텼으니, 나는 강한 프로그래머라고 생각한다. 한 분야에서 오랜시간 노력해 왔지만 큰 성과를 얻지 못해 힘겨워하고 있는 사람이 있다면, 다른 방향에서 자신을 바라봤으면 한다.
강한 자가 살아남는게 아니라 살아남는 자가 강한것이다.
살아남자. 일에서도, Steemit 에서도!