실용주의 프로그래머 펀치라인 정리 (진행 중)
1장 실용주의 철학
- 나에게는 스스로의 행동을 직접 결정할 수 있는 힘이 있다. 주도적으로 행동해서 그 기회를 잡아라.
- 약점을 보이는 것에 대한 두려움이 가장 큰 약점이다. 모르면 빠르게 습득하고 배우자
- 실용주의 철학의 초석 중 하나는 자신과 자신의 행동에 대해 책임을 지는 것이다.
- 우리는 자신의 능력에 자부심을 가질 수 있지만, 실수나 무지 같은 단점도 인정해야한다.
- 책임을 진다는 것은 개인적으로 최선을 다하는 것이 전부가 아니다. 우리가 통제할 수 없는 위험 요소가 있지 않은지 상황을 분석해야 한다.
- 어설픈 변명을 늘어놓기 전에 그 변명을 없애도록 노력하자.
- 깨진 창문을 내버려 두지 말자. 나쁜 설계, 잘못된 결정, 혹은 형편없는 코드 등이 모두 깨진 창문이다. 발견하자마자 바로 고쳐라
- 하지만 우선적으로 창문을 망가뜨리지 않는 것이 가장 좋다.
- 주변을 살피고 의식하는 습관을 들여라. 이를 우리가 참여하고 있는 프로젝트에 대해서도 똑같이 적용해라.
적당히 괜찮은
이라는 표현은 너절하거나 형편없는 코드를 의미하지 않는다. 시스템이 성공하기 위해선 기본적은 성능이나 개인 정보 보호, 보안 기준도 맞추어야한다.
- 오늘의 훌륭한 소프트웨어는 많은 경우 환상에 불과한 내일의 완벽한 소프트웨어보다 낫다. (10번과 더불어서, 일단 실행하되 사용자 친화적인 요구사항은 충족해야한다는 의미)
- 완벽하게 훌륭한 프로그램을 과도하게 장식하거나 지나칠 정도로 다듬느라 망치지 말라.
- 우리의 지식과 경험이야말로 가장 중요하고 날마다 쓰이는 전문가 자산이다. 하지만 이는 기한이 있는 자산이다. 새로운 기술, 언어가 개발됨에 따라 지식은 옛것이 된다.
- 도태되지 않기 위해
지식 포트폴리오
를 만들어야 한다.
지식 포트폴리오
를 만들기 위해서는 주기적인 투자, 다각화, 리스크 관리 등이 있다.
- 위의 방법들을 실현 시키기 위한 액션플랜은 다음과 같다.
- 매년 새로운 언어를 최소 하나는 배워라.
- 기술 서적을 한 달에 한 권씩 읽어라.
- 기술 서적이 아닌 책도 읽어라.
- 수업을 들어라. => 사는 지역의 대학이나 온라인 대학 또는 컨퍼런스 등을 참여하라.
- 회사 밖으로 나가서 다른 사람들의 이야기를 들어라.
- 다른 환경에서 실험해 보라 => 가령 윈도우 환경에서 일을 했다면 리눅스 환경에서 일을 해보자.
- 요즘 흐름을 놓치지 말라
여기서 중요한건 지속하는 것이다. 새롭게 배우게 된 교훈을 현재 프로젝트에 적용하도록 노력하라.
- 우리가 보고 듣는 것에 대해서 비판적으로 사고하자.
- 왜?라고 5번 묻기
- 누구에게 이익이 되는지 파악하기
- 어떤 맥락인지 파악하기
- 언제 혹은 어디서 효과가 있을지 이해하기
- 왜 이것이 문제인지 파악하기
- 소통해라. 질문을 기다리지 말고 먼저 물어봐라.
- 무엇을 말할지 미리 계획하라. 개요를 작성해라.
- 전달하는 스타일을 듣는 사람에 어울리도록 조정해라. 누구는 '사실'만을 원하고 누구는 본론 전의 다방면의 아이스브레이킹을 원한다.
- 단순하게
다음에 답하겠습니다.
더라도 언제나 이메일과 음성 메세지에 답을 해라.
문서화
는 중요하다. 문서는 애초에 포함시키고, 나중에 집어넣으려고 하지 말라.