다음은 우아한테크코스를 시작한지 얼마 되지 않은 시점에 쓴 글 입니다. 진솔한 마음으로 써서 올려봅니다 😶


💭 국제학교 나온 문과생이 개발자를 꿈꾸기까지

“너 컴퓨터 전공이니까 와서 이것 좀 고쳐봐”

컴퓨터 전공으로 전과하고 가장 많은 들은 말이다. 사실 나도 흔히 컴퓨터 공학을 전공하면 컴퓨터를 잘 고칠(?) 거로 생각하는 사람들 중 하나였다. 코딩이 무엇인지도 모르는 사람 말이다. 그리고 대학교 1학년 때 처음 코딩을 접했다. 교양 필수였던 C 프로그래밍 수업을 통해서 말이다. 국제 중고등학교를 나와서 국제 정치학 전공을 선택한 나에게 그렇게 우연히 코딩의 기회가 닿았다.

이 친구 진짜 솔직하구나 코딩의 첫인상이다. 누군가 나에게 어떤 종류의 사람들을 좋아하느냐고 물어본다면 단번에 솔직한 사람이라고 대답할 것이다. 눈속임으로 알맹이가 없는 것을 있는 것처럼 꾸미는 것보다 담백하게 있으면 있거나 없으면 없다고 말하는 사람이나 글을 좋아한다. 그런 의미에서 코드는 정말 너무나도 정직하다. 있어야 할 것만 딱 있어야지 가장 잘 돌아간다. 잘못 짰다면 실행되지 않는다. 괜히 있어보이려고 이것저것 추가하면 작동 시간만 늘어날 뿐 아무런 이득을 주지 않는다. 코드는 거짓말을 하지 않는다.

코딩의 두 번째 매력은 기승전결과 논리적 흐름이 있는 글이라는 것이다. 우선 본캐는 문과생이기 때문에 글을 좋아한다. 좋은 글은 처음, 중간, 끝이 있고 앞 문장과 뒷 문장이 논리적으로 연결이 되어야 한다. 한마디로 표현하면 일단 말이 되어야 한다. 무언가랑 많이 닮지 않았나? 코드는 시작 시점과 중간 처리 과정 마무리(출력 혹은 저장) 과정이 있다. 그리고 그사이를 메꾸는 코드 한줄 한줄은 논리적인 흐름에 따라서 앞 과정과 그다음 과정이 이어져야 한다.

‘나랑 잘 맞네?’ 문과생이 개발자를 꿈꾸게 된 매우 단순한 이유다.


🐾 첫 발자국 자취

‘우아한테크코스’에 입문하기 위한 첫 발걸음은 프리코스다. 포비의 말을 인용하자면 우테코도 나를 탐색하고 나도 우테코를 탐색하는 시간. 탐색을 정말 열심히 했더랬다. Notion에 미션내용과 요구사항 분석한 것, 매일 해야 할 Todo와 회고를 정리했다. 우테코 생활을 한 달 넘게 한 이 시점에서 글을 쓰기 위해서 다시 한번 들여다보았다.

첫 발을 잘 내딪자고 다짐하며 고른 발자국 이모지

프리코스 첫 번째 미션을 시작했을 때 작성했던 나만의 규칙 ver1.이 마지막 미션 나만의 규칙 ver3.가 되기까지 짧다면 짧은 3주 동안 늘어난 규칙만큼 성장했다. 중간에 너무 좌절하지 않으려고 애를 써야 했던 시간도 있었지만 너무 재미있어서 반드시 합격하고 싶다는 간절함도 커졌다. 그리고 노력하고 기다린 끝에 루터회관 14층에 입성!

프리코스를 진행하며 덧붙인 나만의 규칙 목록 변천사


☘️ 일단 루터회관 14층이 마음에 든 이유

첫 번째는 초록색이다. 한달 동안 온라인으로 진행하다가 3월 초 처음 교육장에 들어왔을 때 초록초록하고 싱그러운 분위기가 나를 맞았다. 눈이 좋아지겠구나 싶었다. 포근한 소파랑 빈백, 위트있는 문구들도 마음에 들었다. 본래 도서관같이 정숙하는 분위기보다 일상 소음이 있는 카페에서 더 집중을 잘하는 스타일이다. 역시 나랑 잘 맞네 ㅎㅎ

두 번째는 같은 곳을 향해 가는 실력있는 크루들이다. 쇼파에 앉아서 무언가를 하고 있으면 지나가던 크루들이 와서 뭐하냐고 물어본다. 쓸모 있는 얘기도 하고 쓸모 없는 얘기도 하는 데 둘 다 좋다. 모르는 것들을 물어보면 자기가 공부한 것을 설명한다. 모르면 같이 찾아본다. 그리고 지루하면 딴짓을 하면서 조금 쉰다. 프리코스를 하면서 가장 힘들었던 것은 ‘내가 지금 잘하고 있나?’ 확신할 수 없었던 것이다. 잘못된 방향으로 열심히 달리고 있었던 것이면 어쩌지 하는 고민. 그러나 우테코에서는 그것을 걱정할 필요가 없다. 루터회관 14층에는 어디를 가도 물어볼 크루와 코치가 있다는 것이 가장 마음에 든다.


👾 좋은(?) 개발자가 되고 싶은데..

그럼 좋은 개발자가 뭐지? 지금 시점에서 되돌아보니, 우테코 레벨1 동안은 좋은 개발자에 대한 정의를 내리는 기간이라고 할 수 있을 것 같다. 정리하면 다음 두 가지를 갖춘 개발자다.

  1. 같이 일하고 싶은 개발자
  2. 좋은 코드를 작성하는 개발자

먼저 내 동료에게 좋은 개발자이다. 페어 프로그래밍을 하면서 내가 좋은 페어였을까 돌아보면서 두 가지 질문을 했다. 페어에게 좋은 피드백을 했는지, 그리고 페어의 피드백을 잘 받아들였는지. 두 가지가 적당히 잘 어우러져야 좋은 페어다. 흔히 개발자는 혼자 컴퓨터랑만 이야기하는 이미지가 강한데 사실 그렇지 않다. 내가 짜는 코드도 페어가 이해하기 쉽도록 배려심이 가득한 코드여야 한다.

두 번째는 좋은 코드를 작성하는 개발자다. 이건 좀 어렵다. 배운 키워드로 말하자면 TDD, 객체지향, 코드 컨벤션 등을 잘 적용해야 한다. 처음에는 내가 보기 좋은 코드를 짠다. 그다음에는 페어가 보기 좋은 코드. 그리고 그다음에는 리뷰어가 보기에 좋은 코드. 이 정도 오면 충돌 지점이 생긴다. 각자 보기에 좋은 코드가 다른 형태일 때가 오는 것이다. 그럼.. 포비가 보기에 좋은 코드?


🤔 그래서 답을 좀 찾았어?

결론부터 말하자면 ‘아니요’ 이다. 우테코 레벨1을 지나면서 많은 것을 듣고 배웠지만 지금은 답을 정의할 때가 아니라 질문을 던질 때다. 그냥 질문이 아니라 좋은 질문을. 좋은 코드가 무엇일지 끊임없이 고민하면서 이런 코드 저런 코드를 탐색해야한다. 좋은 개발자가 무엇일지, 좋은 기술이 무엇일지, 정말 성장하고 있는지 스스로 물어봐야한다. 생각에 생각을 더하고 시야를 넓히는 질문을 던져야할 때다.

그럴싸한 답은 아직 없지만.. 우선은 정직한 코드가 내가 애쓴 시간을 그대로 보여줄 때까지 열심히 해보는 수밖에!