2017년 스터디 계획
어린 시절 내 꿈은 과학자였다. 그저 멋있어 보여서 일 수도 있겠지만, 하고 다녔던 행동들을 돌이켜 보면 나름 이해가 간다.
포켓몬 마스터가 되고 싶다고 간절히 꿈꾸며, 언젠가는 외계 생물이든 인공 생물이든 로봇이든 어떤 형태로든 포켓몬이 나타날 것이라고 믿었다.
아버지 사무실 옆에 있는 큰 컨테이너 박스에 '축! 과학본부 개업' 이라고 붙여놓고, 높은 컨테이너 박스에서 뛰어내려도 다치지 않도록 버려진 타이어를 눕히고 위쪽 부분만 휠을 올려두어 완충작용을 하게 했다.
단순한 전자시계가 아닌 컴퓨터처럼 작동하는 특별한 시계를 만들어 보고 싶었지만 능력 부족으로 사무실에 있던 자동차용 폐 배터리를 가지고 만드는 척만 했다.
어떤 용도로 인위적으로 다듬어진 나무들을 주워다가 '돈 나무' 라고 명명하고, 100원부터 1000원 나무까지 다양한 기능이 있다고 상상하며 하천에 배처럼 띄우고 놀았다. 참고로 내가 가지고 있던 600원짜리 돈 나무는 잠수 취사(?) 기능이 있어 잠수가 가능했다는 전설이 있다.
이런 이야기를 하는 이유는, 어린 시절 나는 비록 상상만 하고 그것을 이루지는 못 했지만 소프트웨어 개발자가 된 지금의 나는 얼마든지 상상을 현실로 만들 수 있는 능력을 가지고 있다고 말하고 싶기 때문이다.
나는 개발은 우리 인간의 상상을 현실로 나타낼 수 있는 실현의 힘이라고 말하겠다. 위의 몇 가지 사례만 봐도 그렇다. 작년에는 닌텐도가 포켓몬 증강현실 게임을 만들어 어린아이, 어른 할 것 없이 만인의 가슴을 뛰게 만들었다. 물론 아직 까지는 현실과는 거리가 있지만 길지 않은 시간 내에 가상현실과 증강현실 기술이 더욱 발전하여 마치 현실세계에 포켓몬이 존재하는 듯한 환상의 그 날이 올 것이다. 또한 컴퓨터처럼 작동하는 특별한 시계는 오늘날에 스마트 워치라는 이름으로 존재하고 있다. 어린아이가 상상만 하던 수준에서 그것이 실현되는 날이 온 것이다.
이런 가능성과 기술이 충만한 세상에서 나는 내가 상상하는 거의 모든 것을 현실로 구현할 수 있는 개발자(마치 창조주)가 되고 싶다. 이유는 단순하다 너무나도 재밌기 때문이다. 이런 나름 철학적 생각 속에서 이것을 이루기 위한 묘책을 생각해 냈으니, 그것이 바로 일명 자연계 구현 이다.
나의 모든 생각과 상상은 우리가 살고 있는 현실에 기반하고 있다. 즉, 자연현상을 프로그램으로 구현할 수 있어야만 그 이후에 추가적으로 상상력을 더해 구현할 수 있는 것이다. 그런데 하필 이런 자연계 구현을 주제로 한 책이 있었으니, Nature of Code(자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략) 이다.
친절한 역자분 께서 이해를 돕기 위해 원서보다 100 페이지 가량 늘려 부가적인 설명을 달아 번역하신 덕분인지 어려운 주제인데도 불구하고 생각보다 쉽게 접근할 수 있다는 평이 많았다. 이런 대단한 책이 대단한 역자를 만나 쉽게 번역됐다니 이것은 필시 하늘이 나보고 공부 좀 하라고 내려주신 계시다.
하지만 이런 자연계 구현 계열은 대체로 많은 부분 수학을 기반으로 하고 있다. 나는 단순히 이 책을 보는 것이 목적이 아니라 그 이상을 향하고 있기 때문에 기반이 되는 수학을 먼저 공부하려고 한다. 그래서 선택한 것이 바로 일명 헤드퍼스트 자연과학 시리즈(대수학, 통계, 데이터 분석, 물리) 이다.
데이터 분석까지 공부하는 이유는 Nature of Code 가 끝이 아니라 그 이후에 진행할 딥러닝+강화학습의 콤보를 공부하는데 도움이 될 것이라고 생각하기 때문이다. Nature of Code 에도 뉴럴 네트워크를 구현하는 파트가 있지만 조금 더 심화된 내용을 공부하고 스네이크 게임 같은 아주 간단한 게임을 컴퓨터 스스로 학습하여 클리어하도록 실습해 볼 생각이다.
딥러닝과 강화학습은 기본적으로 홍콩 과기대 김성훈 교수님의 강의를 기반으로 삼을 것이고, 추가적으로 밑바닥부터 시작하는 딥러닝을 볼 생각이다. 프레임워크를 사용하지 않고 기초부터 직접 구현해보는 실습 스타일의 책이라 마음에 두고 있다.
어쩌다 보니 같은 출판사의 책들로 도배를 하게 되었는데, 출판사와는 어떠한 관계도 없으니 오해 없길 바란다. 자! 어찌 됐든 최종 학습경로를 정리하면 아래와 같다.
1. Head First Algebra(대수학)
2. Head First Statistics(통계)
3. Head First Data Analysis(데이터 분석)
4. Head First Physics(물리)
5. Nature of Code
6. 밑바닥부터 시작하는 딥러닝
7. 강화학습 강의(김성훈 교수님)
8. 인공지능 스네이크 게임 개발
이것으로 2017년 목표 수립이 완료되었다. 사실은 목표 정리와 더불어 스터디를 함께 할 사람을 찾기 위해 이 글을 썼다. 혹시 함께 스터디를 진행할 생각이 있고, 아래 내용에 만족하시는 분은 연락 주셨으면 한다.
기본 커리큘럼은 위와 같음
전체 혹은 일부만 함께 해도 무방
본인 스타일대로 변형해도 무방
장소는 1.판교 2.강남(카페, 스터디 룸 등)
시간은 주 1회 평일(가끔 주말 가능) 퇴근시간 이후
만나서, 1주일 간 공부한 내용을 토론하거나 모르는 부분을 질문하거나 함께 고민하거나 공부할 시간이 부족했으면 책을 읽거나 실습(코딩)을 하거나 등
부담 없이 자유롭게 대신 열정을 가지고
* 스터디 신청접수는 1차 마감 되었습니다. 성원에 감사드립니다.