C 언어 코딩과 알고리즘
이 책은 C 프로그래밍 입문서입니다.
처음으로 프로그래밍을 시작하시는 분들을 프로그래머로 취업을 할 수 있는 수준까지 도달시키는 것이 이 책의 목표입니다.
이 책은 다음과 같은 특징이 있습니다.
- C99, C11 등 C 언어의 최신 버전을 설명하고 있습니다.
C 언어는 1972년에 탄생해서 지금까지 수십년 동안 세계적으로 널리 사용되는 언어입니다.
C 언어의 근본이 되는 국제 표준 버전은 1990년에 발표된 ANSI C입니다.
그러나 기존 ANSI C를 업그레이드해서 1999년에 C99 표준이 발표되고, 2011년에 C11 표준이 발표되었으며 이후 많은 컴파일러들이 이 새로운 표준을 수용하고 있습니다.
초보자들을 대상으로 하는 책들은 대부분 기본을 설명한다는 의미에서 ANSI C만을 기준으로 설명하고 있어, C 학습을 모두 마쳐도 실무를 하려면 다시 C99, C11 표준에 새로 추가되거나 수정된 내용을 정리하고 학습해야 하는 경우가 많습니다.
그래서 이 책에서는 ANSI C를 기준으로 기본 개념을 잡아가되, C99, C11 표준의 추가, 수정된 문법을 설명하고 있어 실무에 투입되어도 당황하는 일이 없을 것입니다.
C 언어도 버전이 있다는 사실을 고려하지 않아 두 번 학습을 하는 일이 없도록 했습니다.
- 문법 설명 이외에 알고리즘 개발 능력을 기릅니다.
이 책은 종이 책으로 약 1200 페이지 분량인데, 그 중 30% 정도는 “알고리즘 트레이닝”에 관한 것입니다.
프로그래밍 학습을 하면서 주로 문법을 위주로 간단한 코드를 동원한 학습을 마치고 “이제 뭘 해야 하나요?”라는 질문을 많이 합니다.
문법 학습을 마쳤다고 해서 학습이 끝난 것이 절대 아닙니다.
실제 프로그래밍에 반드시 필요한 능력은 알고리즘 개발 능력입니다.
알고리즘 개발 능력은 갑자기 증가하는 것이 아니라서 평소 꾸준히 연습하고 경험해야 합니다.
그래서 이 책에서는 “알고리즘 트레이닝”이라는 섹션을 두어 방금 배운 문법을 활용하여 다양한 알고리즘을 경험하도록 유도하고 있습니다.
문법도 한번 배웠다고 해서 완전히 익숙해지지 않기 때문에 해당 문법이 어떻게 프로그래밍에 응용되는지를 알고리즘 개발을 통해 깊이있게 경험하는 것이 효율적입니다.
이 책의 “알고리즘 트레이닝”은 대부분 코드의 빈 칸을 완성하는 문제 형식으로 제시되며, 소스 코드를 분석하고 생각하는 시간을 가지도록 했습니다.
하지만 문제를 풀고 평가하기 위한 것이 아니라 다양한 알고리즘 개발을 경험하게 하는데 목표가 있습니다.
이 책에는 “연습문제”도 있고 “파이널 테스트”라는 자가 점검용 문제들이 있으나 “알고리즘 트레이닝”은 온전히 알고리즘 개발 능력을 키우기 위해 많은 코드를 들여다 보고자 하는 것입니다.
초보 프로그래머로 취업을 하면 대부분 그 조직의 기존 업무 프로그램 코드를 익히고 유지, 보수를 하는 기본적인 일부터 시작합니다.
그래서 취업을 위해서는 문법을 넘어 빠르게 코드를 파악하고 분석하는 능력이 필수적이며 그런 능력을 키우기 위해 “알고리즘 트레이닝” 섹션을 제공하고 있습니다.
- 세밀하고 풍부하게 문법을 설명하고 있습니다.
초보자라고 C의 문법조차 대충 개념만 잡고 지나가는 경우가 많습니다.
이 책에서는 필수적인 문법들이외도 실무에서 또는 프로그래머로서 알아두어야 할만한 내용들을 풍부하게 수록하고 있습니다.
각 장의 끝 부분에 필요하면 “추가 이슈”라는 절을 두어 기본 문법 이외에 정리해야 할 내용들을 집중적으로 설명하고 있습니다.
기본적인 문법들은 프로그래밍의 경험이 전혀 없다는 가정하에 많은 그림과 표를 동원하여 친절하게 설명하고 있습니다.
시간이 없거나 기본만 빠르게 학습하려면 “추가 이슈”는 읽지 않아도 됩니다.
하지만 그렇지 않다면 가능한 “추가 이슈”도 학습해두는 것이 좋습니다.
확실하게 초보를 벗어날 수 있기 때문입니다.
이 책 한권으로 문법과 알고리즘을 함께 학습할 수 있을 것입니다.