생활 교양 프로그래밍 입문 - 이야기로 배우는 프로그래밍 교양 강좌 (시미즈 료, 2015)

Info/IT-코딩|2022. 11. 21. 06:00

책소개

AcornLoft 시리즈. 이 책은 기초 지식이 전혀 없어도 읽을 수 있는, 코드 한 줄 없는 프로그래밍 교양서다. 이제는 문과든 이과든 전공과 무관하게, 또한 나이와 상관없이 생활 코딩 지식이 교양처럼 여겨지는 시대다. 이 책은 프로그래밍에 대해 아무것도 모르는 사람들에게 기초 지식을 제공할 목적으로 쓰였다.

 

이 책에서는 이 프로그램들의 공통 법칙이 무엇인지 설명하고, 일상 생활 속 대화를 프로그램으로 고쳐 쓰는 예시를 통해, 논리적 사고법이 프로그래밍의 정수임을 보여준다. 또한, 저자가 개발한 온라인 프로그래밍 플랫폼에서 실습을 통해 말하듯 쓰는 문장을 재배열하는 것만으로 게임을 직접 개발해봄으로써 프로그래밍에 좀더 친숙해지게 만든다. 프로그래머처럼 사고하는 방법을 익히고 프로그래밍에 대한 기초적인 양식을 쌓을 수 있는 현대인의 교양서다.

 

각 장의 말미에 자리한 '컴퓨터의 탄생과 진화'라는 칼럼에는, '컴퓨터 개발의 여명기, 전쟁과 컴퓨터, 기업과 컴퓨터, 개인용 컴퓨터 시대의 도래' 등의 컴퓨터 발전사에 대해 총괄적으로 훑어주는 흥미로운 내용이 담겨있다.


 목차

1장 프로그래밍은 늘 당신 곁에

프로그래밍을 배워서 어디에 쓸까

프로그래밍이란?

프로그래밍은 '인류가 쌓아온 지혜의 정수'

어디서나 활용될 수 있는 프로그래머식 사고법

컴퓨터 바깥의 프로그래밍 1 - 나가시노 전투

컴퓨터 바깥의 프로그래밍 2 - 블랙 먼데이

컴퓨터 바깥의 프로그래밍 3 - 결혼

컴퓨터 바깥의 프로그래밍 4 - 유술과 유도

프로그래밍에 대한 두 가지 접근법

[COLUMN] 컴퓨터의 탄생과 진화 1: 컴퓨터 개발의 여명기

1세대 컴퓨터

자동계산기와 IBM의 탄생

증기기관 컴퓨터

 

2장 컴퓨터 없이 프로그래밍 입문

프로그래밍 철칙 1 - 빠짐없이 전달하기

프로그래밍 철칙 2 - '커뮤니케이션' 하기

프로그래밍 철칙 3 - '풀 프루프' 활용하기

프로그래밍 철칙 4 - '들여쓰기' '색깔 입히기'로 모양 잡기

프로그래밍의 예 1 - 점술

프로그래밍의 예 2 - 게임

[COLUMN] 컴퓨터의 탄생과 진화 2: 전쟁과 컴퓨터

컴퓨터의 진화를 가속화한 제2차 세계대전

컴퓨터의 원형이 된 '튜링 머신'

프로그램 내장식 컴퓨터의 등장

 

3장 지금 바로 쓸 수 있는 프로그래밍 기법

알고리즘: 효율적인 작업순서를 도식화하기

처리, 분기, 루프: 프로그램의 기본 요소

루틴과 함수: 반복 없이 생략해서 표현

하이퍼링크: 외부 정보로 이동

해시+테이블: 효율적인 명단 관리

계산 테이블: 생각하는 시간을 극적으로 단축하자

[COLUMN] 컴퓨터의 탄생과 진화 3: 기업과 컴퓨터

IBM과 함께 발전한 컴퓨터

트랜지스터, 그리고 실리콘밸리의 탄생

일본인의 공헌

 

4장 컴퓨터 프로그래밍 맛보기

이제, 컴퓨터 프로그래밍을 시작하자

'문블록'(MOONblock)을 써보자

시간 한정 프로그램을 만들어보자

첫 번째: 정해진 시간이 되면 알람이 울리는 프로그램

두 번째: 정해진 시간이 되면 트릭이 실행되는 프로그램

제비뽑기 프로그램을 만들어보자

곰돌이가 뽑아주는 운세쪽지

게임도 만들 수 있다

곰돌이의 과일 받기 게임

[COLUMN] 컴퓨터의 탄생과 진화 4: 개인용 컴퓨터(PC) 시대의 도래

컴퓨터는 왜 이렇게 생겼을까

개인용 컴퓨터의 아버지, 앨런 케이

 

5장 프로그래밍의 미래

글 쓰듯 프로그래밍하는 시대

초등학교에서 프로그래밍을 배우는 시대

버그가 없음을 증명하는 프로그래밍

손으로 만지는 프로그래밍

세상의 모든 것을 프로그래밍하기

컴퓨터가 인류의 사고능력을 넘어서는 날

누구나 개발자가 될 수 있는 환경을 만들자

'인챈트문'이라는 도전

미래 예측


출판사 제공 책소개

 

요약

기초 지식이 전혀 없어도 읽을 수 있는, 코드 한 줄 없는 프로그래밍 교양서. 이제는 문과든 이과든 전공과 무관하게, 또한 나이와 상관없이 생활 코딩 지식이 교양처럼 여겨지는 시대다. 이 책은 프로그래밍에 대해 아무것도 모르는 사람들에게 기초 지식을 제공할 목적으로 쓰였다. 이 책에서는 이 프로그램들의 공통 법칙이 무엇인지 설명하고, 일상 생활 속 대화를 프로그램으로 고쳐 쓰는 예시를 통해, 논리적 사고법이 프로그래밍의 정수임을 보여준다. 또한, 저자가 개발한 온라인 프로그래밍 플랫폼에서 실습을 통해 말하듯 쓰는 문장을 재배열하는 것만으로 게임을 직접 개발해봄으로써 프로그래밍에 좀더 친숙해지게 만든다. 프로그래머처럼 사고하는 방법을 익히고 프로그래밍에 대한 기초적인 양식을 쌓을 수 있는 현대인의 교양서다.

 

이 책의 구성

1, '프로그래밍은 늘 당신 곁에'에서는 프로그래밍이 무엇이며 어디에 활용되는지, 일상생활과 연계해 설명한다.

 

2, '컴퓨터 없이 프로그래밍 입문'에서는 프로그래밍 알고리즘에 대해 프로그래밍 코드 한 줄 없이 일상 속 대화를 예로 들어 흥미롭고 쉽게 이해할 수 있도록 설명한다.

 

3, '지금 바로 쓸 수 있는 프로그래밍 기법'에서는 알고리즘, 분기, 루프, 함수, 하이퍼링크 등 여러 가지 프로그래밍 기초 지식을 쉬운 설명과 함께 배워본다.

 

4, '컴퓨터 프로그래밍 맛보기'에서는 저자가 개발한 비주얼 프로그래밍 방법인 문블록(http://moonblock.jp/#) 사이트 예제를 통해 손쉬운 게임을 직접 만들어 본다. 인터넷이 연결된 웹 브라우저만 있으면 저자의 설명을 따라하며 초간단 프로그래밍의 기초를 맛볼 수 있다.

 

5, '프로그래밍의 미래'에서는 프로그래밍이 교양으로 자리한 오늘날을 진단하고 미래를 전망해본다.

 

각 장의 말미에 자리한 '컴퓨터의 탄생과 진화'라는 칼럼에는, '컴퓨터 개발의 여명기, 전쟁과 컴퓨터, 기업과 컴퓨터, 개인용 컴퓨터 시대의 도래' 등의 컴퓨터 발전사에 대해 총괄적으로 훑어주는 흥미로운 내용이 담겨있다.

 

이 책에서 다루는 내용

기계와 커뮤니케이션을 가능케 하는 유일한 수단인 '프로그래밍'. 실제로 프로그래밍 앞에 '컴퓨터'라는 수식어가 당연한 것처럼 붙게 된 것은 백 년도 되지 않은 일이며, 이전에는 효율적인 분할 정복을 위해 만들어진 시스템을 '프로그램'이라 통칭했다. 수많은 프로그램은 곧 인류가 쌓아온 정수다. 컴퓨터를 없으면 하루도 살 수 없게 된 오늘날, 프로그래밍은 이제 '교양'이다. 학생이건 직장인이건 CEO이건 프로그래밍을 배우고, 프로그래머처럼 논리적으로 사고하는 방식은 모든 이에게 필수 교양으로 대두되고 있다.

 

이 책에서는 이 프로그램들의 공통 법칙이 무엇인지 설명하고, 일상 생활 속 대화를 프로그램으로 고쳐 쓰는 예시를 통해, 논리적 사고법이 프로그래밍의 정수임을 보여준다. 또한, 저자가 개발한 온라인 프로그래밍 플랫폼에서 실습을 통해 말하듯 쓰는 문장을 재배열하는 것만으로 게임을 직접 개발해봄으로써 프로그래밍에 좀더 친숙해지게 만든다.

 

이 책 한 권이면 띄어난 프로그래머의 사고 방식을 익힐 수 있다. 21세기 리더들은 어떤 눈으로 세상을 바라보는지 이 책에서 익혀 보자.


저자 서문

예전에 대학생을 대상으로 무료 프로그래밍 강좌를 연 적이 있습니다. 생각보다 수강자들이 많이 모였고, 그중 대부분이 문과 출신이라는 점에 적잖이 놀랐습니다. 저를 비롯한 이과 출신은 프로그래밍에 대해 막연히 '홀로 습득하는 것'이라고 생각하는 경향이 있는 데 반해, 문과 출신 중에는 '배우는 것'이라는 감각을 지닌 이들이 많다고 느꼈습니다.

 

이때 강좌에 참여한 인문학부 여학생에게 어떻게 프로그래밍에 관심을 갖게 되었는지 묻자, "21세기에는 프로그래밍이 교양으로 자리잡을 것이라고 생각했기 때문에"라는 답변이 돌아왔습니다. 오랜 세월 동안 프로그래밍을 업으로 삼고 살아온 제게 이 한마디는 전혀 예상치 못했던 것으로, 충격적이지만 한편으로는 어딘지 모르게 고개가 끄덕여지는 대답이었습니다.

 

저는 여섯 살 때 처음 컴퓨터를 만져보았습니다. 당시 보급형 컴퓨터에는 마우스도 하드디스크도 구비되어 있지 않았고, 히라가나를 한자로 변환해주는 시스템도 탑재되어 있지 않았습니다. 소프트웨어도 자체 제작할 수밖에 없었던지라, 어렸을 때부터 컴퓨터를 좋아했던 저는 한자나 일본어의 고급 문법을 익히기도 전에 프로그래밍을 먼저 익혔습니다. 그로부터 30년의 세월이 흐르는 동안, 여섯 살짜리 아이도 다룰 수 있는 프로그래밍 언어 '문블록(MOONBlock)'과 프로그래밍 단말기 '인챈트문(enchantMOON)'을 개발하였고, 지금은 벤처 기업을 경영하고 있습니다.

 

돌이켜보면 프로그래밍을 공부하면서 단순히 프로그램을 만들고 컴퓨터 다루는 법을 익히는 것 이상으로 많은 것들을 배울 수 있었습니다.

 

이렇게 말하는 저도 전업 프로그래머로 일한 기간은 평생을 통틀어 겨우 4~5년에 지나지 않습니다. 회사에 취직했을 때 만든 몇 가지 콘텐츠가 히트를 치기도 했습니다. 창업을 한 후에는 경영자로서 조직을 운영하고 사업 계획을 짜는 등의 일을 하며 오늘에 이르렀습니다.

그러나 이 모든 일을 할 때 저는 스스로 프로그래머라는 자각을 갖고 일을 해왔습니다. 그도 그럴 것이, 보통 회사원들이 골치 아프게 생각하는 기획, 조직, 사업 계획 책정 등 이 모든 업무는 프로그래밍 지식의 응용판이라 생각하고 접근할 수 있기 때문입니다.

 

프로그래밍을 한마디로 표현하면, '자기 외부의 것들을 자신이 생각하는 대로 움직이게끔 하는 방법'이라 할 수 있습니다. 적절히 프로그래밍된 구조는 최초의 제작자가 없을 때도 제작자의 의도대로, 즉 프로그래밍된 대로 움직입니다. 이를 기획에 적용해본다면 기획자의 의도대로 사용자의 마음을 움직이려는 행위도 프로그래밍이며, 조직에 적용한다면 조직 전체를 리더의 의도대로 움직이려는 행위도 프로그래밍이라 할 수 있습니다.

 

즉 이 같은 일을 하는 사람들은 스스로 의식하지 못할 수도 있으나 모두가 프로그래머의 일을 하고 있다고 볼 수 있습니다. 꼭 산업 분야가 아니라 할지라도 아이를 둔 부모로서 자녀 교육, 혹은 자녀를 대하는 방법에 대해 고민하고 있다면 이 역시 프로그래밍을 하고 있는 것입니다. 다만 워낙 광범위한 분야에서 프로그래밍의 사고방식이 일반적으로 쓰이고 있는 탓에 우리가 프로그래밍의 존재를 의식하지 못하고 있을 뿐입니다.

 

제 사업뿐만 아니라 인생의 중요한 판단과 의사결정에도 프로그래밍을 공부한 것이 큰 영향을 주었습니다. 곰곰이 생각해보면 이 모두가 꼭 전업 프로그래머로 일하지 않을 때에도 '이렇게 하면 그렇게 된다'는 프로그래밍 지식을 갖추고, 더 넓고 깊게 사고할 수 있었던 덕분입니다.

 

실제로 제 주변을 둘러보면 관료나 경영자분들 중에서도 프로그래밍 스킬을 지닌 분들이 적지 않습니다. 물론 이 분들이 스스로 의식하고 있는지는 모르겠으나, 프로그래밍의 사고방식이 몸에 밴 분들이 비교적 사회적으로도 개인적으로도 성공을 거두고 있는 것처럼 보일 때가 많습니다.

 

이렇게 헤아려보면 프로그래밍은 단순한 기술이나 취미 활동이 아니라, 문학부 학생이 말했던 것처럼 '교양'으로서 자격을 갖추었다고도 볼 수 있지 않을까요? 프로그래밍은 수많은 학문 분야를 토대로 오늘날의 형태로 진화하였고 지금도 진화하고 있습니다. 이를 익히면 직장에서도 일상생활에서도 큰 도움이 될 것입니다.

 

이 책에서는 프로그래밍에 종사하고 있지 않은 독자는 물론 현직 프로그래머도 즐겁게 읽을 수 있도록, 프로그래밍의 탄생에서 구조, 프로그래밍으로 바라본 세계에 이르기까지 폭넓은 내용을 차근차근 소개하려 합니다. 이 책을 프로그래머의 시각을 보여주는 안내서 정도로 생각해주시면 좋겠습니다.

 

프로그래밍의 세계는 광활하며 찬란한 매력으로 가득합니다. 이제부터 함께 모험을 떠나봅시다.

댓글()