완독 날짜 : 2024.7.30.
독서 횟수 : 3회 이상

소프트웨어 개발자가 되기 전인 재직 시절부터 읽었던 책이다. 책에서는 이제 막 프로그래머로써의 여정을 시작하는 사람을 ‘견습생’이라 정의하고, 견습 과정에 있는 프로그래머가 맞닥뜨릴 수 있는 상황과 그에 대한 해법을 추상화 된 ‘패턴’으로 정리해서 서술하고 있다. 어느덧 3회독을 했는데 처음 읽을 때와 느끼는 점이 다르다. 처음 읽었을 때에는 바닥을 쓸어라 패턴과 같이 신입 개발자가 가져야 할 ‘태도’가 기억에 남았다면, 이번에는 숙련공으로 나아가기 위해 기술을 쌓는 ‘구체적인 지침’이 좀 더 기억에 남았던 것 같다.
책의 내용은 개발자로써 성장하는 데 큰 도움이 되었다. SSAFY를 하며 가장 뒤쳐진 사람이 되어라 패턴과 바닥을 쓸어라 패턴을 실천했었다. 6인 팀플이었는데 배운 점과 느낀 점이 정말 많았다. ‘실력’이 혼자서 공부해서 쌓이는 데에는 한계가 있고, 협업을 하며 노하우(내지는 암묵지)를 쌓는 것도 중요함을 깨달았다. 학습을 할 때에는 맥락이 중요하기 때문에, ‘백문이불여일타’라는 말처럼 직접 코드를 쳐봐야 내 것이 되는 것 같다.
물론 이러한 패턴을 사용했을 때 (책에서 예상했던 것과 같이) 문제가 생기기도 했다. 바닥을 쓸기 위해 팀장을 맡아서 했었고, 실제 개발과는 상관도가 떨어지는 문서 작업, 팀 회의 진행 등을 하며 온전히 기술을 쌓는 데에는 집중할 수 없었다. 또한 뒤쳐진 사람이 되다 보니 평가절하 당하는 느낌도 지울 수는 없었다. 그러나 그 와중에도 내가 하고 싶은 것들을 적극적으로 이야기하며 최대한 내가 가져가야 할 것들을 챙겼다. 이 또한 책에서 제시하고 있었던 해결책으로, 패턴의 일부였다.
이번에는 태도적인 측면에서 나아가 기술을 쌓기 위한 구체적인 지침을 얻을 수 있었다. 특히 정보의 호스로부터 폭넓은 지식을 받아들일 필요성에 공감했는데, 독서 리스트를 만들고 꾸준히 읽어나가는 패턴, 그리고 우선 순위에 기반하여 학습 과정을 능동적으로 설계하는 패턴이 특히 도움이 되었다. 프로젝트에 닥치면 그 때 그 때 필요한 정보들을 학습하는 게 가장 효과가 좋겠지만, 거기에 매몰되는 것은 좋지 않다고 느꼈다.
소프트웨어 장인이 되는 것과 전문가가 되는 것은 (비슷해 보여도) 차이가 있다. 전문가는 특정 분야에 대해서 능통한 사람이라면, 소프트웨어 장인은 탄탄한 기본기를 바탕으로 늘 새로운 분야를 학습하며 자기의 영역을 넓혀나가는 사람이다. 전문가가 되어도 사회적인 보상과 안정을 얻을 수 있겠으나, 영역을 가리지 않는 지식을 갖추고 어디에서든 높은 퀄리티의 제품을 만들어내는 마스터는 될 수 없을 것이다. 그러므로 프로젝트에 사용되는 기술을 가장 최우선으로 익히되, 그렇지 않더라도 업계의 기술 동향을 항상 주시하고 업데이트를 해야 한다.
관련 포스팅