<프로그래머의 길 멘토에게 묻다>

2024-11-23
  • book

읽은 책

저자: 데이브 후버, 애디웨일 오시나이 공저 / 강중빈 역

출판사: 인사이트 (insight)

총 페이지: 288p

링크: https://product.kyobobook.co.kr/detail/S000001469857

읽게된 계기

이 책은 예전에 한 시니어 개발자분께 추천을 받았던 책 중 하나였는데, 그중 이름이 가장 와닿아서 읽게 되었다. 항상 멘토 같은 존재에게 물어보고 싶었던 게 많았고, 나보다 앞선 길에 있는 사람은 어떤 정답을 가지고 프로그래머로서 살아갈지가 궁금했다. 그래서 이 책이 그런 궁금증을 조금이라도 해결해 줄 수 있을 것 같아 읽게 되었다.

기억에 남는 문장

“당신을 영리하고 재능 있게 만드는 것은 노력”이며, 실패란 단지 다음번에 다른 방법을 시도해 볼 수 있도록 하는 보상이다. 이런 생각은 우리가 정해진 만큼의 재능을 가지고 태어났고, 실패란 재능이 부족하다는 표시라는 통념과는 정반대다.

실패에 대한 시각을 부정적으로 갖지 않는 것이 중요하다는 생각은 갖고 있지만, 때로는 그런 진리를 잊고 나의 실패에 좌절하게 될 때도 잦은 것 같다. 그래서 잊지 않기 위해 이 문장을 기록해 두고 싶었다. 사람은 완벽하지 않기 때문에 실패를 겪는 것은 너무나 특별하지도 대수롭지도 않은 일이어서, 거기에 매몰되기보다는 어떻게 현명하게 대처해나갈지를 고민하고 이 실패를 통해 어떤 것을 배울 수 있는지에 더 집중하는 사람이 되었으면 좋겠다.

잔을 비우다

당신의 경력 중에서 이 시기가 위험을 감수하고 속내를 털어놓기에 가장 적당한 때다. 당신은 잃을 것이 별로 없다. 자신이 가진 아이디어와 열정은 팀에 지성과 다양함을 더할 것이다. 제임스 서로위키는 집단 지성의 핵심 요소로 ‘생각의 다양성’을 거듭 지목하고 있다.

당신의 본능은 당신에게 무지를 숨기고 아는 척하라고 시키지만, 그렇게 하면 당신의 성장은 방해받으며 성취해야 할 일도 가로막히게 될 뿐입니다.

장인에게 가장 중요한 특성 중 하나는 학습하는 능력, 즉 무지의 영역을 파악해서 이 영역을 줄이려 애쓰는 것이다.

무지를 드러내는 것이 더욱 내가 부족하다는 것을 입증하는 것 같아 질문을 잘 하지 않았던 때가 있었다. 그러다가 질문을 적극적으로 하시는 분과 협업하게 됐는데 이해를 잘하지 못한 부분에 대해 항상 질문하시고, 자신이 이해한 내용이 맞는지 더블 체크도 하셨다. 그분의 질문 덕분에 나와 다른 분들도 몰랐던 부분에 대해 배울 수 있었고, 더 정확도가 높은 의사소통을 만들어 나갈 수 있었다. 이를 깨닫고 나도 전보다 적극적으로 질문을 하기 시작해서 주변으로부터 얻는 지식도 많아졌고, 더 깔끔한 의사소통을 할 수 있게 되어서 이 대목이 굉장히 중요하게 느껴졌다.

긴 여정을 걷다

달인의 경지로 이르는 길을 한 걸음 딛을 때마다 당신의 목적지는 두 걸음 멀어진다. 그 경지는 평생의 노력이 필요함을 받아들이고, 거기에 이르는 여정을 사랑하는 법을 배우라.

~한 개발자가 되고 싶다. 라는 생각을 하게 되는데 그 목표는 단숨에 달성하기 어려운 경우가 많고 거기에 집중하다 보면 지금 내가 하는 것들은 너무 작은 것으로 생각하게 될 수 있는 것 같다. 그렇기 때문에 미래보다는 내가 현재 이뤄야 할 것들과 이루어낸 것들에 집중하며 과정을 즐기는 마음이 필요한 것 같다. 그렇게 해야 이 문장처럼 긴 여정을 사랑하고 열심히 달려 나갈 힘이 생길 수 있는 것 같다.

끊임없는 학습

코드에서 신속히 지식을 흡수할 수 있는 사람들은 머지않아 더 우수한 프로그래머가 된다. 이때까지 태어난 모든 프로그래머가 작성한 코드 한 줄 한 줄이 모두 그들의 스승이기 때문이다.

예전에 혼자 공부할 때도 그랬지만, 내가 작성한 코드는 알고 있는 지식에 한에서 작성한 최선의 코드이기 때문에 아무리 검토해도 어떤 것이 부족한지 알 수가 없다. 그래서 내게 부족함이 있는 것 같은데 뭐가 부족한지 모르겠을 때 다른 사람들의 코드를 많이 본다. 그러면 왜 이렇게 작성했을까? 싶은 의문이 드는 부분이 있는데 그 이유를 분석하면 내가 몰랐던 부분에 대한 지식을 얻게 되고 나의 코드도 더 개선해 볼 수 있는 기회를 얻을 수 있었다. 책에서 말한 것처럼 코드 한 줄 한 줄은 모두 스승의 지식과 같기 때문인 것 같다.


배운 것을 기록만 하고 그냥 잊어버리는 덫에 빠지지 않게 노력하라. 그렇게 만들려면 당신이 썼던 글을 정기적으로 다시 읽어라. 글을 리뷰할 때마다 새로운 연관 관계를 만들어 보라. 이렇게 창조적인 리뷰를 함으로써, 전에 내렸던 결정이 새 데이터에 기초해서 재평가될 수도 있고, 모호했던 신념이 확고해질 수도 있다.

블로그에 썼던 글을 오랜만에 읽어보면 그 사이에 접한 새로운 지식이나 경험과 맞물려서 좀 더 깊게 혹은 구체적으로 이해할 수 있을 때가 있다. 때로는 전에 적었던 내용의 허점을 발견하기도 한다. 이전의 기록물들은 나를 위해 적은 것이 대부분이니 다시 보는 습관을 가져야겠다는 생각을 가지게 된 문장이었다.


강화시키는 피드백은 당신이 무언가를 더 하도록 장려한다. 균형 잡는 피드백은 무언가 덜 하라고 장려한다. 이런 두 유형의 피드백이 결합되면서, 하나의 시스템은 자잘한 조정을 수없이 많이 거쳐 상대적으로 안정된 상태로 유지될 수 있다. 성공적인 견습생들이라면, 어떤 행동을 더 할지 덜 할지 결정하기 위한 데이터를 신속하고도 자주 얻는 상황을 조성하는 법을 배운다.

이 비슷한 내용도 <함께 자라기>라는 책에서 보았던 것 같다. 혼자 학습하는 것에는 한계가 있어 무조건 외부로 나가는 경험이 필요한 것 같다. 이 외부라는 것은 회사 밖이기도 하다. 익숙한 곳에서 벗어났을 때야 접할 수 있는 새로운 지식과 경험이 있어 밖으로 나갔을 때 시야가 넓어질 수 있는 것 같다.


유용한 피드백은 그것을 기반으로 삼아 실천할 수 있는 데이터이며, 특정한 행위를 더 하거나 덜 하도록 선택의 여지를 주는 데이터다. 어떤 피드백을 받고서 무언가 구체적으로 할 수 있는 것이 없다면, 그것은 유용하지 않은 피드백이다.

피드백을 받기도 하고 주기도 하는 입장에 있기 때문에 어떤 부분을 잘 새겨 들어야 할지, 어떤 내용을 피드백에 담아야 할지에 대한 가이드로서 이 문장을 기록해 두고 싶었다.


천재성은 종종 잘못 이해된다. 그것은 탁월한 지적 능력의 문제가 아니라 성격의 문제다. 천재성은 무엇보다도 기꺼이 실패를 인지하고, 미봉책으로 가리려 하지 않으며, 변화하고자 하는 의지를 필요로 한다. 그것은 실패에 대한 의도적이고 심지어는 강박적인 성찰과, 새로운 해법에 대한 지속적인 탐색에서 비롯된다.

항상 안전한 곳에 머무르고 느슨하게 지내다 보면 성장도 멈출 수밖에 없는 것 같다. 이 문장을 보고 나 자신도 돌아보게 되었다. 발견한 문제를 정확히 파악하려는 의지를 가지고, 문화에 익숙해지기보다 개선점을 찾아내는 등 일을 할 때도 끊임없이 성장하려는 태도가 중요하다는 것을 나의 경험에서도 주위 동료 개발자분들을 돌아보았을 때도 중요하다는 것을 깨닫게 된다.


당신이 어떤 식으로 실패하곤 하는지 확인하고, 고칠 부분은 바로 잡아라. 당신을 실패로 이끌어 가는 방식, 조건, 습관, 행동 양식이 무엇인지 스스로 인식하는 데 있다.

실패를 통해 배울 수 있는 부분이 이런 것인 것 같다. 나의 어떤 점이 실패로 이끌었는지 명확히 짚어내고 교정하기 위해 노력하면 실패가 줄어든다는 것을 눈으로 확인할 수 있게 된다. 말처럼 바로 바꿔나갈 수는 없지만 의식하는 것과 하지 않는 것의 차이는 큰 것 같다.


학습 과정의 구성

좋은 프로그래밍 책을 두 달에 한 권, 즉 일주일에 대략 35페이지 정도만 읽어도, 당신은 이내 이 분야에 대해서 확실한 감을 갖게 될 것이며 주변의 거의 모든 이들과 구별되는 수준으로 올라설 것이다.

사실 연습은 영구적인 그 무엇을 만든다. 그러므로 스스로 무엇을 연습하는지 주의를 기울이고 진부함으로 빠지지 않도록 끊임없이 연습에 대한 평가를 해 나가야 한다. 매일 연습할 것을 올바르게 선택하는 것은 반복되는 수련 행위 그 자체만큼이나 중요한 기술이다.

아이디어를 누가 처음 생각해 냈는지 조사해 보고, 그들이 풀려고 했던 문제가 무엇이었는지 이해하라. 이와 같은 맥락에 관한 내용은 보통 그 개념이 전달되는 과정에서 사라진다.

표면적인 지식만 가졌을 때 초래될 수 있는 또 다른 결과는, 풀려고 하는 문제에 대해 잘 알려진 해법이 있는지 혹은 실질적으로 해결이 불가능한 문제인지 전혀 모를 수가 있다는 것이다.

장담하건대, 당신이 견습생 때 쓰던 도구들은 숙련공이 되고 나서는 더 이상 소용이 없다. 때가 되면 당신이 즐겨 쓰는 도구들은 모두 폐물이 될 것이다. 익숙한 도구들을 쉽게 얻고 쉽게 버리는 법을 배워야 한다.

많이 들어보았던 내용이지만 되새겼으면 하는 마음에서 기록해 두고 싶다. 책도 꾸준하게 읽는 습관을 지니고, 어떤 것을 학습할지 많이 고민하고, 이 기술이 왜 필요한지 근원을 탐구하는 태도를 학습할 때 가져야겠다.

감상

무지를 드러내라, 배운 것을 기록하라, 열정을 드러내라 등등 책에서 알려준 패턴들을 한꺼번에 다 기억하고 체화할 수는 없겠지만 경각심이 필요할 때 자주자주 돌아보면 좋을 것 같다. 이미 익히 들었던 부분도 있으나 이렇게 직접 읽는 것이 더 큰 동기부여가 되어주는 것 같다. 이 책은 글또책읽어또라는 책 읽기 소모임에서 처음 완독한 것이라 의미가 있다. 통근 시간이 긴 편이라서 그 시간을 이용해서 읽으니, 하루에 20p를 읽는 게 생각보다 아주 어렵지는 않았던 것 같다. 습관으로는 잘 자리 잡지 않아서 건너뛴 적도 많지만 앞으로 소모임을 지속하면서 책 읽는 습관을 만들어 나가야겠다.

Profile picture

박세리

Frontend Developer