Book
입사 후 책 읽은 목록
개발자의 글 쓰기
Clean Code
말의 그릇
언어의 온도
일상의 악센트
입사 후 읽고 있는 책 목록
넛지
쿠팡 UX Bible (사용자를 생각하게 하지마!)
추천받은 책?
객체지향적으로 생각하라
헤드퍼스트 - OOP
XP
조엘온소프트웨어
개발 필독서
실용주의 프로그래머
프로그래머의 마음 가짐에 대해서 알려주는 책들 중 가장 적절한 분량에, 핵심 메시지를 잘 요약 전달 해주는 책이다.
자신이 프로그래머인 행세만 하고 살고 싶은 지, 프로그래머가 되고 싶은 지를 이 책의 가르침을 얼마나 따를 수 있는 지로 평가해도 될 만큼 좋은 책.
대체 뭐가 문제야?
이 책은 프로그래밍 서적이 아니지만, 나는 프로그래머의 필독서로 전혀 부족함이 없는 책이라고 생각한다.
프로그래머는 난제를 자주 맞이하는 숙명을 안고 사는데, 이 숙명에서 유용할 수 있는 책이라고 확신한다.
특히 문제 해결을 위해선, 해결 능력 혹은 해결 권한을 가진 사람의 문제로 만들어야 한다는 얘기는, 직업 프로그래머 생활 하는 내내 큰 도움이 되었다.
누워서 읽는 알고리즘
먼저 나온 것은 행복한 프로그래밍이지만, 나는 임백준씨 서적 중에 제일 먼저 읽게 된 서적이다.
어려운 알고리즘을 누워서 읽을 수 있다고? 약을 파는 듯한 제목이었지만, 그 약은 마약도 아니고 나에게 충격이며 감동이었다.
알고리즘 이야기를 다양한 주제와 엮어 쉽게 표현한 임백준씨의 재능은 임작가라는 별명 처럼 뛰어나며, 개발자계의 로맨티스트가 아닐까 싶은 감동을 주었다.
당신이 프로그래밍으로 인해 조금 지친다면, 이 책을 읽어보는건 어떨까?
행복한 프로그래밍
위에서 너무 극찬을 많이해서 딱히 쓸말은 없다.
다만 프로그래밍으로 인해 행복하다는, 행복하기 위해 프로그래밍 한다는 그런 말도 안될거 같은 이야기에 속아보고 싶다면 이 책을 읽어봐라. 아마도 임백준씨의 다른 책들도 모두 읽게 되겠지만, 시작은 이 책이나, 누워서 읽는 알고리즘이 적당할 것이다.
Refactoring
이 책을 제대로 읽고, 리스크가 적게 리팩토링해라.
특히 서비스 중인 코드를 고칠땐 더더욱.
괜히 설계 다 뒤엎고 새로짜면서 리팩토링한다고 착각하지 말자.
리팩토링은 동일한 동작을 유지하면서라는 전재가 있다. 잊지 말자.
Legacy 코드 활용 전략
Legacy 코드에서 배워라.
Legacy 코드를 안정적으로, 개선하는 Test Driven Refactroing에 대한 방법과 방향성에 대해서도 알 수 있는 좋은 서적이다.
몇몇 방법은 Legacy 코드를 감추면서라도, 기존 동작을 유지하라는 이야기도 있는데, 찜찜하면서도 합리적인 해결책중 하나였다.
어찌보면 문제를 격리하고, 이외의 영역을 Clean하게 관리하고 보호할 수 있다면 그것도 나쁘지 않겠다 싶은 결론이다.
Test Driven Development
지금은 한풀 꺾인 TDD에 대한 바이블.
지금은 TDD보다는 유닛 테스트 자체가 살아남은 편이고, 코드 리뷰에 대한 관점이 더 많이 고민되고 있는게 사실이지만, TDD 자체가 무의미하진 않다.
번거로울 뿐.
그 번거로움을 낮추는 이야기가 없고, 쉽지 않은 문제라 (프로젝트의 상황과 레거시 코드의 뿌리에 따라 다르기 때문) 그렇겠지만, TDD로 개발할 수만 있다면 퀄리티는 예상보다 크게 높아진다.
TDD를 한다고해서, 코드 리뷰나, 별도의 QA가 없어도 되는것은 아니다. □ 방심 금물.
Art of Unix Programming
폴리글랏 프로그래밍
자바의 발전 속도가 더디다 못해, 멈췄다고 느낄 때 쯤 나온 서적.
C#의 빠른 발전 속도와 발전 방향에 대한 찬양의 내용이 많아 국내에선 이견이 많았던 서적.
지금은 자바도 빠른 발전 속도를 내고 있지만, 오라클의 유료화로 인해 자바의 운명은 어찌 될지 잘 모르겠다.
결론은 적재 적소에 합리적인 언어 사용을 통해 효율과 완성도를 올리자는 이야기.
Modern Effective C++
이제는 C++ 0x 이후와 이전으로 나뉜다.
11, 14, 17등 마일스톤을 정해가며 지속적으로 발전하고 있는 C++에 대한 깊은 이해를 원한다면 이 책이 최적이다.
C++이 죽지 않았다고 주장하는 사람들의 근거가 될 수 있는 서적.
The C++ Programing Language
TCPL이라 불리우는 C++의 창시자 비야네 스트롭스투룹의 저서.
C++의 다양한 문법과 제약이 어떠한 근거로 만들어졌는지 알 수 있는 서적으로써, 언어에 대한 이해도를 한층 높일 수 있다.
이제와서는 Modern Effective C++과 같이 읽어야 더 큰 의미가 있을 서적.
현재 Modern C++의 발전 방향과 당시의 비야네 스트롭스투룹의 생각과 비교하면서 읽어보자.
코딩호러의 이펙티브 프로그래밍
스택 오버 플로우의 창시자가 말해주는 소프트웨어 개발/관리 이야기.
스택 오버 플로우의 창업자가 조엘만 알았는데, 제프 앳 우드가 엔지니어링 적인 부분을 대부분 책임지고 개발했다는 것을 나중에 알았다.
해외에서도 지원자에 대한 검증 이슈나, 프로그래밍도 못하는데 프로그래머로 지원하는 지원자가 있어서 괴롭다는 이야기를 할줄 몰랐다. 꽤나 큰 충격.
원격 개발을 하면서도 퀄리티를 낼 수 있고, 내고 있다는 사실에도 꽤나 큰 충격이었다.
이외에도 훌륭한 선배 프로그래머의 생각과 조언을 들을 수 있는 훌륭한 서적이 아닌가 싶다.
7가지 동시성 이론
병렬 처리에 대한 다양한 접근과 구현 방법, 변화 방향등을 살펴보며 대용량 처리의 근간인 병렬 처리 (동시 처리)에 대한 이해도를 높일 수 있다.
스케일 인 아웃이 중요하다지만, 여전히 인스턴스 내에서의 처리량도 크게 중요한 문제다. (쓰루풋 대비 스케일 아웃 해야 할 인스턴스가 덜 필요하기 때문)
그런 측면에서 꼭 읽어볼만한 책이 아닌가 싶다.
함수형 프로그래밍이 왜 화두인지, 스칼라가 왜 주목받았었는지, 액터 모델이 왜 각광 받았는지 등을 짧은 시간에 이해할 수 있는 좋은 책이었다.
Joel On Software & More Joel On Software
Trello와, 사업적 영역을 담당했지만 stack overflow로 더 유명한 조엘.
그의 통찰력 있는 개발에 대한 철학과 철칙을 배울 수 있는 멋진 서적이다.
처음 읽었던게 2005년인데, 주기적으로 읽을 때 마다 더 많은 걸 공감하고, 느껴지는게 많아지는 좋은 책이다.
애초에 그가 블로그에 쓴 글 중 일부러 옮겨온 만큼, 좋은 개발자는 어때야 하며, 좋은 개발팀은 어때야 하고, 좋은 회사는 좋은 개발자를 위해 무엇을 해야 하는지 뚜렷하게 제시했고, 합당했다.
소프트웨어 장인
큰 기대를 하지 않고 봤으나, 꽤나 괜찮은 내용이 많았다.
다만 현재 상황이 어떤가에 개의치 않고, 너는 잘해야되 라는 내용이 많아서, 꼰대같은 내용이라는 생각이 들 수도 있는 책이었다.
내 생각과 동일한 부분은 환경이 사람을 만든다는 말도 맞지만, 환경이 여의치 않더라도 내 자신을 발전 시켜놔야 더 좋은 환경을 내가 만들 수도, 그 환경을 쟁취할 수도 있다고는 생각한다.
Effective 시리즈
저자는 다르지만, C++의 scott meyers씨처럼 저명한 분들이 각 언어로 저술해주고 있는 언어의 철학, 깊이를 충족 시켜줄 수 있는 좋은 서적이다.
C++만해도, Effective C++, More Effective C++, Modern Effective C++ 3권이나 있고, Effective Java, Effective C# 등의 서적이 존재하는데, 해당 언어를 좀 더 이해하고 싶다면 꼭 읽어보는 것이 좋다고 생각한다.
저자가 다른데도 퀄리티가 준수한 것은, 애초에 언어의 문화, 철학에 대한 이해를 돕는 주제 자체가 좋은 거 같기도 하다.
C로 배우는 알고리즘 1 & 2
특정 언어에 편중된 책은 가급적 추천을 하고 싶지 않지만, 자료 구조와 알고리즘의 기초 언어로 가장 적합한 것이 C언어이다보니, 추천을 하게 됐다.
나 역시 대학 교재의 부족한 설명과 모호한 설명을, 이 책이 대신해줬다.
두고 두고 기억에 남는 자료 구조 및 알고리즘 기초 서적이라고 볼 수 있다.
린 소프트웨어 개발
애자일 개발서라지만, 실제론 효율론에 가깝다고 볼 수 있다.
수많은 애자일 방법론 서적이 있지만, 그 중에 가장 와닿고, 효율에 대해 다시 생각할 수 있는 거리들도 많아서 큰 도움이 된 서적이다.
피플웨어
요즘 들어 많이 중요하다고 더 느껴지는 책이다.
목표 지향적, 결과 중시 적어도 한국의 게임 회사에서, IT 회사에선 너무 많이 봤다.
조직의 동기부여에는 실패해놓고, 왜 열정이 없느냐고, 자신이 만들고 있는 제품을 사랑하지 않느냐고?
애사심이라는 것이 어떻게 생기는 것이고, 그것이 어떤 결과를 가져다 주는지 고민해봐야 하는 사람들 (관리자, 경영진)이 읽어봤으면 좋겠는 책.
하지만 그 들은 이런 책 읽지 않겠지….
사랑하지 않으면 떠나라
절판 된 서적이라 구하기 쉽지 않겠지만, 나는 개발자 들이라면 꼭 한번은 읽었으면 좋겠다고 생각하는 책이다.
꽤나 많은 개발자들이 곰같다. 둔하고 무던하고, 변화를 두려워한다.
그래서 불편하고, 괴롭고, 동기부여가 부족함에도 자신의 문제로 치부하고 묵묵히 일한다.
그렇다고 최상의 결과나, 좀 더 나아진 결과를 내는 데에도 실패한다.
왜냐면 이미 일은 일이 되어버렸고, 열정은 사그라졌지만 별다른 대안을 찾기에 두려움도 존재해 현실에 안주하기 때문이다.
또한 회사의 선택과 회사에서의 자신의 포지션, 자신의 업무가 그 회사에서 어떤 가치를 가지는 업무인지 등에 대한 다양한 생각을 가질 수 있게 도와준다.
책 제목이 강하게 번역되서 그렇지, 실제론 이직 추천서, 이직 종용서는 아니고 회사 생활을 좀 더 가치있고, 즐겁게, 동기부여 되어 업무에서의 성취감을 찾을 수 있게 도와주는 자기 개발서라고 보는 것이 더 옳다.
제목에 대한 편견을 버릴 수 있다면, 어떠한 마음가짐으로 개발자로써의 회사 생활을 맞이해야 하는지 판단에 도움을 줄 책이라고 생각한다.
해커와 화가
해커 (뛰어난 프로그래머. 프로그래밍 그 과정 자체를 즐기는 사람이라는 의미가 강하게 사용됨)를 화가에 비유하는 독특한 시점으로 쓰여진 책.
역자 서문에서 임백준씨도 밝히지만, 책 곳곳에서 느껴지는 오만하게 보일 수 있는 보수적인 관점이 불편할 수도 있다.
다만 프로그래밍을 온전히 즐기고자 했을 때, 어떠한 부분이 화가의 그것과 비슷한 지에 대한 그의 생각은 흥미로웠다.
프로그래머를 단순 공돌이로만 치부하기도 하는 현실도 무시하기 힘든 건 사실이지만, 프로그래밍에 대한 개념을 좀 더 독특한 관점에서 말해주기에, 그런 생각이 꽤 많은 프로그래머들에게 자극이었고, 발상의 전환에 도움이 될 좋은 이단스러운 책이라고 생각한다.
전반적으로 측정 언어에 편중된 책은 배제하려다보니, 인문학 관점에 가까운 책들을 더 많이 추천한 것 같다.
특정 언어에 편중된 책들 중에서 좋은 책을 추천하고 싶었는데, 아무래도 프로그래머 필독서로는 애매한게 아닌가 싶더라.
C++, C#, Java 등의 특정 언어에 편중된 서적은 따로 작성하는 것이 맞겠다는 싶더라. 다음 필독서 모음은 그렇게 작성해보겠다.
참고
Last updated
Was this helpful?