Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Coursera의 Functional Programming Principles in Scala 수료

Coursera는 온라인교육사이트인데(사용해 본 건 이번이 처음) 마치 학교에서 수업을 듣는 것처럼 동영상강의와 숙제를 통해서 강의가 진행이 된다. 이번에 Functional Programming Principles in Scala과목이 개설되어서 9월 18일부터 7주동안 진행이 되었다. 이번 스칼라강의는 스칼라를 만든 Martin Odersky가 직접 진행하는 강의였기에 관심을 가지고 있다가 La Scala 코딩단에서 진행하던 Programming in Scala 스터디를 잠정 중단하고 Coursera의 강의를 같이 따라가는 스터디를 했다.

사실 7주간 무척이나 힘들었다. 초기 강의 설명때 주당 5-7시간정도의 과정이라고 했었는데 곧이 곧대로 믿지는 않았지만 주당 20시간에서 40시간은 든것 같다. 강의는 제목대로 함수형 프로그램을 스칼라로 설명하는 과정이었는데 함수형 프로그래밍 방법으로 설계를 하고 문제를 풀어나가는 과정들을 차례차례 설명했다. 강의를 듣는 동안내내 마틴 오더스키가 밥 아저씨인 것 같은 기분이 들었다. "이런 문제는 이렇게해서 재귀를 하면 답이 나와요." "근데 여긴 이런 문제가 있네" "이건 이렇게 바꾸면 해결" "자 쉽죠!"같은 기분이었다. 쓱싹쓱싹 하면 코드가 마구 완성되는데 숙제를 하려고 보면 패닉에 빠져서 도저히 해결이 안되고 아무래도 펑셔널 프로그래밍 과정이라서 임퍼러티브로 하지 않고(조금은 썼지만) 펑셔널로 어찌 해보려고 하니까 더 힘들었다.

7주가 마치 여러달인것 같았다. 강의야 그냥 들으면 되지만 대부분 숙제를 하느라 시간이 다 소비됐고 숙제를 다 제출도 하기도 전에 다음 주차의 강의와 숙제가 밀려들면서 회사를 안가고 이걸 풀고싶은 기분마저 들었다. (여기에 수시로 토비님이 숙제 진행사항을 체크하신!!! 물론 도움도 꽤 받았다. ㅎㅎ)ㅠㅠ 스칼라 스터디는 꽤 오랫동안 했지만 아무래도 코딩량이 부족하다보니 많이 익숙해 지지않았는데 그룹스터디에서 다른 분들의 숙제를 보면 더러븐 내 코드에 비해서 너무 깔끔하게 나온 솔루션들을 보면서 공부를 많이 해야겠다는 생각이 들었다.

Coursera 수료증

오더스키 교수님의 싸인도 들어간 멋진 수료증도 준다


어쨌든 78.4%로 과정을 통과하고 마틴 오더스키교수님의 싸인이 들어간 수료증을 받았다. 이렇게 수료증까지 주니까 왠지 뿌듯하다.(과정이 고생스러워서 그런지도...) 7주차 숙제를 할 때가 play.node(); 컨퍼런스의 발표준비와 일정이 겹쳐서 (대충 보니까 수료할 수 있는 커트라인은 넘었길래) 슥슥 일부만 구현하고 제출하고 끝낸것이 좀 아쉽긴 하지만 그래도 그당시에는 둘다할 여력이 없어서 어쩔 수 없었다.

강의는 상당히 짜임새있게 잘 만들어져있었다. 강의도 강의지만 무엇보다 숙제의 구성이 참 잘 되어 있었다. 숙제는 문제를 주고 그냥 푸는게 아니라 솔루션의 레이아웃을 주고 주요 핵심 로직이 있는 함수만 ???처리가 되어(???를 타입으로 처리한 걸 처음 봤을때도 깜짝 놀랬는데!) 문제를 접근하는 가이드라인을 제공해주고 재귀로 문제를 푸는 핵심에만 집중하도록 정말 잘 짜여있었다. 숙제만드는데 아마 정말 힘들었으리라 본다. 테스트클래스와 코드도 제공해서 커스터마이징된 SBT를 통해서 바로 테스트도 돌리고 SBT로 숙제 제출까지 할 수 있게 잘 만들어져있다. 이 숙제에 제공된 코드들만 참고해도 스칼라 코딩에 많은 도움을 받을 수 있으리라고 본다.

수료증을 받은 것만으로도 기분이 좋지만 100%되신 분들은 수료증에 with distinction가 붙어있던데 많이 부러웠다. 나도 스칼라랑 알고리즘공부 열심히 해야지.
2012/12/07 23:55 2012/12/07 23:55