코드스테이츠의 PRE COURSE 과정 그리고 나의 실패담

nyongho·2020년 10월 14일
2

회고록

목록 보기
1/2

내가 코드스테이츠에 지원하게 된 계기

1) 유튜브로 접한 홍보 영상


아래 영상은 개발의 'ㄱ' 도 모르던 나를 처음 개발자의 세계로 인도하게 해준 영상이다.

지방대 개발 비전공자가 배달의민족 리드 개발자가 되기까지

이후 개발자 직군에 관심이 생긴 내게 유튜브는 아래의 영상을 추천해 줬다.

교육에 금융을 접목해 만든 40억의 매출 가치

2) 수강생 후기


영상을 접한 뒤 나는 구글링을 통해 코드스테이츠 수강생들의 후기를 찾아보았고 OKKY 와 같은 개발자 커뮤니티에도 코드스테이츠와 관련된 얘기를 찾아보기 시작했다. 이에 "타 부트캠프와 다른 코드스테이츠의 교육 방식에서 수강생들의 호불호가 갈린다" 라는 내용을 접했고 이에 대해 좀 더 알아보게 됐다.

3) 자기주도적 학습 방법


코드스테이츠는 우리가 어려서부터 익숙하게 접해온 '주입식 교육' 방식이 아닌 '자기주도적 학습' 방식을 채택했다는 걸 알게 됐다. 나 또한 고등학교 재학 시절 정답을 알려주는 곳이 아닌, 방법만 알려주고 나머지는 내 스스로 모두 해결해야 하는 방식의 수학 학원을 다녔고 나 홀로 전전긍긍하며 얻어낸 지식이 온전히 나의 것이 되는 경험을 했기에 이 교육 방식이 반가웠고 이는 코드스테이츠에 지원하게 된 결정적 계기가 됐다. (하지만 이 방식은 주입식 교육에 익숙한 사람에게는 꽤나 많은 인내심을 요구한다. 그리고 이는 학습을 하는 동안 나를 괴롭히는 주 원인이 된다.) 이후, 나는 9월 7일부터 FULL TIME PRE 7기에 참여하게 된다.

5주간의 PRE COURSE, 그리고 나의 학습 패턴

😄 9월 7일 - 9월 11일 (1주차)

첫 날 오전에는 OT로 아이스 브레이킹 시간을 가지며 페어 프로그래밍에 대한 어색함을 깨는 것을 도와줬다. 사실 나는 처음 누구를 만나는 것에 대해 별로 어색해 하지 않아서 상관은 없었다. (근데 그 사람이 나를 어색해 하면 나도 어색해진다 ㅋㅋㅋ)
1주차에는 자바스크립트의 변수, 조건문, 문자열, 반복문, 배열, 객체 를 배웠다.
위 내용은 나 같은 비전공자에게는 너무나 생소한 개념이라 다음 개념을 배울 때 까지 코플릿을 못 끝내는 경우도 많았기 대문에 정규 학습 시간 이후에도 2시간 이상 씩 코플릿과 문제를 푸는데 집중했다. 하지만 일정이 적응이 필요한건지 아직 나에겐 너무 벅차서 주말의 시간을 활용해 어떻게든 진도를 따라 잡으려 노력했다.

😂 9월 14일 - 9월 18일 (2주차)

그렇게 나는 1주차의 개념을 제대로 숙지하지 못한 채 2주차를 맞이 하게 됐다.
2주차 첫 날에는 알고리즘 베이식 코플릿을 풀었는데 정말 멘탈이 나가는 줄 알았다.
1주차에서 배웠던 개념을 활용함과 동시에 다른 개념도 내 스스로 구글링 해가며 문제를 풀어야 했는데 이 때 하얀 코플릿 창과 함께 내 머리도 같이 백지가 되는 경험을 했다. 문제가 뭘 원하는지 조차 이해 안되는 경우도 많았다. 결국 나는 우선 알고리즘 베이직은 나중에 풀기로 하고 클로저, 스코프 개념을 배운 뒤 본격적으로 GIT 으로 학습이 진행되는 Koans, Testbuilder 를 접하게 됐는데 처음 사용하는 VSC와 JS 파일 속 난해한 문제들은 안 그래도 정리 안된 내 머릿속을 휘젓기에 충분했다. 그렇지만 페어와 함께 하나 하나씩 서로 아는 개념이나 구글링 해서 찾은 방법을 공유해가며 과제를 해결했고 이 때도 마찬가지로 학습 정규 시간 이외의 시간에도 2시간 이상씩 과제에 집중했다.

😭 9월 21일 - 9월 25일 (3주차)

나를 가장 절망스럽게 만든 대망의 3주차이다. HTML과 CSS라는 새로운 개념을 익히고 1~2주차에 배운 내용을 토대로 Twittler 라는 하나의 사이트를 만들어야 했다.
일단 목업 구현은 어렵지 않았다. Twittler 를 로봇으로 표현하자면 우선 뼈대를 만든다는 개념으로 다가왔기에 내가 원하는 방식과 디자인으로 목업(Mock Up)을 구현했다. 하지만 진짜 문제는 "만들어진 이 로봇을 어떻게 움직이게 할 것인가?" 이었다. 이 사이트가 내가 원하는 작동을 하게 만들어야 했기에 이걸 어디서 부터 손을 봐야 할지 너무 막막했다. 일단 구글링을 통해 방법을 이것 저것 알아봤는데 "어라?" 누군가 비슷한 프로젝트의 코드를 자신의 블로그에 올린 것이다. 그것도 각 코드 옆에 수도코드까지 달아주는 친절함까지 겸비했다. 도저히 이걸 보고 그냥 지나칠 수는 없었다. 망망대해 한복판에 버려진 내게 구명조끼를 던져주는것이 아니라 헬기를 통해 친절히 사다리까지 내려 구조해주는 느낌이였다. 그렇게 나는 그 사람의 코드를 일단 CTRL + C, CTRL + V 한 다음 한 줄 한 줄 해석해 나가기 시작했다. "아, 내가 구현하고자 하던것은 이런 코드를 쓰면 구현 할 수 있구나", "이게 이렇게 단순한 코드로 구현이 된다고?", "이 코드는 도대체 뭘 의미하는거지?", "그래서 이 코드가 어떤 원리로 저 작업을 수행하게 해주는건데?" 라는 생각이 오갔다. 모든 코드를 곱씹어본 뒤 구동 원리를 내 나름대로 이해했다 생각하고 백지인 상태에서 천천히 코드를 다시 써보기 시작했다. 물론, 막힐 때마다 다시 그 코드를 참조해가며 써갔다. 그렇게 Twittler 과제를 끝내고 마지막 금요일 날 고차 함수 개념을 배우고 코플릿을 풀었는데 내가 생각한 것보다 난이도가 쉬워 은근 쉽게 풀었다. 그렇게 나는 처음으로 평일에 모든 과제를 푸는 경험을 했다. 하지만 기분은 매우 찜찜했고 불안했다.

😵 9월 28일 - 10월 2일 (4주차)

4주차에는 underbar 과제를 진행했다. 첫 번째 문제를 조우하자마자 든 생각은 "어떻게 풀어야 하지?" 가 아니라 "정답이 뭘까?" 였다. 그 전의 Twittler 에서 적용했던것과 마찬가지로 구글링을 통해 먼저 정답을 검색했다. 일단 그들의 코드를 CTRL + C, CTRL + V 를 한 뒤 각 코드의 구현 방식에 대해 해석하고 모두 지운 뒤 코드를 적는 Twittler 에서 적용했던 방식과 같은 방법으로 문제를 풀었다. 그러다가 아무리 구글링 해봐도 '정답'이 없는 문제가 나오자 나는 멘붕에 빠졌다. 그전까지는 문제를 풀기 위해서는 먼저 '정답'이 필요했는데 그 첫 단추가 없어져 버리니 나머지 단추를 끼울 생각조차 못했다. 이 과정에서 나는 페어에게 질문해보기도 하고 헬프 데스크에 질문을 해보기도 하며 어떻게든 방법을 찾아내려고 했다. 하지만 지난 학습 동안 백지인 상태에서 스케치를 하는 습관이 전혀 들여지지 않은 나는 방법을 봐도 어떻게 해야 할지 모르겠는 경우가 다분했고 이 때 굉장히 답답했다. 남은 추석 연휴 동안 과제를 풀려했지만 조금이라도 생각을 해야하는 상황이 왔을 때 나는 쉽게 포기해버렸고 이 패턴을 반복하게 된 나는 황금같은 추석 연휴 기간을 다 날리게 되는 결과를 맞이했다. 이 때 그 전의 내가 했던 방식이 내게 독이 된다는 걸 알면서도 행해왔던 내 자신을 처음 되돌아 보게 됐다. 그리고 내가 해왔던 학습 방식이 매우 잘못 됐다는걸 너무 늦게, 깊이 깨달았다.

🤪 10월 5일 - 10월 9일 (5주차)

(사실 PRE COURSE 는 4주 과정이 맞지만, 추석 연휴와 한글날이 겹쳐 5주로 늘게 됐다.)
4주차에서 나는 나의 학습 패턴이 매우 잘못 됐고 그걸 깨달은 지금은 이미 너무 늦었다는 걸 알게 됐다. 그렇게 4주차 주말, 나는 진지하게 기수이동을 고민했다. 그렇지만 일단 남은 과정은 진행해야 하기 때문에 최대한 나의 힘으로 풀려는 마음 가짐으로 5주차의 재귀 함수와 Recursion 과제에 임했다. 재귀 함수의 코플릿을 문제를 봤다. 하지만 이미 '정답'에 길들여진 나는 도저히 나의 머리로는 이해 할 수도 없었고 어떻게 푸는지 감 조차 안왔다. 그래서 일단 먼저 수도코드를 통해 내가 어떻게 문제에 접근하고 풀건지 하나하나씩 써 보았다. 이렇게 하니 문제를 어떻게 접근해야 하는지는 어느정도 감이 왔지만 막상 코드를 작성하려니 머릿속이 새 하얘졌다. 내가 배웠던 개념들은 기억 나는데 이 개념을 어떻게 활용해야 할지를 몰랐다. 영어 교육을 10년넘게 배웠지만 막상 외국인을 만나면 어떻게 말을 해야 할지 감 조차 안오는 것처럼. 그렇게 거의 90% 이상의 문제를 레퍼런스 코드를 참조했고 일단 코플릿은 제출했다. Recursion 과제 또한 그전 방식과 같이 먼저 코드를 복사 붙혀넣기 하고 해석한 뒤 내가 직접 해보는 방식으로 진행했다. 그리고 solo week 와 한글날에는 특별히 다른 추가 공부를 하지 않았다. 왜냐하면 어디서부터 줄이 꼬였는지 몰랐기 때문에 이 기간 동안 기존에 배웠던걸 다시 공부하려면 첫 개념부터 해야 한다는 생각이 강하게 들었기 때문이다. 그래서 이 기간 동안에는 그동안 배운것을 다시 한 번 복습하기 보다는 문제를 처음부터 차근차근히 여러 방법을 통해 접근하는 연습을 했다.

💀 10월 12일 - 10월 14일 Pre Hiring Assessments

코플릿 문제는 총 7문제 였으며 당연히 기존에 배웠던 개념들을 토대로 코플릿을 풀어야 했다.
그래도 마지막에 차근차근하게 여러 방법을 통해 접근하는 방법을 배워서인지 Test 3번까지는 어떻게 풀기는 했다. 그래도 나의 머릿속에는 배운것이 어느정도 남아는 있구나 라는 생각이 들었다. Test 4번부터는 건들지도 못했다.
그리고 오늘 Issue Sharing 을 통해 코드스테이츠 엔지니어님과 체크 인(Check In)을 진행했으며 내가 이번 PRE COURSE 과정을 진행하며 부족했던 점과 잘못됐던 점들 그리고 다음 기수에 참가하게 되면 갖고 갈 마인드셋을 말씀드렸다.
그렇게 1시간 가량의 상담을 통해 나는 결국 기수이동이 확정됐고 다음 기수에 참가하기까지 남은 시간동안 해야할 소정의 과제를 받았다.

🔎 내가 가졌던 문제점들, 부족했던 점

1) 부트캠프 과정에 임하는 자세가 부족했다.

6개월이란 시간은 어떻게 보면 길고 어떻게 보면 짧은 시간이다. 하지만 이것은 단순히 '시간' 이라는 관점에서의 이야기다. 실무에 사용할 코딩교육을 6개월 안에 배운다는 것은 매우 짧은 시간이며 힘든 과정이고 정규 학습 시간 이후 나만의 시간이 매우 부족할 만큼의 철저한 시간관리를 요한다. 나는 이런 부트캠프 과정에 안일하게 대처했고 결국 처절한 실패를 맛 보게 됐다.

2) 생각하는 능력을 기르지 않았다.

코딩은 "내가 상상한 것을 구현하는 것" 이라는 사실을 간과한 채 교육에 임했다. 상상한 것을 구현하는것은 이 시스템이 어떤 구조와 방식을 통해 이루어져있고 돌아가는지를 알아야 가능하다. 하지만 나는 어느 순간 이 교육을 진행하면서 이 과정을 "단순한 문제 풀이" 로 인식했고 매 문제를 풀며 코드를 작성할 때 마다 그 구조에 대해 생각하지 않고 문제를 해결 할 수 있는 방법만을 생각했다. 이렇게 학습을 진행하다보니 나중의 나는 for 문이 단순히 이 코드를 반복해준다는 것만 머릿 속에 남았고 정확히 어떤 원리를 통해 이 코드를 반복하게 해주는지에 대해서는 전혀 무지한 상태가 됐다.

3) 시도하는 연습이 부족했다.

코드를 작성하다보면 나는 분명히 작동 될 것이라고 생각했지만 예상과는 다르게 테스트가 실패하는 경우도 있고 오히려 안 될 거라고 생각했던 코드가 작동 될 때도 있다. 이러한 과정을 통해 왜 그 코드는 작동이 됐고 그 전에는 되지 않았는지 그 구조와 원리에 대해 좀 더 깊이 알게 된다. 이것이 분명 코드스테이츠가 채택한 "자기주도적 학습" 의 이유일 것이다. 하지만 나는 이런 시도하려는 시도조차 하지 않을 때가 많았고 그 전에도 자주 언급했듯이 단순히 정답만을 갈구했다. 코딩에는 정답이 없다라는 사실을 너무 늦게 깨우치지 않았나 싶다. 숫자 2를 만드는 식은 1+1 뿐만 아니라 3-1, 2*1 , 4/2 등 다양한 방법이 있지만 나는 숫자 2를 만들기 위해 1+1 하나의 방식만을 시도했고 이는 다른 시도를 두려워하게 되는 나를 만들었다.

📕 같은 실수를 반복하지 않기 위해 지켜야 할 6가지

1) 정규 학습 시간 이후의 철저한 시간 관리 및 일정한 수면 패턴 지키기

2) 충분한 고민과 시도 없이 레퍼런스 코드나 남의 코드를 참조하는 행위는 절대 금물

3) 새로운 개념을 배울 때 아래 3가지를 정확히 짚고 넘어가기

1. 이 개념을 배우는 이유에 대해 생각한다.

2. 이 개념이 어떤 원리로 작동되는지 생각한다.

3. 이 개념을 실제로 구현했을 때 어떤 역할을 하는지 생각한다.

4) 시도를 두려워 하지 않고 다양한 방법을 사용하기

5) 질문 하는 연습, 헬프데스크 적극 활용하기 (단, 먼저 충분히 고민을 해야하고 질문 할 때는 내가 어떤 방식을 택했는데 어떻게 안됐는지 스스로 정확히 알고 질문해야함)

❗ 6) 쉽게 포기해버리는 습관 버리기

💻 Overall

전체적으로 스스로에게 많이 아쉬운 한 달이었지만 만약 시간을 되돌린다 해도 결과는 똑같을 것이라 생각된다. 그렇기에 나는 지금 아쉬운 마음 보다는 감사한 마음이 더 크다. 이번 PRE COURSE 를 통해 내가 갖고 있는 문제점들이 뭔지 스스로 되돌아 보는 시간을 가지게 됐고 이를 보완하여 다음 PRE COURSE 에 단단히 대비하는 것이 이 코드스테이츠 교육 뿐만 아니라 내 인생에서의 전반적인 학습 패턴을 더 촘촘히 보완해 줄 것이라 생각되기 때문이다. PRE COURSE 의 개념조차 제대로 모른채 IMMERSIVE COURSE 에 가는건 내 스스로에게 너무 무책임한 행동이라는 생각이 강하게 들었기 때문에 과감하게 기수 이동을 선택했고, 이 선택은 앞으로의 학습과 더불어 실무에서까지 좋은 영향을 미치리라 믿어 의심치 않는다.

profile
두 줄 소개

0개의 댓글