데이브 후버, 애디웨일 오시나이 저
[프로그래머의 길, 멘토에게 묻다 - 데이브 후버, 애디웨일 오시나이]
[소프트웨어 엔지니어링에 대한 길라잡이]
오랜만에 서평을 작성합니다. 이번에 서평을 작성하는 책은 [프로그래머의 길, 멘토에게 묻다]라는 제목을 갖고 있는 책입니다. 이 책은 구글의 엔지니어인 애디웨일 오시나이와 데이브 후버라는 소프트웨어 엔지니어가 초급 소프트웨어 엔지니어가 '초짜' 딱지를 떼어내는 길에 대해서 다룬 책입니다. 평소에 다루던 주제와는 조금 다른 주제를 갖고 있는 책입니다. 투자나 철학, 수학에 관한 책이 아니라 프로그래밍과 소프트웨어 공학에 대해서 다루고 있으니 말입니다. 뜬금없이 소프트웨어 공학과 관련된 책을 읽고 서평을 남기는 이유는 요즘 제 관심사와 관계가 있습니다.
저는 인문계 고등학교 문과 교육과정을 이수하고, 상경계열에서 학사학위를 취득했습니다. 공학과는 거리가 먼 교육을 받아왔습니다. 어려서부터 과학과 수학 분야에 대해서 관심은 있었습니다. 하지만 우연히 접한 애덤 스미스의 국부론과 로저 로웬스타인의 버핏이라는 책 때문에 경제학과 투자에 꽂혀버리는 바람에 어쩌다 보니 고등학교는 문과로, 대학은 상경계열로 진학을 했습니다. 그런데 사실 대한민국에서 문과, 상경계열 졸업자에 대한 수요와 공급은 공급자에게 유리하지 않습니다. 왜냐하면, 기본적인 산업 구조가 제조업 기반이기 때문에 수요는 공학 계열에 몰려 있는데, 막상 공급단에서는 공학 계열 졸업자만큼이나 비공학 계열 졸업자가 많이 배출되기 때문입니다. 물론 상경계열의 교육을 받았기 때문에 다른 비공학 계열에 비해서 더 나쁜 상황은 아닙니다. 하지만 우호적인 환경인 것도 물론 아닙니다. 그래서 개인적으로 전공인 경제금융에 대한 공부와 함께 실제 노동시장에서 나만의 역량이 되어줄 수 있는 '기술'에 관심이 있었습니다. 대학의 재학 중에도 컴공과 자과대 수업을 들은 것도 그런 관심의 일환이었습니다. 그리고 많은 공학적 분야 중에서 가장 흥미롭고 관심이 가는 분야가 컴퓨터 공학이었습니다. 이는 컴퓨터 공학의 오브젝트인 '컴퓨터'라는 도구가 상당히 흥미로운 도구이기 때문입니다.
개인적으로 컴퓨터는 대단히 무식하면서 동시에 똑똑한 도구라고 생각합니다. 실제로 할 줄 아는 것은 스위치를 켜고 끄는 것 밖에 없습니다. 그런데 동시에 컴퓨터를 통해 할 수 있는 일은 무궁무진합니다. 스위치를 켜고 끄는 단순한 행위만 할 수 있기 때문에 역설적으로 조합을 통해서 무궁무진한 일을 할 수 있는 것입니다. 컴퓨터 공학에 대해 관심을 갖게 된 것이 요즈음이 처음은 아닙니다. 학부 2학년 때부터 컴퓨터에 관심이 있었고, 그래서 CS 다중전공을 신청하기도 했었습니다. 당시 페이스북, 구글, 애플 같은 세계적인 IT 기업의 행보가 인상 깊었고, 무궁무진한 잠재력을 가진 컴퓨터라는 도구에 대해서 공부하고 싶었습니다. 그런데 막상 조금 공부를 해보니, 제 손에서 컴퓨터는 그냥 조금 뛰어난 계산기에 불과했습니다. 그리고 이런 계산기로 구글 같은 서비스를 만든다는 것이 제 역량으로는 불가능하다고 생각되어 얼른 주전공으로 돌아왔습니다.
그런데 주전공 이수를 끝내고, 여유를 갖고 재미 삼아 공부하기 시작하니 단순한 계산기인 컴퓨터가 조금 다르게 보였습니다. 컴퓨터는 단순한 계산기이지만 동시에 계산기가 아니었습니다. 가장 큰 차이점은 'if'와 같은 조건과 'for'와 같은 반복 행위를 '설계'할 수 있는 계산기라는 점입니다. 그리고 예전에는 불가능하게만 보였던 많은 소프트웨어 작품들이 결국은 조건과 반복 수많은 조합을 통해서 만들어졌다는 것을 깨달았습니다. 그리고 또 한 가지 흥미로었던 부분은 컴퓨터는 인간의 사고와 물리적 공간의 접점에 있다는 점이었습니다. 앞에서 언급했다시피 컴퓨터라는 도구가 할 수 있는 일은 구체적으로 스위치를 켜고 끄는 것뿐입니다. 그리고 스위치가 켜지고 꺼지는 것은 결국 전자를 다루는 일입니다. 즉 컴퓨터는 물리적 차원 너머에 있는 인간의 사고를 전자의 움직임에 대한 통제를 통해서 물리적 차원으로 구현하는 도구였던 것입니다.
이 부분을 이해하고 나니까 바로 드는 생각이 어렸을 적 읽었던 수많은 판타지 소설들입니다. 대부분의 판타지 소설에서 '마법사'라는 존재들은 세상에 존재하는 원소를 재배치함으로써 어떤 현상을 구현하는 사람들입니다. 그런데 사실 컴퓨터라는 도구를 능숙하게 다루는 프로그래머라는 사람이 하는 일도 판타지 소설 속의 마법사들이 하는 것과 크게 다르지 않습니다. 결국 컴퓨터라는 도구를 통해서 직간접적으로 전자의 움직임을 제어해서 어떤 사고의 결과물을 구현하는 것이 프로그래머들의 일이기 때문입니다. 그래서 그런지 다음에 서평을 쓸 MIT 대학의 컴퓨터 과학 입문 교과서 [컴퓨터 프로그램의 구조와 해석]은 '마법사 책'이라는 별명으로 유명합니다.
아무튼 이런 까닭에 요즘 컴퓨터 공부에 미쳐있습니다. 그리고 저처럼 아직 숙련 프로그래머는 고사하고 견습 프로그래머도 못된 사람들에게 가장 도움이 되는 책이 바로 이 [프로그래머의 길, 멘토에게 묻다]라는 책이라고 생각합니다. 고민했던 대부분의 주제와 상황에 대한, 먼저 경험한 사람들의 지혜가 녹아 있습니다. [실용주의 프로그래머]라는 책이 상당히 유명한 것으로 알고 있는데, 사실 완전 초짜 입문자에게는 공감하기에는 너무 먼 이야기들이 많다고 생각합니다. 반면에 이 책은 [실용주의 프로그래머]라는 책을 보기에는 아직 이른 입문자들에게 좋은 이정표가 되어주는 책이라고 생각합니다.
특히 "소프트웨어 장인정신", "흰 띠를 매라", "부숴도 괜찮은 장난감" 부분이 인상적이었습니다. 자세한 내용은 직접 책에서 확인하시기 바랍니다. 강추합니다 :)
프로그래머의 길, 멘토에게 묻다
저자 데이브 후버, 애디웨일 오시나이
출판 인사이트
발매 2010.07.26.