책을 처음 열어보고 예전에 보았던 책이 생각이 바로 났습니다.
그 책은 "인사이트 - 코딩 인터뷰 완전 분석" 입니다.
이책은 지금도 코딩테스트 및 인터뷰 준비하시는 분들에가 많이 회자되고 유명한 책으로 알고 있습니다.
다시 살펴보니 동일하게 인사이트에서 출판하였고, 번역하신 분도 동일하셔서 신기하였습니다.
262책에서의 저자분의 경력이 매우 화려하고 경험이 많다는것을 느겼습니다.
저자분들은 총 3분이 공동집필을 하셨습니다.
모두가 알고 있는 유명한 회사 (구글,페이스북,마소,우버등) 경력이 매우 많으시고, 알고리즘 개발 및 다양한 경험을 하신것을 알 수 있습니다. 이러한 경험을 1. 자료구조 2. 알고리즘 3. 특정도메인 문제 해결 4. 고난도 문제 등을 통해서, 흥미진지하게 이야기를 풀어나가는 책입니다.
1부. 면접
- 면접자, 면접관의 입장에 대해서 상세히 설명하고, 많은 부분이 공감됩니다.
이력서 작성, 취업과정, 면접등 매우 구체적으로 정리가 되어 있고, 외국으로 취업을 분들도 많은 도움이 되실거 같습니다.
특히 면접관 입장에서 (저자분들의 레벨 및 직급이 면접관 입장) 의견이 적혀있는것은 역지사지로 생각해볼수 있는 기회가 되었습니다.
2부. 자료구조와 알고리즘
- 4장~19장까지 책에서 많은 부분을 담당하고 있습니다.
1장에 문제가 보통 10개 전후로 구성되어 있어서 필요한 부분만도 쉽게 공부할수 있고, 문제별로 개별적인 단독구성이라서 접근하기 좋은거 같습니다. - 좋았던점
- 각 장에 시작하는 시점에 "꼭 알고 있어야 할 내용" 을 정리해서 알려줍니다.
- 각 문제별로 해설이 매우 상세하게 되어있습니다. (코드의 line 주석 포함)
- 문제별로 응용 패턴 및 문제풀이시 Hint부분을 통해 한번더 생각할 수 있는 기회를 제공합니다.
3부. 특정 도메일 문제
- 설계 문제, 언어관련 질문, 객체지향 설계, 공통 도구라는 주제로 1장씩 구성되어 있습니다.
- 좋았던점
- 1가지 문제마다 모두 많은 생각을 할 수 있는 꺼리를 제공하고 있습니다.
- yes24의 목차를 보면, 관심있는 분야나 관심이 있는 개발 keyword들이 보일거 같습니다.
http://www.yes24.com/Product/Goods/103768579
아래 목차를 보면 업무에서나, 개인적으로도 고민을 해봤을 만한 사항들이 있으실거 같습니다.
20장 설계 문제
문제 20.1 맞춤법 검사 설계
문제 20.2 스테밍 문제의 해법 설계하기
문제 20.3 표절 찾기
문제 20.4 속성에 따른 사용자의 쌍
문제 20.5 저작권 침해를 발견하는 시스템 설계하기
문제 20.6 TEX 설계하기
문제 20.7 검색 엔진 설계하기
문제 20.8 페이지 순위 매기기
문제 20.9 테라 정렬 및 페타 정렬 설계하기
문제 20.10 분산 서비스 조절하기
문제 20.11 확장 가능한 우선순위 시스템 설계하기
문제 20.12 모자이크 사진 만들기
문제 20.13 마일리지 이동 구현하기
문제 20.14 사진 공유 서비스 구현하기
문제 20.15 온라인 광고 시스템 설계하기
문제 20.16 추천 시스템 설계하기
문제 20.17 많은 파일을 분산시킬 수 있는 최적화된 방법 설계하기
문제 20.18 월드 와이드 웹 설계하기
문제 20.19 사진 공유 앱의 하드웨어 비용 추측하기
21장 언어 관련 질문
문제 21.1 JVM
문제 21.2 throw vs. throws
문제 21.3 final vs. finally vs. finalizer
문제 21.4 equals() vs. ==
문제 21.5 equals()와 hashCode()의 관계
문제 21.6 List vs. ArrayList vs. LinkedList
문제 21.7 String vs. StringBuilder
문제 21.8 자동 박싱
문제 21.9 정적 초기화
22장 객체 지향 설계
문제 22.1 템플릿 메서드 패턴 vs. 전략 패턴
문제 22.2 옵서버 패턴
문제 22.3 푸시 옵서버 패턴 vs. 풀 옵서버 패턴
문제 22.4 싱글턴 vs. 플라이웨이트
문제 22.5 클래스 어댑터 vs. 객체 어댑터
문제 22.6 생성 패턴
문제 22.7 라이브러리와 설계 패턴
23장 프로그래밍 관련 도구
문제 23.1 버전 관리 시스템의 병합
문제 23.2 버전 관리 시스템의 훅
문제 23.3 스크립트가 더 효율적인가?
문제 23.4 스크립트 언어의 다형성
문제 23.5 의존성 분석
문제 23.6 Ant vs. Maven
문제 23.7 SQL과 NoSQL
문제 23.8 데이터베이스 정규화
문제 23.9 SQL 설계
문제 23.10 IP vs. TCP vs. HTTP
문제 23.11 HTTPS
문제 23.12 DNS
- 아쉬운점
- 3부의 내용은 1문제별로 보통 1페이지 정도에서 설명이 되어 있습니다.
- 핵심이 언급되어 있지만, 구현등에 관한 좀더 상세한 코드레벨이 있었으면 더 좋았을거 같습니다.
4부. 고난도 문제
- 좋았던점
- 일반 알고리즘 책에서 제공하지 않는 문제들이 제공됩니다.
문제풀이가 아닌, 좀더 많은 경우를 살펴 볼 수 있습니다.
24장 고난도 문제
문제 24.1 최대공약수 구하기
문제 24.2 배열에 존재하지 않는 가장 작은 양의 정수 찾기
~~
문제 24.35 고속도로에 구간 추가하기
문제 24.36 차익 거래가 가능한지 테스트하기
총평
외국에서는 이런 책을 책장옆에 두고 틈날때 마다 본다고 합니다.
생각해볼 거리가 많은 책이라 책장 옆에 놓아두고 두고두고 봐도 좋을거 같습니다.
이론에 대한 부분과 협업에서 필요한 부분이 잘 난이도 있게 구성되어 있어서 참 좋았습니다.
책을 읽어보면 역자분들이 많은 고생을 하셔서, 좋은책이 출간된 거 같아서 감사함이 느껴졌습니다.
동일한 내용으로 266가지 문제로 정복하는 코딩 인터뷰 in C++ 도 있으니 꼭 java가 아니여도 참고하시면 좋을거 같습니다.(java보다 4문제가 더 많이 있네요)
PS : 책이 분철이 되니, 구매시에 분철로 2권으로 주문도 가능하니 참고하시면 좋습니다.
'book' 카테고리의 다른 글
node.js 프로젝트 투입 일주일 전 (0) | 2022.01.07 |
---|---|
실시간 모니터링 시스템을 만들며 정복하는 MEVN (0) | 2021.10.26 |
Must Have 박미정의 깃&깃허브 입문 - 리뷰 (0) | 2021.10.11 |
밑바닥부터 시작하는 딥러닝.2 (0) | 2021.10.06 |
밑바닥부터 시작하는 딥러닝.1 (chap6 : 학습관련 기술들) (0) | 2021.09.13 |