이 책을 이제서야 완독하고 느낀점을 적어보려고 한다. 너무 늦었다.
인턴으로 입사하고 팀장님께서 주니어개발자로 첫 시작을 하는 나에게 주신 의미있는 책이라고 생각했다. 사실상 공감이 많이 된 부분이 있었다. 20년 하반기에 처음 코딩을 접하고 컴퓨터 사고력이라는 부분에서 어려움이 있었다.
과연 컴퓨터 사고력이 무엇일까.... 기존에 사고 방식과 무엇이 다를까... 하지만 코딩을 하기 위해서는 필요한 부분이라고 생각이 들었다. 그래서 읽기 시작했다.
컴퓨팅 사고력은 크게 4개 영역으로 구성이 된다.
그렇다면 4개의 영역을 조합해서 의미를 만들어본다면, 특별한 사고 패턴과 절차를 사용해서 문제를 찾아내고 해결하거나 컴퓨팅을 위한 프로그램을 고안하는 것. 특히, 문제 분해, 패턴 매칭, 추상화, 자동화를 말한다.
이런 과정들을 통해서 우리는 컴퓨팅 사고력을 익힐 수 있다. 하지만 우리는 이미 컴퓨팅 사고력을 접하고있었다. 그냥 그게 컴퓨팅 사고력인지 몰랐을뿐이다.
스도쿠와 같은 퍼즐을 풀 때, 레고 블럭을 설명서를 보고 조립할 때 어떻게 보면 이런 일상생활속에서도 우리는 컴퓨팅 사고력을 경험하고 있었던 것이다.
이 책에서는 컴퓨터과학을 영화에 비유를 했다. 결국 컴퓨팅 사고력은 영화 대본과 비유를 했다. 영화는 대본이 작성되면 대본에 나온 방향대로 흘러간다. 컴퓨팅 과학에서도 알고리즘으로 짜여진 흐름으로 프로그램이 돌아가기 때문에 비슷한 맥락일 수 있다고 생각이 들었다.
결국 이 책에서 강조하는 내용은 컴퓨터 과학이 중요하다는것을 강조해준다. 근데 책을 읽으면서 나도 컴퓨터 과학이 중요하다는 것을 깨달을 수 있었다. 어쩌면 단순히 우리 일상에서 경험하고 있는 것을 컴퓨터 과학이라고 인지하지 못하고 지나가는 부분이 아쉬운 현실이기도 한다.
최근 미국에서는 초등학생들에게 코딩을 가르쳐 주면서 컴퓨터 과학을 가르치고 있다. 결국 선진국에서 컴퓨터 과학이 중요하다는 것을 반증해주는 내용이 아닌가 생각이 든다.
결국 이 책에서 강조하는 컴퓨터 과학의 핵심은 다음 글에서 한번에 정리할 수 있다.
"나는 모든 사람이 프로그래머가 되어야 한다고 생각하지 않습니다. 그러나 컴퓨터가 이해하는 방식으로 생각을 구조화하고 표현하는 능력은 당신이 어떤 분야에 종사하든 가장 핵심적인 미래 역량이 될 것 입니다."
-- 린타 리우카스(Linda Liukas), 레일스 소녀 코딩 커뮤니티 설립자
여기서 강조하는 컴퓨터 과학의 핵심이다. 문제를 해결하는 매개체로, 목표를 향해서 끈기 있게 나아갈 수 있는 기회를 제공하고 실행한 결과를 바로 보여주는 도구. 그것이 컴퓨터 과학의 핵심이라고 볼 수 있다.
나는 부트캠프 출신이다. 그래서 그런지 위에있는 요소들이 너무나도 공감이 되는 부분이었다. 그중에서 의사소통, 끈기, 문제해결 이 요소가 너무나도 공감되는 부분이다.
[의사소통]
개발자가 개발만 잘해야하는 편견은 정말로 잘못 된 생각이다. 개발자는 기본적으로 다양한 직무를 가진 사람들과 소통을 통해서 개발을 해야하는 상황이 비일비재하다. 그런데 의사소통이 안중요하다? 정말 말이 안된다. 결국에는 의사소통을 베이스로 개발을 하는 직군이 개발자이다. 결국 내가 하고 있는 개발을 남이 이해할 수 있도록 설명할 수 있는 능력이 필요하다.
[끈기]
끈기는 사실 어떤 영역에서 모두 해당되는 요소인 것 같다. 끈기를 가지고 무언가를 해결하려고하는 자세가 결국에는 필요하다. 컴퓨터 과학에서도 알고리즘적인 사고를 하기위해서 끈기를 가지고 오랫동안 고민하고 해결하려고 노력하는 자세가 결국에는 개발자에게 매우 중요한 요소이다.
[문제해결]
결국에는 위에 있는 끈기와 연결되는 부분이다. 끈기있게 문제를 해결하려는 자세. 연결되는 맥락이지만, 결국 내가 개발자 취업시장에서 채용과정중에 문제해결능력은 정말 필수적으로 물어보는 질문이다. 어떠한 문제를 해결할 수 있는 능력을 가지고 있는가를 가장 중요하게 본다. 개발자는 프로덕트를 제작하기 위해서는 컴퓨팅 사고력을 통해서 문제를 해결해야한다. 어쩌면 가장 중요한 요소라고 생각되는 부분이다.
결국은 컴퓨팅 사고력(컴퓨터과학)은 코딩을 하지 않아도 일상생활에서 충분히 사고력을 기를 수 있는 부분이라고 보여진다. 결국에 위에 적힌 것처럼 꼭 프로그래밍에서 필요한 요소가 아니라 여러가지 부분에서 필요할 것 이라고 생각한다.
그런의미에서 이 책에서 말하는 컴퓨팅 사고력 교육이 필요하다는 것에 동감한다.
한국도 미국처럼 코딩교육이 아니더라도,컴퓨팅사고력을 기를 수 있는 문화가 형성되는 그 날을 기원한다.
어쨌든, 코딩을 처음 시작하는 사람들에게 이 책은 컴퓨터 사고를 익히기에 아주 알맞은 책인 것 같다.