재능이라는 허상
취업난 때문인지, 주변에서 개발자를 포기하는 주니어들을 꽤 많이 본다. 포기라고 말하면 좀 거창하지만, 정확히는 어느 순간부터 개발자라는 직업을 자기 인생의 선택지에서 조용히 지워버리는 사람들이다.
처음에는 다들 비슷하게 시작한다. 프론트엔드가 재밌어 보이고, 뭔가를 직접 만들 수 있다는 게 좋고, 화면에 내가 짠 코드가 바로 보이는 게 신기해서 시작한다. 그러다 취업 시장을 보고, AI 이야기를 듣고, 주변에 말도 안 되게 잘하는 사람들을 보고, 어느 순간부터 본인이 개발에 재능이 없는 것 같다고 말한다.
종종 나도 재능이 있다는 말을 들은 적이 있다. 그들이 말하는 내 재능은 아마 개발을 재밌어하는 능력에 가까웠을 것이다. 새로운 기술을 보면 궁금해하고, 왜 이렇게 동작하는지 찾아보고, 뭔가 이상하면 그냥 넘어가지 못하는 성향. 정확히 말하면 개발 재능이라기보다 지적 호기심이 많은 쪽에 가깝다. 그리고 그 호기심이 운 좋게 개발이라는 일과 맞아떨어졌을 뿐이다.
그런데 이걸 개발자의 유일한 재능처럼 생각하기 시작하면 얘기가 조금 이상해진다. 개발자가 되려면 무조건 기술을 좋아해야 하고, 어려운 문제를 즐겨야 하고, 주말에도 사이드 프로젝트를 해야 하고, 새로운 프레임워크가 나오면 누구보다 먼저 써봐야 할 것 같은 분위기가 생긴다.
사람들이 개발자라고 하면 무의식적으로 떠올리는 이미지가 있다. 체크셔츠를 입고, 노트북을 항상 들고 다니고, 약간 nerdy 하거나 geek 하고, 어려운 기술적인 문제를 즐거워하는 사람. 마크 주커버그 같은 사람.
물론 그런 사람도 있다. 실제로 그런 사람들이 개발자로서 강한 카드 하나를 들고 있는 것도 맞다. 다만 내가 봐온 좋은 개발자들은 꼭 그런 모습만 하고 있지는 않았다. 패션에 관심이 많고, 사람들과 어울리는 걸 좋아하고, 기술 이야기를 하루 종일 하는 것보다 서비스가 사람들에게 어떻게 쓰이는지를 더 궁금해하는 사람들도 있었다. 그들은 본인이 생각하는 개발자의 정답 이미지와 닮아 있지 않다는 이유로 자주 자신을 의심했다.
회의 내용을 기가 막히게 정리하는 친구가 있었다. 개발자들은 디자인 시스템의 어떤 부분이 불편한지 알고 있었지만, 그걸 디자이너에게 제대로 설명하지 못하고 있었다. 개발자 입장에서는 당연한 불편함인데, 디자이너 입장에서는 왜 그게 문제가 되는지 잘 와닿지 않는 상황이었다. 서로 쓰는 언어가 달랐다.
그 친구는 그 중간에서 문제를 번역했다. 개발자가 느끼는 비효율을 디자이너가 이해할 수 있는 문장으로 바꾸고, 디자이너가 중요하게 생각하는 기준을 개발자가 납득할 수 있게 정리했다. 결국 오래 걸리던 문제가 꽤 빠르게 풀렸다. 그 친구는 아마 스스로를 엄청난 기술형 개발자라고 생각하지 않았을 것이다. 하지만 그 상황에서는 누구보다 중요한 카드를 쓰고 있었다.
AI 시대가 오고 나서 자신감이 떨어진다고 말하던 친구도 있었다. 새로운 워크플로우가 계속 나오고, 누군가는 AI로 하루 만에 뭘 만들었다고 하고, 또 누군가는 이제 개발자는 끝났다고 말하는 시대에 본인은 너무 느린 것 같다고 했다.
그런데 그 친구는 아침에 일어나면 아직도 운영체제나 네트워크, 자료구조 같은 걸 검색해보는 사람이었다. 요즘 방식으로 보면 조금 old school 처럼 보일 수도 있다. 당장 생산성을 올리는 툴보다 원리를 먼저 궁금해하고, 결과물이 나왔을 때도 그 결과가 왜 나왔는지를 파고드는 사람. 내가 보기에는 개발자라기보다 연구원에 가까운 면이 있었다. 문제는 그런 카드가 요즘처럼 빠르게 결과물을 보여줘야 하는 분위기에서는 잘 보이지 않는다는 것이다.
개발자를 포기하는 사람들 중에는 실제로 카드가 없는 사람이 아니라, 자기 손에 들린 카드가 카드인지 모르는 사람이 많다. 문서화를 잘하는 능력, 회의에서 핵심을 잡는 능력, 사람을 설득하는 능력, 비즈니스를 이해하는 능력, 사용자의 불편함을 빨리 감지하는 능력, 원리를 끝까지 파고드는 능력. 이런 것들은 이상하게 개발 재능이라는 이름으로 잘 불리지 않는다.
대신 많은 주니어들은 자꾸 로열 스트레이트 플러시 같은 카드를 찾는다. 내가 천재적으로 코드를 잘 짜는가, 알고리즘을 남들보다 빠르게 푸는가, 새로운 기술을 보자마자 이해하는가. 그런 카드가 없으면 게임을 시작하면 안 되는 것처럼 생각한다.
그런데 실제 일은 생각보다 그렇게 단순하지 않다. 만화를 그리는 데 그림과 스토리만 필요한 게 아닌 것처럼, 개발자에게도 코드만 필요한 건 아니다. 물론 코드는 중요하다. 기본기가 없으면 오래 버티기 어렵다. 하지만 기본기가 중요하다는 말과, 특정한 모습의 인간만 개발자가 될 수 있다는 말은 다르다.
어떤 사람은 기술을 깊게 파는 방식으로 살아남고, 어떤 사람은 제품을 잘 이해하는 방식으로 살아남고, 어떤 사람은 팀의 복잡한 문제를 정리하는 방식으로 살아남는다. 각자 다른 패로 같은 게임에 들어오는 것이다.
요즘은 매몰비용보다 과정자산이라는 말이 더 마음에 든다. 취업 준비를 오래 했는데 떨어졌다거나. 포트폴리오를 만들었는데 아무도 관심을 주지 않았다거나. 팔로워가 100명도 안 되는 인스타그램 매거진을 하루 종일 붙잡고 있었는데 좋아요도 없고 팔로우도 없다거나. 이런 날은 쉽게 한심한 하루가 된다. 시간만 버렸고, 결과도 없고, 남들은 앞으로 가는데 나만 이상한 데 에너지를 쓴 것 같은 기분이 든다.
그런데 그 하루를 정말 매몰비용으로만 남길지, 과정자산으로 바꿀지는 결국 해석의 문제인 것 같다.
하루 종일 콘텐츠를 고민했는데 아무 반응이 없었다면, 그건 실패일 수 있다. 그런데 동시에 어떤 문장이 안 읽히는지 알게 된 하루일 수도 있다. 어떤 썸네일이 사람을 멈추게 하지 못하는지 알게 된 하루일 수도 있고, 내가 생각보다 오래 붙잡고 있을 수 있는 주제가 무엇인지 확인한 하루일 수도 있다.
개발도 비슷하다. 면접에서 떨어진 경험은 그냥 불합격일 수도 있지만, 내가 설명하지 못하는 개념이 무엇인지 알게 된 날일 수도 있다. 협업에서 삐걱거린 경험은 그냥 힘든 프로젝트일 수도 있지만, 내가 어떤 방식의 커뮤니케이션에 약한지 알게 된 날일 수도 있다.
흔히 말하는 갓생을 살지 않은 날에도 무언가를 했다면, 그 안에는 대체로 남는 것이 있다. 문제는 그걸 남는 것으로 해석할 수 있느냐인 것 같다. 아무것도 안 남았다고 생각하면 정말 아무것도 안 남는다. 반대로 그날의 실패를 조금 더 고해상도로 들여다보면 이상하게 작은 카드들이 생겨 있다.
사람 앞에서 말해본 경험, 문서 하나를 끝까지 정리해본 경험, 거절당해본 경험, 내가 뭘 모르는지 알게 된 경험, 어떤 일을 오래 붙잡았을 때 내가 어떤 식으로 무너지는지 알게 된 경험. 그때는 별것 아닌 것처럼 보여도 나중에 전혀 다른 곳에서 쓰인다.
그래서 개발자를 꿈꾸는 주니어들에게 재능이 있냐 없냐를 너무 빨리 묻지 않았으면 좋겠다는 말을 하고 싶다. 그 질문은 생각보다 해상도가 낮다. 정말 개발자가 되고 싶은 건지, 좋은 회사에 가고 싶은 건지, 업계에서 인정받고 싶은 건지, 돈을 많이 벌고 싶은 건지, 아니면 그냥 무언가를 만드는 사람이 되고 싶은 건지부터 더 자세히 봐야 한다.
욕망을 고해상도로 정리하지 못하면 모든 불안은 재능이라는 말로 뭉개진다. 나는 재능이 없어서 안 되나 봐. 이 말은 너무 쉽고, 그래서 위험하다.
게임을 시작하기 전에 로열 스트레이트 플러시를 기다리는 사람은 결국 게임에 들어가지 못한다. 일단 자기 패를 까봐야 한다. 별로 좋아 보이지 않는 카드도 막상 써보면 이상한 곳에서 힘을 발휘할 수 있다. 그리고 한 번 게임을 해본 사람에게는 없던 카드가 생긴다.
실패를 견딘 카드, 사람을 설득해본 카드, 마감을 지켜본 카드, 아무 반응 없는 결과물을 보고도 다시 만든 카드. 그 카드들이 쌓이면 처음에는 재능처럼 보이지 않던 것들이 어느 순간 꽤 쓸 만한 무기가 된다.
나는 개발자에게 필요한 재능이 하나라고 생각하지 않는다. 오히려 각자가 가진 이상한 카드들을 어떤 방식으로 이 일에 끼워 넣을 수 있는지가 더 중요해지는 것 같다. 그리고 그걸 잘하는 사람이 오래 남는다. 처음부터 완성된 패를 가진 사람이 아니라, 계속 자기 패를 확인하고, 실패를 해석하고, 별것 아닌 경험들을 과정자산으로 바꾸는 사람. 요즘 같은 시대에는 그런 사람이 생각보다 더 멀리 갈지도 모른다.
댓글과 반응을 불러오는 중이에요…
댓글과 반응을 불러오는 중이에요…