정말 유명하고 개발자 지망생이라면 누구나 들어가고 싶어 하는 곳 "우아한 테크코스"에 지원하게 됐다.
지원을 위해 자소서의 각 항목들을 적는 것부터 굉장히 많은 시간과 노력을 투자했던 것 같다. 특히 몰입경험질문 항목을 위해 어렸을 때 현재까지 해왔던 일들에 대해 정리해보고 관련 자료들을 찾아보았고 내가 언제부터 SW에 관심을 갖게 되었는지에 대해서도 정리하며 학교 진로취업센터에도 자소서 관련 상담을 신청하여 도움을 받았다. 그렇게 해서 마감이 월요일 오전 10시 였는데 밤을 새고 1분 남기고 최종적으로 제출한 것으로 기억된다.
처음 미션을 받고 슬랙 채널에 초대가 되었는데 다들 으쌰으쌰하는 분위기가 정말 좋았고 신났다. 또한 열심히 해야겠다는 동기부여 그리고 각오를 다질 수 있었다. 슬랙 및 오픈채팅방이 폐쇄되기 전에 문제가 생각보다 어렵다는 것을 듣게 되어서 자바 프로그래밍을 처음하는 입장에서 많은 걱정이 되었다.
하지만 학부시절 어떤 개발 언어를 사용하더라도 프로그램을 구현해낼 수 있어야 한다는 교수님의 말씀이 떠올랐다. 바로 집 근처 도서관에 가서 자바 교재를 빌려왔고 미션을 시작할 준비를 했다.
개발 환경 세팅을 하는데 수많은 에러들이 발생했고 한글이 깨지고 하는 문제들이 발생하여 하루 정도는 개발 환경 세팅을 이틀에 걸쳐서 했던 것 같다.
정말 좋았던 것은 git clone folk 등에 대해서 직접 해보면서 익힐 수 있었던 것이었다. 모두 정말 익숙하게 들오왔던 단어들이지만 실제로 과제 및 프로젝트를 진행하며 사용해볼 일이 거의 없었기 때문에 관련 내용을 찾아봐도 잘 와닿지 않고 금방 잊어버리게 되었었는데 이번 미션을 계기로 확실히 머릿속에 남을 수 있게 된 것 같다.
그렇게 개발 환경 세팅을 완료하고서 문제들을 보았는데 큰 문제 하나가 주어진 것이 아닌 작은 문제 7개가 주어지게 되었다. 첫 문제를 보고서 생각보다 할만하겠다는 생각을 가졌는데 이는 온보딩 과정이고 개발환경 세팅 및 git 사용법에 대해 익히는 과정도 있기 때문이라고 설명해주셨다.
자바 문법을 아예 몰랐기 때문에 먼저 파이썬으로 pseudo 코드를 작성해 보았다. pseudo 코드에 문제가 있었는지는 확인해보진 않았지만 오랜 시간이 걸리지 않았던 것 같다. 어차피 프로그램은 자바로 구현해야 하므로 대략적인 흐름을 정리한다고 생각했고 바로 이 부분을 자바언어로 어떻게 바꿀 수 있을까를 생각하며 파이썬 psedocode를 자바언어로 번역해 가는 방식으로 프로그램을 구현했던 것 같다.
하지만 문제를 하나씩 해결해가며 자바 문법을 조금씩 알아가게 되었고 조금씩 자바로 바로 구현해보는 식으로 방식을 바꿔 나갔다.
최종적으로 모든 프로그램을 구현하였고 테스트도 모두 통과를 하였다.
이제 미션 수행 소감을 작성하고 제출 홈페이지에서 테스트를 하는 과정이 남았는데 미션 수행 소감을 너무 두서 없이 적은게 아닌가 하는 아쉬움이 졷금 남았다. 또한 기능별로 커밋을 하지 못해서 다시 코드들을 지웠다가 다시 하나씩 추가하는 방식으로 커밋을 한 점이 아쉬웠고 다음 부터는 요구사항을 철저하게 읽어봐야 겠다고 생각했다. 테스트는 모두 완료되기 까지 조금 시간이 걸렸는데 12개의 테스트 케이스가 모두 통과한 것을 보았을 때 정말 많이 뿌듯해서 바로 사진을 찍었다.
이번 미션을 진행하면서 많은 참가자들이 자신들이 겪었던 문제에 대한 해결책들을 공유하며 자신이 겪었던 문제를 똑같이 겪고 있을 참가자 분들에게 도움을 주는 것으보고 것을 보면서 이러한 문화가 퍼지는 것, 즉 지식의 공유가 나한테도 긍정적인 결과로 돌아온다는 것을 생각하게 되었다. 그래서 필자도 이러한 문화에 익숙해지고 공유해야겠다는 생각을 했다.
또한 단순히 지식 전달 교육이 아닌 미션을 수행하며 생기는 문제들을 스스로 해결해나가는 자기주도적 학습의 장점을 정말 잘 느낄 수 있었다. 강의 전달이 주된 과정이었다면 중간에 집중이 흐트러질 수도 있고 내것으로 온전히 만드는 과정 또한 필요할 텐데, 자기주도적 학습을 하며 주어진 기간 내에 미션을 수행하기 위해 많은 자료들을 스스로 찾아보고 막히는 부분을 해결해나가면서 정말 문제를 푸는 순간의 시간 동안은 깊게 몰입할 수 있었고 성장했다는 느낌을 받았기 때문이다.
어려웠던 점을 다시 정리해보면 코드를 구현하면서 Python으로 구현하면 길지 않은 시간 내에 해결할 수 있을 것 같이 느껴지는 문제들에 대해서도 각 언어가 지원하는 자료구조의 메소드들의 기능들의 차이로 인해 이것들을 파악하고 적절한 자료구조를 사용해야 했기에 굉장히 많은 시간이 걸렸다. 게다가 처음하는 언어로 코드의 효율성 및 가독성 등을 고려하면서 문제를 풀다보니 시간이 더 많이 걸렸던 것 같다. 며칠동안 새벽까지 문제가 해결될 때까지 계속 코드를 작성했기 때문에 끝낸 시점에서 너무 힘들었지만 확실하게 느낀 것은 자바로도 알고리즘 문제를 풀 수 있는 정도로 조금은 프로그래밍에 익숙해졌다는 것을 느꼈다.
온전히 우아한테크코스 프리코스에만 시간을 투자할 수 없는 상황에서 다음 미션을 전부 해결할 수 있을 지는 잘 모르겠지만 그래도 끝까지 손을 놓지 않고 4주 동안 주어진 상황에서 최선을 다한다면 결과의 상관없이 필자가 많이 성장해있을 것이라는 것을 느낄 수 있는 시간이었다.
진행하며 필기 및 정리했던 노트 내용은 아래 링크의 내용과 같다.
https://lake-burst-73c.notion.site/1-a13bccd1813b43b1b7472e78b5de41bc
이러한 프리코스 과정에 참가자 전원이 참여할 수 있는 기회를 주신 우아한테크코스 관계자분들께 감사의 말씀을 드리고 싶다.