승귤입니다

[책읽기] 개발자로 살아남기

이 책의 목표는 독자 여러분이 30년 동안 개발자로 잘 먹고 잘 살 수 있게 하는데 있습니다. (224페이지)

거의 완벽한 코스요리 같은 책

어떤 식당에서 코스요리를 시켰는데, 애피타이저도 훌륭하고, 메인 음식은 더 훌륭하며, 디저트도 깔끔하다면 아주 좋은 식당이라고 할 수 있을 것이다.

개발자의 교양 서적은 대체로 무엇을 해라. 말아라. 혹은 이런 코드가 좋은코드이다. 이런 자세가 좋은 자세이다. 등의 매우 구체적인 실천 방법들을 다루는 책들이 많이 있다.

개발자로 살아남기는 조금은 독특한 구성인데, 개발자의 인생을 다루고 있다. 말그대로 개발자로 30년을 지내면서 온몸으로 체득한 교훈들을 한방울 한방울 쥐어 짜내서 나온 액기스를 269페이지라는 작은 분량에 담았다. 그래서 내용들이 아주 구체적이지는 않고 함축적이다. 그렇지만, 해야할 말은 다들어 있다.

저자는 개발자의 커리어를 30년으로 생각하고 제안하고 있다. 성장하는 10년, 리드하며 일하는 10년, 서포트 하는 10년. 100세 시대니 백발이 되어서도 개발할 수 있는거 아니냐는 반론은 책의 내용안에 들어 있으니 궁금하면 보시길 바란다.

각각 10년 단위로 필요로 하는 역량 9가지를 제안하고, 가장 마지막에 기본중의 기본으로 소개하는 시간관리에 대해서 다룬다. 개인적으로는 시간관리 부분이 가장 와 닿았다.

각 10년은 엔지니어링 역량, 매니지먼트 역량, 비즈니스 역량으로 나뉘며, 각 역량별로 3가지씩 필요한 기술들을 말해준다. 총 10가지의 기술이 나오게 된다. 표로 정리하면 아래와 같다.

구분 기술
엔지니어링 역량 개발에 대한 기본 지식, 제품에 대한 이해, 개발 주기 지식
매니지먼트 역량 프로젝트 관리, 팀 관리, 프로세스 관리
비즈니스 역량 인사 시스템, 사업 관리, 비전과 조직 문화

평생 공부하는 직업

아니 개발자로 30년 일하는데 이렇게나 많은 것을 해야되나? 라는 의문이 들 수 있다. 이에 대한 답은 이 책의 초반부에서 아주 명확하게 주고 있다.

개발자는 평생 공부하는 직업입니다. 공부가 싫으면 다른 길을 고민하는 편이 시간 낭비를 줄이는 방법입니다.

굉장히 담백하게 그냥 지나가긴하는데... 너무 맞는 말이다. 거기에 덧붙여서 나는 클라이언트 개발자니 서버 몰라도 돼 반대로 나는 하드웨어 개발이니 소프트웨어 몰라도 돼 이런 자세도 안된다고하고 있다. 개발은 모든 것이 유기적으로 엮여 있는 부분이 있으니 다른 분야의 지식을 잘 알고 있으면 더 좋다는 것이다.

아주 기본으로 다루는 것만 이정도다.

분야 상세지식
자료구조 스택, 힙
알고리즘 회귀 호출, 인덱스, 정렬, 이진검색
운영체제 프로세스, 스레드, 뮤텍스, 세마포어
디자인 패턴 MVC아키텍쳐
프로그래밍 언어 네이티브 코드, 콜바이 밸류, 콜 바이 레퍼런스
경험 간단한 텍스트 기반 게임 만들기

개발자로 살려면 정말 많은 것을 해야한다. 그래서 시간이 정말 부족하다. 10년 넘도록 개발자로 살면서 정시퇴근을 별로 못해본것 같다... ㅠㅠ

크리티컬 싱킹

이 부분은 이 책에서 잠깐 다루고 넘어가는 부분이긴 하다. 하지만, 책의 전반에서 크리티컬 싱킹에 대한 내용들이 담겨져 있다. 요지는 일을 하되 왜 하는지, 상사가 나에게 원하는게 뭔지, 어떻게 하면 더 잘 할 수 있을지 입체적으로 생각하고 행동하라는 의미이다. 그러한 자세가 스스로를 발전 시킨다는 의미이다. 자세한 내용은 책을 보시길...

리딩하며 일하는 10년

딱 지금 나의 위치가 이 쯤인데... 다양하게 알게 된게 많다. 일단 매니지먼트의 5가지 기본 소프트 스킬에 대해서 알아보자. 1 소통, 2 협업, 3 긍정적인 자세, 4 프로의식, 5 리더십이다.

이중에 강조하는 것이 소통과 리더십인데, 소통에는 투명성이 필요하다. 투명성은 사람들이 알아야할 정보를 잘 공급해주는 것을 의미한다. 그래서 부하직원이 리더가 어떻게 행동할지 예측 할 수 있게 해주어야한다. 리더십은 여러가지를 말하지만, 그중에 이 첵에서 강조하는 것은 인사이트이다. 리더는 본인이 속한 공동체를 올바른 방향으로 이끌어야하는데, 그렇게 하려면 인사이트가 필요하다. 인사이트는 책과 사람 크리티컬 싱킹으로 개발 할 수 있다.

팀훈 : 행복, 학습, 목표

21세기에 다 큰 어른들이 일하는데 팀훈이라니..? 라는 생각이 들 수 있지만, 개인적으로는 매우 동의했던 구절이다. 직장에서 행복하고, 매일 회사에서 배우며, 팀목표와 개인목표를 정하는 것. 이 3가지를 키우기 위해 관리자는 노력해야 한다고 말하고 있는데, 매우동감한다. 이중에 2개만해도 좋은 팀이라고 생각한다.

비즈니스 역량

사실 이 부분은 말그대로 조직의 맨 윗단에서 회사라는 조직을 바라보는 관점에서 쓰신 글일 텐데, 잘 모르는게 많아서 그냥 읽기만 했다. 채용은 어떻게 하는 것이 좋은지, 비즈니스를 키우기 위한 전략은 어떤게 있는지, 조직문화는 어떤 것이고 비전은 어떤것이고 등등 사실 나와 크게 관련이 없는 부분도 많았지만, 실제 사례들이 잘 나와 있어서(마이크로소프트등) 재밌게 술술 읽었다.

시간 관리 비법

개인적으로는 이 책에서 가장 많은 깨달음을 준 챕터이다.

시간은 돈이고 절약해야하는데, 매일 매일 같은 삶을 살면 바뀌겠냐는 것이다. 시간을 측정하고 계획하고 몰입하고 최적화하고 휴식을 잘 취해서 항상 부족한 시간을 잘 관리하는 노하우를 알려준다.

시간을 잘 관리하지 못해서 엉망진창인 경우에도 도움을 주는 엉망진창 늪에서 벗어나기라는 구절도 있으니 보면 좋을 것이다.

마지막으로는 저자의 시간관리 비법도 알려주고 있다.

마무리

신입부터 30년을 가득채운 경력자까지 볼 수 있는 책을 써내는 것은 쉬운일이 아닐 것 같은데, 이런 일을 해낸 저자분이 존경스럽다. 저자분의 경력도 어마무시한데, 그런 일들을 그냥 하고 싶으니깐 했다는 식으로 적혀 있어서 대단하다는 생각도 든다.

개발자 교양서적으로 추천하는 1위의 책은 실용주의 프로그래머인데, 앞으로 이 책도 같이 추천해야 겠다는 생각이 든다. 안보신 분이라면 무조건 읽으시는 것을 추천한다. 개발자 인생에 도움되는 지혜들이 가득 들어있다. 물론 실천을 하는 것은 우리의 몫이다.


이전글: Java17을 쓰면 좋을까?
다음글: 안드로이드의 에뮬레이터의 https 프록시로 mitmproxy 를 써보자
(2019.5.13) made by seungkyoo