1 소프트웨어 교육과 C 언어
미래는 소프트웨어 중심의 사회가 될 것입니다. 현재도 소프트웨어는 우리 일상 깊숙히 자리잡고 있습니다. 가장 대표적인 예가 휴대전화인데 예전에는 단순히 전화 통화만 가능했지만 지금은 못하는게 없습니다. 내비게이션으로 길도 찾고, 배달 앱으로 음식도 주문하고, SNS도 하고, 쇼핑도 하고, 게임도 할 수 있습니다. 사실 이 모든 것이 소프트웨어로 이루어져 있습니다.
문화 예술 분야도 마찬가지입니다. 몇 년 전 큰 인기를 끌었던 애니메이션 겨울왕국은 컴퓨터와 소프트웨어가 없으면 만들 수 없는 작품입니다. 예전에는 손수 그림을 그렸겠지만 지금은 애니메이션 제작에 3D 모델링 소프트웨어를 사용합니다.
시간이 지날 수록 전문적인 분야뿐만 아니라 일상 생활에 밀접한 분야까지 소프트웨어와 융합되고 있습니다. 정확히는 컴퓨터 과학(Computer Science, CS)과의 융합입니다. 애니메이션은 CS + 예술, 스마트 렌즈는 CS + 의학, 웨어러블 기기는 CS + 패션, 무인 자동차는 CS + 기계공학이라 할 수 있습니다.
예전에는 프로그래머가 되고 싶은 사람만 프로그래밍을 공부했는데 지금은 마케팅같은 분야도 프로그래밍을 배웁니다. 고객 및 시장 분석을 할 때 프로그래밍 언어를 활용하는 것이지요. 그래서 앞으로는 어떤 직업을 가지더라도 프로그래밍 능력이 중요합니다.
미래에도 소프트웨어 기술과 인터넷은 일상 생활의 중심이 될 것이며 소프트웨어 교육은 필수라 할 수 있습니다.
여기서 소프트웨어 교육은 코딩이 전부가 아니라 문제 해결을 위한 과학적 사고를 기르는 것입니다. 왜냐하면 프로그래밍 언어 자체는 도구에 불과하며 결국은 원하는 작업을 처리하는 것이 목적이기 때문입니다.
1.1 컴퓨터와 프로그램
우리는 컴퓨터를 사용할 때 웹 브라우저로 인터넷을 검색하고, 워드로 문서를 작성하며, 엑셀로 도표를 그리기도 하고, 각종 게임 클라이언트로 게임을 합니다.
사진 편집을 하고 싶다면 포토샵을, 3D 모델링을 하고 싶다면 3ds Max나 마야를 설치해야 합니다. 다른 작업을 하고 싶다면 작업에 맞는 프로그램을 설치해야겠죠?
즉, 프로그램은 사람이 원하는 작업을 처리해주는 도구입니다. 여기서 사람이 원하는 작업은 셀 수 없이 많은데 예를 들어 다음과 같이 사진을 특수 문자 형태로 출력하고 싶다고 합시다(사진을 편집하는 것이 아니라 사진의 색상에 따라 %, @, * 등으로 출력).
사진을 편집하는 작업이 아니기 때문에 포토샵으로는 해결할 수 없습니다. 그렇다고 색상에 따라서 일일이 특수 문자를 입력할 수도 없죠. 워드나 메모장에서도 해결하기가 힘듭니다.
그럼 어떻게 해야 할까요? 사진을 특수 문자로 출력하는 프로그램을 만들면 됩니다. 유료 프로그램을 구입해서 설치하는 것이 아니라 직접 만드는 겁니다. 어려울 것 같지만 C 언어를 배우면 충분히 가능한 일이며 책 후반부에서 실습을 해보겠습니다.