[코팅테스트 준비] 코딩테스트 언어로 C++ 을 선택한 이유

최초로 (cho)·2023년 1월 27일
0

코딩테스트

목록 보기
1/9
post-custom-banner

1. 고민

22년 12월 까지 잔뜩 벌려놓았던, 대학원 친구와 함께 창업한 스타트업 일을 거의 마무리 하였다. 원래 계획은 8월 대학원 석사과정 졸업과 동시에 스타트업 일을 병행하면서 22년 하반기 대기업(네카라쿠배..) 코테에 지원하려고 했었다. 그러나 현실적으로 일을 하면서 준비하는 것도 쉽지 않았지만 사실 8월 졸업까지 근 1년 동안 처음 도전하는 ios, android, web 어플리케이션 과 AWS 서버를 나혼자 개발하기 위해 매일 불확실한 상태에서 밤새며 스타트업 일과 함께 대학원 정부 과제 그리고 졸업 논문 준비에 나의 모든 에너지를 다 쏟아 부었기 때문에 번아웃이 크게 왔었던 것 같다. 나의 22년 하반기는 정말 아무것도 하지 않은 것 같은데 그냥 없어져 버린것 같다.(블로그를 시작하기로 결심한 이유인 것 같기도 하다. 그렇게 대학원 의료기기 규제 수업때 들었던 "No documents No works" 를 내가 몸소 체험한 것 같기도 해서 바보 같은 내가 미워진다..ㅎ) 아무튼 올해 상반기 코딩테스트를 목표로 코테를 준비하기로 마음 먹었고 2월 3월 동안 열심히 준비 해보려고한다.

같이 창업한 친구의 박사논문 감사의 글을 보면 초기엔 너무나 힘들었지만 그만큼 한단계 성장할 수 있었던 것 같다. 고맙다 친구야 😀
같이 창업한 친구의 감사의 글

2. 부딪혀보기

22년 하반기에 카카오 코딩테스트에 준비도 하지 않은 채 그냥 신청해서 봤었다. 물론 결과는 광탈이였고 2문제(1번, 2번) 밖에 못풀었다. 스타트업 개발할 때 React Native 와 React 를 사용했었기 때문에 자신 있게 JavaScript로 응시 하였다. 프로그래머스(카카오 코딩 테스트는 프로그래머스 사이트를 통해서 본다)도 처음이라 처음에 입출력에서 헤메기도 했다 ㅎㅎ. 직접 JavaScript 언어로 코테를 보면서 느낀점은 쉬운 문제는 쉽게 풀수 있지만 어려운 문제는 진짜 어렵게 풀어야 한다는 거다.. 그리고 러닝타임이 다른 언어에 비해 매우 길어.. 문제 조건을 만족하기 힘들기도 하다. 그래서 Backend 쪽으로 커리어를 쌓으려는 내가 JAVA가 아닌 C++ 로 결정한 이유는 다음과 같다.

  1. 빠르다!!
  2. STL(Standard Template Library) 덕분에 생각보다 쉽다.
  3. 좋은 질(quality)의 해설 코드가 많다.!!
    • 혼자 알고리즘을 공부함에 있어 중요하다.
  4. 앞으로도 내 커리어적으로 C++에 익숙한 것이 도움이 될 것이라 생각했다.

코딩 테스트 언어로는 주로 C++, 파이썬, JAVA 가 가장 많이 사용된다. 먼저 자바는 자료가 다소 부족하고, 또한 코테에 적합한 표준 라이브러리가 부족해서 코드가 길어지는 단점이 있다. 그리고 C++은 본래 국제 알고리즘 대회에서 가장 많이 사용되고 low leve 언어이기 때문에 코테에서 어려운 고득점의 문제들을 비교적 쉽게 풀 수 있지만 물론 파이썬이나 자바스크립트로 쉽게 풀수 있는 문자열 처리같은 건 C++이 더 어려운 단점이 있다. 그러나 장기적으로 C++의 공부과정에서 CS지식에 해당하는 메모리나 자료구조 등 까지 같이 공부할 수 있고 또한 다른 언어를 배울 때 도움이 된다는 점에서 C++을 택하였다. 그리고 학부와 대학원 수업 때 C++로 MCU(micro controll unit)를 빌드한 경험도 있어 C++에 낯설지 않은 요인도 있다.

[출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬(책)

3. 결론

앞으로도 평생 다양한 컴퓨터 언어를 사용하는 개발자로서 성장하길 원하기 때문에 예전부터 프로그래밍 언어의 근간이 되는 C++ 을 제대로 공부하길 원했었고 지금이 그 기회인 것 같다. 현재 사용되는 인기있는 Programming languages(JAVA, JavaScript, Browsers...) 들은 C++ 의 성능과 신뢰성을 기반으로 구성되어있다.

Python에 대한 고려도 했었다. 대학원 과정에서 데이터처리를 python을 이용해 과제를 진행했고 pytorch나 scikit-learn 등의 라이브러리들을 자주 썼기 때문에 python에 익숙하다. 그리고 Python이 Machine learning 이나 Data Science 분야를 넘어 IT 쪽으로도 성장하고 있지만 기본에 충실해서 초심으로 프로그래밍을 시작한다는 마음가짐으로 C++로 코테 준비를 시작하기로 마음 먹었다. 물론 단기간에 코테만을 위해서 준비한다면 Python 도 나쁘지 않은 선택 같다.

profile
relentless
post-custom-banner

0개의 댓글