금요일, 6월 27, 2014

[독서광] 이것이 C언어다

개인적으로 C 프로그래밍 언어를 강의해야 가르쳐야 하는 상황이라서 교재를 고민하고 있었다. 물론 독보적인 K&R표 교과서가 존재하긴 하지만 이 책으로 진도를 뽑을 경우 처음 배우는 사람들이 떡실신할 가능성이 아아주우 높기에 욕심을 꾹 참고 국내서를 검토하고 있었다. 그러다 지난 주에 한빛미디어 사무실에 방문했다가 아주 좋은 책을 한 권 선물 받았다. 오늘 소개할 책인 "이것이 C언어다"는 무려 3년에 걸쳐 만들어졌으며 목차를 보면 알겠지만 C에 처음 입문하는 장래 개발자를 위해 변수 선언부터 포인터/배열과 동적 메모리 사용에 이르기까지 균형을 잘 맞췄다는 생각이다. 표준 C에서 다뤄야 하는 내용은 빠짐없이 다 나오며, 부록에는 표준 라이브러리에 대한 간략한 소개까지 들어있다.

사람마다 추구하는 바가 다르므로 자기가 직접 집필하기 전에는 완벽한 C 책을 기대할 수는 없지만, C 언어를 배우는 과정에 필요한 요소가 빠짐없이 들어 있고 설명이 제대로 되어 있다면 그 자체로 충분한 가치를 발휘한다는 생각이다. 이 책의 특징 중 하나는 풍부한 그림이다. 코드와 설명만 계속 나오는 대신 메모리 레이아웃이 그림으로 표현되어 있으므로 C를 처음 접할 경우 가장 난해하게 다가오는 정적/동적 메모리 레이아웃이 실행 과정에서 어떻게 바뀌는지 한 눈에 들어온다.

본문에서 실습을 위해 완전히 컴파일 가능한 예제는 물론이고 각 절마다 연습 문제가 나오므로 실력을 점검할 수 있다. 출판사 공식 페이지에 들어가보면 예제 소스도 제공하므로 타이핑이 귀찮은 분이라면 내려받아 사용하면 된다. 물론 처음 배우는 입장에서는 타이핑 연습도 할 겸 C와 친해지기 위해 직접 입력하는 방식을 권장한다. 제공되는 소스 코드와 관련해 주의할 사항이 하나 있는데, 소스 코드가 UTF-8이 아니라 윈도우 인코딩 방식을 따르므로 맥/리눅스에서 한글이 제대로 안 보이고 개행문자가 DOS 방식을 따르므로 vi 등이 불평을 늘어놓을 것이다. 또한 운영체제와 아키텍처 특성으로 인해 일부 예제에서 경고 메시지와 실행 결과가 다를 수 있으므로 '이것이 C언어'(응?)라는 사실에 다시 한번 주목하면 좋겠다.

결론: C언어를 처음 배우는 분들이 처음 접하기에 적합한 책이다. 참고로 동영상 강좌 쿠폰(12개월)도 들어 있으므로 독서와 병행해 유용하게 활용하기 바란다.

간이 설문: C언어 입문자를 대상으로 공부 방향에 대한 지침을 주제로 세미나를 하면 참석할 의향이 있는지? 설명할 내용은 C 컴파일러 개괄 + gcc/gdb 기초 중의 기초 설명 + make 기초 중의 기초 설명 + C에서 가장 어려운 배열/포인터/메모리 모델(스택, 힙)/문자열 개념 소개 + 보너스로 깃허브 등 소스 코드 저장소 간략 소개다(2시간). 다뤄야 할 내용이나 방향과 관련해 댓글로 피드백을 주시면 감사하겠다.

EOB

댓글 7개:

  1. C입문자라 하더라도 다른 언어에 정통하신 분들이 대상일 것 같으니 스토리가 있으면 좋겠어요.
    Lex yacc 이런거로 예제해서 재미지게...
    그럼 위의 커리큘럼도 포함이 절로 되니 교육적이기도 하고...

    답글삭제
  2. 아니면 전통적으로 소켓하고 포크나 posix 쓰레드를 이용한 예제 training...
    이런거도 좋을 거 같아요...

    답글삭제
  3. 아이폰 자판상태가 별로 안 좋네요...10글자쓸 때마다 focus바꿔야하다니..
    번스타인 때부터 답글하고 싶었는데 이제서야...반갑습니다~

    답글삭제
    답글
    1. lex&yacc 설명하면 초보자들이 기절할까봐 두렵습니다. :)

      조만간 한번 뵈어야죠?

      - j

      삭제
    2. 플젝 종료 되어 유지보수 지원했어요.
      반포 이고 언제 잠실로 갈지 모르지만....휴가가 없을 예정이라 7월 좋습니다.

      삭제
  4. 라이트한 커뮤니티(생활코딩?)에 올리시면 참여자 모으기는 어렵지 않을 것 같습니다 :)

    답글삭제