“Hello Coding 개념부터 처음 배우는 프로그래밍” 은 중고등, 비전공자를 위해서 강력한 유튜버인 Pope 님이 쓴 책이라고 그래서 엄청 기대를 하고 신청을 했다. 그런데, 기대가 너무 컸던 것 같다. 책 자체는 좋은데, 뭔가 저자의 명성에서 은총알을 기대했다고 할까?
저자의 구성 센스에 대해서는 동의한다. 저자의 말에서는 이상한 개념의 책이라고 했는데, 어느 부분에 대해서 누가 이상하다는 말을 한 것을 들은 건지는 이해할 수가 없었다.
상세하게 툴을 쓰면서 피드백을 받는 이 방향은 당연한 방향 중의 하나라고 생각한다.
이것과 다른 방향이라면 전체 개념을 잡고서 시작하는 것? 이건 스키마가 아예 없는 경우라면 역시 당연하게 해야만 하는 부분일 것이다.
그게 아니면 절충해서 개념을 설명해가면서 상세 툴로 피드백을 하는 방법이 있을 수 있겠다.
이 세 가지의 방법 이외에 어떤 게 있을까?
어떤 특정 목표나 구현된 상태를 상정하고서 그것을 구현해가는 것으로 방향을 잡는 경우들이 있을 것 같기도 하고,
경영 쪽이나 자기 계발서등에서 도입하는 형식으로 가상 캐릭터를 내세워서 그들이 당면한 문제를 해결하는 식으로 진행하는 방법 등도 있겠지만 부수적으로 신경을 산만하게 하는 방법들이라서 와우~! 소리가 날만큼 좋았던 느낌은 없다.
학생 때에 받았던 수업 중에 Pseudo code 가 난무하던 교육 시간이 있었다. 물론, DB 나 알고리즘 등에 대한 부분이긴 했는데, 받아들이는 학생의 수준을 생각한다면, 그런 방법을 지금 아이들에게 적용할 수는 없을 것이다. 그리고, 지금의 학생들조차도 그런 수업을 감당할 수 있을까?
그런데, 특정 언어의 문법보다는 기초 개념을 설명한다는 책 표지의 설명은 교재를 보기 전에는오~올 그랬는데, 교재를 다 보고 나서는 좀 의아해졌다. C# 언어에서 완전 독립해서 개념만으로 다른 언어에 적용한다는 것은 좀 동의하기 힘들다.
코드 편집 부분 등에서 해당 챕터의 개념이라든가, 구문 등에 대해서 다른 부분들은 연하게 처리하고, 해당 장에서 강조하고자 하는 부분을 강조한다던가, 해당 개념에 대해서 다른 언어는 이렇게 표현한다던가 하는 정도까지는 가지 않기 때문에 “(C# 을 이용한)” 이라는 부분이 1/10 높이 정도로 작고 연한 글씨로 제목에 들어가 있어야 할 것 같은 느낌이다.
잘 하는 친구들은 이런 말할 필요가 없겠지만, 저자가 유튜브 채널에서 폴리글랏에 대해서 부정적으로 얘기했던 것까지 염두에 둔다면 그런 부분에 대해서는 1~2 페이지 정도는 언급을 해주는 게 좋았을 것 같다. 실제 독자가 아닌 구매자는 개념을 배웠으니 다른 모든 언어를 다 할 수 있을 거라고 착각하기 마련이고, 결국 실제 독자로부터 한 마디가 나온다. “아니, 엄마, 그렇게 안된다니까요.”
귀여운 삽화는 아이에게 프로그래밍을 만만하게 보고 접근하기 좋게 해주었다. 물론 프로그래밍 자체가 만만한 게 아니지만, 일단 시작을 해야 다음 선택이 있기 때문에. 함정? 낚시? 라 생각해도 어쩔 수 없지만, 뭐라도 들어오게 하기에 도움이 될 것 같다.
그리고, 글로 쓰여 있는 부분에 대해서 다시 반복해서 잡아주는 포인트 부분들에 삽화가 들어가서 잡아주는 지점들이 적당해서 좋았다. 좀 더 세세한 부분에 5~10 개 정도 더 들어가면 더 좋았을 것 같다.
요즘 많이들 대화식으로 구성을 하긴 하는데, 저자가 교수로서 강의실에서 좀 더 기초 학생을 가르치는 느낌으로 말하는 것 같은 대화식 설명이 좋았다. 그리고, 그런 설명이 교재 전체에서 통일된 느낌으로 계속 이뤄진다. 따라가기만 제대로 따라가면 개념 이해는 잘되겠다 싶다.
CUI 로 이뤄진 숫자야구를 활용한 집요한 예제도 일정 정도 좋았다. 호불호가 갈릴 수는 있는데, 개념의 이해를 위해서는 현란하게 여러 가지를 하는 것보다는 하나를 집중적으로 파면서 거기에서 해당 개념에 대해서 아이와 공통 용어로 표현했을 때에 해당 챕터의 개념에 대해서 공감대가 되도록 말할 수 있어서 좋았다.
여기까지가 책 자체에 대해서 읽으면서 느낀 점이었다. 아래부터는 출판사와 저자의 마케팅 타겟을 오독한 구매자의 관점이다.
우리 나라에 전산직의 수가 2014년 기준 약 100 여만명 으로 노동 인구(약 3700만) 대비로 하면 약 2.5% 정도 이다. 개발자로 등록되어 있는 사람의 수는 약 17만명 이라고 한다. 일하는 사람들 중에서 약 0.5%. 기혼 비율 잡고, 중등 ~ 고등학생의 부모라고 하면 약 3~4만 명 정도 될까?
프로그래밍에 경험이 있는 사람들이, 지금의 상황에서 뭐라도 아이들에게 가르치자고 생각할 때에 이 책이 약간 타이밍이 늦긴 한 것 같아도 쉬운 수준으로 잘 나온 것 같다고 생각했다.
그래서, “나리다” 이벤트에 참여해서 1지망으로 생각했던 책이 와줬고, 덕택에 아이와 함께 코딩을하는 것에 대한 실험을 해 보았다.
그리고, 오늘 2주간의 실험이 끝났다.
하하하, 결론은… 대실패다.
어느 정도는 아이가 스스로 할 수 있을 줄 알았다. 그건 대부분의 부모들이 가지고 있는 편향된 과대평가였고, 아이 입에서는 재미없다는 소리가 나왔다. 내 아이의 수준에 대해서 대실망이었다. 이 정도면 괜찮은데, 대화체라서 따라가기만 하면 되는데…
자녀에게 프로그래밍 교재를 해주고 싶은데, 스크래치 같이 너무 고수준 언어를 하는 경우보다는 더 좋을 것이라고 생각해서 교재로 선택한 부모에게는 에러가 될 수 있다.
애는 절대 혼자서 코딩 못한다.
그래도 이로 인해서 아이들을 어떻게 가르쳐야 할지에 대한 감을 잡은 시간이었다.
* 아이가 가장 좋아한 부분은 인텔리센스 였다. 자기가 몇 가지를 넣으면 나머지 부분을 컴퓨터가 자동으로 제시해주는 부분을 가장 신기해하고, 즐거워했다. 이런 면에서는 가장 강력한 인텔리센스 기능을 가지고 있는 C# 은 생각지 못한 정답이었다. 일단 코딩을 시작해야 웹 이든, 모바일이든 다음 선택지가 나온다.
물론, 이클립스 등에도 그런 기능이 있지만, 웹을 “일반” 프로그래밍이라고 하기에는 내가 너무 옛날 사람인가보다.
* 학원 등에서 진도, 집에서는 용돈 등의 압박 등이 있어야 성과가 나온다. 그럴 것이다.
* 세상이 변했는데, 교재도 변해야 하는 시점일 것이다.
이제는 예제들도 모두 github 에 올라가 있고, 그 완성품을 바로 보여주면서 개념을 이해시키는 방법을 써야 할 것이다. 아이 맞춤형으로 부모가 가르치려고 한다면 관련되는 부분을 교재와 함께 다 미리 준비해 둬야 한다. … 학원을 보내자.
* 즉물적인 방법이 아니고서는 흥미를 잡아둘 수가 없다.
그리고, 그것들이 자신의 이익에 철저하게 합치해야 지속적인 흐름이 일어난다.
* 개념적인 면에서는 CUI 로 내부의 내용의 변화에 대해서 개념 잡기가 될 것 같기는 한데,
아이들의 관심을 가져오려면 어쩔 수 없이 스크래치 같은 방식을 써야 할지, 주력 언어들을 통한 GUI 를 보여줘야 할 지에 대해서는 고민을 해봐야 할 것 같다.