오늘까지 네이버 부스트캠프 1차, 2차 코딩테스트가 모두 마무리 되었습니다.
보고나서 정말 느낀 것이 많아 하나라도 잊기 전에 기록해두어야겠다 생각하여 바로 컴퓨터 앞에 앉게 되었네요. 문제에 대해 이야기할 수 있다면 글을 몇개도 더 쓸 수 있을 것 같지만 네이버와의 보안약속을 지키기 위해 느낀 점 위주로 정리해보겠습니다. 😁
코테를 준비하기 위하여 알고리즘 문제를 풀다보면 실력이 오르는 것은 당연합니다. 하지만 여러 문제풀이 플랫폼에서 동기부여를 위해 만들어 놓은 랭크 혹은 레벨 시스템을 보다 보면 나도 모르게
'난 이정도 레벨의 실력은 가지고 있는 사람이야'
라는 자만에 빠지기 쉬운 것 같습니다. 부끄럽지만 저 또한 그랬었고 이번 코테를 다른 사람들과 함께 준비하며 위와 같은 생각이 얼마나 저의 성장을 방해했는지 느낄 수 있었습니다. 분명 문제를 풀어본 경험이 많을수록 조금 더 쉽게 접근할 수는 있지만, 해당 접근 방법이 올바른 방법인지는 또 다른 문제입니다. 또한 비슷한 사고과정을 계속 쓰게 되어 점점 닫혀가는 생각을 하게 됩니다. 어떠한 위치에 있더라도 진심으로 배우고자 하는 마음으로 접근한다면 성장도 자연스럽게 뒤따라 올것이라 느끼게 되었습니다.
시험을 보며 이전에 몇번 경험해 보지 못했던 꽤 긴 코드를 작성하게 되었습니다. 그러면서 조금 충격적인 경험을 하게 되었습니다. 코드를 작성하던 도중 제가 작성한 사용자 정의 함수를 찾는데 마치 다른 사람이 작성한 코드에서 찾는다는 느낌이 들었습니다. 그리고 바로 든 생각..
'아.. 내가 현재 짠 코드는 가독성이 정말 좋지 못한 코드구나. 내가 짜면서도 못알아보는 코드를 다른 사람이 봐서는 어떻게 알까?'
정말 뒤통수를 한대 세게 맞은 듯 얼얼했습니다. 그리고 많은 분들이 얘기하는 클린코드의 필요성을 온몸으로 체감했죠. 아직 해본 적은 없지만 실무는 분명 상상할 수 없는 분량의 코드를 마주하게 될텐데 그게 이런식이라면..... 정말 끔찍하겠구나 라는 것을 느꼈습니다.
이전에는 알고리즘 문제를 풀 때
'실무도 아니고 그냥 주어진 조건 안에서 답만 맞으면 되지 않을까?'
라고 생각을 했었지만 지금 그 생각은 휴지통 안에 있습니다. 클린코드는 습관이고 어떤 코딩을 하든 그러한 습관을 들여야 된다고 생각했습니다.
'나 이거 충분히 할 수 있는 거야!'
굉장히 자신감 있어보이고 좋은 느낌이 나지 않나요? 할 수 있음을 실제로 보여준다면 더욱더 신뢰가 가겠구요!
하지만 이번 코테를 겪고 '충분히 할 수 있다'에 만족하면 안된다는 사실을 깨달았습니다.
이에 관해 비유를 하나 들어보겠습니다.
A→B→C→D→E
위와 같이 5개의 순차적인 sub task로 구성된 하나의 일이 있습니다.
각각의 sub task에 대하여 95%의 놀라운 성공률을 보여주는 철수는 자신이 '충분히 할 수 있다'라며 자신에게 이 일을 맡길 것을 주장합니다. 과연 철수는 이 일 또한 95%의 놀라운 성공률을 보여주어 고객을 안심시켜줄 수 있을까요?
간단한 확률 문제죠. 답은 '아니요' 입니다. 일을 성공시키려면 모든 5개의 sub task를 성공해야 하는데 그럴 확률은 (0.95)^5 ≒ 0.77, 즉 77% 뿐이 되지 않습니다. 95%에서 77%로 떨어진 것을 보면 신뢰도가 확 떨어지지 않나요?! 만약 sub task가 10개라면 약 60%, 20개라면 35%로 sub task의 개수가 늘어남에 따라 확확 떨어지게 될 것입니다.
코드를 작성하는 과정도 같다고 생각합니다. 제가 충분히 구현 할 수 있다고 생각한 기능들이었지만 여러개를 작성하고 그 기능들을 동시에 사용하는 프로그램을 작성하는 순간 항상 에러가 발생했습니다. 뿐만 아니라 각각의 하나하나를 구현하기 위해 조금씩 굴렸던 머리가 마지막에는 과부하가 온 듯 생각의 진전이 힘들었습니다. 이는 각각의 기능들을 구현하는 것이 숙련되지 않아 생기는 피로도가 누적되어서 온 결과였겠죠.
아무리 간단해보이는 것이라도 내가 그것을 손쉽게 할 수 있냐 없냐는 결국 큰 프로젝트의 완성도와 정확성에 있어서 굉장히 중요한 점이라는 것을 느끼게 되었습니다.
1차와 2차 코테를 준비하는 기간동안 다른 분이 만드신 스터디에 합류해 같이 공부를 했습니다. 많은 분들이 꾸준히 공부하는 모습을 화면공유를 통해 보면서 정말 큰 자극을 받았고 저 또한 끊임없이 공부에 몰두할 수 있는 원동력이 되었습니다. 뿐만 아니라 문제가 잘 해결되지 않을 때 서로 코드리뷰를 하며 이끌어주는 과정과 공부를 하기 싫어도 같이 해보자는 말 한마디에 공부를 시작하는 등 작은 행동이지만 엄청난 긍정적인 효과를 가져오는 경험을 해보았습니다. 결국 하루하루 공부시간을 늘려가던 저는 마지막 이틀동안 일어나자마자부터 자기직전까지 코딩을 해본 경험을 가질 수 있게 되었습니다.
몇몇 분들께서 정말 감사하게도 저를 보고 많이 자극 받아 공부를 열심히 했다라는 말씀을 해주셨습니다. 그 말은 다시 저에게도 큰 원동력으로 돌아왔습니다.
단순히 한 자리에서 각자의 공부를 하는 것처럼 보여도 그 안에서는 분명 수많은 건설적인 교류가 일어난다는 것을 느꼈고 앞으로 이러한 곳을 더욱더 적극적으로 찾아 나서게 될 것 입니다.
저는 이번에 생각했던 것보다 문제를 많이 풀지 못하였습니다. 시스템의 숙지가 미숙해 실수를 한 부분도 있구요. 만약 부스트캠프에 붙게 된다면 정말 감사한 마음으로 최선을 다해 임할 것이지만, 떨어지더라도 제가 이 과정을 통해 많은 것을 배운 것은 확실합니다. 이를 잊지 않고 계속 배워나가며 성장한다면 부스트캠프 안에서 있는 것보단 느리겠지만 꾸준히 높은 곳을 향해 나아가고 있지 않을까요?😆
생각보다 많이 길어졌지만 오늘 제가 느낀 느낌을 생생하게 남길 수 있어서 매우 뜻깊었습니다. 앞으로 꾸준히 보며 단지 생각 뿐만아니라 행동으로 실천할 수 있도록 노력해보겠습니다!🔥🔥
(시험보신분들 모두 수고 많으셨습니다!!)