실용주의 프로그래머 - The Pragmatic Programmer
앤드류 헌트, 데이비드 토머스 지음 | 김창준, 정지호 옮김
인사이트
★★★☆☆ (별 3개)
드디어 사놓고 못읽었던 [실용주의 프로그래머]를 완독 하였다. 이 책은 산지 1~2년은 된거 같은데 매번 앞장만 읽다가 드디어 오늘 거의 3주 만에 완독하였다. [클린 코더]나 다른 개발 관련 책보다 유난히 읽기 힘든 책이었는데 그래도 꾸준히 읽어서 끝을 보았다.
클린 코도와 마찬가지로 이 책은 조금 더 나은 개발자가 되기 위한 방법이 나열 되어 있다. 부제가 숙련공에서 마스터로
인데 장인이 되기 위한 방법을 소개하는 책이라고 볼 수 있다. 다만 클린 코더가 개발자는 어떤 사람이 되야 하는가에 집중 한다면, 실용주의 프로그래머는 어떻게 일을 해야 하는가에 집중하고 있다. (코드를 작성하는 법은 나와있지 않다.)
다양한 상황, 작업에 있어서 어떤 어떻게 처리를 해야 하며 일을 하는 방법에 대해 설명을 하고 있으며 이를 통해 70개의 팁을 주고 있다. 이중 기억에 남는 팁을 몇가지 뽑아 보고 나는 어떻게 하고 있나 생각해 보았다.
1. 자신의 기술에 관심과 애정을 가져라.
가장 반성해야 할 점이다. 현재 회사에서 사용하는 기술 스택은 JS, Node인데.. JS나 Node를 완벽하게 알고 있다고 자신 있게 이야기 할 수 없다. 내가 밥 벌어 먹고 사는 기술에 대하여 관심과 애정뿐만 아니라 이를 학습하는 노력도 게을리하였다. 그나마 요즘 다시 공부하고 있는데 늦긴 하였지만, 지금이라도 더 열심히 하고 있다.
2. 깨진 창문을 내버려 두지 말아라.
이 문구는 클린 코더에도 나온 문구이다. 깨진 유리창 하나를 방치해 두면 그 지점을 중심으로 범죄가 확산되기 시작한다는 이론
인데 즉 내가 또는 남이 작성한 코드에 문제를 발견하면 이를 지나치지 말고 수정하라는 말이다. 내 코드는 내가 작성 했으므로 자신 있게 수정할 수 있는데 남이 작성한 코드는 수정하기가 난감할 때가 있다. 내가 이 코드의 의도를 확실하게 이해하고 있는지, 또는 이 창문이 과연 깨진 창문인지 아닌지 판단하기가 까다로울 때가 있기 때문이다. 그래도 의식적으로 수정하려고 노력하고 있다.
3. 지식 포트폴리오에 주기적으로 투자하라.
주기적인 학습에 대하여 이야기하고 있다. 클린 코더에서는 주 20시간을 회사 일이 아닌 나를 발전시키기 위한 시간으로 투자하라고 하였다. 20시간을 채우는 게 참 쉽지 않다. 아침에 일찍 출근해서 1~2시간 정도 책을 읽고 공부를 하지만 20시간을 채우기 힘들다. 평일 10시간 채우고 주말에 10시간을 채워야하는데 주말동안 하루 5시간이다. 애가 있는 유부남에게 5시간은 매우 힘들다. 그나마 요즘 토요일에 시간이 조금 나서 공부를 하고 있긴 한데.. 아직 부족하다. 아침에 더 일찍 일어나거나 의식적으로 시간을 벌려 노력한다.
그리고 요즘 공부한 블로그를 쓰진 않았는데 그래도 공부는 꾸준히 하고 있다. GO로 알고리즘을 푼다거나, 출/퇴근하면서 개발 관련 서적을 읽고 틈틈이 남들이 잘 작성한 블로그도 읽고 있다. 다만 이게 내 머릿속에 남아서 이를 써먹을 수 있어야 하는데.. 볼 때마다 새로운 게 문제인 것 이다. 일전에 블로그에 공부법을 바꿔야 하지 않겠나 고민했는데.. 마땅히 떠오르지 않는다. 그냥 몇번씩 읽고 또 읽고 있다. 양으로 승부하는 작전인 것이다.
4. 하나의 에디터를 잘 사용 할.
나는 에디터는 VS CODE를 주로 이용한다. 인텔리J도 회사에 사달라고 하면 사주긴 하겠지만.. 그냥 VS CODE를 쓴다. 그런데 과연 이 에디터를 적절히 잘 이용하고 있을까..? 다른 사람은 어떻게 쓰고 있는지 비교가 쉽지 않다. 다만 VS CODE가 크롬 디버거를 지원하고 GIT도 연동이 되는데 그런 건 이용 안 하고 있다. 결국 잘 사용하지 못하고 있는 게 아닐까 하는 결론에 도출되었는데… 시간 날 때마다 한 번씩 찾아보고 사용해봐야겠다.
이 밖에도 다양한 팁들이 있다. 재사용하기 쉽게 만들라.
, 모든 테스트가 통과하기 전엔 코딩이 다 된게 아니다
와 같은 주옥같은 팁들이 많이 있다. 다만 나는 JS를 주로 개발하는데 책 예제가 C나 JAVA로 이루어져 있다. (이게 읽기 힘든 이유가 아니었을까 싶다) 가끔 읽다가 이해가 안 되는 부분도 있었으며 책일 출판된 지 꽤 오래 돼서 흠…. 하고 싶은 구절도 있었다. 이런 거는 내가 경력이 많지 않고 주니어 개발자라 그런 거나, 아직 학습이 부족해서 그런 것일 수도 있다. 다만 확실하게 말할 수 있는 것은 여기에 나온 팁은 대부분 유용하거니와 몸으로 익혀야 할 내용으로 생각된다. 부록으로 나온 팁은 책상에 붙여 놓으면 좋을 것 같다. (조금 창피할려나 -_-;;)