필자가 “자기주도 C언어 프로그래밍”이라는 책을 선보인지 어느덧 14년이 넘었다. 처음에는 기존의 프로그래밍 도서와 전혀 다른 스타일 때문에 별로 주목받지 못하다가 점차적으로 관심을 가져주는 분들이 늘어나면서 어느새 개정 11판에 이르고 있다.
위 도서를 출간할 때만 하더라도 크게 주목받지 못하고 있던 파이썬(Python)이라는 언어가 교육 또는 실무에서 오늘과 같이 각광을 받을 것이라고는 전혀 예상하지 못했다. 다른 어떤 언어보다도 쉽고 간결한 문법과 강력한 기능 그리고 다른 언어와의 폭넓은 호환성과 이식성이 이러한 일을 가능하게 만든 것으로 보인다.
막상 파이썬을 교육하려고 보니 역시 C언어 때와 같은 문제에 부딪혔다. 대부분의 프로그래밍 도서가 그렇듯 문법중심으로 쓰인 일반 교재로는 초·중학생이 쉽게 따라하면서 언어를 익히는 것이 쉬운 문제가 아니었다.
결국 자기주도적으로 문제를 해결하고 정올사이트(www.jungol.co.kr)의 채점시스템을 통해 스스로를 점검하면서 문제해결력을 키워나가도록 구성된 “자기주도 C언어 프로그래밍”의 학습스타일을 그대로 도입하여 1판을 출간하게 되었고 나름대로 상당한 성과를 거두기는 했다.
1판에서는 파이썬의 특징을 살리기보다는 C언어를 학습하기 전에 먼저 파이썬 언어를 접하는 경우를 가정하여 지나치게 C문법을 염두에 두고 집필을 한 경향이 있다.
하지만 이제 파이썬이 나름대로의 영역을 구축하여 실제 현장에서 폭넓게 사용되고 있는 마당에 파이썬의 특징을 최대한 살리는 방향으로 수정을 하는 것이 타당하다고 생각해서 전면 개편을 단행하였다.
이 책은 파이썬의 다양한 문법들을 속속들이 파헤치는 문법서가 아니라 누구나 쉽게 프로그래밍에 접근할 수 있도록 이끌어주기 위한 실습서이다. 우리나라 학생들이 10년 이상 영어를 배우고도 막상 외국인과 의사소통이 안 되는 것과 마찬가지로, 파이썬 언어의 어려운 문법을 모두 익히고도 막상 간단한 문법만 알아도 처리할 수 있는 문제조차 제대로 해결하지 못하는 학생들이 의외로 많은게 현실이다. 이 책은 이러한 학생들에게 복잡한 문법에 매달리지 말고 그냥 순서대로 따라하면서 간단한 과제만 수행해 나가다 보면 자신도 모르는 사이에 프로그래밍의 고수가 되어 있는 자신의 모습을 확인할 수 있기를 바라는 마음으로 쓰인 책이다.
한편 이 책은 단순하게 파이썬의 문법을 이용하여 프로그램을 개발하는 것을 목적으로 쓴 것이 아니라 문제를 해결하기 위한 능력을 키워주는 데 초점을 맞추어 구성되었다. 예를 들자면 크기 순서가 정해지지 않은 수열을 오름차순 혹은 내림차순으로 정렬을 하는 경우 파이썬에서는 내장함수 sort()를 이용하여 간단하게 처리할 수 있다. 하지만 이 책에서는 그러한 정렬 함수를 사용하기 전에 먼저 직접 정렬의 원리를 익혀서 충분히 코드로 구현할 수 있도록 하였다. 간단한 함수만 알려주면 될 것을 불필요하게 적어놓았다고 투덜대는 일이 없기를 바란다.
이 책은 파이썬을 처음 배우는 초보자를 위해서 쓰였다. 물론 이미 파이썬을 어느 정도 접하고도 자신이 없는 학생들에게도 이 책은 매우 유용할 것이다. 새로 생긴 코드페어와 같은 각종 대회나 정보영재에 도전하려는 많은 학생들에게도 이 책은 입문서로써 훌륭한 길잡이가 될 것이다.
부디 파이썬에 도전하는 모든 분들에게 부디 말문이 확 트이는 실전 프로그래밍 실습서로서 좋은 길잡이가 되었으면 하는 바램이다.