코테를 준비하자

최근 코딩테스트를 준비해야겠다고 결심했다. 전역을 한 이후 앞으로 취업 준비를 하게 되거나 대외활동을 지원하는데 있어서 필수적인 요소라고 생각하기 때문이다. 입대 이전에도 조금씩 공부하려고 했는데 조금씩 해이해지다가 결국에는 안하게 되었다. 이번에는 마음을 붙잡고 열심히 해보려고 한다.

어떤 언어가 적합할까?

C++ 굳이 배워야 하나

코딩테스트에 C++이 성능 측면에서 우월하다는 사실은 자명한 사실이다. 하지만 파이썬, 자바를 주로 사용하는 웹개발자로서 C++을 코딩테스트 언어로 사용하는 것은 적절하지 않다고 생각했다. 무엇때문에 굳이 사용하지 않는 언어를 추가적인 노력을 들여 배워야 할까? 아직까지는 C++을 배워야 하는 당위성을 느끼지 못했다.

자바 vs 파이썬

결국 C++을 제쳐두고 자바와 파이썬 둘 사이에서 많은 고민을 했던 것 같다. 파이썬은 그리 효율성이 좋은 언어는 아니므로, 코드의 속도 측면에서는 자바가 우위를 가진다. 하지만 그에 못지 않게 파이썬은 강력한 내장 라이브러리를 통해 복잡한 알고리즘도 간단하게 짤 수 있다는 장점이 있었다.

자바로 결정한 이유?

굳이 따지자면 자바를 더 공부하고 싶었다. 최근 들어 클린코드리팩터링과 같은 책을 읽으면서 자바가 객체지향을 잘 표현한 언어라고 느껴졌고, 다시 한 번 자바에 매료되었다. 그리고 나는 현재보다 고수준의 애플리케이션을 개발할 수 있는 서버 개발자로 거듭나고 싶다는 목표가 생겼다.

이를 위해서는 파이썬보다 자바를 공부하는 것으로 얻을 수 있는 것들이 많다고 판단했다. 자바는 파이썬보다 다형성과 같은 객체지향의 특성을 잘 구현하고 있는 언어이다. 자바를 택하게 되면 파이썬으로 짤 때보다는 다소 코딩테스트에 제출할 코드의 양이 길어지기는 하겠지만, 그 만큼 배울 수 있는 것도 많을 것이라 판단하였다.

이제 남은 건 실천뿐

코테를 하기로 결심했고, 언어 또한 결정하였다. 이제 실천하는 것만 남았다. 이 글을 작성하면서 문득 코테를 잘 준비하는 방법은 꾸준한 문제풀이라는 생각이 들었다.

군대에서 시간이 날 때마다 운동을 하고 있는데, 최근들어 입대 전에는 못느꼈던 근성장을 경험하고 있다. 운동을 꾸준히 하기 이전에는 자극이 느껴지지도, 성장이 느껴지지도 않던 것이 지금은 몸의 변화가 조금씩 보이고 있다. 이러한 눈에 띄는 작은 변화는 나로 하여금 계속해서 운동을 더 할 수 있게 한다.

코테도 이와 마찬가지라고 생각한다. 처음에 시작할 때는 스스로 성장하고 있음을 느끼기 어렵고, 정답을 맞추지 못해 좌절감을 느끼기도 할 것이다. 하지만 꾸준히 코딩테스트 문제를 풀다보면 노력의 결실을 맛볼 날이 분명 올 것이다.