14 February 2014

Codecademy python수업 후기

지난 몇달 간 python도 제대로 모르면서 취미로 무작정 django로 웹어플리케이션을 만들면서 모르는 건 그때 그때 구글링을 통해 해결하곤 했었는데 python을 제대로 알지 못 하고 django를 다루다 보니 장님 코끼리 만지는 기분으로 python 기초에 대한 부족함을 늘 느끼고 있었다.

보통 새로운 언어를 익힐 때 환경을 설정하는 일이 까다롭고 힘들 때가 많아서 시작도 전에 환경설정에서 지치는 일이 다반사였다. 하지만 codecademy는 이미 구축되어 있는 가상환경 안에서 직접 타이핑해보며 튜토리얼을 따라해 볼 수 있어서 초기 학습에 드는 비용을 줄일 수 있는 점이 좋았다. 크롬 확장 중에 파이썬을 직접 타이핑해보며 결과를 볼 수 있는 좋은 도구도 있긴하고 초기 비용을 들여서 제대로 공부하는 게 더 좋긴 하겠지만, 진입장벽을 낮춰주어 처음부터 지치는 일이 없어서 좋았다. - 얼마 전에 mavericks로 OS를 업데이트하고 여러 버전의 python 사용으로 virtualenv가 제대로 작동하지 않은 적이 있었는데 그 문제 해결을 위해 이틀 동안 아무것도 못하고 이 문제에만 매달려 있어야 했던 기억을 떠올려 보면(아…지금 생각해도…) 정말 훌륭한 튜터이자 도구인 셈이다.

책 혹은 인터넷에 있는 여러 강좌들을 에디팅툴과 오가며 타이핑해가며 학습하는 것보다 각 챕터별 주제에 맞는 예제와 코드 그리고 그 결과를 즉각적으로 보여줘서 게임을 진행하는 것처럼 운영되는 진행 방식도 다음 문제는 어떤게 나올지 궁금해 지도록 흥미를 유발하기에 충분했다.

또, 여행을 떠나 본다거나 선생님이 되어 학생의 점수를 채점해 보게 한다거나 간단한 배틀쉽게임을 만들어 보게 하는 등의 스토리 텔링을 통해 단순한 내용도 재미있게 전달되었다.

보통 프로그래밍언어를 익힐 때 아무리 좋은 책이나 온라인 상의 강좌를 보더라도 직접 타이핑하고 손가락에 익히지 않으면 체득하기가 어려운 편인데(백문이 불여일타) 이런 어려움을 극복할 수 있도록 환경설정이 잘 되어 있고 튜토리얼의 구성도 짜임새 있는 편이다. 그리고 해결되지 않는 문제가 있을 때는 화면 왼편 하단의 Q&A Forum을 이용하면 다른 학습자들의 도움을 받을 수도 있고 이미 다른 누군가가 올려놓은 질문에 대한 답으로 문제를 해결한 적도 많았다. 또, 나와는 다른 솔루션으로 해결하는 게 재미있기도 하고 왜 나는 저렇게 단순하고 간결하게 해결하지 못했을까 하는 생각과 함께 내 두뇌를 원망하기도 했다.

개발서적을 보면서 프로그래밍을 공부할 때는 책 한권을 다 읽어도 의식하고 읽지 않으면 나중에 다시 책을 봤을 때 내가 이 내용을 읽었었나?하는 의문이 들며 너무나 새로운 내용인듯 할 때가 대부분이 었는데 매 단계마다 실습을 하거나 코드를 고치지 않았더라도 서브밋버튼을 눌러야만 다음 단계로 넘어가는 행동을 유도하는 게 책을 읽어 학습을 하는 것보다 훨씬 기억에 잘 남았다.

너무 장점만 나열한거 같고 코드카데미빠스러운 글이된듯 하지만 몇몇 단순한 버그 외엔 프로그래밍을 시작하기에 정말 좋은 도구임에 틀림없다는 생각이 든다. 가끔 맞는 코드를 입력했는데도 오류를 내기도 하는데 그럴 땐 새로고침 버튼을 누르거나 다른 페이지로 이동했다가 다시 들어오면 해결이 되기도 한다고 Q&A포럼에 나와 있는데 그런 문제들이 종종 있긴 하다. 그리고 진행률이 계속 따라다니는데 이 숫자 때문에 더 학습하게 되는 거 같기도 하다.

굳이 단점을 꼽아보자면 기본적인 내용만을 알려주기 때문에 이 수업만으로는 부족한 점이 좀 있긴하다. 하지만 앞서 이야기 했듯이 프로그래밍을 모르는 사람이 프로그래밍을 시작하기에 진입장벽을 낮춰주는 역할은 정말 훌륭하다고 느껴진다. 우리나라의 생활코딩과 병행한다면 장소와 장비의 구애를 받지않고 누구든 프로그래밍을 시작할 수 있을거 같다.(물론 데스크탑이나 노트북은 있어야겠지만) 그리고 누구나 코드카데미에 강좌를 개설할 수 있다고 하는데 아직 이건 자세히 살펴보지 않아서 잘 모르겠지만, 만약 그렇다면 수업이 점점 더 많아지고 좀 더 복잡한 내용들도 코드카데미를 통해 수업받을 수 있게 되지 않을까 싶다.

우리집 꼬마가 가끔 모니터를 빤히 들여다 보고 있는 나를 보고 “엄마 뭐하는거에요?” 하고 물어본 적이 있는데 “응~ 프로그램 짜는거야” 했더니 “우유를 짜야지 왜 프로그램을 짜 하하하”하며 엄청 웃길래 나도 덩달아 엄청 웃었던 기억이 난다. 지금은 프로그래밍을 가르치기엔 너무 어린듯 하긴 하지만 몇몇 수학적 개념을 제외 한다면 어린이에게도 이 내용으로 프로그래밍을 가르쳐 줄 수 있지 않을까 하는 생각과 함께 내 아이에게도 이 수업을 알려주고 싶다는 생각이 든다.

✐ 어디까지 왔는지, 앞으로 학습할 내용을 한 눈에 볼 수 있다.

✐ 진행 상태와 내가 획득한 뱃지들

✐ 각 챕터에서 어디까지 왔는지 - 이전 수업으로 돌아가기도 가능하다.

✐ 수업 중간에 뱃지를 획득하곤 하는데 이게 은근히 동기부여가 된다.

  • 화면 왼쪽에는 학습내용, 그리고 실습해야 할 내용, 힌트보기 등이 있다.
  • 터미널에서 코드를 치고 그 결과를 바로 확인해 볼 수 있다.

✐ 조금씩 쉬엄쉬엄 해볼까 했는데 이 때부터 만사 제치고 여기만 매달려 있었다.

✐ 저 진행률 때문에 계속 새로고침해 보게 된다.

✐ 드디어 끝, 찾아보면 resume 버튼도 있어서 강좌를 다시 시작해서 해볼 수도 있다.