컴퓨터과학의 기초를 알아두면 코딩을 하는 데 매우 도움이 된다. 특히 논리적인 사고와 순서, 그리고 효율에 관한 내용을 다루는 것이 컴퓨터과학의 기초인 자료구조와 알고리즘이다. 이 둘은 뗄레야 뗄 수 없는 관계에 있지만, 무엇을 먼저하든 크게 상관은 없다. ( 전공에서는 일반적으로 데이터구조를 먼저 학습한다. )
말만 들어도 복잡하고 머리아픈 내용이 가득할 것 같지만, 어떻게 시작하느냐에 따라 학습의지가 불타오를 수도, 꺾일 수도 있는 분야이다. 그렇기에 그 시작은 아주 가볍고 쉽게 풀이해 이해할 수 있는 정도의 수준이어야 하고, 오늘 소개할 책은 그 시작을 함께하기에 현존하는 서적 중 단연 최고가 아닐까 한다.
Hello Coding - 그림으로 개념을 이해하는 알고리즘
저자: 아디트야 바르가바
폴님께서 추천해주신 책인 그림으로 개념을 이해하는 알고리즘은, 저자가 알고리즘을 학습하면서 이해하기 위해 그림으로 설명한 내용을 남겨두기 위해 블로깅을 하다가 출판사와 만나 책으로 세상에 나왔다.
책 구매 링크는 위의 책 제목을, 저자의 블로그는 저자 이름을 클릭하면 바로 확인할 수 있다.
이 책의 가장 매력적인 부분은 쉽다는 것이다.
프로그래밍 언어를 알고 있다면 금방 이해할 수 있음직한 코드, 직관적인 내용설명과 그림으로 설명을 해준다.
하지만 입문서인 만큼, 내용의 깊이는 그다지 깊지 않다.
정말 입문서의 개념으로 '아 이런 게 있구나' 정도만 접할 수 있다.
아주 큰 단점을 가지고 있지만, 여전히 나는 이 책을 알고리즘 입문 서적으로 적극 추천한다. 서두에서 이야기 했듯이, 알고리즘이라는 컴퓨터과학의 기초는 학습의 시작에서 겪은 경험에 따라 해당 내용을 접하는 태도가 결정된다. 알고리즘은 프로그래머로서 평생을 학습하고 이용해야하는 내용인만큼 그 시작이 가볍게 다가왔으면 좋겠다.
당분간은 이 책의 챕터에 따라 포스팅을 하면서 알고리즘에는 어떤 개념이 있는 지 살펴보도록 하자.
'Algorithm' 카테고리의 다른 글
[Algorithm] divide and conquer, quick sort - 분할정복, 퀵정렬 (0) | 2020.09.11 |
---|---|
[Data Structure] Linked List - 링크드 리스트 ( 연결 리스트 ) (0) | 2020.09.10 |
[Algorithm] Recursion - 재귀 (0) | 2020.09.08 |
[Data structure] 자료구조 - stack, queue (0) | 2020.09.07 |
[Algorithm] 이진탐색 - Binary Search (0) | 2020.09.06 |