너무 많은 책을 소개하지 않도록 열심히 선별하였다.

추측과 논박, 열린 사회와 그 적들

추측과 논박(1,2권), 열린 사회와 그 적들(1,2권)은 내 전공서이다(내 전공은 서양철학이다).

칼 포퍼의 책들

칼 포퍼의 반증주의는 내 인생의 길잡이가 된 중요한 방법론이다.

과학철학에서는 이제 패러다임이 바뀐 고리타분한 옛 이론일지도 모르지만, 나에게는 프로그래머에게 필요한 과학적 접근방법을 터득하게 해 주었으며 나아가 내 인생 전체를 바꿔버린 파워 솔루션이다.

나는 거의 모든 중요하고 사소한 판단을 할때 칼 포퍼의 방법론을 생각한다.

나는 20대 내내 이 책을 여러 차례 읽었다.

심지어 군대까지 가져가서 읽었는데, "이병이 책을 읽는다니 미쳤냐"며 밤에 자다가 끌려가 얻어맞기도 했다.

아프고 괴로웠지만 나는 그것을 아득히 초월하는 이득을 얻었다.

나는 이제 반증주의 과학자처럼 생각할 수 있게 됐기 때문이다.

상자 밖에 있는 사람

상자 밖에 있는 사람

이 책은 단순하지만 중요한 사실을 알려준다. 다른 사람의 마음을 헤아려 보는 역지사지를 머리로만 아는 것이 아니라 실제로 염두에 두고 행동하는 것이 얼마나 중요한지를 깨달을 수 있었다.

내가 존경하는 동료 개발자 중 한 분이 추천해주셨던 책인데, 뒤늦게 읽고나서 더 빨리 읽었으면 좋았겠다고 생각했다.

주위의 모든 사람에게 추천하고 싶은 책이다.

소설 형식이라 읽기 편하며 내용이 많지 않아 빨리 읽는 사람이라면 1 시간이면 다 읽을 수 있다.

싫어하는 사람의 마음도 이해할 수 있는 마음의 그릇을 갖고 싶고, 다른 사람과 진실하게 가까워지고 싶다면 이 책을 꼭 읽길 바란다.

나는 이 책을 최근에(2020년) 읽었다. 그럼에도 불구하고 나에게 큰 깨달음을 준 책이다.

드라이브

드라이브

잘 하고 싶은 것이 있는데 잘 안된다면 읽어볼만한 좋은 책.

공부, 일, 운동 등등 그냥 잘 하는 게 아니라 숙련자가 된다는 것과 그 의미와 행복에 대해 많이 생각할 수 있었다.

어찌보면 요즘은 흔히 찾아볼 수 있는 이야기지만 책 구성이 좋아서 전달이 아주 잘 되었다.

2020년 초에 읽은 책이다.

머피의 법칙 지혜의 패러독스

머피의 법칙

내가 중학생일 때 구매한 책인데, 삼십대 후반이 된 지금까지 항상 책상 옆에 놓고 종종 펼쳐본다.

굉장히 비관적인 이 책은 정말정말 힘들 때 위로가 된다.

다음은 이 책의 일부를 인용한 것이다.

머피의 법칙
잘못될 가능성이 있는 것은 잘못된다.

머피의 철학
웃어라, 내일은 더욱 나빠질 것이다.

루바르스키의 사이버네틱 곤충학 법칙
버그는 늘 한 머리가 더 있다.

해커스

해커스

개발 2년차였던 2013년에 읽었다.

한번 잡으면 밤새도록 읽게 되는 IT 무협지. 엄청나게 재밌다.

읽으면서 뛰어난 개발자가 되고 싶은 욕심이 활활 타오르는 것을 느꼈던 기억이 난다.

2019년에 "해커, 광기의 랩소디"라는 제목으로 다시 출간되었다.

프로그래머로 사는 법

존 벤틀리, 제임스 고슬링, 스티브 워즈니악, 피터 노빅, 비야네 스트롭스트룹, 리처드 스톨만, 그래디 부치, 리누스 토발즈 같은 엄청난 사람들의 인터뷰가 수록된 책.

이 책을 집어들면 성좌들의 격려와 조언을 받는 셈이라고 생각하곤 한다.

개발 2년차였던 2013년에 읽은 책으로, 모든 조언이 좋았지만 특히 시간 관리와 관련된 조언들이 그 무렵의 나에게 특효였다.

The Goal (만화판)

The Goal

굉장히 두꺼운 경영서의 고전을 만화로 쉽게 요약한 책.

개발자가 이 책을 손에 잡으면 리얼월드의 공장, 물류창고를 "리팩토링"하고 "최적화"하는 이야기가 뇌로 흘러 들어오는 신기한 경험을 할 수 있다.

재밌을 뿐 아니라 실제 세계에서의 최적화에 대한 통찰이 많이 담겨 있어 개발자로서의 안목을 성장시키는 데에도 도움을 받을 수 있었다.

2019년에 읽었다. 더 일찍 읽었다면 좋았을 것이다.

Practical VIM

Vimcasts의 Drew Neil이 쓴 최고의 Vim 입문서. Vim을 엄청나게 잘 쓰는 사람의 실용적인 조언이 가득하다.

2017년에 한국어판이 출간될 때, 오탈자 교정 등에 나도 참여했다.

2017년의 나는 온갖 시행착오 끝에 가까스로 Vim을 익숙하게 쓰고 있었는데, 2012년에 이 책을 알았다면 2013년 즈음에는 2017년의 나 못지 않은 능숙한 Vim 사용자가 되었을 것이라 생각한다.

리눅스 커맨드라인 완벽 입문서

2016년에 읽었다. 리눅스 터미널 초보 탈출을 도와준 고마운 책이다.

요즘은 더 좋은 책이 많이 나왔겠지만, 그럼에도 이만한 책은 드물 것이라 생각한다.

HTTP 완벽 가이드

웹 개발자라면 반드시 읽어야 할 책이라 생각한다.

이 책은 두껍다는 이유로 안 읽는 사람이 많은 무공비급이다.

특히 비전공자라면 최대한 빨리 구매해서 읽기를 바란다. 비전공자라면 이 책을 남들보다 한 페이지라도 더 읽어야 한다.

카탈로그 방식의 책이라 챕터별로 분할 정복해 읽는 방법이 괜찮았다.

역자인 이응준님의 2015년에 작성하신 웹 프로그래머를 위한 HTTP 완벽 가이드 읽는 법도 함께 읽어볼만 하다.

Head first Design Pattern

GoF의 디자인 패턴은 초보자에게는 매우 어려운 책이다.

헤드 퍼스트 디자인 패턴은 쉽고 재미있게 디자인 패턴과 OOP 핵심을 알려준다.

읽다 보면 설명의 친절함에 감탄한다.

나는 이 책을 읽을 때 GoF의 디자인 패턴을 옆에 두고 같이 읽었다.

GoF 책을 공부하다 좌절했다면 이 책과 함께 다시 읽어보길 권한다.

Code Complete 2

개발 1년차일 때 읽었다.

이 책이 미국 마이크로소프트에 입사한 신입 개발자에게 제공되는 책이라는 소문을 어딘가에서 들었는데, 그 소문을 듣자마자 "그렇다면 나도 무조건 읽어야겠다"고 생각했다.

1180페이지로 엄청나게 두껍지만, 독학으로 공부할 때 얻기 어려운 고급스러운 통찰과 소중한 조언이 가득하다.

이 책을 읽고 응용한 경험이 꽤 많아 일일이 적을 수가 없다.

2005년에 한국어 번역 초판이 나오고 오랫동안 절판된 상태였지만 2017년에 재출간되었다.

이펙티브 자바

자바 언어 사용자라면 반드시 읽어야 하는 책이라고 생각한다.

왜냐하면 조슈아 블로크의 책이기 때문이다.

JDK에 내장된 주요 클래스들을 열어본 적이 있다면 높은 확률로 그의 이름을 본 적이 있을 것이다.

  • Throwable, Collection, List, Map, HashMap, ArrayList 등등.
 *
 * @author  Josh Bloch
 * @see HashMap
 * @see TreeMap
 * @see Hashtable
 * @see SortedMap
 * @see Collection
 * @see Set
 * @since 1.2
 */
public interface Map<K, V> {

Pro Git

Git 책은 이 한권으로 충분하다고 생각한다.

나는 Git 책은 이 한 권만 읽었고, 아무런 불편함 없이 Git을 다루고 있다.

git-scm.com 메인 페이지에서도 추천하는 책이다.

페르마의 마지막 정리

부모님 집에 있는 책이라 사진을 찍지 못했다.

사이먼 싱의 엄청나게 재미있는 수학 역사책.

아주 어려운 문제를 수많은 사람들이 오랜 세월동안 풀어가는 이야기이다.

열정과 끈기, 수학에 대한 사랑이 타오르게 되는 책이다.

고등학생 때 처음 읽었지만 몇 년마다 다시 읽으면서 감탄한다.

프로그래밍 수련법

브라이언 커니핸과 롭 파이크의 책.

바람직한 소프트웨어를 만들기 위한 훈련을 제공하는 좋은 책이다.

읽는 동안 두 대가의 조언과 보살핌을 받을 수 있다.

코끼리와 벼룩

조직을 벗어난 개인으로서 어떻게 해야 할지를 궁리하는 내용을 담고 있는데, 미래에 대한 통찰력이 대단하다.

삶과 배움, 성장에 대해 관심이 많은 사람이라면 꼭 읽어보길 바란다.

읽으면서 여러번 놀랐고 큰 영향을 받았다.

2019년. 내가 정말 힘들었던 시기에 읽었다.


이 책은 존경하는 지인에게 받은 책이기도 하다.

이 책에는 사연이 있다. 내가 읽고 나서 갖고 있다가 이 책이 필요할 것 같은 사람에게 주면 된다고 한다.

이렇게 여러 사람에게 돌고 있는 책이다. 지금은 내가 갖고 있지만 나도 다른 사람에게 주게 되겠지.

테스트 주도 개발

나를 개발자의 길로 이끌어준 고마운 친구가 추천해줘서 개발 2년차에 읽은 책.

이 책을 2년차에 읽고 연습을 할 수 있었다니 나는 엄청나게 운이 좋았다.

이제 내 주위에 TDD를 모르는 사람은 아무도 없다.

SI 탈출에 직접적인 도움을 준 굉장히 고마운 책이다.

테크니컬 리더

[[/people/gerald-weinberg]]의 책은 다 좋다. 아직 번역되지 않은 책이 많을텐데 더 많이 나왔으면 좋겠다.

절대로 쉽게 휙휙 읽을 수 있는 책이 아니다.

매 페이지마다 깊게 고민하고 열심히 생각하며 읽어야 한다.

그냥 프로그래밍 뿐만 아니라 다양한 문제를 해결하는 방법에 대해 고민하게 된다.

컨설팅의 비밀

제목만 읽으면 개발과 관련 없을 것 같은데 저자가 [[/people/gerald-weinberg]]다.

이 책을 읽으면서 개발자는 한편으로는 컨설턴트이기도 하다는 사실을 깨달을 수 있었다.

개발자는 시키는 것만 하는 사람이 아니라, 많은 사람들과 상호작용하며 요구 조건을 축약하고 해결 방안을 창의적으로 생각해 역으로 제안하는 사람이기도 한 것이다.

괴델, 에셔, 바흐

철학과 2학년이었던 2003년에 읽었다.

철학/예술/문학/컴퓨터과학/생물학을 엮는 정말 엄청난 책.

이 책에서 다루는 학문의 범위와 언어유희, 재귀(프로그래밍에서 말하는 그 재귀 맞다)에 대한 깊숙한 통찰에 압도되었었다.

마지막 페이지까지 열심히 읽으면서도 디테일에 대한 이해는 못 하는데, 이해를 못 해도 상관없었다.

단지 들여다본 것만으로도 모든 것에 재귀하는 패턴이 있다는 통찰을 얻을 수 있었다.

DNA의 자기복제와 단백질 구조 이야기가 나오는 챕터를 읽을 때 아미노산의 나열이 일종의 어셈블리 코드라는 사실을 깨닫고 충격을 받았던 기억이 아직도 생생하다.

2017년에 개역판이 나왔고 절판이 될까봐 얼른 사뒀으나 아직 개역판을 읽지 못하고 있다.

로젠의 이산수학 7판

2019년에 열심히 공부해서 1회독을 일단 완료한 책.

개발과는 관계 없이, 그냥 흥미와 재미를 위해 공부한 책이다.

나는 중학생 때부터 수학을 아주 좋아했고, 제일 잘 하는 과목이었고, 항상 수학자와 과학자를 동경했다.

전혀 기대하지 않았는데도 개발 방면에 좋은 훈련이 되어 보람을 많이 느꼈다. 특히 그래프 모델을 다루는 챕터에서 큰 도움을 받았다.

TCP/IP 완벽 가이드

2019년에 로젠의 이산수학을 다 읽고 나서 읽었다.

1500 페이지의 두꺼운 책이지만 카탈로그 포맷의 책이라 아무 곳이나 펼쳐서 읽어봐도 좋다.

나이 많은 할아버지 개발자에게 옛날 이야기 듣는 것 같은 부분이 많아 은근히 재미있었다.

굉장히 많은 프로토콜에 대한 설명이 들어있어서 비전공자의 부족한 상식을 메꾸는 데 큰 도움이 되었다.

데이터 중심 애플리케이션 설계

2018년에 읽었다.

백엔드 개발자를 위한 마법서 같은 책이라 생각한다.

다 이해하진 못했지만 몇 번이고 끝까지 읽고 싶은, 굉장한 노하우와 문제 제기가 있다.

내용을 다 이해하고 실천할 수 있다면 정말 마법사 레벨의 개발자가 될 것 같다.

미래를 만든 Geeks

2019년 12월 24일에 읽었다.

나는 이런 종류의 IT 역사책을 좋아한다.

굉장한 사람들이 굉장하게 일을 하는 모습을 책을 통해 엿보는 것은, 대단한 자극이 될 뿐 아니라 어떤 식으로 일하는 것이 좋은 것인지에 대한 고민을 멈추지 않게 한다.

이 책에서 가장 인상적인 인물은 빌 앳킨슨이었는데, 몇 가지 일화를 읽으면서도 많이 배운 느낌을 받았다.

초난감 기업의 조건

"초우량 기업의 조건"이라는 책의 제목을 비꼰 제목을 갖고 있다.

유명한 IT 공룡들의 실패 사례를 모아놓은, 엄청 웃긴 이야기(진짜 배꼽 빠지게 웃긴다)가 가득하다.

그러면서도 실패 사례에 대한 저자의 통찰이 대단해서 몇 번이고 읽게 된다.

코딩을 넘어선 개발의 종합적인 측면에 대한 이해도를 높이는 데에 좋았다.

프로그래머의 길, 멘토에게 묻다

이 책의 원제는 "Apprenticeship Patterns"이다.

디자인 패턴처럼 프로그래밍 수련자가 특정한 상황에 선택할 수 있는 전략들을 모아놓은 주니어 개발자 손자병법 같은 책이다.

초보 개발자의 커리어를 위해 좋은 결정을 내리는 방법에 대한 이야기가 많다.

클린 아키텍처

밥 아저씨의 책.

클린 아키텍처를 도출하는 과정에서 다양한 유명 아키텍처와 패턴을 이해하기 쉽게 설명해준다.

밥 아저씨의 다른 책들과 겹치는 내용도 있지만 그럼에도 불구하고 내용이 재미있고 이해하기 쉬워서 좋았다.

책이 그리 두껍지 않아서 반복해서 읽기 좋았다.

자바스크립트 핵심 가이드

이 책은 누군가에게 빌려줬고 다시 돌려받지 못했다.

1년차였던 2012년에 읽었다.

나를 더 나은 개발자로 성장하는 데에 큰 자극을 주었을 뿐 아니라, 기차 레일 다이어그램이라는 훌륭한 표현법을 배울 수 있어 큰 이득을 얻은 책이다.

나는 이 책을 키보드로 타이핑하면서 필사하듯 읽었다. 그러다가 새끼 손가락에 관절염이 걸렸고, 새끼 손가락이 아프지 않게 키보드 쓰는 방법을 조사하다가 Vim을 쓰게 됐다.

즉 내가 Vim을 쓰게 된 계기가 된 책이다.

함수형 자바스크립트 / 마이클 포거스

2015년에 읽은 책.

이 책은 예제 언어로 자바스크립트를 사용하고 있을 뿐인 함수형 프로그래밍 책이라고 생각한다.

함수형을 처음 접한다면 이 책의 예제 하나하나가 매우 즐겁고 재미있어서 읽는 내내 시간가는 줄 모를 것이다.

이 책에서 다루는 내용은 언어와 유행에 크게 영향받지 않는다고 생각한다.

가상 면접 사례로 배우는 대규모 시스템 설계 기초

2021년 8월에 읽은 책. 원제는 System Design Interview.

가뭄에 내린 단비 같은 책이다.

이 책은 시스템 디자인을 위한 요구사항 분석부터 실제 설계를 할 때의 주의사항들까지를 훑어볼 수 있어 매우 좋다.

참고문헌이 잘 정리되어 있어 추가적인 학습을 하기에도 좋다.

얼마전에 이 책을 마지막 페이지까지 읽었지만 근처에 두고 계속 읽고자 한다.

귀찮아서 아직 상세 내역을 적지 않은 책들

  • 다양한 언어로 배우는 정규표현식 / 신야 료마, 스즈키 유스케, 타카타 켄
  • 함께 자라기
  • 개발 7년차, 매니저 1일차
  • 초고속 성장의 조건 PDCA
  • 맨몬스 미신
  • 해커와 화가
  • 라이프 해커
  • 마이크로서비스 구축과 운영 / 수잔 파울러
  • 컴퓨터과학이 여는 세계
  • 클릭을 발명한 괴짜들
  • 데이터 중심 애플리케이션 설계
  • 알고리즘, 인생을 계산하다
  • 미래를 만든 Geeks
  • 피플웨어
  • 프로그래밍 심리학
  • 프로젝트가 서쪽으로 간 까닭은
  • 데브옵스 핸드북
  • 마이크로 서비스 아키텍처 구축