이전

Apprenticeship Patterns_ Guidance for the Aspiring Software Craftsman

잔을 비우다

이미 많은 경험을 쌓았을수록, ‘잔 을 비우기’ 위해서는 더 많은 노력이 필요하다. 그럴수록 나쁜 습관을 떨쳐 내는 일, 자기 역량에 대한 자부심을 접어 두는 일, 경험 많은 동료들의, 뭔가 다르지만 종종 직관에 반하는 듯 보이는 접근 방식에 대해 마음을 열어두기 가 더 힘들게 느껴질 것이다

첫 번째 언어

  • 첫 번째 언어를 선택할 때는 가 까운 전문가에게서 피드백을 얻을 수 있는지를 주요한 판단 기준으로 삼아 야 한다.
  • 언어를 배우 는 데 그치지 말고 마음 맞는 사람들의 첫 공동체에 참여할 수 있도록 그런 네트워크를 십분 활용해야 한다.
  • 첫 번째 언어는 아마도 당신 경력 전체에서 모국 어처럼 남을 것이다. 하지만 그 언어에 너무 익숙해져서 다른 언어를 배우지 못하게 되는 일은 없도록 해야 한다.
  • 특정한 기술 분야에 집착하지 말고, 개별 상황에 알맞은 해법을 고를 수 있도 록 광범위한 배경 지식과 경험을 충분히 쌓아두어야 한다. ― 데이브 토머스Dave Thomas와 앤디 헌트Andy Hunt, 『The Pragmatic Programmer』

흰 띠를 매라

  • 흰 띠를 맨다는 것은, 검은 띠라면 방법을 알지만 흰 띠는 배우는 것 말고 는 다른 선택이 없다는 깨달음에 근거를 둔 행위다
  • 위로 오르기 위해서는 당신이 이미 잘 하는 것을 내려놓아야 한다. 그리고 골 짜기로 미끄러져 내리기도 하면서 단단히 디디고 선 곳을 떠나야 한다. 만약 에 이미 잘 하는 것을 내려놓지 않는다면, 꾸준히 진전할지는 몰라도 고지에 는 결코 오를 수 없을 것이다 - 제리 와인버그Jerry Weinberg, 『Becoming a Technical Leader』

  • 특정 프로그래밍 패러다임(명령적(imperative), 객체 지향적, 함수형, 배열/ 벡터 지향적 등)으로 작성했던 프로그램을 하나 골라서 다른 패러다임에 속한 언어로 다시 구현해 보라.

열정을 드러내라

  • 조 직이란 그 구성이 어떠하든 간에 평균 수준으로 회귀하려는 경향이 있는데, 특히 새내기들이 그러기 쉽다.

구체적인 기술

  • 요점은 채용 담당자들이 당신을 선택하면서 이 정도라면 더 볼 것도 없겠 다는 생각이 들게 해야 한다는 것이다. 구체적인 기술이 있다면 절반은 된 것이나 마찬가지다
  • 자기 이력서를 정기적으로 손보는 습관을 들여라. 그렇게 해가면서 구체 적인 기술을 나열한 별도의 목록을 만들어라.

무지를 들어내라

  • 사람들을 안심시켜야 할 때 는, 아는 척 하기보다는 당신이 얼마나 잘 배울 수 있는지를 가지고 안심시 켜라. 이렇게 해서 당신의 평판은 어떤 지식을 알고 있느냐가 아니라 학습하는 능력이 얼마나 좋은지를 기반으로 쌓여갈 것이다
  • 무지를 드러내는 가장 확실한 방법은 질문하는 것이다.
  • 전문성은 우리 모두가 걸어가는 긴 여정에서 생기는 부수적인 결과이지 우리의 목적지는 아니기 때문이다.
  • 마라톤에 대비해서 훈련하는 선수의 다 리 근육이 튼튼한 것과 같은 이치다. 그 선수는 다리를 튼튼히 하려는 것이 아니라 달리기 훈련을 하는 것이다.
  • 업무에 관해서 정말로 이해되지 않는 것 다섯 가지를 적어 보라. 그 목록을 다른 사람들이 볼 수 있는 곳에다 붙여 두어라. 그리고 당신의 업무가 바뀔 때마다 그 목록을 갱신하는 습관을 들여라.

무지에 맞서라

  • 무지를 드러내라 패턴 사이에는 미묘한 균형을 유지 하는 것이 중요하다. 무지에 맞서는 것만을 강조한다면 아무것도 제대로 해내지는 못하면서 건방만 떠는 정보탐식가(infovore)로 엇나갈 위험이 있고, 무지를 드러내고서도 그 무지를 해결해야 할 문제라고 인식하지 못한다면 지나친 자기 비하와 무력감에 빠지게 될 것이다.

깊은 쪽

  • 당신에게 두드러지는 역할이나 어려운 문제가 주어진 다면, 그 기회를 놓치지 말고 두 손으로 꽉 잡아라.

한발 물러서라

  • 한발 물러섰다가 투석기로 쏜 돌처럼 앞으로 나아가라.
  • 얼마나 오래, 얼마나 멀리 후퇴해 있을지 의식적으로 한계를 지어두지 않으면, 두려움이나 실패에 굴복해 버린 자신을 발견하게 될지도 모른다. 어떻게 하면 잘 하는지 아는 일을 계속 더 깊이 파고드는 것은 아주 큰 위안이 된다.

긴 여정을 걷다.

긴여정

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

  • 길게 보아라. 견습기간 동안에는 급여 나 통상적인 리더십 같은 것보다 학습과 장기적인 성장에 더 가치를 두어라.

예술보다 기예

  • 나는 프로그래밍을 일종의 공예로 본다. 공예는 예술의 일종이긴 하나 순수 예술은 아니다. 장식적인 면이 가미될 수는 있겠지만, 공예는 어쨌거나 쓸모 있는 물건을 만드는 작업이다. 하지만 순수 예술은 오직 아름다움을 목적으로 하는 무엇인가를 만드는 일이다. - ‘예술과 프로그래밍’ -에 대한 리처드 스톨만(Richard Stallman)의 견해

  • 자신의 기술로 생계를 꾸려야 할 장인에게 굶주림이란 실패다.
  • 모름지기 장인이라면, 컴퓨터 과학의 최첨단을 달리지만 정작 플레이하기는 힘든 백만 라인 규모의 게임보다는, 누군가를 미소 짓게 만드는 50줄짜리 게임을 더 높이 평가할 것이다.
  • 스스로 만족하기 위해서가 아니라 현실 사람들이 당면한 현실적인 문제와 씨름할 때 기량은 연마되는 것입니다. ― 켄 아우어Ken Auer와 나눈 이메일

지속적인 동기 부여

  • 돈을 벌기 위한 소프트웨어와, 만들기에 재미나는 소프트웨어 사이에는 서로 겹치는 부분이 그다지 많지 않다. (중략) 당신이 돈을 벌고자 한다면, 너무 지 저분해서 누구든 공짜로는 해결하려 들지 않는 그런 문제를 안고 씨름해야 할때가많다. ― 폴 그레이엄Paul Graham,『Hackers & Painters』

  • 일부 프로그래머들은 뜻하지 않게 자신의 동기에 의해 발목이 잡힌다. 『More Secrets of Consulting』에서 제랄드 와인버그는 이런 현상을 ‘황금 족 쇄Golden Lock’에 비유한다. “뭔가 새로운 걸 배우고는 싶지만, 내가 이미 알고 있는 것만으로도 벌이가 너무 좋다.”

열정을 키워라

  • 자신만의 지도를 그려라. 때로는 고용주가 제시하는 경력 노선이 당신의 필요나 목표, 포부와 상반될 때가 있다. 이런 경우 당신이 가려는 방향과 맞 아 떨어지게 경력을 쌓을 수 있는 조직으로 옮긴다면 당신의 열정을 지켜낼 수 있을 것이다.
  • 열정을 키우고자 한다면, 당신이 기꺼이 일할 수 있는 주변 환경에 대해 미 리 명확하게 경계를 지어 두어라. 이것은 팀의 다른 사람들이 야근할 때 먼저 퇴근한다든지, 험한 말이 오가기 시작한 회의에서 빠져 나온다든지, 냉소적 인 대화를 건설적인 주제로 돌리려 한다든지, 자신의 최저 기준에 부합하지 않는 코드의 배포를 거부하는 것을 의미할 수도 있다. 그 결과로 당신은 연 봉 인상, 승진, 명성, 인기 같은 것과는 거리가 멀어질 수도 있다. 하지만 당 신이 해로운 환경에서 벗어나서 자신의 열정을 굳게 지키고자 한다면, 이렇 게 경계를 지어야 한다.

자신만의 지도를 그려라