실무 프로그래머로서 잠재력이 획기적으로 향상되는 방법
현실적으로 할 수 있는 행동과 코드 예제 소개
흔히 우리는 이메일과 전화를 하면서 코딩하는 사람이 일을 잘한다고 여겨지기도 합니다. 하지만 성과를 내는 사람은 여러 가지 일을 한 번에 하는 것이 아닌 해야 할 일을 정하고 파고들어야 이뤄낼 수 있다고 말합니다.
이 책은 여러분이 실무 프로그래머로서 아홉 가지 원칙들을 적용하여 잠재력을 획기적으로 향상되는 방법을 보여줍니다. 이 원칙들을 관통하는 한 가지 요점은 모든 일을 단순하게 만들고 집중을 하는 것에 초점이 맞춰져 있습니다.
불필요한 코드를 빼고 최소한의 기능들을 빠르게 만들어서 사용자들에게 빠르게 피드백을 받는다면 어떤 기능이 필요하고 어떤 기능이 불필요한지 알 수 있습니다. 이런 과정 자체를 빠르게 이뤄질 수 있으므로 그만큼 사용자의 확보와 출시 일시를 빠르게 정할 수 있습니다. 반대로 혼자 프로그래밍하게 되면 어떤 기능이 들어갈지 사용자들은 알지 못하게 됩니다. 그렇다고 시간이 걸려서 나온 프로그램이 사용자들의 요구를 충족한다는 보장도 없습니다. 저자의 경험도 그렇습니다. 필요할 것 같은 기능들을 추가해서 제품을 만들었지만 자신의 생각과는 다르게 기능들을 활용하지 않는 모습을 보였습니다. 그러므로 강력하게 단순하게 하고 한 개의 일을 하는데 집중하자고 전하고 있습니다.
【 대상 독자층 】
- 코딩을 해봤지만 클린 코딩 방법에 대해 잘모르는 프로그래머
- 빠른 코딩과 적은 고통으로 더 많은 가치를 만들고 싶은 프로그래머
- 처음부터 클린 코드를 배우고 적용해보고 싶은 분
이 책은 처음부터 끝까지 같은 이야기를 하고 있습니다. 더 많은 결과에 집중하는 것이 아닌 복잡성을 줄이고 클린한 코드를 작성하여 한 개의 일을 집중적으로 잘하고 사용자의 피드백에 맞춰 빠르게 제품을 완성시켜야 한다고 말합니다.
1장에서 처음 나오는 개념이 복잡성입니다. 복잡성에 대해 빠르게 통제하지 못한다면 여러분의 소중한 시간이 의미 없이 흐르게 되고 소비됩니다. 프로그래밍 언어와 편집 도구는 날이 가면 갈수록 가지 수는 많아지고 복잡해져 갑니다. 이것저것 프로그래밍 언어를 바꾼다거나 편집 도구를 바꿔가며 쓰는 데 시간을 낭비하지 말고 하나의 프로그래밍 언어, 편집 도구에 깊게 몰입하라고 합니다. 한국에서는 어떤 프로그래밍이 유행을 하느냐에 따라 많이 흔들리는 모습을 보게 됩니다. 유행에 따라 프로그래밍을 하는 것이 아닌 하나의 언어를 선택하고 깊게 배울 수 있도록 자신에게 물어보는 체크리스트를 제안합니다. 매일 스스로 확인해보면서 프로그래밍을 한다면 계속 성장할 수 있는 프로그래머가 될 수 있을 것입니다.
또한, 프로그래머로서 생소한 80:20 원칙을 어떻게 적용해야 하는지 그리고 최소 기능 제품을 어떻게 만들고 빠르게 피드백을 받아 어디에 집중해야 할지 배울 수 있습니다.
클린 코드는 읽고 이해하고 고치기 쉬운 코드입니다. 가독성을 해치지 않기 때문에 생산성을 높여주고 복잡성의 문제를 해결하는 클린 코드 작성 원칙을 배우고 집중하게 되면 몰입의 상태에서 코딩하는 즐거움을 경험할 수 있게 도와줄 것입니다.
한 개의 일을 하고 그것을 완벽하게 할 수 있게 노력해보세요. 과정들이 쉽진 않겠지만, 이 책에 서술된 원칙들을 적용하면 훌륭한 프로그래머가 되는 경로를 단축시켜줄 것입니다. 다재다능하기 전에 하나의 일을 차근차근 1단계부터 마스터 해보시기 바랍니다.
마무리 단계에서는 다시 집중의 힘을 살펴보고 모든 원칙들을 다시 말하면서 통합하는데 스스로 확인을 다시 하면서 앞으로 프로그래머로 해야 할 일을 정리할 수 있습니다.