오픈 소스 소사이어티 유니버시티 – 컴퓨터 과학 자율학습 무료 로드맵
(github.com/ossu)- OSSU 커리큘럼은 전 세계 유수 대학의 온라인 자료를 통해 컴퓨터 과학의 완전한 교육 과정을 무료로 제공함
- 입문, 핵심, 고급, 파이널 프로젝트로 대학 학사 수준의 컴퓨터 과학 커리큘럼 구조를 재현함
- 모든 강의와 과제는 무료 또는 대부분 무료이나, 일부 평가 과제에 비용이 발생할 수도 있음
- Discord 커뮤니티 등 활발한 글로벌 학습자 지원 네트워크와 자료 업데이트가 지속적으로 운영됨
- 학습자는 독립적 또는 그룹별, 본인 상황에 맞게 유연하게 진도 조정 및 선택이 가능함
OSSU란 무엇이며 왜 중요한가
OSSU(Open Source Society University)는 누구나 비용 없이 컴퓨터 과학 정규 학위 수준의 교육을 스스로 받을 수 있도록 설계된 오픈 소스 커리큘럼임. 하버드, MIT, 프린스턴 등 세계 최고 대학의 공개 강의 및 자료를 활용하며, 일회성 지식 전달이 아닌 균형 잡힌 이론·실습·응용 기반의 학습 경험 제공이 목표임.
- 모든 학습 자료는 온라인에서 공개된 고품질의 무료 리소스를 선별함
- CS2013 표준과 같이, 국제 컴퓨터 공학 기본 학사과정 기준을 철저히 반영함
- 스스로 동기 부여와 지속적인 학습 습관을 갖고, 전 세계 학습 커뮤니티에서 도움을 얻을 수 있는 사람을 주요 대상으로 함
커리큘럼 구조 및 특징
- 입문(Introduction to CS) : 컴퓨터 과학 및 프로그래밍 기본 개념과 재미를 체험해 볼 수 있음. Python 프로그래밍, 계산 이론, 기초 자료구조 및 알고리듬 등 포함함
- 핵심(Core CS) : 3년 차 대학 커리큘럼에 해당하는 부분으로, 프로그래밍(함수형, 객체지향, 소프트웨어 설계), 수학(이산수학, 통계, 확률, 미적분), 시스템(컴퓨터 구조, OS, 네트워킹), 이론(알고리듬, NP문제 등), 보안, 응용, 윤리 등을 필수로 담고 있음
- 고급(Advanced CS) : 최종 학년 과정에 해당함. 심화 프로그래밍, 시스템, 이론, 정보보안, 고급수학 중 관심 분야를 선택할 수 있음
- 파이널 프로젝트: 배운 지식을 활용해 실제 프로젝트를 수행하며, 글로벌 동료 학습자와 결과를 공유하고 검증함. 실무 역량 인증 및 취업 포트폴리오로 활용 가능함
학습 방식 및 비용
- 독립적으로 또는 그룹으로 커리큘럼을 공부할 수 있음
- 각 과정은 순서대로 이수하는 것을 추천하지만, 이미 익힌 내용이 있다면 건너뛰기도 가능함
- 모든 강의는 온라인 무료 제공. 일부 플랫폼(Coursera, edX 등)에서 과제/시험/프로젝트 평가 시 비용이 발생할 수 있으나, 대부분의 경우 학습 자체는 무료임. 경제적 부담을 덜기 위해 재정지원(장학금/Financial Aid)도 안내함
- 학습 진행상황과 예상 수료일 관리를 돕기 위한 Google 스프레드시트 템플릿 제공
커뮤니티 및 지원
- 참여자를 위한 Discord 서버 운영 중 – 강의 토론, 질문, 동료 연결 등이 활발하게 이루어짐
- GitHub Issue와 커리큘럼 개선 제안 등 활발한 피드백 채널이 있음
- LinkedIn 프로필에 OSSU 이수 내역 추가 가능
공식 사이트 및 GitHub 저장소를 통해 최신 커리큘럼 확인 권장
커리큘럼 세부 목록
사전 요구 조건
- 핵심 CS는 고등학교 수준의 수학(대수, 기하, 미적분 전 단계) 필수
- 고급 CS는 핵심 과정을 모두 마쳐야 선택 가능
- Advanced systems 과목은 고등학교 수준의 기초 물리학 지식이 요구됨
입문 CS(Introduction to CS)
- 컴퓨터 과학 첫걸음. 기본적인 연산, 명령형 프로그래밍, 자료구조, 알고리듬 등 소개
- 필수 강의: 'Introduction to Computer Science and Programming using Python' (14주)
핵심 CS(Core CS)
프로그래밍
- 함수형/객체지향/테스트/패턴/타이핑/언어 다양성 등 폭넓은 실습
- Systematic Program Design, Programming Languages (A–C), Object-Oriented Design, Software Architecture 등
수학
- 이산수학, 수학적 증명, 기초 통계, O표기법, 확률, 미적분 포함
개발 도구 및 환경
- 터미널, 쉘 스크립팅, vim, 커맨드라인, 버전관리(git) 등 실무 필수 도구
시스템
- 하드웨어~운영체제~네트워크까지 컴퓨터 작동원리 전반적 이해
- 예시: Nand to Tetris 프로젝트, OS Three Easy Pieces, Networking 등
이론
- 알고리듬 분석, 분할정복, 그래프, 동적계획법, NP문제 등 포함
보안
- 정보보안 기초, 안전한 코딩, 취약점 분석, 네트워크/암호 등 선택 과목 포함
응용
- 데이터베이스, 머신러닝, 컴퓨터 그래픽스, 소프트웨어공학 등 실전 활용 영역까지 폭넓게 다룸
윤리
- 기술의 사회적 맥락, 전문성, 지적재산권, 데이터 프라이버시 등 기술자 필수 윤리성 강조
고급 CS(Advanced CS)
- 진로/관심 분야별 선택. 병렬 프로그래밍, 컴파일러, 해스켈/프롤로그 등 언어, 소프트웨어 디버깅/테스팅
- 컴퓨터 구조, 수치해석/논리/확률, 계산이론, 정보보안, 시스템 구축 등 폭넓은 선택지
파이널 프로젝트(Final Project)
- 실전형 프로젝트 선택 및 설계·구현·공유
- 옵션 예시: 풀스택 서비스, 로보틱스, 데이터마이닝, 빅데이터, IoT, 클라우드 컴퓨팅, 데이터사이언스, 게임 개발 등
- 스스로 또는 추천 코스 활용 가능
학습 완료 이후
- CS 분야 학사학위와 동등한 지식 체득 인증
- 취업 준비, 심화 독서(List 제공), 오프라인 개발자 모임 등 연계 추천
- 신기술 탐색(Elixir/Rust/Idris 언어 등) 독려
운영 규칙 및 팀
- OSSU 행동 강령 준수
- GitHub에 본인 진행상황 표시 및 관리법 안내(kanban 활용)
OSSU 주요 운영진
- Eric Douglas(OSSU 창립자), Josh Hanson(기술 메인터너), Waciuma Wanjohi(학술 메인터너), 기타 전 세계 기여자
마무리
OSSU는 전 세계 누구나 무료로 컴퓨터 과학 정규 학위 수준의 역량을 키워 현대 IT 산업의 실무와 진로에 폭넓게 진입할 수 있는 길을 열어줌.
유연한 진도, 엄격한 기준, 글로벌 커뮤니티, 고품질 무료자료의 결합이 타 공개 커리큘럼 대비 큰 강점임.
Hacker News 의견
-
나는 경험 많은 엔지니어로서 학습자들에게 도움을 주고 싶다면 OSSU가 정말 좋은 곳이라고 생각함
- 나의 제안은 다음과 같음: 자신의 사이드 프로젝트를 OSSU 학습자들과 함께 정기적으로 페어 프로그래밍이나 팀 프로그래밍 방식으로 진행
- 커리큘럼 내 한두 개 이상의 코스에 익숙해지고, 질문이 있는 학생들에게 답변해주는 활동
- 매주 체크인 미팅에 참석해 자신이 하고 있는 일을 공유하고, 다른 학습자들이 하고 있는 이야기도 들어볼 수 있음
- 실천 방법은 Discord 서버 방문 후, 나 @waciuma 또는 @tutor 역할에 멘션
- 나는 OSSU의 리더 중 한 명으로, 우리는 커뮤니티, 네트워킹, 프로젝트가 진정한 교육의 일부라고 확신함
- 무료 코스를 만드는 교수, 대학뿐만 아니라 자원해서 OSSU 학습자들을 도왔던 수많은 엔지니어들과 실무자들도 함께 축하하는 문화
- 당신도 이 그룹에 합류해주길 바람
-
나는 학생들이 자기주도적으로 컴퓨터 공학을 공부할 수 있게 돕는 교육 프로그램을 운영 중임. 종종 OSSU 커리큘럼도 참고 자료로 활용
-
셀프 러닝은 많은 장점이 있지만, 주의할 점도 있다는 점을 학생들이 꼭 알아야 함
-
‘시그널링’과 네트워킹을 더 열심히 직접 해나가야 하고, 대학 소속일 때 누릴 수 있는 사회적 이득들은 셀프 러닝에서는 부족한 편
-
학위가 없다는 것은 ‘marked’ 상태라 할 수 있는데, 이에 대한 설명은 여기 참고
-
실수하거나 어려움이 생기면 그 원인을 학위가 없다는 점으로 쉽게 돌림
-
어떤 채용 담당자는 학위 없는 사람을 고용하는 게 정치적으로 리스크라고 생각하기 때문에 입사 자체가 어려울 수 있음
-
극복 불가능한 것은 아니지만, 그래서 우리는 이를 아예 처음부터 같이 준비하며 극복하는 방식
-
셀프 러닝의 장점은 빠른 학습 속도, 쓸데없는 과정 반복 없이 모든 것을 맥락 있게 배울 수 있다는 점
-
만약 기본기가 부족함을 깨달으면 그때 돌아가서 배우면 됨
-
이 방식은 기술 직군에는 필연적인 학습 방식이라고 생각하지만, 모든 학생에게 맞지는 않음
-
현실적으로는 재정 상황 때문에 대학에 가지 못 해서 셀프 러닝을 ‘강요받는’ 경우가 많아 아쉬움
-
트레이드오프를 잘 모르면 더욱 힘들 수 있음
-
참고: Divepod
-
나는 여러 사람들의 셀프 러닝 과정을 멘토링한 경험이 있음
- 셀프 러닝에는 각종 함정이 존재해서 조심하지 않으면 잘못된 길로 빠지기 쉬움
- 예상 못했지만 나중엔 조금 당연하게 느껴졌던 함정 중 하나는, Reddit이나 Twitch에서 업계 불평을 듣다 보면 실제 실력은 별로 의미 없고 오로지 면접 스킬만 중요하다고 믿기 쉬움
- 그래서 실제로는 코딩 실력이나 프로젝트를 등한시하고 LeetCode에 올인하거나, README만 번지르르한 미완성 프로젝트를 깃허브에 올리는 경우 발생
- S.T.A.R. 인터뷰 포맷 같이 답변 외우는 데만 집중
- 한동안 이 전략이 통했지만, 이제 기업들이 ‘프로 면접러’를 더 잘 걸러내고 있음
- 이런 마인드는 셀프 러너만의 문제가 아니라, 대학에서도 단지 졸업장(종이 쪼가리)만 노리고 커닝하며 실제 학습을 등한시하는 현상이 일어남
- 막상 졸업 후에는 기대와 달리 면접에서 허를 찔림
-
-
나는 고등학교 졸업 직후 어린 마음에 CS 학위를 제대로 끝내지 못 해 좋은 기회를 망침
- 결혼해서 아이가 생기고 나서 IT 학위를 빠르게 마쳤지만, 원래 가장 좋아했던 것은 CS였음
- 몇 년 전, CS 교육을 제대로 마치는 것이 커리어적으로 큰 도움이 되겠다고 판단
- 두 번째 학사, 포스트백, 부트캠프 등 여러 옵션을 고민하다가 결국 OSSU를 선택
- 시간이 예상보다 더 걸렸지만(인생은 늘 변수) 커리큘럼에 대해 좋은 점만 있음. 커리어뿐 아니라 삶의 만족도도 올라감
- 이렇게 OSSU를 선택한 이유와 후기 등을 블로그에 정리함 블로그 첫 글
-
나는 개인적으로 Teach Yourself CS가 더 좋은 대안이라고 생각
- 나도 컴퓨터 과학 공부를 보충하기 위해 Teach Yourself CS를 검토했었음
- 하지만 커뮤니티가 없다는 게 OSSU를 선택한 주요 이유
- 궁금한 점: 커뮤니티의 중요성을 고려할 때 Teach Yourself CS가 OSSU보다 더 낫다고 생각하는 이유가 궁금
- 참고로 나는 OSSU 커호트의 ‘소셜 오거나이저’로 활동하며 가끔 OSSU 후기도 블로그에 작성함
- 나도 컴퓨터 과학 공부를 보충하기 위해 Teach Yourself CS를 검토했었음
-
나는 셀프 러닝만으로도 충분히 커리어를 만들 수 있음을 증명하는 사례
-
이미 20년 넘게 업계에서 일했음
-
하지만, 이 길을 택하면 ‘절대’ 갈 수 없는 회사와 역할이 분명 존재함
-
이런 회사는 대부분 최고의 기업, 가장 연봉 높은 곳, 좋은 조건의 직장을 의미
-
학위 자체가 아니라, 그보다 더 중요한 것은 동문 네트워크. 학위가 있으면 그 학교 출신이 무조건 채용해주는 ‘큰 클럽’이 존재
-
셀프 러닝을 하면 그 네트워크를 절대 가질 수 없음
-
현실은? 남들이 다 거절하는 직장만 남게 됨. 황당한 곳, 스캠, 자금 부족 스타트업, 이미 위기인 회사 투성이
-
정말 드물게 좋은 자리를 잡아도 오래 머무르기 힘듦
-
연봉은 낮고, 쉽게 이용당할 위험도 큼
-
다중 오퍼를 받기도 힘드니, 시장 내 입지가 줄어듦
-
이로 인해 전체 커리어가 재정적으로 아예 다른 트랙으로 느껴질 수 있음
-
구직이 훨씬 힘들어, 두 배는 더 노력해야 함
-
자기 자신, 동료 모두로부터 ‘자격 지심’ 비슷한 의심을 자주 받음
-
실수 한 번의 파장이 엄청남
-
그래도 아무것도 안 하는 것보단 낫지만, 기회가 있으면 학교에 가는 편이 더 낫다고 생각
-
당신 경험을 폄하하고 싶진 않지만, 나는 100% 셀프 러닝으로 다양한 기업(대기업, 유니콘, 스타트업 등)에서 일한 경험
- Google, Citadel에서 면접, Meta의 오퍼 등으로 기회가 막히거나 의심받는 일은 한 번도 없었음
- 연간 현금 20만 달러 이상, 초기 스타트업에서 주식과 복지까지 받고 있음
- 두 번의 엑싯, 부자는 아니지만 일반 기준으론 충분히 부유
- 학력 때문에 경제적으로 손해를 본 적은 없음
- 19살부터 프로그래밍과 스타트업 경험을 시작한 게 조기 진입의 이점일 수 있음
- 어쩌면 운이 좋았던 것일 수도 있지만, 셀프 러닝을 아예 하지 말라고 조언하는 건 젊은 이들에게 오히려 해가 된다고 생각
-
나는 몇 년간 소프트웨어 개발자로 근무하다가, CS 학위를 위해 학교에 복귀
- 이미 역사 전공으로 90학점 보유 상태에서 3년간 준비된 커리큘럼으로 공부함
- 이 방식이 내 개발 실력을 훨씬 높여줬다고 생각
- 혼자서도 할 수 있지만, 대부분 사람들은 이 경지에 절대 도달하지 못 함
- 나보다 실력이 뛰어난 셀프 러닝 개발자도 분명히 있었지만, 그들도 4년 짜리 CS 프로그램을 경험했다면 더 나아졌을 거라고 느낌
-
이 이야기는 어느 정도 사실이 있지만, 대부분 초반과 본인 실력이 동료 그룹의 하위권일 때만 해당
- 이후엔 네트워크 역량과 운(생각보다 훨씬 중요한 요소)이 크게 좌우
- 대학은 초반 경력 쌓기에 뭔가를 따라갈 수 있다는 신뢰와 ‘졸업장’이라는 증명을 제공
- 이 과정 동안 네트워크를 만들지만, 결국 첫 두 번의 직장 이후에는 학위의 효용이 급격히 사라짐
- 내 경험으로(그저 개인적 사례) 학위 없이 시작해 10년 넘은 뒤 재미 삼아 학위를 땄음
- 직업적으로는 아무 가치가 없었고, 이후 모든 기회는 다 현업 동료 추천, 레퍼런스였음
- 학위는 예상 못한 주제도 접하게 해 주는 좋은 기회였음
-
나는 ADHD에 가깝고, 자폐 스펙트럼에도 어느 정도 있음
- 대학을 세 번 다녔지만, 비용, 지루함, 아버지의 암 사망 등 개인 문제로 모두 중퇴
- C 컴파일러 회사의 테크 서포트부터 개발자로 커리어 시작
- NY 증권 거래소, 대형 브로커리지, 유명 핀테크, 그리고 은행 및 결제회사 컨설팅까지 다양한 경력
- 주로 독학에 익숙해서 학교 환경과 맞지 않았음
- 개발 분야에서 학위가 문제된 건 극히 드문데, 실제로 아무도 신경 쓴 적이 없음
- 소프트웨어 개발 직종 한정으로 학위는 거의 혹은 전혀 의미 없음
-
이 얘기에서 자주 잊혀지지만, 컴퓨터 과학 공부의 가장 큰 이유가 꼭 취업이나 직장 스킬업 때문만은 아님
- ‘재미’가 진짜 동기
- 평생 학문 자체를 즐길 수 있고, 실전 프로그래밍과 이론, 계산의 수학적 배경, 컴퓨팅 역사 모든 면에서 큰 보람
- “컴싸를 배우지 마라”는 식의 뉴스 기사들은 진짜 의미를 놓친 것이라고 생각
-
-
나는 커리큘럼이 ‘무료 및 오픈소스’ 강의로만 구성되다 보니 오히려 한계가 있지 않나 궁금
-
제대로 공부하려면 퀄리티 있는 자료에 돈 투자하는 것도 망설이지 않아야 한다고 생각
-
이 의견 공감
- 예를 들어 디스산수학(수리논리) 과목의 경우, MIT 강의가 디스코드 서버 기준으로도 좋은 교과서 하나만 못하다는 의견이 많음
- 하지만 무료/오픈소스 질 좋은 교재는 거의 없음
- 나도 OSSU로 공부하고 있지만 ‘Discrete Mathematics with Applications’(Susanna Epps 저자, 중고 $50)로 배우고 있음
- 공식 커리큘럼에선 벗어나지만, 여전히 OSSU를 하고 있다고 생각
-
-
나는 학위가 대부분의 사회적 약점을 상쇄시키는 효과가 있다고 생각
- 종이 졸업장은 "나는 3~4년 동안 이 분야에 투자했고, 최소한의 두뇌와 헌신을 갖췄다"는 시그널
- 소셜 스킬이 부족해도 일단 갖고 있는 게 이점
- 셀프 러너면 이런 시그널이 없으니, 네트워킹/커뮤니케이션 스킬이 뛰어나거나 엄청 운이 좋아야 함
- 실제로 소셜 스킬이 뛰어나면 거의 무적에 가깝고, 실력이 부족해도 말로 대부분을 해결할 수도 있음
-
많은 댓글에서 학교가 네트워크를 만들어주거나, 특정 학교 출신만 채용한다는 이야기가 섞여 있음
-
대학/경력 내 인맥을 통한 구직 기회가 더 많아지는 건 사실
-
하지만 커리어가 쌓일수록 대학 이후에 만들어진 인맥의 힘이 더 강해짐
-
특정 대학 학위, 박사 학위가 필요한 포지션은 네트워크보단 ‘신호’로서 의미가 큼
-
즉, 채용자가 더 물어볼 필요 없이 신뢰할 만한 신호
-
셀프 러너는 이를 우회하거나 추가 노력이 필요
-
자신의 친분이나 작업물로 주목받거나, 추천을 받아 일반 채용 과정을 피해 기회를 얻는 쪽으로 방향을 잡아야 함
-
"찬스 자체가 아예 사라지는 것"이라는 말을 들으면 ‘운은 전략이 아니지만, 시도 횟수를 늘리면 행운 확률이 커진다’는 얘기가 생각남
- 네트워크는 곧 기회 자체를 늘리는 것
- 실제로 친구가 직장 소프트볼 리그에 참여하다가 그곳 네트워크 덕분에 새 직장을 얻은 사례 있음
-
-
목표가 대체 뭔지 궁금
- 진짜로 취업이 목표면 커뮤니티 칼리지 정도 교육이 더 실용적이라고 봄
- 순전히 돈을 벌 목적이라면 오히려 neal.fun이나 levels.io 방식이 더 빠르다고 생각
- 학위증서도 없다면 차라리 YOLO 전략이 낫지 않나 싶음
- 결국 남는 건 순수한 지적 호기심, 오로지 재미로 배우는 것뿐 아닐까
-
이런 토론에서 양쪽 다 지나치게 방어적 태도를 보이는 게 좀 아쉬움