개발자가 되고싶은 달걀들에게

지금 당장 시작하는 개발자 되기 첫걸음 (MOOC.. 그게 뭔데?)

연구소장0 2021. 4. 27. 12:20
반응형

안녕하세요, 오랜만에 돌아왔죠? 저는 학기말을 핑계로 글 안 쓰고 "공부" 한다면서, 또 공부도 그다지 열심히 하지 않은 게으른 2주를 보냈답니다. 다들.. 그러잖아요? ^^

원래 준비하던 글은 본격적으로 미국 CS 석사 유학 준비를 위한 로드맵에 대한 거였는데, 최근 제 주변 여러 사람들이 스스로 학습하는 방법에 대해 물어보더라고요. 그래서 (원래는 나중에 쓰려고 했던) MOOC에 관한 글을 먼저 쓰기로 했습니다. 이번 글은 지금 당장, 혼자서 시작할 수 있는 개발자 되기 첫걸음에 대한 이야기입니다. CS 석사과정을 준비하는 사람이든 (한국이든 미국이든 상관없어요), 혹은 한국 취업을 준비하는 사람이든 누구나 "개발자"로의 전직을 생각하고 있다면 지금 당장 시도해볼 수 있는, 그리고 그러길 추천하는 방법이니 자신의 실력에 따라 적절한 공부를 지금 바로 시작해보시길 바랍니다.

위키피디아 MOOC 페이지에 있는 이미지. 얼마나 혼란스러운 용어인지 한눈에 보여주네요. [MOOC poster April 4, 2013 by Mathieu Plourde]

MOOC? 그게 뭔데... 그거 어떻게 하는 건데

MOOC(Massive Open Online Course)은 쉽게 말하면 인터넷 강의입니다. 코로나로 인해 더 많은 사람들에게 익숙해진 형식인 것 같은데, 더 많은 사람들이 들을 수 있도록 보통 대학에서 가르치는 강의를 온라인 환경이 옮겨놓은 형태입니다. 다만 오프라인에서 진행된 강의를 녹화해 그대로 온라인으로 옮긴 것은 아니고, 온라인 환경에 맞추어 조금씩 변화해 왔습니다. 보통 영상 한 편당 약 20분 이내로 세부 주제별로 끊어서 올라오고, 동영상 형태도 칠판 앞에 서있는 강사보다는 ppt 화면, 투명 칠판 등이 더 자주 등장합니다. 그리고 영상 뒤에는 강의에서 다룬 개념을 체크할 수 있는 짧은 퀴즈들이 섞여있습니다. (이 부분은 현실세계의 강의보다 더 강력하게 좋은 거라 생각해요.)

오늘은 세 가지 MOOC 사이트들을 소개해드리려 합니다. MIT OCW, Coursera, edX 인데, 각각 용도가 조금씩 다르니 하나씩 차근차근 둘러보도록 하죠!

 

반응형

 

MIT OCW: 자가진단 키트 - 뭘 해야 할지 확인부터

MOOC의 시작은 MIT OCW(Open Courseware) 였습니다. 강의 자료들을 온라인에 공개하여 모두가 접근할 수 있게 하는 것이 첫 목표였죠. 지금은 이전만큼 업데이트가 잘 되지 않고 있지만 (이유는 나중에 나옵니다!), 아직도 충분히 쓸만한 자료들이 있습니다. 이전 글 "개발자 하려면... 수학, 어디까지 해야돼?"에서는 MIT EECS 학부생들이 어떤 수업을 듣는지 확인했죠? MIT EECS 커리큘럼을 보고 내 지식의 구멍을 찾아보는 것은 좋은 출발점입니다. 그런데 그중에는 우리에게 익숙한 과목 이름도 있고, 그렇지 않은 것들도 있을 거예요. 특히 이론 과목은 다른 이공계열 학과 수업에서 다룬 내용이 (과목 이름은 다르더라도) 겹칠 수도 있고요. OCW에서 우리는 각 강의의 실라버스를 보면서 내가 진짜 모르는 것인지 확인할 수 있고, 실제로 강의를 들을 수 있습니다. 대부분 강의를 녹화한 비디오와 숙제 및 시험문제(때로는 답안까지)를 제공합니다. 어떤 강의는 가르친 해에 따라 여러 버전이 있기도 한데, 그때마다 숙제나 시험 문제가 다르므로 원한다면 더 많은 도움을 받을 수 있습니다.

하지만 단점도 있습니다. 강의가 좀 구식이고 (가장 최근 버전이 2000년대 초반인 강의들도 있습니다), 온라인 환경에서 학습하는 데 최적화되어있지는 않습니다. 프로젝트성 수업보다는 일방적으로 지식을 습득하는 이론 수업을 듣는 데 더 적절합니다. 또, 강의 조교가 따로 있지 않아서 질문이 있을 때 의지할 곳은 구글신밖에 없죠. 그래서 저는 일단 공부해야 할 부분이 무엇인지를 자가 진단하는 용도로 MIT OCW를 추천합니다. 1) MIT EECS 커리큘럼 확인하기 2) OCW에서 강의 내용 확인하기 순서대로 진행하시면 내가 이미 아는 것은 무엇이고, 모르는 것은 또 무엇인지 알 수 있을 거예요.

그래서 어떻게 하냐고요? OCW 에서 Find Courses - MIT Course Number를 선택하시면, 다음과 같은 화면이 보입니다. 이전에 말씀드렸듯이 코스마다 숫자가 있고, 전산학과는 6번입니다. 우리는 6번으로 가서 우리가 봤던 강의 번호를 찾아보면 됩니다. 강의 세부 페이지에서는 "Syllabus" 탭을 확인하세요. 실라버스는 강의계획서 혹은 강의 개요 정도로 볼 수 있는데, 이 수업에서 가르치는 내용은 무엇인지, 미리 알고 있어야 하는 내용은 무엇인지 (prerequisite), 각 주에 어떤 내용을 다루고 총 몇 주에 걸친 수업인지, 채점은 어떻게 할 건지 등의 사항들이 적혀있습니다. 여러분은 일단 각 주에 다루는 세부 내용을 확인하고 내가 이미 알고 있는 내용인지 확인한 뒤, 그게 아니라면 어떤 prerequisite이 있는지 찾아보시면 됩니다. 그리고 그 prerequisite 강의로 다시 넘어가서 같은 자가진단을 반복하시면 됩니다.

여러분께서는 지금 6.004(Computation Structures)의 2017년 봄 강좌를 찾는 방법을 보고계십니다. 아래 빨간 글씨로 된 강의 이름을 클릭하면 강의 세부 페이지로 갈 수 있습니다.

 

한 가지 팁을 더 드리자면, 코스 번호와 이름을 구글에 검색해 보세요. 예를 들어 6.004 Computation Structures 라면 "MIT 6.004"라고 검색하는 거죠. 가끔씩은 강의 홈페이지에 들어가 볼 수 있는 경우들이 있습니다. 운이 좋으면 OCW에 등재되지 않은 과목 페이지들도 찾고, 해마다 조금씩 달라진 실라버스와 강의 내용을 확인할 수 있습니다. 혹은, 알고리즘(Algorithm)처럼 어느 대학에서나 가르치는 과목일 경우 MIT 뿐만 아니라 다른 대학 과목 홈페이지도 찾아볼 수 있습니다. 예를 들어, "Stanford Algorithm" 이런 식으로요. 여기서 한 발짝 더 나아간다면 MIT가 아닌 다른 학교 정보를 찾아 제가 소개드렸던 방법을 그대로 따라 해 볼 수 있겠죠. 그 학과의 커리큘럼을 확인하고, 과목 정보를 찾아서 확인해보시면 됩니다. 제가 MIT 커리큘럼을 기준으로 설명드린 것은 제가 가장 잘 아는 것이기 때문일 뿐입니다.

Coursera, edX: 온라인 대학교 - 명강의 찾아 듣고 학위까지?!

MIT 커리큘럼과 OCW를 통해 지식의 구멍을 확인하셨나요? 이제 내용을 잘 몰라도 어떤 분야를 더 공부해야 하는지 머릿속에 몇 가지 과목 이름과 단어들이 떠다닐 거예요. 그런데... OCW는 강의를 듣기에 최적화된 서비스는 아니라고 했잖아요? (물론 OCW에 있는 영상과 교과서만 가지고도 재미있게 공부할 수 있는 분들은 그렇게 하시면 됩니다!) 그래서 이제 우리는 CourseraedX 로 향합니다. 다른 많은 MOOC 사이트들이 있지만 제가 Coursera와 edX를 선호하는 이유는 대학 교수 혹은 그만큼 검증된 기관의 강의들만 올라오기 때문입니다.

Coursera는 2012년 (무려 9년 전이네요) 스탠포드의 다프네 콜러(Daphne Koller) 교수님이 다른 교수님과 함께  공동 창업한 MOOC 서비스입니다. 현재 스탠포드, 프린스턴, 미시간 대학교 등 다양한 대학들의 강의가 있고, 대학이 아닌 Google, IBM 등에서도 강의를 진행합니다. Coursera에서는 이런 IT 기업들과 연계하여 진행하는 certificate program도 진행할 수 있고, 대학과도 연계하여 진짜 학위를 딸 수도 있습니다. 주어진 커리큘럼에 맞추어 정해진 수업들을 다 들으면 온라인 학위가 가능하다는 것이죠. 한 가지 아쉬운 점이 있다면 돈을 내야만 들을 수 있는 수업들이 있다는 것입니다 (수강은 무료, certificate은 유료인 강좌도 있습니다). 유료 강의는 강의 종류에 따라 강좌마다 결제하는 방법($30+/course, 결제 후 180일간 수강 가능) 혹은 매달 정기 결제하는 방법($39~$89/month, Specializations 수업)이 있는데, 여러분들이 관심 가질 강의는 아마 후자에 해당하는 경우가 더 많을 것 같아요. 하루에 여러 강의씩 빠른 속도로 소화하면 더 싸게 끝낼 수 있다는 뜻. 1년 치 정기결제를 한 번에 하면 할인도 해줍니다(Coursera plus, $399/year). 학위 프로그램의 경우 따로 학비를 내야 하는데 콜로라도 불더 대학교의 2년짜리 Master of Science in Data Science 경우 총 학비 $20,010(대략 2천만 원+)라고 합니다. 온라인 강의 치고 비싸지만 미국에 직접 가서 따는 학위에 비하면 저렴하다고 볼 수 있겠네요.

Coursera 가 스탠포드에서 출발한 서부의 MOOC이었다면, edX는 MIT가 만든 동부 버전 Coursera입니다. edX가 생기면서부터 OCW는 비디오 아카이브 정도로 변한 것 같아요. 준비된 강의들은 비슷합니다. MIT, 하버드, 버클리 등 다양한 대학 강의들을 보실 수 있고, IBM 같은 기업에서 진행하는 강의도 있습니다. edX의 가장 큰 장점은 모든 강의가 무료라는 점입니다. 강의를 들었다는 증서(certificate)를 따려면 돈을 내야 하지만, 그게 필요 없는 사람들에게는 무료입니다. 다만, 조금이라도 돈을 내면 스스로 더 열심히 듣게 되는 효과가 분명히 있기 때문에 certificate를 신청할지 말지는 여러분께 맡기도록 하겠습니다. edX도 Coursera와 비슷하게 학위 프로그램들이 있습니다만, "진짜 학위"는 아닙니다. 마이크로 마스터스(MicroMasters)라는 조그마한 석사학위가 있는데, 디플로마를 수여하지는 않습니다. 하지만 이 certificate으로 미국 대학원에 진학하는 데 도움을 받을 수는 있습니다. 예를 들어 MIT에서 진행하는 MicroMasters in Statistics and Data Science의 경우, 주관 학과인 MIT IDSS의 박사과정에 진학할 때 MicroMasters certificate를 내세울 수 있다고 하고, 합격 시에는 이렇게 수강한 과목을 박사과정 졸업요건으로 인정해준다(수업 들은 걸로 쳐준다)고 합니다. MIT IDSS뿐만 아니라 Rochester Institute of Technology, Bethel University, Doane University 등에서도 인정해준다고 하는데, 졸업요건으로 인정해준다는 것은 큰 의미가 있다고 봅니다. MicroMasters certificate를 제시한다는 것은 이미 졸업요건을 채우고 왔다는 의미니까 입학 과정에서도 이점이 있겠죠? 그러나 MicroMasters가 2017년쯤 생겼기 때문에 아직 실제로 이 certificate를 가지고 MIT IDSS에 입학한 학생은 보지 못했습니다. (적어도 2020년까지는요!) 다만, edX 교육사업이 돈이 되는 만큼 MIT에서도 이 certificate가 다방면에서 유용하게 인정받을 수 있도록 노력하고 있는 것 같습니다. MicroMasters 종류마다 가격이 다르지만, MIT 데이터 사이언스 관련 14개월짜리 프로그램은 $1500(현재 할인해서 $1350, 한화 약 150만 원)입니다. Coursera 가격을 보고 오니 갑자기 착해 보이죠?

우리는 이미 커리큘럼과 과목별 실라버스를 체크해서 대략 어떤 과목을 듣고 싶은지 이미 살짝 준비해 왔습니다. 그럼, Coursera든 edX든 상관없으니 검색창에 배우고 싶은 과목 이름을 검색해 보세요. 유료 강의가 아니라면 손해 볼 것도 없으니 첫 강의부터 일단 들어보시고 내 입맛에 맞게 잘 설명하는 교수로 골라서 쭉 진행하시면 됩니다. 저는 교수가 얼마나 알아듣기 쉽게 말하는지, 비디오 이펙트가 집중하기 쉽게 되어있는지를 기준으로 골랐습니다. 대학 이름을 걸고 나온 강의라서 어느 정도 퀄리티는 보장되는 느낌입니다. edX를 구경하시다 보면 MIT 강의 중 6.002x 이런 레이블이 보일 거예요. 거기서 x를 빼면 바로 MIT 과목 번호가 되니 제가 제시한 대로 MIT 커리큘럼을 보고 어떤 강의를 듣고 싶은지 정하셨다면 찾으려는 강의와 같은 것인지 구분하는 데 도움이 되실 거예요.

개인적으로 certificate이 한국 잡마켓에서 얼마나 유용한지 모르겠습니다만, 학부가 과학/공학 분야가 아닌데 미국 석사나 잡마켓에 뛰어들 생각이 있으시다면 고려해볼 만한 옵션이라고 생각합니다. (돈이 아까워서 중도 포기하지 않고 열심히 한다는 side effect도 있으니 일석이조!) edX의 경우 일단 audit(돈 안 내고 청강하는 옵션)으로 수업을 듣기 시작한 후 나중에 certificate 옵션으로 바꿀 수 있으니, 오늘 결정하지 않아도 됩니다.

마지막으로, Coursera의 석사학위는 저도 경험해보지 못했기에 저의 찐한 생각을 보여드리긴 어려울 것 같습니다. 다만 현재 진행되는 콜로라도 볼더 대학교의 Master of Science in Data Science의 경우 어드미션(입학 과정) 허들이 낮고 on-campus 학위의 절반도 안 되는 가격이기에 상황이 맞는 분들에게는 분명 매력포인트가 있다고 생각합니다. (on-campus는 $44,656, Coursera online은 $20,010입니다.) on-campus counterpart가 있기 때문에 저는 오히려 수업의 질이나 잡마켓에서 학위가 먹힐지에 대한 걱정은 줄었습니다. 또, 학교 측에서 온라인 과정 학생들을 차별하지 않으려는 노력이 돋보입니다. 온라인 학위 수여자도 콜로라도 불더 졸업생 커뮤니티에 초대된다고 하네요. 이 말은 커리어 매칭과 같은 서비스를 받을 수 있다는 뜻이죠! 그럼에도 불구하고, 이전 글에서 설명한 미국 유학의 장점을 전부 다 얻기는 어려워 보입니다. 가장 큰 건 OPT인데, 이민법이 어떻게 작용할지 미지수네요. 제 짧은 식견으로는 F1 발급이 없기 때문에 안될 것 같습니다. (정확하지 않으니 진짜 관심 있으시면 따로 확인 부탁합니다! 저도 궁금해요)  또, 직접 동기들과 만나 네트워킹하는 기회는 어떤 방식으로 치환될지 모르겠습니다. 어찌 됐든 OPT 비자에 연연하지 않을 수 있고, 유학경비는 무리지만 2만 불 정도의 학비는 감당할 수 있는 분들에게는 더 알아보면 좋을만한 옵션이라 생각됩니다.

그래도 어디서부터 시작해야 할지 막막한 분들께

컴퓨터 사이언스가 뭔지, 데이터 사이언스가 뭔지 정말 정말 모르겠는 분들은 여기까지 읽어도 당장 뭘 해야 할지 찾지 못하셨을 수 있어요. 그래서 초보자가 도전할 수 있는 과목들을 소개드리고 이번 글을 마치려 합니다.

  1. 나는 진짜 수포자다. 미분 적분이 뭔지도 모른다. 수학이 너무 싫고 무섭다. 혹은 대학 와서부터 수학이랑 싸웠다. 이런 분들은 스탠포드 강의 Introduction to Mathematical Thinking 부터 시작해보는 걸 추천합니다. 소프트웨어 엔지니어링 분야로 가신다면 스킵 가능, 그러나 데이터 사이언스 쪽으로 가고 싶은데 수학이랑 싸웠다면 이 강의로 화해부터 하고 오셔야 합니다.
  2. 이론은 됐고 빨리 컴퓨터부터 만져보고 싶다 하시는 분들은 하버드 강의 CS50 Introduction to Computer Science(David Malan) 부터 보시는 걸 추천합니다. 로테이션도 자주 돌고, 강의도 재미있게 합니다. (제 주관적인 견해로 CS 인트로 강좌계의 힐송이라 하겠습니다.)
  3. 그런데 CS50도 어렵게 느껴지시는 분들도 계실 거라 생각해요. 그래서 제가 만든 강의가 세상에서 제일 쉬운 파이썬 101 입니다. CS50을 바로 들을 수 있으시면 그렇게 하시면 되지만, 영어나 기타 등등의 이유로 CS50마저 어렵게 느껴지신다면 이 강의부터 듣고 CS50을 도전해보세요.
  4. [new!] Software Engineering 분야로 가실 분들은 버클리의 Agile Development Using Ruby on Rails 를 추천합니다.
  5. 수학도 코딩도 기초는 좀 손봤다. 이제 머신러닝인지 AI인지 하는 것 좀 봐보자 하시는 분들은 스탠포드 강의 Machine Learning(Andrew Ng) 을 추천합니다. 이 강의는 여러 의미로 빡셉니다. 시간도 많이 들고(60시간..?!) 어려운 내용도 있지만 그만큼 엄청나게 배워가실 거예요.
  6. 머신러닝 수업을 듣는데 확률/통계 쪽 지식이 부족한 것 같다 하시는 분들은 MIT의 쉬운 통계 수업(John Tsitsiklis) 혹은 어려운 통계 수업(Philippe Rigollet)을 곁들여 들으시면 됩니다. 

여기까지 다 읽으셨다면 뜸 들이지 말고 당장 강의 하나 질러보시는 건 어때요? 공부는 말이죠... 일단 시작하고 후회합시다 :)