파이썬, 일주일만 하면 남혜현도 할 수 있을까?
모든 건 술자리에서 시작됐다.
아니다, 술이 취하면 흥이 올라 “그거 재밌겠다, 제가 해볼까요?”라고 말하는 술버릇이 문제다.
내년이면 소프트웨어 교육이 중학교부터 의무화되는데, 그놈의 코딩이 무엇인지 직접 체험해보고 기사를 쓰면 얼마나 좋겠냐는 달콤한 말에 넘어갔다. 나처럼 개발의 개자도 모르는 무식한 사람이 코딩 책을 보고 왜 소프트웨어 교육을 받아야 하는지 실감할 수 있다면, 그리고 정말 운이 좋아 프로그래밍도 할 수 있게 된다면, 그 얼마나 많은 이들에게 희망을 주겠냐는 감언이설도 한 몫했다.
다음날 정신을 차리고보니, 한빛미디어에서 “파이썬 입문 책을 보낼테니 주소를 불러주세요”란 문자가 와있었다.
“저희집 주소는요, 서울시…”
그렇게 시작했다. 일명 ‘글로 파이썬 배우기’. 아니, ‘파이썬, 사흘이면 남혜현 만큼 한다(가제)’ 시리즈. 이놈의 술.
일단, 내가 코딩을 처음 접하는 초딩이라고 가정하고 공부를 시작한다. 교재는 한빛미디어가 발간한 ‘코딩클럽(10대를 위한 프로그래밍노트 수프)’. 4권 시리즈 중 파이썬 기초와 입문에 해당하는 두 권이다. 연재분은 아마도 5편 정도가 되지 않을까. 죽이되든 밥이되든 모르겠다. 일단 저지르고 보자.
우선 파이썬이 무엇인지 소개한다. 이 책은 파이썬을 이렇게 설명한다.
“C언어보다는 배우기가 쉽고, 빠르게 구현할 수 있으며, 특히 프로그래밍을 처음 배우는 이들에게 아주 좋은 프로그래밍 언어”
그렇지만, 나무위키는 파이썬 탄생기를 이렇게 말한다.
“창시자는 귀도 판 로썸(Guido van Rossum). 1989년 크리스마스 주에, 연구실이 닫혀있어서 심심한 김에 만들었다. 파이선 서문과 마이크로소프트웨어와 한 인터뷰를 보면 알겠지만 사실이다(…). 공돌이들은 심심할 때 항상 걸작이 나온다”
이왕, 이렇게 된거 목표도 세우자. 중도에 포기하지 않고 배운다면 ‘뉴스 클리핑’ 자동화 도구를 만들어보겠다. 가능하다면 말이다.
이제 목표도 세웠고, 책상도 닦았고, 가방도 다시 쌌다 풀었고, 연필도 깎았…도대체 왜?, 여튼 그랬으니 책을 펴보자.
본문에 들어가기 전에 부록부터 폈다. 무라도 썰려면 칼이 있어야 하듯 코딩을 배우려면 장비가 있어야지 않겠나. 도구부터 깔자. 부록편은 ‘파이썬 설치하기’.
책이 시키는 대로 파이썬 홈페이지에 접속, 프로그램을 다운로드 받자. 이 책은 2015년에 나왔다. 그러니까 버전은 책에 나온 것과 다르다. 지금 최신 버전은 3.6.2다.
책에는 한글로 안내가 나오지만 막상 파이썬 홈페이지에 접속하면 영문으로 안내된다는 것에도 놀라지 말자. 사실 제일 놀란 건 나다. 그렇지만, 주로 “넥스트(Next)”를 클릭하면 되니까 너무 쫄진 말자.
더욱 놀라운 건 다음 단계다. 내가 깐 건 32비트 버전. 내 컴퓨터는 64비트. 설치하자 마자 급 당황. “64비트 노트북에 32비트 프로그램을 깔아도 돌아가는건가요!!!” 긴급하게 보낸 메시지에 개발자 어르신이 준 답변. “메모리 차이가 있을뿐, 사용엔 문제가 없을 거예요.”
그 다음부턴 사실 일사천리다. 1장은, 이것만 하면 절반은 개발자가 된다는, 그러나 사실은 키보드만 칠 줄 알면 누구나 띄울 수 있을 것 같은 “Hello World!” 띄우기.
자, 이제 1장 끝이다. 이 책, 얇아서 좋다.
다음 관문은 2장, ‘몇 개의 문장을 만들기’와 ‘계산과 반복문 들어가기’다.
프로그래밍을 하기 위해선, 명령어를 집어 넣어야 한다. 이 명령어들은 개발자가 입력하면, 프로그램이 그대로 실행하기로 약속한 부호 같은 것이다. 예를 들어, 어떤 명령어를 치면 자동으로 줄이 바뀐다거나, 들여쓰기를 하는 식이다.
그런데,
여기서 만난 의외의 난관. 키보드에서 ‘역슬래시’ 찾기다. 없다. 아무리 찾아도 없다. 마침 회사에 출근해 있는 우리 회사 심스키 님께 SOS.
이건 정말 꿀팁이다. 꼭 알아두자. 왜냐면, 책에도 역슬래시가 키보드 어디에 위치해있는지 안알랴줌. 나도 한 5분 정도를 멍하게 키보드만 쳐다봤다. 만약, 자신의 키보드에 역슬래시가 없다면, 좀 뭔가 이상하게 속는 기분이어도, 그냥 시크하고 도도하게, 위 사진의 원화 표시를 눌러주자. 그럼 ‘\’ 이렇게 나온다.
다음은, 함수다. 물론, 안다. 나 같은 문과생 수포자들은 ‘함수’란 단어만 들어도 소름이 돋고 식은 땀이 난다. 그래도, 파이썬 레벨1의 함수는 아직 할만한다. 왜냐면 그래프가 안나오니까… 죄송합니다.
처음에는 더하기 빼기 곱하기 나누기를 프로그래밍하는 법을 가르쳐 준다. 곱하기를 하고 싶으면 숫자 사이에 *를 넣고, 나누고 싶으면 /를 넣는 식이다. 오랜만에 듣는 ‘정수’ ‘실수’ ‘나머지값’ 등의 단어가 낯설다는 것만 제외하면, 할 만하다.
이제, 레벨1에서 처음으로 약간의 난이도가 생겼다. ‘while’ 반복문의 등장.
예를 들어, “특정 문장을 몇 번 반복해 출력하라”거나, “만약 변수가 100보다 작다면, 그 다음에 오는 명령을 계속해 수행하라” 등의 명령을 만드는 것이다.
여기서 처음 오류를 냈는데, 다음 사진을 보면 알겠지만, 무언가 잘못 명령을 내려 무한루프에 빠졌다. 컴퓨터가 쉬지 않고 글자를 쏟아냈다.
이렇게 삽질하다가, 구구단 5단을 나열하는 프.로.그.래.밍을 했을 때의 그 기분, 장난 아니었다. 세상에, 내가 파이썬으로 헬로우 월드 말고 다른걸 할 수있게 되다니.
그렇다. 나처럼 이런 코드를 써보는 것은 사실, 아무 것도 아니다. 그런데 딱 하루 공부해보니까 이런 생각이 들더라. 코딩 공부하겠다고 기사도 안 쓰고 앉아 있는 나를 보고, 맞은편에 앉은 심스키 님이 내준 숙제처럼(1부터 100까지 합산하는 알고리즘 짜기, 덕분에 야근했다), 소프트웨어 교육은 단순한 코딩 교육이 아니라, 스스로 알고리즘을 만들려고 머리 쓰고 생각하는 공부인 것 같다는. 소프트웨어 교육에서 중요한 건 결국 스스로 생각하는 논리 근육을 머리에 만들어 주는 것 아니겠는가.
이렇게 2장까지 마무리. 첫 날 공부는 여기까지다. 우리, 3장에서 만나요.
글. 바이라인네트워크
<남혜현 기자> smilla@byline.network
[무료 웨비나] API연결만으로 가능한 빠르고 쉬운 웹3 서비스 구축
- 내용 : API 연결을 통해 웹2와 웹3를 끊김 없이 연결하는 최신 융합 기술과 이를 통한 적용 사례를 다룹니다.
- 일시 : 2024년 10월 10일 (목) 14:00 ~ 15:10