본문 바로가기
책 리뷰

[리뷰] 프로그래머의 길, 멘토에게 묻다

by 매트(Mat) 2022. 6. 18.

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

데이브 후버, 애디웨일 오시나이 저자의 책인 프로그래머의 길, 멘토에게 묻다을 읽고 중요하다고 생각되는 부분이나 공감되는 부분을 정리해보았다.

언어를 하나 선택하라

언어를 선택하고, 그 언어에 능숙해져라. 이 언어가 앞으로 몇 년 동안 당신이 문제를 해결할 때 쓸 주력 언어이며 실제로 쓰면서 연마하는 기본 기술이 될 것이다. 첫 번째 언어에 대해 더 잘 알수록 그 다음 언어를 배우는 일이 수월해진다.

첫 번째 언어를 깊이 파고 들 때 생길 수 있는 한 가지 위험은, 거기에 그대로 붙잡혀 버리는 것이다. 첫 번째 언어는 아마도 당신 경력 전체에서 모국어처럼 남을 것이다. 하지만 그 언어에 너무 익숙해져서 다른 언어를 배우지 못하게 되는 일은 없도록 해야 한다.

객체 지향 언어에 익숙한 사람이라면 함수형 프로그래밍 언어를 탐구해보고, 서버 프로그래밍을 주로 했던 경우라면 UI 설계 분야를 들여다보는 것도 좋을 것이다. 그러면서 당신은 자신이 선호하는 언어와 문제 해결 방식을 점점 명확히 잡아 갈 수 있을 것이다.

무지를 드러내라

당신의 본능은 당신에게 무지를 숨기고 아는 척하라고 시키지만, 그렇게 하면 당신의 성장은 방해 받으며 성취해야할 일도 가로막히게 될 뿐이다. 고객이나 동료와 맺은 튼튼한 관계를 통해서 자기 평판을 쌓아간다. 무언의 압력에 굴복해서 사람들이 듣고 싶어하는 얘기를 해주는 것은 튼튼한 관계를 쌓는데 좋은 방법이 아니다.

무지를 드러내는 가장 확실한 방법은 질문하는 것이다. 만약 질문 받는 쪽에서 당신이라면 당연히 알 거라고 생각하는 경우에는 더욱 질문하는 것이 어렵다. 하지만 거기에 굴하면 안된다! 가장 빠르게 성장하는 길은 자신의 무지를 드러내는 것이 창피하다고 생각하지말고 바로 질문하는 것이다. 괜히 창피당하는 것을 피하다가 나중에 후폭풍이 몰려올 수 있다 😂

무지란, 인지해서 맞선다면 나쁜 것은 아니다. 오히려 자기 무지에 대해 신경조차 쓰지 않는 것이다. 하지만 만약 자신에게 무엇이 부족한지 알고서 그 부족함을 메우고자 노력한다면, 당신은 한 발짝 더 전진한 것이다.

지속적인 동기부여

오비 페르난데스는 자바 전문가로 꽤 알려진 뛰어난 프로그래머였다. 2005년 오비는 결단의 기로에 섰는데, 자바 전문가로 계속 커 갈지 아니면 익숙지 않은 언어로 장래성 있는 웹 프레임워크를 새로 배울지 결정해야 했다. 오비는 그의 도구 세트를 확장하기 위해 배움의 길을 택했다. 이것이 장인의 특징이라 할 수 있다. 그는 자바로 얻은 명성을 뒤로 하고 황금 족쇄를 벗어나 루비 새내기가 되었다. 아이러니하게도 이 결정은 오비를 전에 자바 전문가였을 때보다 더 높은 경지에 올려놓았고, 결과적으로 그는 웹 애플리케이션 개발 회사인 해시로켓을 창업하게 되었다.

겸손

겸손은 성공적인 견습과정의 토대 중 하나다. 포부 있는 견습생이라면 누구라도 본능적으로 결승점을 향해 경주해서 가능한 한 빨리 숙련공이 되고자 할 것이다. 그렇지만, 당신은 긴 여정을 걷는 중이고 이 여행은 단거리 경주가 아님을 기억해야 한다. 견습과정에서 가능한 한 많은 것을 얻어내도록 시간을 들이라. 당신이 프로그래밍한지 3개월이 되었든 5년이 되었든 간에 소프트웨어 장인정신의 관점에서는 여전히 초보자라는 사실을 이해해야 한다.

부숴도 괜찮은 장난감

당신은 실패가 용납되지 않는 환경에서 일하고 있다. 하지만 실패는 종종 무언가를 배울 수 있는 가장 좋은 방법이 된다. 오직 과감한 일을 하고, 실패하고, 그 실패로부터 학습하고, 또 다시 시도하는 것, 우리는 그렇게 해야만 어려운 문제에 맞닥뜨렸을 때 성공해내는 사람으로 성장할 수 있다.

업무 때와 비슷한 도구를 써서, 업무 때 구축하는 시스템 범위에는 들지 않는 토이 시스템을 설계하고 구현하여 실패해 볼 수 있는 여지를 만들어라.

배운 것을 기록하라

당신이 걸어가는 여정의 기록을 일지나 개인 위키, 블로그 등으로 남겨라. 배운 교훈을 시간 순으로 기록하게 되면 걸어온 여정을 뚜렷이 볼 수 있으므로 당신이 멘토링하는 사람들에게 영감을 줄 수 있다. 배운 것을 기록해 두기 위해 블로그를 이용하면 마음 맞는 사람들을 만날 수 있다는 부수적인 이점이 있고, 관련 있는 링크가 꼬리를 물고 이어지는 위키의 경우는 당신이 쌓아 온 경험 간의 연관성을 볼 수 있게 해준다.

배운 것을 기록만 하고 그냥 잊어버리는 덫에 빠지지 않게 노력하라. 당신이 썼던 글을 정기적으로 다시 읽어라. 글을 리뷰할 때마다 새로운 연관 관계를 만들어보라. 자신의 일지를 리뷰함으로써 당신은 미래를 만들어 내기 위해 과거와 현재를 재배치할 수 있다.

공감했던 부분

언어를 하나 선택하라
책에서 "언어 하나를 선택해서 그 언어를 계속해서 파라. 대신에 그 언어에 너무 익숙해져서 다른 언어를 배우지 못하게 되는 일은 없도록 해야한다." 라고 조언했는데 공감이 됐다. 나도 자바 언어에 익숙해서(실력은 없지만 ㅠ..) 다른 언어를 배우려고 하면 뭔가 귀찮고, 배우기가 싫었다. 하지만 이는 큰 오점이고 다양한 경험을 해보는 것이 중요한 것 같다. 너무 한 가지에만 몰두하다가 갖혀버릴 수도 있다.

또 한가지는 부숴도 괜찮은 장난감을 만드는 것이다. 남이 강의해준대로 코딩을 짜고 안전하게 프로젝트를 만들면(에러 한 개도 안나게) 나중에 크게 깨진다. 그러니까 본인만의 망가져도 괜찮은 토이 프로젝트를 하나 만들어서 이것저것 막 조작해보는 것이 중요한 것 같다. 그래서 에러를 무수히 많이 만나보고 해결해보고 질문해보고 이런 반복이 결국엔 성장하는 길이 아닌가 싶다.

마지막으로 무지를 드러내라이다. 사람들은 자신이 약해지는 모습을 보이기 싫다. 개발 내에서도 자신이 모르는 부분을 드러내는 것이 싫어서 질문하는 것을 꺼려하고, 입코딩으로 자신의 진짜 실력을 숨긴다. 하지만 그러면 안된다. 자신의 솔직한 실력을 다른 사람들에게 드러내야 한다. 그래야 성장할 수 있고, 더 발전할 수 있고, 나중에 문제가 발생했을 때 해결할 수 있는 능력이 생긴다. (자신의 실력을 계속 감추다 보면 연차는 쌓이는데 눈치만 봐야한다.)

Reference Book

댓글