오늘날 수많은 학생들이 코딩을 배우고 있다. 하지만 단순한 출력, 입력, 계산기 정도 만들어서 진정한 코딩이라고 할 수 있겠는가? 누군가에게 '나 좀 코딩 좀 배웠어~'라고 말하기 위해서는 자료구조와 알고리즘에 대한 이해는 꼭 있어야 한다. 자료구조와 알고리즘을 기반한 코딩이 오늘 날 우리가 살아가는 21세기 디지털 세상 속 이뤄진 모습이 아닐까 싶다. 건축, 토목, IT, 기계, 금융, 게임 등 모든 산업, 아니 모든 공학에서 자료구조와 알고리즘은 누구나 이해하고, 스스로 생각할 수 있어야 한다.
프로그래밍 언어 중급 과정을 넘어가기 위한 필수 관문!
이 점에서 이 책은 자료구조와 알고리즘을 처음 배우는 분에게 적합한 책이다. 어느 정도 프로그래밍 언어에 대한 이해를 바탕으로 중급과정을 나아가기 위한 필수 도서라고도 할 수 있겠다.
다양한 자료구조 형태와 설명이 목차대로 나와있다.
알다시피 자료구조는 너무나도 많다. 주어진 형태로만 배우는 것도 좋지만 자신만의 자료구조를 정의해보는 것도 매우 큰 공부가 될 것이다. 정렬, 검색과 같은 부분은 보통 자료구조를 배운 후 알고리즘에서 다루는데, 이 책의 경우 앞부분에 위치해 있다. 물론 자료구조를 모르고도 배울 수 있게 단원 구성이 되어 있지만, 그래도 자료구조를 먼저 학습한 후 앞 부분으로 되돌아 가는 것도 나쁘지 않다.
자료구조와 알고리즘은 유기적으로 상호작용 관계라 볼 수 있다.
자료구조와 알고리즘은 함께 배우는 것이 역시 좋다. 프로그램이 모여 이루는 것이 컴퓨터이고 더 넓게 보면 IT이자 오늘날의 모습이다. 이 프로그램은 자료구조와 알고리즘 없이는 제대로 돌아가지 않을 것이다. 효율적인 알고리즘은 우리 삶의 모습을 한 단계씩 바꾸어 나가며, 이러한 데이터는 효율적으로 저장, 관리하는 것이 오늘날 산업이 이루어나가고 있는 과정중 하나이다.
개발자의 올바른 덕목이자 올바른 길이 바로 알고리즘이다.
이러한 산업에 진출하고 여기에 하나의 나무를 심는 우리는 개발자로서 그 내공이 필요하다. 바로 자료구조와 알고리즘이다. 필자의 학부 수업때도 자료구조와 알고리즘의 중요성은 선배, 교수님들에게 수없이 들었다. 그 만큼 중요하다.
실습 예제가 친절하게 코드로 나와있다.
실습 해볼 수 있는 코드가 전체적으로 나와있다. 물론 해당 코드는 파일로 제공되며 쉽게 빌드해서 실행해볼 수 있다. 참고로 자바 언어의 기초적인 부분은 다루지 않으니, 다른 기초 자바 언어책을 참고하길 바란다. 아마 대부분 Eclipse 환경에서 할 것이며, Vim 에디터 환경에서 직접 컴파일하는 것도 좋다.
예제 코드는 실행 결과도 나와있으니, 스스로 코딩해 결과를 확인해본다
실행 결과가 나와 있으니, 직접 코드를 구성하고 결과를 비교해보자.
알고리즘의 순서도는 프로그램의 이해에 많은 도움을 준다
알고리즘의 핵심은 바로 순서이다. 이럴 때는 이런 순서로 진행하고, 이럴 때는 해당 지시를 실행하지 않는 등 논리적이고 필요에 맞춰 순서도를 그릴 줄 알아야한다. 아무리 인공지능이 발전하고 알고리즘을 만드는 알고리즘이 나온다 하더라도 인간의 사고를 통해 효과적으로 개념화하고 구성해야 한다. 그것이 컴퓨터가 아닌 인간만이 할 수 있는 것이다.
'조금만 더!'나아가 알아봄.
책에서 모르는 내용을 마치 주석 형태로 알려주고 있다.
연습 문제를 통해 배운 내용을 확인해보자.
스스로 연습 문제를 풀어 지금까지 살펴본 내용을 확인해보자.
"자료구조와 알고리즘을 자바 언어를 통해 쉽고
한번에 배울 수 있는 훌륭한 자료구조 기본서 및 실습서"
'Book review' 카테고리의 다른 글
[서평]데이터 과학이 세계의 열쇠다! 데이터 과학 무엇을 하는가? (0) | 2018.10.23 |
---|---|
[서평]R을 R답게! 해들리 위컴의 Advanced R (0) | 2018.10.23 |
[서평]캐드 고수가 되는 첫걸음-Do it 오토캐드 2019 [출처] [서평]캐드 고수가 되는 첫걸음-Do it 오토캐드 2019|작성자 책읽는공대생 (0) | 2018.10.23 |
[서평]나만의 로고 디자인, 편집, 그리고 실무[로고를 활용한 디자인 실무 강의] (0) | 2018.10.22 |
[서평]파이썬 한발짝 더 나아가기 <엔지니어를 위한 파이썬: 개발 기초, 필수 라이브러리, 그리고 고속화> (0) | 2018.10.22 |