![[심층분석] 8개월을 갈아넣어 만든 컴퓨터과학 학습지도, '코딩 인터뷰 대학'을 파헤쳐 봤어요](/newsimg/7q1kr4zV2Z6P6bX5.png)
시작하기 전에: 이 저장소가 뭐냐면요
개발 공부를 하다 보면 누구나 한 번쯤 이런 막막함을 느끼거든요. "대체 뭐부터 공부해야 하지? 자료구조? 알고리즘? 운영체제? 끝이 없는데..." 특히 비전공자거나, 부트캠프만 다니고 현업에 뛰어든 분들은 더 그래요. 학교에서 4년 동안 차근차근 배우는 컴퓨터과학(CS) 기초를 혼자서 어떻게 따라잡아야 할지 감이 안 잡히죠.
오늘 소개할 jwasham/coding-interview-university는 바로 그 막막함을 정면으로 해결해주는 학습 지도예요. 만든 사람은 존 워샴(John Washam)이라는 개발자인데요, 이 사람 이야기가 좀 드라마틱합니다. 원래는 본인이 소프트웨어 엔지니어가 되려고 "공부할 주제 목록"을 간단히 메모해뒀던 거래요. 그런데 그게 점점 불어나서 지금처럼 거대한 커리큘럼이 됐고, 본인은 결국 이 계획대로 공부해서 아마존에 소프트웨어 개발 엔지니어로 입사하는 데 성공했어요.
재밌는 건, 그가 솔직하게 "나는 하루에 8~12시간씩 몇 달 동안 공부했지만, 여러분은 나만큼 안 해도 된다"고 말한다는 점이에요. 본인이 필요 없는 것까지 너무 많이 파느라 시간을 낭비했으니, 여러분은 그 시행착오 없이 효율적으로 가라는 거죠. 이런 '실패담을 포함한 솔직함' 덕분에 이 저장소가 전 세계 개발자들에게 신뢰를 받는 거라고 봐요.
그래서 이게 정확히 뭔가요?
한마디로 정리하면, '대기업 소프트웨어 엔지니어가 되기 위한 다개월짜리 자율 학습 계획표'예요. 여기서 말하는 대기업은 우리가 다 아는 곳들이에요. 아마존, 페이스북(메타), 구글, 마이크로소프트 같은 회사들이죠. 흔히 'FAANG'이라고 부르는 빅테크 기업들의 기술 면접을 통과하는 데 필요한 지식을 한 곳에 모아놨어요.
시작하는 데 필요한 건 딱 세 가지래요.
- 약간의 코딩 경험 (변수, 반복문, 함수 정도만 알면 돼요)
- 인내심
- 시간
- 자료구조(Data Structures): 데이터를 어떻게 담아둘지에 대한 '그릇'이에요. 배열, 연결 리스트, 스택, 큐, 해시 테이블, 트리 같은 것들이죠. 쉽게 비유하면, 옷을 서랍에 개어 넣을지, 옷걸이에 걸지, 상자에 차곡차곡 쌓을지 정하는 거랑 비슷해요. 어떤 그릇을 쓰느냐에 따라 물건을 찾는 속도가 천차만별이거든요.
- 알고리즘(Algorithms): 문제를 푸는 '절차'예요. 정렬(줄 세우기), 탐색(찾기), 재귀 같은 것들이죠.
- 빅오 표기법(Big-O): 이게 뭐냐면, 어떤 방법이 데이터가 많아질수록 얼마나 느려지는지를 재는 '연비 측정기' 같은 거예요. 똑같이 1000개 데이터를 처리해도, 어떤 방법은 1초 걸리고 어떤 방법은 10분 걸릴 수 있거든요. 면접에서 가장 많이 물어보는 핵심 개념이에요.
- 운영체제, 네트워크, 시스템 설계: 컴퓨터가 안에서 실제로 어떻게 돌아가는지, 그리고 대규모 서비스를 어떻게 설계하는지를 다뤄요.
여기서 한 가지 짚고 넘어갈 게 있어요. 이 커리큘럼은 '소프트웨어 엔지니어링'을 위한 거지, 프론트엔드나 풀스택 개발자를 위한 게 아니에요. 이게 무슨 말이냐면, 화면 UI를 예쁘게 만들고 웹사이트를 띄우는 기술이 아니라, 컴퓨터가 데이터를 어떻게 다루고 문제를 어떻게 효율적으로 푸는지 같은 '밑바탕 원리'에 집중한다는 뜻이에요. 프론트엔드나 풀스택을 공부하고 싶은 분들에게는 roadmap.sh 같은 다른 좋은 자료를 추천하고 있고요.
또 흥미로운 철학이 하나 있어요. "대학 컴퓨터과학 과정에서 배우는 것 중 약 75%만 알아도 면접에는 충분하다"는 거예요. 그래서 이 저장소는 모든 걸 다 가르치려고 욕심부리지 않고, 면접에 진짜 나오는 핵심 75%에 집중해요. 100점 만점을 노리는 게 아니라 '합격선'을 효율적으로 넘기는 데 초점을 맞춘 거죠. 만약 CS를 완전히 처음부터 끝까지 독학하고 싶다면, 카므란 아메드(Kamran Ahmed)의 컴퓨터과학 로드맵으로 연결해주는 친절함도 보여줘요.
이 학습 계획이 다루는 것들
저장소의 목차를 보면 'The Study Plan(학습 계획)', 'Why use it?(왜 이걸 써야 하나)', 'How to use it(어떻게 쓰나)' 같은 항목들이 쭉 이어져요. 실제 내용을 보면 컴퓨터과학의 핵심 기둥들이 거의 다 들어있어요. 처음 접하는 분들을 위해 대표적인 것들을 쉬운 말로 풀어볼게요.
다른 학습 자료와 뭐가 다를까요?
요즘 개발 학습 로드맵은 정말 많아요. 대표적인 것들과 비교하면 차이가 또렷하게 보여요.
roadmap.sh와 비교하면, roadmap.sh는 '지도'에 가까워요. 프론트엔드, 백엔드, 데브옵스 등 분야별로 '이 길로 가면 이런 걸 배우게 됩니다' 하고 큰 그림을 보여주는 내비게이션이죠. 반면 이 저장소는 '체크리스트'에 가까워요. 면접 합격이라는 딱 하나의 목적지를 향해, 하나씩 체크하며 끝까지 완주하도록 설계돼 있어요. 길을 보여주는 것과, 손잡고 끝까지 데려가는 것의 차이라고 보면 돼요.
LeetCode 같은 문제 풀이 사이트와 비교하면, LeetCode는 헬스장의 '운동 기구'예요. 문제를 무한정 풀 수 있죠. 하지만 어떤 순서로, 어떤 개념을 먼저 익히고 풀어야 하는지는 안 알려줘요. 이 저장소는 그 '운동 루틴 프로그램'에 가까워요. 기초 체력부터 실전까지 순서를 잡아주거든요. 그래서 둘은 경쟁 관계라기보다 함께 쓰면 시너지가 나는 조합이에요.
유료 부트캠프와 비교하면, 가장 큰 차이는 당연히 '무료'이고 '오픈소스'라는 점이에요. 누구나 자유롭게 보고, 번역하고, 기여할 수 있어요. 실제로 인도네시아어, 스페인어, 독일어, 일본어, 중국어 등 여러 언어로 번역돼 있고, 한국어(한국어) 번역도 진행 중이에요. 비록 아직 완성은 아니지만요. 다만 무료인 만큼 누가 옆에서 채찍질해주지 않으니, 스스로를 끌고 갈 수 있는 자기주도력이 필요하다는 게 양날의 검이에요.
한국 개발자에게 주는 시사점
그럼 우리 입장에서는 이걸 어떻게 써먹으면 좋을까요? 몇 가지 현실적인 시나리오로 정리해볼게요.
비전공자·부트캠프 출신이라면, 이 저장소가 'CS 지식의 구멍'을 메우는 최고의 지도가 돼요. 부트캠프는 보통 빠르게 결과물을 만드는 데 집중하다 보니, 빅오나 자료구조 같은 기초가 약한 경우가 많거든요. 면접에서 "이 코드의 시간 복잡도가 어떻게 되나요?" 같은 질문에 막혔던 경험이 있다면, 이 커리큘럼의 자료구조·알고리즘·빅오 파트부터 차근차근 보는 걸 추천해요.
현업 주니어 개발자라면, 전체를 다 할 필요는 없어요. 저장소도 '75%면 충분하다'고 했잖아요. 본인이 약한 부분, 예를 들어 시스템 설계나 트리·그래프 같은 자료구조만 골라서 보충하는 '맞춤형 학습'으로 쓰면 효율적이에요.
다만 한국 환경에서 고려할 점도 솔직히 말씀드릴게요. 이 커리큘럼은 미국 빅테크 면접 스타일에 최적화돼 있어요. 한국 기업 면접은 회사마다 결이 좀 달라서, 자료구조·알고리즘 기초는 100% 통하지만 시스템 설계 면접 방식 등은 지원하는 회사에 맞게 조정이 필요해요. 그리고 영어 자료가 메인이라, 한국어 번역이 아직 진행 중인 점은 감안해야 하고요.
학습 로드맵을 짜자면 이런 순서를 제안해요.
1. 빅오 표기법 먼저 (모든 판단의 기준이 되니까요)
2. 배열, 해시 테이블 같은 기본 자료구조
3. 정렬·탐색 알고리즘
4. 트리, 그래프 같은 한 단계 높은 자료구조
5. 시스템 설계는 어느 정도 경력이 쌓인 뒤에
그리고 이론만 보지 말고, 각 개념을 배울 때마다 LeetCode에서 관련 문제를 손으로 직접 풀어보세요. 눈으로 읽는 것과 손으로 코드를 쳐보는 건 정말 하늘과 땅 차이거든요.
마무리하며
이 저장소가 던지는 진짜 메시지는, '대기업 합격 비법'이라기보다 '독학으로도 체계적으로 성장할 수 있다'는 증명이라고 생각해요. 한 사람이 8개월간 갈아넣은 시행착오가 전 세계 개발자들의 공용 지도가 됐고, 지금도 수많은 사람이 번역과 수정으로 함께 키워가고 있으니까요. AI가 코드를 술술 짜주는 시대일수록, 오히려 "왜 이 코드가 효율적인가"를 이해하는 CS 기초의 가치는 더 올라간다고 봐요. AI가 짜준 코드를 검증하고 개선하려면 결국 밑바탕 원리를 알아야 하거든요.
여러분은 어떠세요? 혹시 CS 기초가 부족해서 면접이나 실무에서 벽을 느낀 적 있으신가요? 아니면 이런 거대한 학습 계획을 끝까지 완주해본 경험이 있다면, 중간에 포기하지 않은 본인만의 비결이 궁금해요. 댓글로 각자의 '공부 생존기'를 나눠봐요!
🔗 출처: GitHub
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공