서적 분야/카테고리를 가르지 않고,
개인적으로 생각하시는 개발자 필독서를 한권 꼽아주실 수 있으신가요?
엉클밥의 클린코더 추천 합니다 대개의 경우에 '클린코드' 로 착각하시는 분들이 많으신데, 좋은 개발자가 되려면 어떻게 해야하는가에 대한 이야기를 합니다. 직접 회사에서 Action Item으로 실천해볼 항목이 많습니다. 개인적으로 특히 개발을 시작하시는 분들께서 가장 먼저 읽어야 되는 책이라고 생각합니다 :)
"페르시아의 왕자 : 개발일지" 입니다.
이 책은 개발자가 아니더라도 자기개발을 위한 필독서로 추천하고 싶습니다. 그 이유는 다른 자기개발 서적들은 성공한 이후에 쓰여진 것들 뿐인데(그래서 기억 왜곡 및 미화가 상당히 심함) 이 책은 조던 메크너가 쓴 일기를 날 것 그대로 책으로 낸 거여서 누군가가 성공하기 전에 어떤 인생을 살면서 어떤 고민을 했는지 왜곡없이 알 수 있습니다.
중간중간 개발자가 게임을 만들기 위해 어떤 노력을 했는지, 특히 최적화에 얼마나 공을 들였는지 엿볼 수 있습니다.
Release It
단순이 동작하는 소프트웨어가 아닌 험한 세상에서 살아남을 소프트웨어를 만들기 위한 개념과 감각을 익히는데 큰 도움을 주었습니다.
비슷한 이야기가 많이 나오는 책으로 매트 파커의 『험블 파이: 세상에서 수학이 사라진다면』(다산사이언스, 2020)도 있습니다. 소프트웨어에만 국한된 내용은 아니지만, 소프트웨어와 관련된 실수로 인한 사례들이 많이 소개되어 있습니다.
개인적으로는 아래 두가지책이 아키텍처와 운영 측면에서 최신 웹서비스들을 가장 정확하게 그리고 있는 것 같습니다.
- Building Microservices: Designing Fine-Grained Systems
- The Site Reliability Workbook: Practical Ways to Implement SRE
이 책도 정말 좋죠. 단순한 전신 회로와 그걸 잇는 릴레이로부터 시작하여 컴퓨터의 작동 방식을 아래에서부터 차례대로 쌓아올려 어떻게 추상화가 되어 있는지 알아보는 구성으로, [밑바닥부터 컴퓨터 만들기]류 책의 원조라 할 수 있습니다.
Ruby를 깨우치다 : Ruby 인터널의 이해입니다.
Ruby의 대한 책이라기보단, 프로그래밍 언어를 프로그램이 어떻게 이해하는 지 자세하고 친절한 설명이 적혀 있어서 좀 더 일찍 읽었으면 더 좋았지 않았나 싶었어요.
저도 "실용주의 프로그래머"가 제일 처음 떠오르는데, 벌써 추천해주셔서, "리팩토링"을 꼽아봅니다.
그리고 https://mysetting.io/books에 개발에 도움이 되는 책 목록이 있는데, 대부분 제가 추천하고픈 책들을 모아두었더군요.
[함께 자라기]입니다. 애자일로 가는 길이라는 부제가 붙어 있는데. 학습과 성장, 협력, 성과에 대해 근거 기반으로 충실한 이야기를 담고 있어요.
저는 "로지코믹스" 추천합니다. 컴퓨터과학의 근간인 수학이 밟아온 길과 그 사이에서 고민하고 방황한 인물들의 서사를 만날 수 있습니다.
필독서의 반열에 오를 만큼 유명한 책은 아마 다른 분들도 많이들 추천해 주실 테니, 그런 것보다는 방향을 살짝 바꿔서 프로그래밍 입문자에게 도움이 될 만한 책을 하나 골라 볼까 합니다.
* 니시오 히로카즈의 『코딩을 지탱하는 기술: 원리로 깨우치는 프로그래밍 기법』(비제이퍼블릭, 2013)
여러 프로그래밍 언어에서 공통적으로 등장하는 각종 개념과 그 개념이 왜 등장하게 되었는지를 여러 언어를 비교해 가며 소개하는 책입니다. 저 개인적으로는 정말 많은 도움이 되었던 책입니다.
이 책 말고, 지금 읽고 있는 책도 프로그래밍에 입문하여 기초 문법은 다 뗐는데 그 다음에는 뭘 해야 할지 모르겠는 사람에게 딱 좋을 것 같다고 생각하여 추가로 추천합니다.
* 라울-게이브리얼 우르마·리처드 워버턴의 『실전 자바 소프트웨어 개발: 4가지 프로젝트로 배우는 최신 자바 개발 기법』(한빛미디어, 2020)
Java 언어 기반으로 SOLID 원칙이나 테스트 주도 개발, 디자인 패턴 등의 내용을 간략히 소개하고, 이를 실제 코드에 적용하는 연습을 할 수 있는 책입니다. 책 자체의 분량은 그리 많지 않지만, 연습 문제를 모두 풀어가며 연습할 가치가 있습니다.