[리뷰] 혼자 공부하는 첫 프로그래밍 with 파이썬



한빛미디어 출판사의 "혼자 공부하는 첫 프로그래밍 with 파이썬(문현일 저)"를 읽고 작성한 리뷰입니다.

표지


본 도서는 처음 프로그래밍을 학습하는 사람을 위한 프로그래밍 입문서이다.

개인적으로 C, Java 등의 프로그래밍이야 다룬지가 10년이 넘었고 덕분에 Python에 적응하는데 그리 오랜 시간이 걸리지 않았다.

그럼에도 이 책을 읽게 된 이유는 아이와 아내가 프로그래밍에 관심이 많아 가족들을 가르치기 위한 교재를 선별하기 위함이었고, 다른 소소한 목적은 내가 처음 프로그래밍을 배울 때와 달리 얼마나 교육, 미디어가 훌륭해졌는지 궁금해서였다.

프로그래밍에서 가장 중요한 것은 무엇일까?

아마도 각자 처한 목적이나 수준에 따라 다른 대답이 나오겠지만 왕초보 시절을 떠올려 보니 적어도 입문자 기준에서 가장 중요한 기법은 제어문과 반복문이 아닐까 싶다.

변수, 데이터형 그리고 통합개발환경(IDE) 구성쯤이야 시간 싸움이다. 시간만 충분하다면 이해하는데 무리가 없다. 반면 제어문과 반복문은 프로그래밍에 발을 들이는 사람으로써 처음으로 어려움을 겪는 장애물이다.

만약 이 첫 관문을 통과하지 못한다면 뒤이어 넘어야 할 산(?)들을 넘기 쉽지 않을 것이다. C언어의 포인터 개념, 함수의 모듈화, 클래스의 OOP, 자료구조와 알고리즘, 패턴 및 프레임워크 그 외 AI나 게임분야와 같이 업무 도메인 특성에 따른 수학, 물리학 등 기초 학문의 적용 등 녹록치 않은 장애물들이 기다리고 있다.

참고로 본 도서에서는 앞서 언급한 장애물 중 첫 관문인 제어문과 반복문, 그리고 함수의 모듈화까지 2개의 관문을 다룬다.

사실 입문자의 목적은 내공이 중후한 실력이 고강한 프로그래머가 되는 것은 아닐 것이다. 아마도 비 전공자로써 요즘 핫하다는 프로그래밍을 배워 전문성을 함양하거나, 직장 업무에 있어 노가다성 업무에 소요되는 시간을 줄여본다거나, 아니면 프로그래머로써의 꿈이 아닐까라는 생각이든다.

그런 측면에서 본 도서는 타깃 독자층을 제대로 파악하고 그들의 목적을 이룰 수 있는 수준의 적절한 내용을 담고있다고 생각한다. 적어도 지금까지 본 프로그래밍 입문서 중에서 가장 뛰어난 책으로 보인다.

20년 전 컴퓨터공학과 최고의 속담은 백견이 불여일타였다.

다른 학생들이 전공을 책과 이론으로 학습할 때, 우리는 눈으로 볼 수 있는 프로그램을 완성하는 행동을 높이 샀다. 너무 실습 측면만 바라보면 Trade-off가 생기기 마련이겠지만 적어도 초보 프로그래머에게는 진리이다.

당장 내 컴퓨터에서 내가 만든 프로그램이 원하는대로 돌아가는 것을 보는 것 만큼 흥미롭고 보람된 일이 있을까?

정리하자면 선 경험을 구구절절이 늘어놓은 까닭은 프로그래밍 첫 입문서의 자격을 판단하기 위한 기준을 파악하기 위해서이다. 즉, 내가 생각하는 기준은 2가지로 요약할 수 있는데,

  • (최소한의 학습으로) 지금 당장 프로그램을 개발할 수 있는가?
  • (프로그래밍의 첫 관문) 제어문과 반복문을 얼마나 쉽게 알려주는가?
    로 요약할 수 있겠다.

결론부터 말씀드리자면 본 도서는 충분히 합격점을 받을 만하다. 두가지 측면에 초점을 맞춰 조금 더 상세히 리뷰를 해보겠다.


첫번째 질문의 답변으로 본 도서가 제시하는 솔루션으로 가장 마음에 들었던 것은 리플잇 클라우드 IDE의 활용이다.

프로그램을 만드는 과정은 본 도서에서 제시하는 아래 그림과 같은 과정을 따른다. 소스코드를 입력하고 이를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정이 필요한데 이 두 과정을 IDE가 담당하게 된다. 프로그래밍

프로그램을 만들고 싶다면 이 IDE를 설치하고 환경을 구성하는 과정이 필요하다는 의미이다. 주위를 살펴보면 컴퓨터나 기계를 다루는 감각이 부족하거나 공포심이 있는 경우 프로그래밍을 시작하기도 전에 IDE 구성 단계에서 어려움을 느껴 포기하는 경우를 종종 봐왔다.

프로그래밍의 실체를 느껴보지도 못한채 포기라니.. 이를 해결하기 위한 좋은 방법이 리플잇을 활용하는 것이다. 접속해보면 알겠지만 IDE가 클라우드로 제공되고 있어 프로그램 소스 코드만 입력하면 실행은 리플잇이 대신해준다. 리플잇

군더더기를 떼어 버리고 프로그래밍에 바로 집중할 수 있다는 것은 엄청난 장점이다. 그래서인지 여느 책과는 다르게 직접 개인 PC에 IDE를 구성하는 방법은 책의 맨 뒤 부록에서 언급한다. PC IDE를 구성하는 방법도 놓치지 않으면서, 프로그래밍 본연의 목적에 집중할 수 있게 배치된 구성이 마음에 들었다. VS Code


두번째 질문의 답변을 설명하기에 앞서 반복문에 관련된 한가지 질문을 하고 싶다. (제어문과 반복문을 아는 분은 건너뛰어도 좋다.)

계란 3개가 있는데 1개씩 후라이를 만들때마다 “1번 달걀이 프라이가 되었습니다.”, “2번 달걀이..”, “3번 달걀이..”와 같은 메시지를 출력하는 프로그램을 만들려면 어떻게 해야 할까?

답은 책에 소개된 직관적인 그림으로 대신하려 한다. 반복문

프로그래밍이 뭔지 모르는 분들도 반복문이라는 용어 자체에서 똑같은 동작을 반복하는 프로그램 기능일 것이라는 감을 잡을 수 있다. 위 그림과 함께 생각해보자면 for, in, : 키워드만 있으면 반복문을 구현할 수 있다는 감을 잡을 수 있을것이다.

특히 위 그림에서 화살표의 이동 순서가 중요한데 20년 전에 배울때는 이런 직관적인 그림으로 프로그래밍을 알려주는 도서가 전혀 없었다. 왕초보일때 소스코드 구문 자체에 저런 화살표를 그리면서 독해력을 향상시켰었는데 그때의 화살표와 동일한 그림이 달갈과 함께 나오다니..~세상 참 좋아졌다.~

제어문과 반복문에서 화살표 그림이 중요한 이유는 프로그램의 실행 순서를 직관적으로 이해할 수 있기 때문이다.

프로그램은 일반적으로 위에서 아래로 소스 코드 순서대로 실행되는데, 제어문과 반복문이 어려운 이유는 사실 소스 코드 순서대로 실행되지 않는 첫번째 로직이기 때문에 어려움을 느끼는 것이다. 아래 반복문에서 가장 흔히 사용하는 2가지 키워드 coninue와 break를 시각화한 그림을 보자. continue_break

화살표만 잘 따라간다면 소스코드가 실제 어떤 순서로 동작하는지 충분히 이해할 수 있을것이다. 그래서 두번째 질문도 합격점이다. 본 도서만 잘 따라간다면 충분히 프로그래밍의 첫 관문인 반복문과 제어문을 쉽게 이해할 수 있을 것이다.


위 2가지 핵심을 충족하는 도서라면 처음 프로그래밍을 접하는 사람이 어려움을 느낄 요소는 흔치 않다고 생각한다. 그럼에도 학습 능률을 높여주는 다음의 추가 보완재들이 책의 신뢰를 높여주었다.

  • 동영상강의
    한빛미디어 홈페이지 미치 유튜브에 저자의 동영상이 올라온다. 무료이다.
  • 눈코딩 - 손코딩 구성
    이 부분이 독특한 구성인데 이 책의 모든 코딩은 먼저 눈으로 짠다. 다음으로 손으로 옮기는 코딩을 하는데 초보자에게 있어 극찬할만한 구성이다. 함수
  • 꼼꼼한 수험서 느낌의 학습 보조구성
    • 용어노트, 확인문제, 해답, 실습코드, 핵심정리 등 혼공용어노트

첫 입문서로 책이 마음에 들어 객관적으로 리뷰를 작성하고자 하였지만 아이가 이 책을 너무 마음에 들어하고 열심히 보고 있어 주관적으로는 이미 합격점이었다.

여담으로 혹시 프로그래밍을 아직 접하지 않은 분들은 꼭 한번 도전하시길 바란다. 업무 자동화나 트렌드 따위의 부가적인 장점 외에도 세상과 정보를 바라보는 시각이 크게 바뀐다. 다른 분야에서 쉽게 느껴기 어려운 창의성, 깨달음이라는 즐거움을 얻을 수 있다.

처음엔 나도 프로그래밍이라는 단어가 주는 선입견 느낌 때문에 전공 선택을 주저했었다. 새로운 분야에 도전하기 전 사람들은 나름의 합리적인 득실 계산을 한다. 하지만 결국은 직접 해보지 않으면 스스로 적성이 있었는지 좋아하는 분야인지 아무도 모른다.

본 도서라면 최소한의 시간과 노력으로 스스로 프로그래밍과 적합한지 테스트해 볼 가치가 있어 보인다. 프로그래밍을 전혀 모르지만 관심있는 분 혹은 입문 단계에서 좌절해 포기했던 분 또한 재도전해볼만한 책으로 추천하고 싶다.






© 2019.04. by theorydb

Powered by theorydb