TECH 으로 돌아가기
TECH GITHUB 2주 전 12분 읽기 110 READS

[심층분석] 8개월을 갈아넣어 만든 컴퓨터과학 학습지도, '코딩 인터뷰 대학'을 파헤쳐 봤어요

[심층분석] 8개월을 갈아넣어 만든 컴퓨터과학 학습지도, '코딩 인터뷰 대학'을 파헤쳐 봤어요

시작하기 전에: 이 저장소가 뭐냐면요

개발 공부를 하다 보면 누구나 한 번쯤 이런 막막함을 느끼거든요. "대체 뭐부터 공부해야 하지? 자료구조? 알고리즘? 운영체제? 끝이 없는데..." 특히 비전공자거나, 부트캠프만 다니고 현업에 뛰어든 분들은 더 그래요. 학교에서 4년 동안 차근차근 배우는 컴퓨터과학(CS) 기초를 혼자서 어떻게 따라잡아야 할지 감이 안 잡히죠.

오늘 소개할 jwasham/coding-interview-university는 바로 그 막막함을 정면으로 해결해주는 학습 지도예요. 만든 사람은 존 워샴(John Washam)이라는 개발자인데요, 이 사람 이야기가 좀 드라마틱합니다. 원래는 본인이 소프트웨어 엔지니어가 되려고 "공부할 주제 목록"을 간단히 메모해뒀던 거래요. 그런데 그게 점점 불어나서 지금처럼 거대한 커리큘럼이 됐고, 본인은 결국 이 계획대로 공부해서 아마존에 소프트웨어 개발 엔지니어로 입사하는 데 성공했어요.

재밌는 건, 그가 솔직하게 "나는 하루에 8~12시간씩 몇 달 동안 공부했지만, 여러분은 나만큼 안 해도 된다"고 말한다는 점이에요. 본인이 필요 없는 것까지 너무 많이 파느라 시간을 낭비했으니, 여러분은 그 시행착오 없이 효율적으로 가라는 거죠. 이런 '실패담을 포함한 솔직함' 덕분에 이 저장소가 전 세계 개발자들에게 신뢰를 받는 거라고 봐요.

그래서 이게 정확히 뭔가요?

한마디로 정리하면, '대기업 소프트웨어 엔지니어가 되기 위한 다개월짜리 자율 학습 계획표'예요. 여기서 말하는 대기업은 우리가 다 아는 곳들이에요. 아마존, 페이스북(메타), 구글, 마이크로소프트 같은 회사들이죠. 흔히 'FAANG'이라고 부르는 빅테크 기업들의 기술 면접을 통과하는 데 필요한 지식을 한 곳에 모아놨어요.

시작하는 데 필요한 건 딱 세 가지래요.

특이한 점은 학습 도구로 '플래시카드(암기 카드)'를 적극 활용하라고 권한다는 거예요. 단어장처럼 개념을 카드로 만들어서 반복 암기하는 방식인데, 워샴 본인이 이 방법으로 효과를 봤기 때문에 자기가 쓴 카드 데이터까지 공유해요. 그냥 '공부해라'가 아니라 '이렇게 공부하면 머리에 남는다'까지 알려주는 셈이죠.

다른 학습 자료와 뭐가 다를까요?

요즘 개발 학습 로드맵은 정말 많아요. 대표적인 것들과 비교하면 차이가 또렷하게 보여요.

roadmap.sh와 비교하면, roadmap.sh는 '지도'에 가까워요. 프론트엔드, 백엔드, 데브옵스 등 분야별로 '이 길로 가면 이런 걸 배우게 됩니다' 하고 큰 그림을 보여주는 내비게이션이죠. 반면 이 저장소는 '체크리스트'에 가까워요. 면접 합격이라는 딱 하나의 목적지를 향해, 하나씩 체크하며 끝까지 완주하도록 설계돼 있어요. 길을 보여주는 것과, 손잡고 끝까지 데려가는 것의 차이라고 보면 돼요.

LeetCode 같은 문제 풀이 사이트와 비교하면, LeetCode는 헬스장의 '운동 기구'예요. 문제를 무한정 풀 수 있죠. 하지만 어떤 순서로, 어떤 개념을 먼저 익히고 풀어야 하는지는 안 알려줘요. 이 저장소는 그 '운동 루틴 프로그램'에 가까워요. 기초 체력부터 실전까지 순서를 잡아주거든요. 그래서 둘은 경쟁 관계라기보다 함께 쓰면 시너지가 나는 조합이에요.

유료 부트캠프와 비교하면, 가장 큰 차이는 당연히 '무료'이고 '오픈소스'라는 점이에요. 누구나 자유롭게 보고, 번역하고, 기여할 수 있어요. 실제로 인도네시아어, 스페인어, 독일어, 일본어, 중국어 등 여러 언어로 번역돼 있고, 한국어(한국어) 번역도 진행 중이에요. 비록 아직 완성은 아니지만요. 다만 무료인 만큼 누가 옆에서 채찍질해주지 않으니, 스스로를 끌고 갈 수 있는 자기주도력이 필요하다는 게 양날의 검이에요.

한국 개발자에게 주는 시사점

그럼 우리 입장에서는 이걸 어떻게 써먹으면 좋을까요? 몇 가지 현실적인 시나리오로 정리해볼게요.

비전공자·부트캠프 출신이라면, 이 저장소가 'CS 지식의 구멍'을 메우는 최고의 지도가 돼요. 부트캠프는 보통 빠르게 결과물을 만드는 데 집중하다 보니, 빅오나 자료구조 같은 기초가 약한 경우가 많거든요. 면접에서 "이 코드의 시간 복잡도가 어떻게 되나요?" 같은 질문에 막혔던 경험이 있다면, 이 커리큘럼의 자료구조·알고리즘·빅오 파트부터 차근차근 보는 걸 추천해요.

현업 주니어 개발자라면, 전체를 다 할 필요는 없어요. 저장소도 '75%면 충분하다'고 했잖아요. 본인이 약한 부분, 예를 들어 시스템 설계나 트리·그래프 같은 자료구조만 골라서 보충하는 '맞춤형 학습'으로 쓰면 효율적이에요.

다만 한국 환경에서 고려할 점도 솔직히 말씀드릴게요. 이 커리큘럼은 미국 빅테크 면접 스타일에 최적화돼 있어요. 한국 기업 면접은 회사마다 결이 좀 달라서, 자료구조·알고리즘 기초는 100% 통하지만 시스템 설계 면접 방식 등은 지원하는 회사에 맞게 조정이 필요해요. 그리고 영어 자료가 메인이라, 한국어 번역이 아직 진행 중인 점은 감안해야 하고요.

학습 로드맵을 짜자면 이런 순서를 제안해요.

1. 빅오 표기법 먼저 (모든 판단의 기준이 되니까요)
2. 배열, 해시 테이블 같은 기본 자료구조
3. 정렬·탐색 알고리즘 4. 트리, 그래프 같은 한 단계 높은 자료구조
5. 시스템 설계는 어느 정도 경력이 쌓인 뒤에

그리고 이론만 보지 말고, 각 개념을 배울 때마다 LeetCode에서 관련 문제를 손으로 직접 풀어보세요. 눈으로 읽는 것과 손으로 코드를 쳐보는 건 정말 하늘과 땅 차이거든요.

마무리하며

이 저장소가 던지는 진짜 메시지는, '대기업 합격 비법'이라기보다 '독학으로도 체계적으로 성장할 수 있다'는 증명이라고 생각해요. 한 사람이 8개월간 갈아넣은 시행착오가 전 세계 개발자들의 공용 지도가 됐고, 지금도 수많은 사람이 번역과 수정으로 함께 키워가고 있으니까요. AI가 코드를 술술 짜주는 시대일수록, 오히려 "왜 이 코드가 효율적인가"를 이해하는 CS 기초의 가치는 더 올라간다고 봐요. AI가 짜준 코드를 검증하고 개선하려면 결국 밑바탕 원리를 알아야 하거든요.

여러분은 어떠세요? 혹시 CS 기초가 부족해서 면접이나 실무에서 벽을 느낀 적 있으신가요? 아니면 이런 거대한 학습 계획을 끝까지 완주해본 경험이 있다면, 중간에 포기하지 않은 본인만의 비결이 궁금해요. 댓글로 각자의 '공부 생존기'를 나눠봐요!


🔗 출처: GitHub

SOURCE · GITHUB
원문 전체 보기 → https://github.com/jwasham/coding-interview-university
SHARE
처리 중...