태권도장처럼 화이트-블루-블랙레벨
지난 마스터즈코스는 처음 설계할 때부터 모집 분야가 복잡하지 않고, 배울 내용을 전달하기 명확하도록 구분했다. 그래서 프로그래밍 입문자를 위한 화이트레벨과 기술 분야별 지식을 배우는 블루레벨로 나눴다. 이름에서 알수 있듯이 태권도장에서 레벨별로 흰띠. 파란띠. 검은띠를 주는 것을 차용했다. 교육 기간도 레벨별로 2–3개월씩 나눠서 진행했다. 8주-12주 연속으로 진행하다보니 전체 비용도 높아지고, 진도에 맞춰서 학습하는 것이 엄청난 부담이 되기도 했다.
코드스쿼드 멤버스
다양한 경험과 다른 배경을 가진 분들이 교육에 참가하는 것은 서로에게 도움이 된다. 대부분 마스터즈코스에 관심있는 분들은 소프트웨어 개발을 배워서 취업하려는 사람들이다. 소프트웨어 개발을 혼자서 공부해봤거나 학교나 학원에서 얕게 배워본 경험이 있는 분들도 있고, 가끔씩은 전혀 다른 일을 하다가 새로운 분야로 옮기려는 분들도 있다. 하지만 그만큼 절실하고 자신의 목표를 위해서 도전 정신이 강한 분들이다. 마스터들은 그 열정이 사라지지 않도록 도와주는 역할을 한다. 한 번이라도 교육을 함께한 — 코드스쿼드 멤버스는 영원히 코드스쿼드 멤버다.
3클래스+5레벨
클래스는 웹백엔드, 웹프론트엔드, 모바일로 크게 3가지로 분류되고, 모든 클래스 공통인 레벨1부터 팀프로젝트를 하는 레벨5까지 마스터들은 각각 담당하는 클래스와 레벨이 있다. 기존에 웹프론트엔드와 모바일 2가지 트랙에 백엔드를 추가해서 클래스를 3개로 늘렸다. 화이트-블루 레벨보다 레벨도 5개로 더 세분화했다. 레벨을 시작하기에 앞서서 간단한 레벨 확인 시험을 진행하고, 적합한 레벨부터 시작한다.
레벨1은 공통으로 개발을 처음 시작하는 사람들에게 프로그래밍을 경험할수록 만드는 즐거움이 있다는 것을 경험을 준다. 레벨2부터 각 클래스 마스터들과 함께 쉬운 문제부터 스스로 배우며 해결하는 과정을 거친다. 레벨4까지 단계별로 학습하며 고급 주제와 다양한 지식을 반복적인 피드백으로 차츰 성장한다. 레벨5는 팀프로젝트로 회사에서 팀으로 일하는 것과 동일한 수준의 실전 프로젝트를 마치고 출시하는 것을 목표로 한다. 향후 클래스와 레벨을 더 늘려갈 계획이다.
스스로 배우는 1개월 단위 학습
단기간 동안에 모든 내용을 소화해내야 하는 것보다는, 기존 영어 단과학원처럼 매달 모집하고 원하는 만큼 공부할 수 있는 모델을 반영했다. 각자 자기만의 학습 속도로 배우고 원하는 기간만큼 다닐 수 있다. 현재 설계된 레벨1부터 레벨5까지 이어서 한다면, (개인마다 편차를 두고) 9개월정도 투자해야 하기 때문에 적어도 2–3달 단위로 흐름을 이어가며 공부하길 권장하고 있다.
도제식 교육과 개발 현장
소프트웨어 기업 현장에서 일하는 것과 비슷한 경험을 할 수 있도록 공간을 설계했다. 마치 선배 개발자와 함께 일하는 개발 회사에서 활동을 그대로 교육 방식과 공간에 배치했다. 자신에게 주어진 요구사항이 담긴 개발 미션을 해결하기 위해서 매일 아침마다 업무 미팅도 하고, 설계도 하고, 자기 일정도 계획해보고, 언제든지 마스터에게 질문할 수도 있고 강의를 요청할 수도 있다. 마스터들은 필요한 강의를 개설하거나 질의응답에 맞춰서 짧게 강의를 하기도 한다. 마스터와 함께 지속적인 코드리뷰를 통해 코드 품질을 높이는 경험을 현장처럼 실습한다.
코드리뷰와 클린코드
이번 교육 모델의 핵심은 ‘코드리뷰와 클린코드’ 방식이다. 모든 경험은 개개인에게 주어지는 미션을 해결하는 과정에서 실패하면서 배운다. 미션을 5–6단계로 나누고, 단계를 통과하기 위한 요구사항을 해결할 때마다 github에서 마스터에게 PR(Pull Request)을 보내서 온라인 코드리뷰를 받는다. 코드리뷰 사항에 대해 피드백을 받아서 개선하고 PR을 반영하고 나면, 다시 자신의 브랜치에서 다음 단계 미션을 시작한다. 코드리뷰의 핵심은 역시 클린코드다. 스스로 나쁜 냄새를 찾아내고 함수와 객체의 역할과 책임을 분리해서 개선하는 경험을 반복한다. 단위 테스트 코드를 작성하면서 자기가 설계한 코드가 무엇이 문제인지 인식하는 경험을 하고 있다. 다양한 코드리뷰 사례를 별도 글로 공유할 계획이다.
왜 코드스쿼드인가?
“상상하지 못했던 방식이다. 제가 바라던 것이다. 제가 원하는 걸 학원을갈까 혼자서 할까 고민이였다. 학원은 필요없는 것을 외우는 방식이라고 생각했기 때문이다. 여기서는 당장 실무에 필요한 도구학습방법등일까 걱정도 했다. 여기서는 무엇을 배워야 할지 방향을 잡아주는게 좋았고, 100번 개발하면서 느껴야 할 부분을 5번정도로 끝낼수 있는거가 좋다.”
다른 기관에서 강사 위주로 진도만 나가고, 따라하고 내가 할 줄 아는게 없었던 분들이 4주만에 스스로 도전하며 성장하고 있다. 코드스쿼드 마스터를 포함해서 우리 대부분은 지금까지 가르쳐주는 사람 위주로 계획된 진도에 맞춰서 공부하고 경쟁하며 시험으로 평가하는 방식에 익숙하다. 마스터즈코스에 함께하는 분들은 스스로 공부하는 방법을 끊임없이 고민하고, 반복적으로 코드를 개선하는 경험을 통해서 자기만의 속도와 방향으로 배운다.
코드스쿼드 교육 철학은 멤버 누구나 서로에게 긍정적인 피드백을 주며, 스스로 자기만의 속도로 성장하도록 돕는 것이다. 그런 의미에서 마스터즈코스는 아직 완성형이 아니고, 현재 진행형이다. 그리고 누구에게나 그 문은 열려있다.