서평 - 혼자 공부하는 C언어

책을 읽게된 배경

한빛미디어에서 진행하는 “나는 리뷰어다” 8월 미션을 통해서 이 책을 읽고 리뷰를 남기게 되었다. 현재 학교를 졸업하고 개발자로써 9년차에 접어들었다. 주로 자바와 자바스크립트를 사용하여 개발을 진행해왔고, 학교에서만 C언어, 자료구조와 알고리즘, 운영체제 과목을 통해서만 C를 접했지 회사에서 일하면서 C를 접한적은 한번도 없는 것 같다.

학교다닐때도 처음 접한 C는 너무 어려운 프로그래밍 언어였다. 이중 포인터의 능선을 넘기지 못하고 쥐쥐친 언어로 기억하고 있다. 그 이후에 C로 실습하는 과목들 또한 어려웠고 그것때문인지 모르겠지만 일단 C언어라고 하면 어려운 언어라는 편견이 있다. 이번에 “나는 리뷰어다” 이벤트를 통해서 이 책을 신청하게 된 이유는, 지금 C언어를 공부해도 학생때 처럼 똑같이 어려울까 하는 호기심과 최근에 알고리즘 공부를 하려고 하는데 C언어로 공부하면 재미있을거 같아서였다.

이 책을 읽지 않은 상태에서 먼저 목차를 봤을때 초급편, 고급편으로 나눈 구성이 마음에 들었다. 그리고 배타리더의 만족스러운 소감들이 책 제목처럼 혼자 공부해서 C언어라는 큰 벽을 오를 수 있지 않을까라는 기대가 생겼다.

#혼자 공부하는 C언어

좋았던 점

“C언어를 알고 싶은 누구나 읽기에 부담스럽지 않다.”

이 책은 초심자나 프로그래밍 경험이 없는 사람들이 읽기에 전혀 부담스럽지 않을 것 같다. 전공서적임에도 불구하고 책의 내용이 딱딱하거나 재미없다고 느껴지지 않는다. 익숙하지 않은 용어에 대해서 설명을 해주고, 이미지를 많이 활용해서 쉽게 이해할 수 있게 도와주기 때문이다.

그리고 챕터가 시작할때 개념적인 부분을 실생활에 찾을 수 있는 예를 들어 설명하는 부분이 독자로 하여금 왜 이런 부분이 필요한 것인지 공감할 수 있게 한다. 단순히 문법으로 바로 시작했으면 딱딱하거나 어렵게 느껴질 수 있었을텐데 저자가 독자에 대한 배려가 많다는 느낌이 들었다.

“어려운 내용도 이해하기 쉽게 설명해 준다.”

학부생때 포인터와 이중 포인터에서 머리가 안돌아가서 포기했었다. 이번 리뷰의 개인적인 목표는 포인터 관련 부분을 이해할 수 있을 것인가 하는 거였다. 일단 책에서는 포인터 내용이 고급편에 포함되어 있어 상대적으로 위안이 되었다. 내가 너무 빠르게 C언어를 포기하지 않았구나라는 점에서 말이다. ㅎㅎ

책을 읽으면서 간결한 문체가 책 보는 내내 집중할 수 있어서 좋았다. 전공서적을 읽다보면 너무 어렵게 설명을 하거나 또는 문체가 길어서 무슨 말을 하는지 이해하지 못하는 경우가 있는데, 이 책에서는 그러는 경우가 단 한번도 없었다. 그리고 개념적인 부분을 그림을 통해서 부가 설명을 해주는데 그 덕분에 이해하기 쉬웠다.

이 책을 보면서 내가 대학생때 이 책이 있었다면 C언어를 포기하지 않았을텐데 생각이 들었다. 왜냐면 학부생때 봤던 책은 정말 내용이 딱딱했고, 개념적인 부분에 대한 설명이 충분치 않았다. 교수님이 분명 설명해줬지만 내가 이해하지 못한 상태서 계속 다음 진도를 나가니 결국엔 따라가지 못하고 포기했었다. 하지만 이렇게 잘 설명되어 있는 책이 있었다면 개인적으로 공부하면서 수업을 따라갈 수 있었을 것 같다는 생각이 들었다.

마무리

새로운 프로그래밍 언어를 공부할 때 가장 좋은 방법은 많이 사용해보는 것이다. 새롭게 알게된 C언어 문법을 알고리즘 문제를 푸는데 활용해보자. 꼭 어려운 알고리즘 문제가 아니더라도, 간단한 알고리즘 문제를 C언어로 풀어보면서 문법에 익숙해질 수 있었다. 백준 알고리즘 사이트에는 다양한 알고리즘 문제가 많으니 관심있는 사람들은 참고해도 좋을 것 같다.

마지막으로 이 책은 C언어를 공부할때 필요한 내용은 다 다루고 있기 때문에, 초심자나 다시 공부해보려는 사람들에게 좋은 지침서가 될 것이라 생각한다. 그리고 자료구조나 알고리즘을 C언어로 공부해보면 자연스럽게 배운 내용을 활용할 수 있기 때문에 병행하는 것도 추천한다.

Share