코드스쿼드 CS10 회고

코드스쿼드를 시작하게 된 계기

작년 11월에 코드스쿼드 코코아 과정을 하면서 정말 많은 것을 배웠고, ‘함께 자라기'의 효용성을 몸소 깨달았던 터라 이번 마스터즈 과정은 의심의 여지 없이 지원하게 되었다. 많은 대학 동기들과 후배들이 이미 취업을 해서 나만 남은 상황이 되었을 때, 처음엔 조급했다. 그래서 이것저것 닥치는 대로 원서를 내보고 코딩테스트를 보고, 면접을 보았다. 하지만 면접에서 깨달았던 것은 ‘나는 뭐 하나라도 제대로 아는 것은 없구나'하는 것이었다.

나는 다시금 진지하게 ‘내가 진정으로 평생 하고자 하는 일이 무엇인가?' 끊임없이 되뇌었다. 내 인생은 게임 캐릭터처럼 능력치를 초기화하거나 직업을 다시 선택하는 것이 거의 불가능하거나 그렇게 쉬운 일이 아니다. 그것을 이미 선배들과 취업한 친구들의 이야기를 통해 아주 잘 알고 있었기 때문에 좀 더 신중했다. 집중력이 워낙 좋지 않아서 끈질기게 앉아서 무언가를 해본 경험이 많이는 없지만, 내가 가장 행복했던 기억이 무엇인가(노는 것은 제외하고..)를 떠올려보니 명확해졌다. ‘나에게는 팀원들과 프로젝트를 기획하고, 개발하고, 완성하는 것이 즐거운 일이다.'

그렇게 결심을 하고 스프링 공부를 다급하게 했다. 문제는 이때 자바에 대한 기초가 거의 없을 때였다. 사실, 이때는 ‘반복문과 조건문, 그리고 클래스 정도만 알면 되는 거 아닌가?'하고 생각했을 때였다. 일단 @autowired 이런 키워드가 나올 때마다 당황스러웠다. 어노테이션이라는 게 있구나.. 일단 패스. 그런데 또 implements 뒤에 이것저것 붙어있고, 또 C++만을 사용하다가 List 등의 Collections자료구조를 사용하자니 너무 생소했다. 스프링 코드를 다급하게 따라쳤는데, 기억나는 것이 거의 없었다. 도저히 안 되겠다고 생각하고 다시 처음부터 차근차근 자바 공부를 시작했다. 그리고 많은 부트캠프 프로그램을 찾아보았고, 그 중 코드스쿼드 에 지원해야겠다고 결심했다.

CS10 1주 차 - 점화

첫 주에는 가장 기억에 남는 사람을 꼽으라면 단언컨대 Pyro이다. 나는 아직 장작불이 붙지 않았는데 Pyro는 활활 타는 장작처럼 보였다. 의욕이 매우 왕성했다. 실무경험이 없는 나로서는 정말 유익한 정보와 재미있는 이야기들을 들은 것 같아서 좋았다. Honux가 알고 있는 Git과 내가 알고 있는 Git의 개념(톱니바퀴)가 다르듯이, Pyro의 Git도 나와 많이 달랐다.

CS10 2주 차 - 시차 적응

시작부터 다들 너무 열심히 하는 모습에 ‘나도 열심히 해야지' 하면서도 잠을 줄이지는 못했다. 그리고 6시가 끝나면 나도 모르게 보상심리가 작용해서 놀기 바빴다. 그중에서도 가장 큰 문제는 새벽까지 잠을 잘 못 자던 내가 코코아 과정으로 겨우 적응했는데, 12월에 다시 리셋되어서 또 시차 적응을 해야 했다는 것이다. 다들 3~4시간씩 자면서도 어떻게 공부를 하는 것일까? 나는 그냥 잠만보인 것이 분명하다.

CS10 3주 차 - 집단 지성

역사상 가장 많은 인원이 참가한 한 주였다. 심지어 다들 실력이 워낙 좋아서 매우 주눅이 들었다. 하지만 Dunning-Kruger effect, 무식하면 용감하다고 했던가, 나는 토론에 적극적으로 참여하려고 노력했다. 그러면서 대화의 기술도 같이 키워지는 것 같았다. 한 주제에 대해 다 함께 토론하면서 많은 것을 얻었다. 이때 Cooper(사다리 장인)가 주도적으로 같이 소통하도록 유도해 주어서 고마웠다. 만약 상대방이 틀린 부분이 있다면 상대방의 기분을 상하게 하지 않으면서 정확한 지식을 공유하였으며, 많은 정보를 얻게 되었다. 적극적으로 참여할수록 기억에 오래 남는 것 같아서, 열심히 말하고 참여하려고 애썼다. 사실, 잘 알지도 못하면서. 🥲

CS10 4주 차 - 비동기(Async)

이쯤 되었을 때때 난이도는 극상에 다다랐고, 나는 점점 우주 저편으로 날아가고 있었다. 각종 과제와 키워드는 쏟아지고, 실력 있는 사람들은 칼같이 제출하고는 리팩토링까지 하고 있었다. 반면, 나는 과제 수행하기는커녕 개념정리하는 데만 해도 급급했다. 그야말로 비동기(Asynchronous)다. 정확히는 Async-Blocking이랄까.. 다음 과제가 나올 때까지 오매불망 기다려야 했으니.

CS10 5주차 - 삽질도 재능

개발자의 덕목 중에 가장 중요한 것을 꼽으라면, ‘삽질(될 때까지 해보는 정신)'이라고들 한다. 그런데 정말 그것조차도 말이 쉽지, 나 같은 성향의 사람은 ‘완벽히 이해하지 않은 채로 일단 해보기'가 정말 잘 안된다. 그래서 특히 4주 차의 몇 가지 과제는 거의 포기 직전까지 갔다가, 둘째 날에 많은 사람들의 코드에 힘입어 겨우 제출이라도 했다.

하지만 이번 주의 과제는 비교적 내가 아는 키워드가 많아서 다행이었다. 이번 주의 팀원이 한 말 중에 가장 인상 깊었던 이야기는 Jung의 질문이었다. "각종 키워드가 막 쏟아지는데, 이것을 공부하려면 1부터 100까지 다 하나씩 공부하는 게 좋은가요? 아니면 필요할 때마다 찾아서 공부하는 게 옳은 것일까요?" 결론은 ‘정답은 없다'이겠지만, 나 같은 경우에는 후자의 능력이 필요한 상태이다. 실제로 취업을 하게 되면 비즈니스 〉〉 코딩 인 경우가 상당수이고, 그때마다 1부터 100까지 공부를 일일이 한 다음 적용할 수는 없는 노릇이니 말이다.

To Everyone

스스로 잘하는 사람들은 상관없겠지만, 본인의 실력에 대해서 자신감이 없고, 남들과 비교하며 스트레스를 받는 사람들을 위해서 몇 가지를 말해주고 싶다. 다른 사람들과 비교를 하면 끝이 없다. 우리는 매 순간 비교할 수밖에 없을 것이다. 잘하는 사람에게 적절한 자극을 얻되, 그것으로 자신을 깎아내리진 말았으면 좋겠다. 가장 중요한 것은 나의 ‘꾸준함'이다. 마스터들이 항상 하는 말이 있다. "남들과 비교하지 말고 당장 일주일 전, 한 달 전, 일 년 전의 나와 비교해보라. 그때의 나보다 지금의 내가 더 나아졌는가?" 이를 확인하기 위해서 몇 가지 체크리스트를 만들어본다면 다음과 같이 만들 수 있을 것 같다.

  • 이전에 내가 작성한 코드에 대해 개선할 점이 보이는가?
  • 이전에 이해가 안 가던 책이나 글의 내용이 지금은 좀 더 이해가 가는가?
  • ‘공부할 게 정말 많구나' 하는 것이 절실히 느껴지는가?

이 중 하나라도, 그중에서도 조금이라도 달라졌다는 게 느껴졌다면 충분히 잘하고 있다고 생각해도 되지 않을까?

TODO

  • #algorithm, #til은 따로 작성은 했지만 한번도 올리진 못했다. 이제부터라도 꾸준히 참여해보고 싶다.
  • CS10 과정 중에 수많은 키워드를 다급하게 줍줍하다가 많이 흘려버린 것 같다. 다시 하나씩 주워담는 시간이 필요하다.
  • 스프링 시작, 겨울이 끝나면 봄이 오듯이, 나에게도 스프링은 오는가.