이 책은 좀 특별합니다.
더 나은 프로그래머 가 되려면, 개발 Skill을 늘려야 할까요? 다양한 언어를 잘 다루어야 할까요?
조금 연차가 쌓이고, 경험이 많아지고 요즘 ai를 통해서 코드 생성 및 활용도가 높은 상황에서
우리는 어떻게 접근해야 좋은 프로그래머가 되는지 고민이 되는 시점이라고 생각합니다.
이 책은 그런 부분에서 개발서적 중에서 좀 특별하게 다가오는 책입니다.
이 책을 먼저 리뷰하신 베타리뷰어의 글을 보면, 특별한 멘트들이 적혀있습니다.
"어떠한 것들을 갖추고 배워야 하는지 알려주는 멘토 같은 책"
"프로그래머의 심리에 대해 깊숙이 다루는 몇 안되는 책"
심리라는 부분에 대해서 매우 새로웠습니다.
일반적인 개발가이드 및 온보딩, 신입개발자들에 대한 가이드 책등은 많이 있습니다.
이책은 어떠한 부분이 그렇게 다가오는지 살펴보려고 합니다.
■ 책의 구성
· 총 5개의 Chapter로 구성되어 있습니다.
[1부 | you.write(code);]
[2부 | 연습을 통해 완벽해진다]
[3부 | 개인적인 일로 받아들이기]
[4부 | 일 끝내기]
[5부 | 사람의 일]
각 항목별로 개별적으로 구분되어져 있기 때문에, 각각 관심있는 부분부터 읽어보시도 무방합니다.
목차를 보시면 3부, 4부, 5부의 목차를 보면 기본에 출간된 책과 다른 느낌을 받으실 수 있습니다.
특히 5부의 내용은 베타리뷰의 의견처럼 심리에 대한 부분을 다루고 있어서 특별하게 생각됩니다.
■ 1부 | you.write(code);
기본적으로 코드에 대한 부분을 설명합니다.
코드 작성, 읽기, 설계, 견고한 코드에 대한 부분을 설명합니다.
· 어떻게 보면, 당연한 사항인데 평소에 고민을 안해보면 놓칠수 있는 부분이 좋았습니다.
주석에 대한 부분이 있는데, 처음에는 보기 좋은데, 나중에 관련 소스를 변경하게 된다면, 불편함을 가질수 있는 부분입니다.
생각해보면 해당 주석은 처음에는 귀엽고, 보기 좋지만, 나중에 주석을 추가하게 되나면, 맨 뒤에 * 을 맞추는 불편함이 추가적으로 필요해서
반대로 생각하면 안좋은 불편함을 가지게 됩니다.
· 명명 (이름짖기)
개발하면서 제일 어려운 부분이 이름짖는 부분입니다. 클래스, 변수, 메소드 등등
특히 우리가 알고 있는 영어 단어들이 한정적이기 때문에 다양성이 부족하게 됩니다. 또 보통 한번 사용하게 되는 이름을 반복적으로
사용하는 경우가 많은데, 우리는 기준이 필요하고 그러한 기준을 세울수 있다면 앞으로의 개발자로써 좋은 프로그램의 밑바탕이 됩니다.
· 다양한 기준
코드 줄여 개선하기 : 이거는 글만 보면 모두 당연하게 생각하지 않을까?
테스트 하기 : 무조건 하는 것인 필요하다고 생각한다. 하지만 테스트를 언제 해야 할지, 어떻게 하는게 좋을지 기준이 있는가?
기술적인 부채 등등 다양한 관점으로 코드를 작성할때, 도움이 많은 생각을 하게 됩니다.
■ 2부 | 연습을 통해 완벽해진다
코딩 업무에 대한 건전한 태도와 접근 방법을 살펴보고, 더 나은 코드를 고안하는데 도움이 되는 기법을 전반적으로 설명합니다.
14장 소프트웨어 개발이란
15장 규칙 가지고 놀기
16장 간결하게 하기
17장 머리 쓰기
18장 변하지 않는 것은 없다
19장 코드 재사용 사례
20장 효과적인 버전 관리
21장 골키퍼 있다고 골 안 들어가랴
22장 프리징된 코드의 신기한 사례
23장 제발 저를 출시해주세요
설명되어지는 부분은 기술적인 부분 보다는 조금 이론적인 부분 및 접근법에 대해서 언급을 합니다.
이러한 이론적인 부분을 설명하는 방식을 약간 에세이, 기고글처럼 풀어나가는 기법이 인상에 깊습니다.
다시 한번 어떻게 접근해야 할지 생각할수 있는 요소가 많습니다.
■ 3부 | 개인적인 일로 받아들이기
효율적으로 배우는 방법, 도덕적으로 행동하는 방법, 자극적인 도전을 찾아내는 방법, 번아웃을 피하는 방법, 육체적으로 건강해지는 방법등을 살펴봅니다.
3부의 내용을 읽어보고, 특별한 것이 없고 "나는 잘하고 있는데..." 라고 생각이 들고
책에서 언급하는 사항중에 많은 부분이 당연하다고 생각이 들면 좋은 프로그래머로 성장을 하고 있다고 생각하면 될것 같습니다.
· 세부적으로 하나하나에 대해서 실행 아이템에 대해서 구체적인 요소들이 설명되어 지는 부분이 많이서
조금 더 구체적으로 기준을 세우는데 도움이 됩니다.
■ 4부 | 일 끝내기
목표에서 벗어나거나, 일정을 지연시키지 않고 정해진 시간 안에 업무를 완수하는 방법에 대해서 알아봅니다.
누구나 궁극적으로 업무를 빨리 마치고, 그리고 그 업무는 원하는 요구사항을 잘 수행하고 오류없이 동작되기를 원합니다.
그리고 정해진 시간에 마무리 하여서, 여유를 가지고 싶습니다.
· ‘더 열심히’보다는 ‘더 현명하게’
너무 와닿는 멘트입니다. 열심히 도 좋지만, 현명하게 라는 단어가 더 선호하는 단어입니다.
해당 내용은 다른 분야에서도 적용해도 되는 내용입니다.
이러한 부분은 경험이 있는 분들도 있고, 개인차가 있다고 생각이 듭니다.
책을 통해서 생각에 대한 Remind되는 점을 느낄수 있습니다.
- 해야 하는 것만 해라.
- 우선순위를 설정하라
- 정말 필요한 것은 무엇인가
- 문제를 미루고 쌓아두지 말라
- 자동화하라
- 작고 간결하게 유지하라
등등 많은 부분이 있다 이러한 당연한 이야기 이지만, 실제 우리는 어떻게 기준을 잡고 접근하는지 살펴볼수 있는 부분이다.
■ 5부 | 사람의 일
다른사람과 협업하는 방법에 대해서 소개한다.
34장 사람의 힘
35장 생각이 중요하다
36장 말하기!
37장 선언문
38장 코드 찬가
39장 태도가 핵심이다
5부애서 나오는 내용입니다.
코드적인 부분이 없지만, 이러한 부분에 대해서 고민을 하고 자신만의 올바른 기준이 있어야지
더 나은 프로그래머가 되는 소양이라고 생각하는 좋은 내용입니다.
단순히 코드적으로만 동작되는 소스작업이 좋은 프로그래머가 아니라는 생각을 가지게 합니다.
여러사람이 함께 모여서 하나의 목적을 가진 개발 SW제품이 나오기 때문입니다.
추가로 이 책의 가장 큰 장점은 각 항목마다 있는, "생각해보기" 부분이라고 생각이 듭니다.
각 질문마다 가만히 나 자신에게 질문하고, 어떠한 답변을 할수 있을지 생각을 해본다면,
다양한 생각들이 정리가 되고, 어떠한 것이 나의 머리속에 기준으로 잡고 있는지 생각해볼수 있는 경험을
하실수 있습니다.