이따금 C 언어의 포지션에 대해 생각해본다.
대학에서는 프로그래밍 입문 과목에서 C 언어를 포함할 때가 있지만, 점차 파이썬에 자리를 내주는 추세다. 비전공자를 위한 프로그래밍 기초 과정에서 C 언어를 다루는 곳도 있지만, 이들이 일시적으로 C 언어를 배워 무엇을 얻을 수 있을지 답을 내리기 쉽지 않다. C 언어로 4차 산업의 향기를 맡기라도 하는 건가. 간혹 전공자들이 침투하여 학점 양학을 하는 사례도 있다.
프로그래밍 패러다임의 변화와 하드웨어의 혁명적인 발전으로 C 언어의 자리는 점차 줄어들 것이다. 생산성 차원에서 너무나도 강력한 프로그래밍 언어들이 이미 존재하며 앞으로도 계속 등장할 것이다.
그런데도 C 언어를 챙기고 돌봐야 하는 이유는 무엇일까? 몇 가지 생각이 떠올랐다.
1. 컴퓨팅 사고력 교육
컴퓨팅 사고력은 영어로 computational thinking이다. 현재 초중고에서 코딩 교육을 전면 시행하는 것은 학생들에게 컴퓨팅 사고력을 심어주기 위함이다. 컴퓨팅 사고력을 기르는 것은 훗날 프로그래머가 되기 위함이 아니다. 게다가 컴퓨팅 사고력이 프로그래머에게만 필요한 것도 아니다. 마치 철학적 사고나 수학적 사고가 철학자나 수학자에게만 나타나는 특징이 아닌 것과 같은 이치다. 4차 산업이 활성화되고 현재 존재하지 않는 미래의 직업을 가지며 다양한 형태의 컴퓨터에 둘러싸여 살아갈 세대를 위한 준비 과정이다.
스크래치, 엔트리, 앱 인벤터와 같은 블록 코딩 방식의 "교육용" 프로그래밍 언어는 놀이에 가깝고 목적과 한계가 명확하다. 현재 대부분의 초중고 코딩 교육 콘텐츠는 "교육용" 프로그래밍 언어에 매몰되어 퍼스트 무버가 만든 비즈니스의 사이클을 돌고 있을 뿐이다. 이는 언젠간 무의미해지는 단계를 밟는다.
C 언어를 "교육용"답게 다듬을 수 있다면 어떨까? 블록 코딩은 학생들의 아이디어를 표현하기에 그릇이 너무 작다. 기초 단계를 벗어나 빠르게 컴퓨팅 사고력을 배양할 수 있는 도구로서 C 언어가 충분히 주목받을 수 있다고 생각한다. 물론 교육 콘텐츠를 기획하는 분들의 전문성과 결심이 사전에 뒷받침되어야 한다.
2. IoT
어쩌면 뻔한 이야기다. 하드웨어가 혁명적인 진화를 거쳐도 임베디드 분야는 제한된 컴퓨팅 리소스로 인해 최적화의 무한 굴레를 벗어날 수 없다. IoT 홍수 시대에 C 언어는 적절한 지위를 유지할 것이다.
서두에 잡설이 길었다.
「알쏭달쏭 C 언어 180제」는 책 제목처럼 문제집에 비유할 수 있다. 아시아에서만 나올 법한 기획으로 발간된 책이고, 역시나 일본 책을 번역한 것이다. 원제는 「풀면서 배우는 C 언어」이고 2016년 출간했다. 앞에 新이 붙은 걸 보니 개정판인 것 같아 정보를 찾아보았다. 오리지널 책이 2004년에 출간돼 19쇄까지 진행한 걸 보니 스테디셀러였나보다.
일단 책을 시원시원하게 넘겨보며 전체적인 구성을 파악한 후 느낀 것은 다음과 같다.
1. C 언어 기본서를 마스터하고 많은 문제를 풀어 C 언어 역량을 높이고 싶은 사람에게 권하고 싶다. 초중고 학생들에게는 익숙한 컨셉이다. 개념서를 학습하고 풀어봐야 하는 문제집인 셈이다. 앞서 언급한 컴퓨팅 사고력 교육에 C 언어가 활용된다면 이런 책은 잘 팔릴 것 같다. 하지만 그런 날이 올까?
2. YBM에서 주관하는 COS Pro C 언어 시험을 준비하는 사람이 보면 도움이 될지도 모른다. COS Pro 시험의 교재라고 할 수 있는 책이 시장에 없는 만큼 이 책은 좋은 대안으로 보인다.
3. 진짜 문제집이다. 목차를 보면 초중고 시절 주야장천 풀었던 문제집이 떠오른다.
C 언어는 내가 주력으로 사용하는 프로그래밍 언어가 아니므로 책 전체를 읽기보다는 대부분의 C 언어 학습자가 멘붕을 겪는 포인터 부분을 주의 깊게 살펴보고 몇 가지 생각을 정리해본다.
1. 역자가 고민한 흔적이 없다.
사실 이런 책을 소개해 준 것만으로도 감사한 일이다. 하지만 일본어 번역이 영어 번역보다 수월한 만큼 더 고민할 수 있는 시간을 확보할 수 있었을 텐데 매우 아쉽다. 일본어 번역 투가 고스란히 남아 있고, 교육 현장이나 실무에서 사용하지 않는 용어가 존재한다. 특히 이질적인 한자어들은 할많하않. 그냥 번역만 거친 책이다.
2. 문제의 구성이 좋다.
동해 건너에서 많이 팔린 책답게 문제 구성이 알찬 느낌이다. 그리고 각 장의 끝에 있는 빈칸 채우기 문제는 C 언어를 가르치는 분들이 탐을 낼 만한 요소가 아닐까. 책 제목에 있는 180제는 빈칸 채우기 문제를 제외한 각 장의 본문에 포함된 예제의 개수다. 모든 문제를 합하면 1,500개에 가까워 보인다. 대충 세어봤다.
결론이자 총평이다.
이 책은 좋다. 하지만 기계적으로 번역된 상태로 출간된 느낌이라 수명이 짧을 것 같다. C 언어를 사용한 경험이 너무 적은 분에게는 용어의 혼선이 생길 수 있다. 개념서 제대로 보고 일본어 번역 투의 용어는 머릿속에서 치환하며 공부하자. 끝.