벌써 한 달 동안의 챌린지 과정이 끝났다!
내가 경험한 챌린지 과정은,
CS 지식을 학습하면서 어떻게 학습하고 성장할 것인지 많은 고민을 하도록 설계된 프로그램이었다.
매일 주어지는 미션을 온 몸으로 부딪혀가면서 스스로 학습하고 얻어가야 했다.
심지어 어떤 내용을 얼마나 얻어갈 것인지도 주도적으로 고민해야 했다.
이러한 과정에서 내가 얻었던 인사이트 몇 가지를 남겨보자면,
나는 도전적이기보다는 익숙하고 안정적인 방법을 선호하는 성향인데,
이러한 성향 때문인지 매번 비슷한 방식을 선택하는 스스로를 발견할 수 있었다.
챌린지 과정은 말 그대로 도전인 만큼,
실패하더라도 내가 해보지 않은 방법을 여러 가지 시도해보면서 나에게 맞는 방법을 찾아가려고 애썼다.
동일한 미션을 수행해도 피어분들의 결과를 보면 서로 집중한 문제, 해결한 방식이 달라서
작은 거라도 하나씩 배우고 다음 미션에서는 이전에 느꼈던 문제를 조금씩 다른 방식으로 해결해가려고 노력했다.
챌린지의 미션은 나 뿐만 아니라 모두에게 어려운 내용이었을 것이다.
다양한 배경에 상관없이 모두가 어렵게 느낄 주제를 선택하는 것 같기도 하다. 🥹
그 중에서도 가장 어려웠던 부분은 시간을 관리하고 언제 무엇을 할지 결정하는 것이었다.
피어 피드백 시간에 이런 내용도 같이 많이 이야기했는데,
내가 내린 결론은 결국 주도적으로 어떤 내용에 집중할 것인지 선택해야만 한다는 것이다.
우리가 사용할 수 있는 시간은 양이 정해져있기 때문에,
학습에 집중할지, 특정 기능 구현에 집중할지, 테스트에 집중할지 등
스스로의 학습에 도움이 되기 위한 방법을 직접 고민하고 선택해야만 했다.
위 내용과 이어지는 이야기인데,
한 피어 피드백 시간에 다른 피어분이 내가 선택한 자료구조에 대해서 왜 선택했는지 이유를 물어보신 적이 있었다.
단순한 질문이었지만, 내가 지금까지 특별한 근거 없이 개발을 해왔다는 것을 깨닫게 되면서
챌린지 기간 중 가장 기억에 남는 순간 중 하나로 남게 되었다.
단순히 자료구조뿐만 아니라, 기능을 구현한 방식, 학습을 선택한 이유 등 모든 것에 스스로 대답할 수 있는 근거가 필요하다는 것을 알게 되었다.
챌린지 미션을 하다보면 이전에 작성했던 내용을 개선하는 경우가 있는데,
분명 내가 짰던 코드임에도 불구하고 마음에 들지 않거나 이해하기 어려운 코드로 작성된 경우가 많았다.
이상한데 좀 고쳐볼까? 하는 가벼운 마음으로 개선을 시작하지만,
하다보면 생각보다 훨씬 오래 걸리기도 하고 다른게 이상해지거나 본래의 목적과 다른 내용을 고치고 있다던가 하는 예상치 못한 일들이 자주 발생했다.
그러다보면.. 그냥 갈아엎는 게 더 낫겠다는 생각도 자주 들었다. 😂
하지만 개발에서 새로운 기능을 추가한다거나, 버그를 수정하기 위해서는 기존의 코드를 바꿔야하는 작업이 필수적이다.
개선을 한다는 것은 현재의 설계와 문제를 정확하게 파악하고 있어야 가능한 것이라고 생각한다.
그렇기에 실력이 있는 개발자란 곧 개선을 잘하는 개발자라는 것을 깨닫게 되었다.
챌린지 과정을 통해 나는 어떤 사람인지, 어떻게 성장하는 것이 좋은지에 대해 깊이 고민해볼 수 있었다.
계속해서 넘어지고 다시 일어나는 과정을 통해 내가 힘들고 어려운 상황을 헤쳐나가는 방식에 대해 조금이나마 알게 되어서 값진 경험이었다고 생각한다.