33장 개발자의 성격
목차
- 33.1 성격은 주제를 벗어난 것 아닌가?
- 33.2 지성과 겸손
- 33.3 호기심
- 33.4 지적인 정직함
- 33.5 의사소통과 협동
- 33.6 창의성과 훈련
- 33.7 게으름
- 33.8 덜 중요한 특성
- 33.9 습관
소프트웨어 개발에서 성격이 영향이 줄까? 여기서 말하는 성격은 외향적이거나 내향적인 성격이 아니라, 어떤 자세를 갖는가에 대한 내용인 것 같다. 첫 번째 질문이 바로 다음 장에서 나온다.
33.1 성격은 주제를 벗어난 것 아닌가?
프로그래밍의 내적 탐구에서 있어서 개인의 성격이 특히 중요하다.
일단 뛰어난 개발자가 되기로 결정했다면 발전 가능성은 어마어마하다. 프로그램을 작성하는데 드는 시간이 10에서 1 까지의 차이가 있고, 프로그램을 디버깅하는 데 드는 시간과 프로그램의 크기, 속도, 오류율, 발견된 오류의 수도 10에서 1까지의 범위로 차이가 있다.
성격은 훌륭한 개발자를 만드는 결정적인 요소라는 사실이 증명되었다.
33.2 지성과 겸손
훌륭한 개발자가 되기 위한 가장 중요한 자세는 자신의 뇌가 한정적이라는 것을 아는 것이다. 그리고 그러한 한정적인 뇌를 대신해 일을 처리해 주는 것이 컴퓨터다.
자신의 뇌는 한정적이기 때문에 가능한한 읽기 쉽게 코드를 작성해야하고, 루틴과 클래스는 짧아야 한다.
좋은 프로그래밍 습관
- 시스템을 분해한다.
- 재검토와 조사, 테스트 작업은 예상된 인간의 오류 가능성을 보완하는 방법이다.
- 루틴을 짧게 만들면 두뇌의 부담이 줄어든다.
- 구현 세부 사항 수준의 관점 대신 문제 도메인 관점에서 프로그램을 작성하면 정신적 부담이 줄어든다.
- 규약은 쓸데없는 곳에 머리를 쓰는 것을 막아 줄 수 있다.
33.3 호기심
호기심을 훈련하고 배우는 것에 우선순위를 두기 위해 할 수 있는 활동
- 개발 과정에 대한 자신의 인식을 구축하라.
- 실험하라.
- 문제 해결에 관한 책을 읽어라.
- 행동하기 전에 분석하고 계획을 세워라.
- 성공적인 프로젝트를 학습하라.
- 문서를 읽어라.
- 다른 책과 정기 간행물들을 읽어라.
- 다른 전문가들과 관계를 맺어라.
- 전문적인 개발자가 될 수 있도록 노력하라.
33.4 지적인 정직함
나한테 가장 부족한 부분이라고 느낀다. 모르는 것을 모른다고 말하고, 실수를 기꺼이 인정하는 것. 그리고 컴파일해서 프로그램 작동 여부를 확인하기보다는 프로그램을 명확히 이해하는 것이 지적인 정직함이라 말할 수 있다. 나는 다른 사람이 듣기 좋아하는 말을 하거나, 그런 척 하는 경우가 많은데 조금 더 솔직해져야겠다.
33.5 의사소통과 협동
개발자는 혼자 일하는 직업이 아니기 때문에 의사소통과 협동은 뗄레야 뗄 수 없는 존재이다. 다른 사람들과 원만하게 일하고 노는 방법을 학습하고 발달시켜야한다.
33.6 창의성과 훈련
규약은 창의성을 막는 장치가 아닌 더 중요한 곳에 창의성을 발휘할 수 있도록 도움을 주는 장치이다.
33.7 게으름
게으름의 종류는 아래의 세 가지가 있다.
- 일을 미룸
- 일을 미리 처리함
- 일을 자동화함
첫 번째는 딱 봐도 나쁘다. 두 번째와 세 번째 방법으로 게으름을 처리하는 개발자가 되도록 노력하는 것이 좋다.
33.8 덜 중요한 특성
개발자에게는 인내심과 경험은 그렇게 중요하지 않다. 안되는 것을 오랜 시간동안 가지고 있는 것 보다 새로운 것을 시도하는 것이 더 좋을 수 있고, 지속해서 공부하지 않고 경험으로만 살아간다면, 도태되고 말 것이다.
33.9 습관
나쁜 습관을 없애는 것보다 좋은 습관으로 바꾸는 것이 더 쉽다.