Issue
- 최근 개발자 대우가 좋아지면서 주변에서 많은 후배/동료들이 소프트웨어 개발입문에 대해 궁금해하고 있습니다.
- 패스트캠퍼스 등에서 코린이를 대상으로 한 코딩 강의가 개설되지만, 검증되지 않고 수준이 들쭉날쭉한 반면 비용은 다소 높은 편입니다.
- 저는 다소 특수한 케이스이긴 하지만, 학부 비전공으로써 컴퓨터 과학을 제대로 다시 배우는데 어려움이 있던 것도 사실입니다.
Solution
- 반면, 영어강의에 거부감이 없다면 저렴하게 (심지어 공짜로) 질 좋은 컴퓨터 과학 입문 강의를 들을 수 있습니다.
- 가장 기초가 되는 파이썬, 컴퓨터 과학적 사고, 알고리즘 및 자료구조에 대한 강의를 소개해드리고자 합니다.
- Introduction to Computer Science and Programming Using Python
MIT의 Eric Grimson 교수님의 강의로 MIT 학생들이 실제로 듣는 커리큘럼과 대동소이합니다. 온라인 강의를 많이 들어봤지만, 그 중에서도 손꼽힐 정도로 훌륭하게 구성되어있는 강의입니다. 강의의 질도 좋을 뿐더러, 중간중간 배치된 Quiz를 통해 복습을 할 수 있게 설계되어 있습니다.
현재도 MIT에서 운영되는 강의이므로 추가 학습을 하고자하면 공개되어있는 Midterm/Final 등의 자료를 통해 좀더 심화학습도 가능합니다. - Algorithm Specialization (Coursera)
Stanford의 Tim Roughgarden 교수님의 알고리즘/자료구조 강의로 역시 Stanford 강의와 유사한 커리큘럼으로 구성되어 있습니다. 해당 강의는 Specialization으로 4개 강의가 묶여있는 패키지 구성입니다.강의 당 3~4주 정도 페이스로 진행하시면 될 것 같습니다.
이 강의의 장점이자 단점은 수학적인 증명을 자주 접하게 되어, 미적분 및 행렬 개념이 익숙하지 않은 어려울 수 있습니다. 강의 페이스도 빠른 편이어서 마음을 다잡고 여러번 되돌려보시는 것을 추천드립니다.
이외에 프로그래밍 과제도 준비되어있고 솔루션 제출하는 형식으로 언어에 대한 제한은 없습니다.
모든 강의를 마쳐서 Specialization을 끝내면 좋겠지만, 적어도 첫번째 및 두번째 강의는 끝내시는 것을 추천드립니다. 특히 첫번째 강의는 알고리즘의 기초가 되는 Big-O 및 정렬과 탐색에 대해 배우는 부분으로 많은 도움이 됩니다. Specialization 이름이 알고리즘으로 되어있지만, 자료구조도 함께 다루는 강의입니다.
이 외에도 Datacamp, Codeacademy에서 Interactive한 강의 솔루션을 제공하고 있지만 내용의 수준이 낮아 컴퓨터과학 입문이라기보다는 Python/R 등의 언어를 배운다는 느낌으로 생각하시면 될 것 같습니다.
위 2개 강의 모두 무료이지만 추가로 돈을 지불하고 인증서를 받을 수도 있습니다. 저는 두 개 모두 인증서를 받았는데 돈이 아깝다는 생각에 아주 공부가 잘 되더라구요 😅