Yunseok's Dev Blog

배운 것을 적는 블로그입니다.

심플 소프트웨어 서평

Understanding software

원서 제목은 Understanding software다. 블로그 글을 모아서 만든 책이라서 개연성이 조금 떨어지지만 프로그래머로서 생각해볼만한 고민거리를 던져줘서 좋은 책이었다.

뛰어난 프로그래머가 되고자 하는 마음이 있어야만 뛰어난 프로그래머가 될 수 있다. 그래야 다음 얘기가 통한다. 뛰어나지 않은 프로그래머는 애초에 이 책을 안읽을테니 괜찮긴 하다.

뛰어난 프로그래머는 문제를 발견했을 떄 올바른 방법으로 해결한다. 올바른 방법으로 해결하더라도 더 좋은, 더 나은 방법이 있을 것이라고 생각한다.

좋았던 점들

이유를 막론하고 무순 수를 써서든 여러분을 막는 데 사활을 걸겠다는 사람과 맞붙는 일에 자신의 인생과 행복을 걸 필요는 없다. 어차피 변할 리 없는 상대를 붙들고 시간 낭비하지 말고 변화를 끌어낼 수 있는 다른 조직을 찾아라.

역시 이직이 답이라는 생각이 또 들었다.

책의 저자가 오픈소스를 운영해본 경험이 있어서 오픈소스를 유지하려면 사람들이 오픈소스에 남아있어야 할 충분한 이유를 주어야 한다고 한 부분이 좋았다.

단위 테스트는 컴포넌트의 내부 구현이 아니라 동작을 테스트해야 한다.

동작을 테스트해야 테스트의 의도가 더 잘 드러난다. 나도 이런 실수를 굉장히 많이 했었다.

책만 보지 말고 실습도 해야 제대로 이해할 수 있다는 걸 잊지 마라. 반대로 학습 없이는 이해하는 것도 절대 불가능하다. 프로그래밍 학습과 실습의 균형을 맞추는게 중요하다.

나도 항상 이 균형이 굉장히 중요하다고 생각한다. 너무 프로젝트만 계속하다보면 공부를 게을리하게된다. 반대로 공부만 하다보면 실제로 어떻게 사용되는지 몰라서 전부 까먹는다. 이 균형을 잘 맞추자.

아쉬웠던 점

  • 책 제목이 아쉽다. 코드의 단순성, 가독성, 안정성, 유지보수성들에 대해서 얘기하는 줄 알았다.
  • 책의 개연성이 조금 떨어진다.

Sources