티스토리 뷰

 C언어... 아마 프로그래밍을 하는 사람이라면 거의 한번쯤 접하는 언어가 아닐까 싶다. 우리 주변에서도 살펴보면 C언어를 통해서 구현되는 소프트웨어들이 정말 많다. 내가 하는 일도 그런거지만 어떤 기기를 제어하는 것도 실상 살펴보면 대부분이 C언어로 구현되어 있고, 내가 속해있는 조직도 보면 통신 프로토콜상의 계층들을 C언어로 구현하고 있다. 그렇게 개발된 소프트웨어가 생활상에 다 들어가 있다. 거진 뭔가를 제어하는 용도의 소프트웨어는 대부분 C언어로 되어 있다고 생각하면 좋을 거 같다. 

 그런데 보통 C언어는 배우기 어려운 언어라고 생각하는 사람들이 많다. 아무래도 언어 본연적인 내용 외에도 컴파일러나 메모리 같은 외부 환경에 대한 이해도 필요하고, 알아야 될게 많다. 그래서 흔히들 많이 택하는게 참고할 수 있는 책을 항상 곁에 두고, 필요할 때마다 살펴보는 것이다. 개인적으로 이렇게 접근하는 방법이 맞다고 생각한다. 다만, 배운 것을 실습도 하면서 응용해볼 수 있는 환경이 뒷받침되어야 한다. 보통 책들을 보면 여러 주제에 대해서 세분화시키고 각 주제에 대한 연습문제를 마지막 장에 제시된 형태로 되어 있다. 그런데 사실 실습해볼 공간도 없이 조그마한 공간에 문제만 올려져있으면, 보는 사람도 머리속으로만 코딩을 해보고 실제 실습을 해볼 여지가 없게 된다. 

 최근에 전달받은 책중에 그런 부분을 어느정도 해소하고자 노력한 책이 있어 이 글에서 소개를 해보고자 한다.

연습을 통해 배울 수 있는 책

 사실 이 책에서 가장 인상이 깊은 문구는 "프로그래밍은 공부가 아닙니다. 연습입니다." 라는 것이었다. 처음 봤을 때는 "연습"이라는 의미가 일반 여타 책들과 같이 마지막장에 연습 문제들을 놓고, 답은 각자가 알아서 찾게끔 하는 책이 아닐까 싶었는데, 출판사에서 소개한 사이트에 들어가 보면서 그 의미를 알게 되었다.

 이 책은 코딩 도장(https://dojang.io) 라는 학습 사이트를 공유해주고 실제로 웹사이트 상에서 실습할 수 있는 환경을 제공한다. 실습을 하는데 필요한 기본 지식과 동영상을 제공해주는 동시에 이를 확인해볼 수 있는 문제와 실제 코딩을 해볼수 있게끔 구성되어 있다. 사실 이 사이트가 좀 대단하고 느껴진건 강의 사이트가 무료로 운영되고 있다는 점이다. 굳이 책을 사지 않더라도 웹사이트에 나와있는 커리큘럼을 계획대로 수행한다면, C언어를 제대로 배워볼 수 있지 않을까 싶다. 그만큼 웹상에 담겨져 있는 학습 resource가 어마어마하게 담겨져있다.


두께만큼이나 혜자스러운 책    

 딱 처음 책을 접했을 때, 책이 상당히 두꺼웠다. 심지어는 책도 두권으로 분권으로 되게끔 구성되어 있었는데, 내용은 맨처음 Hello world를 찍는 예제부터 후반부에는 JSON 파일 생성과 같이 실제 환경에서도 적용해볼 수 있을만한 예제들이 담겨져 있었다. 나도 하는일이 시스템 소프트웨어를 개발하는 내용이기에 초반에 나오는 내용들은 빠르게 넘어갈 수 있었지만, 뒷부분에 나오는 내용들은 실제 개발에서도 응용해서 볼 수 있을만큼 다루는 내용에 깊이가 있었다. 물론 예제가 같이 제공되기 때문에 이를 응용해도 좋을만큼 구성이 잘되어 있었다. 

 사실 회사에서 개발하다보면 여러 개발 환경도 접하게 되고, 특히 내가 다루는 장치가 임베디드 환경이다 보니 적절한 구조체와 이에 맞는 메모리 할당이 필요하다. 이런 부분은 나도 경험을 많이 해보지 않은 부분에서 뭔가 실제로 접해보고 다룰 기회가 필요했었는데, 이번 기회에 조금 다뤄볼 수 있는 여건이 된 거 같아 좋았다. 
 무엇보다도 책이 참 두꺼워서 나도 뭔가 책을 읽는구나 하는 느낌을 줬던게 좋았다.

적절한 커리큘럼과 컨텐츠가 결합된 책

책의 초반부를 보면 이 책을 어떻게 보면 좋겠다는 형식의 계획표가 포함되어 있다. 그래서 하루에 정해진대로 볼 경우 8주안에 이 책을 마칠 수 있게끔 내용이 구성되어 있다. 그렇다고 내용이 unit 하나하나가 붕 뜨는게 아니라 연계성을 가지고 진행되게끔 되어있다. 물론 위의 내용이 어느정도 익숙한 사람이라면 더 빨리 끝낼수 있을 것으로 보인다. (참고로 좀 실무적으로 응용해보고 싶은 사람이라면 unit 81부터 시작하는 실무 예제를 다뤄볼 것을 추천한다. 포괄적인 내용들이 실습 형태로 되어 있어 연습해보기 좋다.)

내면에 충실한 C언어 입문책

 책을 읽을 수 있는 독자의 성격을 딱 정의해보자면, 앞에서 언급한 것처럼 C언어에 대한 기본적이 없는 사람부터 이제 C언어를 가지고 뭔가 해보려는 사람들까지 넓은 스펙트럼을 가질 수 있을 듯 하다. 그만큼 책이 두꺼운만큼 담겨져 있는 내용들도 많고, 그걸 전달하고자 하는 방법이 상세하게 설명되어 있다. 특히 웹상으로 제공되는 실습환경은 이 책을 더욱 가치있게 만들어주는 resource가 아닐까 생각한다. 
 이 책을 처음 리뷰도서로 신청할 때는 회사 진급시 필요한 프로그래밍 역량인증 시험에 대비할 용도로 신청했었는데, 그 용도를 넘어서 C언어에 대한 역량을 높이는데도 도움이 되었다. 그나저나 책이 참 두꺼운데 비해서 책값이 무척 저렴한 듯 싶다 :)

< 이 글에 나오는 "C언어 코딩 도장"은 길벗 출판사에서 제공받고, 이에 대한 리뷰를 쓴 것임을 밝힙니다.>

댓글