이 책의 1장은 '무엇을 할 것인가'라는 제목으로 시작한다. 우리는 작업을 하거나 문제를 해결하기 위해 컴퓨터(프로그램)를 사용한다고 했다. 프로그램을 만들기 위해서는 프로그래밍을 해야 하고, 프로그래밍을 위해서는 코드를 작성해야 한다. 즉, 컴퓨터가 알아듣는 언어로 명령을 전달해야 하고 코딩은 우리의 언어를 컴퓨터의 언어로 바꿔주는 번역기에 해당하는 것이다.
'무엇을 할 것인가'에 대해 답을 하자면, 나는 '파이썬을 공부하여 프로그램을 만들 것이다'. 어떻게? 이 책을 가지고 쌤과 함께. 쌤은 책을 읽는 것으로 학습을 시작하였다. 그냥 읽는 것이 아니라 제대로, 내 것으로 소화하면서 읽는 것!
나: 그런데, 프로그램이 정확히 뭐야? 이제 막 프로그래밍을 배우는 사람에게 뭐라고 설명해 줄 수 있을까?
Chatpy: 프로그래밍의 맥락에서 프로그램은 컴퓨터에게 무엇을 해야 하는지 알려주는 일련의 명령어로 설명할 수 있습니다. 이러한 명령어는 Python과 같은 프로그래밍 언어로 작성됩니다. 프로그램을 작성할 때는 기본적으로 컴퓨터가 작업을 수행하기 위해 따라야 할 단계를 작성하는 것입니다. 이러한 단계는 컴퓨터에서 실행되어 사용자가 제공한 논리에 따라 일종의 출력을 생성하거나 작업을 수행합니다.
프로그래밍을 처음 접하는 사람이라면 프로그램을 레시피라고 생각할 수 있습니다. 레시피가 요리를 만들기 위한 단계별 가이드를 제공하는 것처럼, 프로그램은 컴퓨터가 특정 작업을 수행하거나 문제를 해결하기 위한 단계별 지침을 제공합니다. 컴퓨터는 이러한 지침을 정확히 따르기 때문에 '레시피'(또는 코드)의 명확성과 정확성이 매우 중요합니다.
사실, 처음 프로그래밍을 배우려는 사람 입장에서는 그들이 아무리 쉽다고 말한들 프로그래밍 책을 읽는 것은 너무 어렵고 여러 가지 진입장벽이 있다.
예를 들어 이 책의 '들어가기 전에'에 나오는 '파이썬 설치'에 보면 (macOS 기준, 모든 작업은 macOS 기준으로 작성된다) 파이썬 공식 사이트에서 Download를 클릭하고 최신 버전을 다운로드한 후 실행하라고 쓰여 있다. 그런데, 처음 코딩을 배우고자 했을 때는 다운로드 후 어떻게 실행해야 하는지 몰라 헤매기도 했다. 누구나 무언가를 다운로드한 후에 실행하는 법을 안다는 전제하에 쓰인 문구 같은데, 실행이란 것이 설치인지, 설치는 어떻게 해야 하는 건지, 설치 후 실행은 또 어떻게 하는 건지, 제대로 설치되었는지는 어떻게 확인해야 하는지... 막막했다. 초급서라 하면, 추가로 검색할 필요 없이 그 책을 읽는 것만으로 시작할 수 있어야 할 것 같은데, 정말 아주아주 기초적인 것까지 알려주는 것은 너무 지면 낭비일까?
다시 이 책을 학습하는 것으로 돌아가보자. 쌤과 나는 책을 한줄한줄 같이 소리 내어 읽으며 학습을 시작했으며, '당연하다'라고 생각했던 것들에 대해 구체적으로 설명할 수 있을 정도로 내용을 들여다보았다.
쉽게 말해, "한 줄에 있는 단어의 개수를 판단하는 것"이라는 문장에서 '한 줄'은 무엇을 말하고, '단어'는 어떻게 정의할 수 있으며 여기서 '판단'은 어떤 의미로 쓰였는지 등이었다. 이 과정에서 나는 조금 더 컴퓨터가 이해할 수 있는 언어 이전에 내가 이해할 수 있도록 책의 문장을 정의하는 법을 배워나갔다.
이 장에서는 단어 개수 세기(문제1)와 원뿔의 부피 계산(문제2)을 통해 파이썬을 배울 것이다. 우선, 각 문제마다 해결하기 위한 프로그램을 작성할 것인데 각 문제는 프로그램이 제공할 입력의 유형(타입)과 예상되는 출력의 유형(타입)을 정의한다. 프로그램은 입력(입력 읽기, 문제 인스턴스)-처리-출력(출력 쓰기)의 모델을 따르며 이 책을 통해서는 순차적인 프로그램만 다룰 것이다.
덧, 터미널이라는 프로그램을 통해 파이썬 쉘을 사용할 것이다. 터미널은 애플리케이션 폴더에서 찾을 수 있으며, Dock에 넣어두면 찾기 편하다. 파이썬3이 제대로 설치되어 있다면 애플리케이션 폴더에 Python3 폴더가 보일 것이다.
파이썬쉘을 사용하는 방법은 영상을 참고하기 바란다.
덧, 소리까지 들으면 더 자세히 내가 삽질(?)한 내용을 알 수 있음
자, 그럼 이제 본격적으로 문제를 해결해 볼까?
'Python 배우기' 카테고리의 다른 글
[외계어 배우기] 문제#1 WordCount (4) | 2024.02.10 |
---|---|
[외계어 배우기] 정수, 변수(문제#1 WordCount) (6) | 2024.02.09 |
[외계어 배우기] 문자열(문제#1 WordCount) (0) | 2024.02.09 |
[외계어 배우기] 들어가기 전에 (1) | 2024.02.07 |
[외계어 배우기] 준비 (4) | 2024.02.07 |