책을 읽게 된 계기
나는 연구라는 것을 업으로 삼고 있지만 하는 일의 많은 비중을 프로그래밍하는 일, 소프트웨어 개발이 차지한다. 프로그래머로 살아가는 것은 아직까지는 매우 즐겁다. 빠르게 변하는 분야라서 신기하기도 하며 내 생각과 손으로 만들어진 어떤 것을 사람들이 손쉽게 사용한다는 부분 또한 그러하다. 실제를 업무를 하는 것은 재미있지만 가끔 부족함을 느끼는 경우가 있다. 여기서 업무를 함에 있어 부족함이란 개발에 소프트웨어 개발에 대한 부분이다. 이러한 부족함은 자연스럽게 몇 가지 고민을 만들어 주었다. 그 고민들은 다음과 같았다.
어떻게 하면 이 좋아하는 이 일을 잘할 수 있을까? 그리고 오래도록 할 수 있을까?
이러한 고민 사이에 눈에 들어온 책이 오늘 리뷰를 작성할 ‘프로그래머로 사는 법’이다. 약간의(?) 푸념을 하자면 이번 책은 워낙 두꺼워서 출퇴근 길에 가지고 다니면서 읽기가 매우 힘들었다. 동시에 책의 내용 자체도 방대해서 읽기가 힘들었다. 하나하나 다 읽어보는 방법으로 독서를 진행했지만 프로그래머로서 살아갈 때, 참고를 하고픈 어떤 부분이 생겼을 때, 꺼내보는 식으로 읽어보는 것도 좋을 것 같다는 느낌을 받았다.
개발자의 초심을 잡을 때 필요한 책
이 책은 소프트웨어 개발자로서 초심을 다지고 싶을 때 다시 보면 좋을 것 같은 책이다. 처음 소프트웨어 개발을 시작할 때, 필요한 여러 중요한 자세나 마음가짐들을 선임분들과 다른 멋진 개발자들의 글로부터 많이 보았었다. 그리고 그 시간이 지나 소프트웨어 개발을 시작한 지 1년 정도의 경력을 가진 필자가 읽었을 때, '이전에 이런 이야기를 들었지. 하지만 요즘은 별로 신경쓰지 않았던 것 같은데... 지금의 나는 개발자로서의 중요한 자세가 조금 무뎌진 것 같아' 등의 생각이 많이 들었다. 앞의 이야기처럼 이 책은 약간의 따끔한(?) 조언을 해주는 부분이 많았다. 조금 아쉽게도 IT 분야가 빠른 만큼 이 책도 세월이 좀 흐른 내용이 많이 있었다. 이 책은 201x초에서 중반으로 넘어가는 시기를 기준으로 작성되었다. 그래서 지금이랑 맞지 않는 부분이 있다. 하지만 기본이 되는 부분에 대한 자세를 강조하며 사례와 함께 잘 설명되어 있다.
초심을 잡을 때 중요한 것 중 하나가 그 분야의 대가가 어떻게 생각하며 일을 해왔는지가 도움이 많이 된다. 이 책에는 대가 혹은 동경하는 대상에게 많은 사람들이 궁금해하는 부분을 인터뷰로 정리해놓은 부분이 단원 마지막마다 있다. 초심을 잡을 때 왜 동경하는 대상의 생각, 인터뷰가 도움이 될까? 나는 이런 인터뷰가 동기부여라는 초심을 잡는데 큰 역할을 한다고 생각한다. 닮고 싶은 사람이 어떻게 해내가고 생각하는지를 보면 자연스럽게 따라해 보고픈 마음이 생기기 때문이다.
개발자가 가져야 할 마인드와 자세 그리고 업무를 해내가는 방법의 예시
첫 번째 예시는 제품에 대한 고민이다. 사용자가 원하는 제품을 프로그래밍하여 만들어 내야 한다. 그렇지 않으면 우리의 생각에서는 좋은 소프트웨어인지 몰라도 사용자가 원하지 않는 전혀 쓸모없는 소프트웨어가 된다. 쓸모없는 소프트웨어가 아닌 쓸모가 있는 좋은 소프트웨어를 만들기 위해서는 어떻게 해야 할까? 당연히 어떤 사용자(고객)를 타깃으로 할 것인지 어떤 점을 우리가 프로그래밍으로 해결해야 하는지, 어떻게 더 나은 사용성을 제공해야 할지를 고민해야 한다. 이러한 고민은 프로그래밍보다도 더욱 중요한 부분이다. 또한 프로그래머로 살아감에 있어서 가장 근본과 기본이 되는 생각이자 자세일 것이다.
두 번째 예시는 프로그래머로 일을 시작할 때, 그리고 일을 해내가면서 어떻게 자신의 역량을 끌어올려갈 것인가에 대한 부분 그리고 일을 함에 있어 시간 관리에 대한 부분이다. 역량을 올리기 위해서는 당연히 조금씩 시간을 내어 다른 프로그래밍을 해보거나 같은 프로그래밍 내의 개념을 정리하거나 다른 방법을 생각하여 정리하거나와 같은 일을 해야 한다. 시간을 조금씩 내기 위해서는 우선순위를 바탕으로 시간을 잘 분배하여 집중하여 일을 해야 할 것이다. 프로그래머가 일을 하면서 우선순위를 어떻게 정하는지 시간을 관리해나가는지 여러 예시와 사례들이 많이 있다. 이를 시간 관리를 바탕으로 개발하는 제품의 일정을 맞추는 것도 놓치지 말아야 한다. 빠르게 변하는 IT 분야에서 자기 계발과 함께 시간관리는 프로그래머를 그만두기까지 영원히 땔 수 없는 부분일 것이다. 이러한 관점에서 어떻게 해야 할지 모를 때 다시 보면 좋을 것 같다.
세 번째 예시는 소프트웨어 개발자의 조직 생활과 회사 생활에 대한 부분이다. 당연히 우리는 회사라는 조직 내에서 생활을 해야 한다. 소프트웨어 개발이라는 일을 하면서 조직생활을 어떻게 할지에 대한 부분이 여러 사례와 함께 서술되어 있다. 슬럼프 및 어떤 곤란한 일을 마주하였을 때 찾아보면 좋을 것 같다. 이 여러 사례 중 몇 개를 뽑자면 다른 개발자를 도와주며 일을 하는 방법과 상사와 개발 방향에 대한 마찰이 발생하였을 때 어떻게 대처할 것인가 등등이 있을 것 같다. 특히 상사 및 다른 사람과 개발 방향과 방법에 대한 마찰 부분은 많이 인상 깊었다. 최근에 협업을 하면서 내가 작성한 코드 부분 및 구조를 바꿀 일이 많았는데, '내가 만들었던' 부분이라 그런지 의견을 받아드리기가 어려웠다. 그때 이 책의 내용이 생각나면서 내가 만든 부분으로 인한 생각의 관성이 문제라고 생각하고 의견을 듣고 좀 더 깊게 생각하게 되었다.
개발하던 중 이러한 삶에 대한 초심을 다져야한다면 이 책을 떠올려 보자!
이 책의 시작과 마지막은 개발자라는 직업이 정말 멋지고 재미있는 직업이라고 설명한다. 또 앞에서 설명한 이 직업의 특성을 잘 살리기 위해서는 자신이 이 일을 좋아하고 즐겨야 한다는 부분을 강조한다. 소프트웨어 개발, 엔지니어링을 나는 좀 더 즐기면서 생활을 잘 해내가야겠다. 물론 지금도 1년 하고 4개월 정도가 지났지만 또 말하지만 여전히 일은 재미있다. 더 재미있게 하기 위해서 더 잘해보고 싶다. 무언가 무뎌진 느낌이 들 때, 간간히 찾아서 읽어보면 도움이 될 것 같다.
'Life > Book' 카테고리의 다른 글
세기의 쏘울 메이트 (0) | 2020.07.14 |
---|---|
코딩을 지탱하는 기술 (0) | 2020.06.27 |
IT에 몸담은 이들을 위한 지적생산기술 (2) | 2020.05.05 |
기계비평들 (0) | 2020.03.26 |
원통 안의 소녀 (0) | 2020.03.03 |