데일리 잡(Job) 지식

코딩테스트, 언어는 뭘써야할까? 자바? 파이썬? C++?

개발하는 주디씨 2023. 10. 11. 14:06

개발자로 취업/이직을 위해서 코딩테스트는 필수인 시대가 되었다. 알고리즘은 전공했을 때부터 중요성을 익히들어왔고, 공부하는 것이 당연하다고 생각한다. 그러나, 사실 실무에서는 매번 알고리즘을 따져가며 생각하진 않았기 때문에 어느정도는 동떨어진 감이 없지 않아있지만 기본 소양이 된다는 점에서는 매우 긍정적인 편이다.

 

암튼 필요성은 인지하고 있었다는 말이다.

 

먼저, 코딩테스트를 준비하는 입장에서 가장 첫 관문은 어떤 언어를 선택할 것인가?라고 생각한다.

 

 

너무 막막하지 않은가..?

무작정 막막한 것은 아니었다. (사실 책도 구매하고, 강의도 들어봄...)

 

하지만 이때마다 뭔가 20%가 계속 부족한 느낌이 들었다.

사실 코딩이 좋아서, 개발이 좋아서, 프로그램이 좋아서 개발자를 해야겠다고 마음 먹었던 순간과는 조금 달리 어느샌가부터는 시험을 위한 공부를 하게 된 것 같다... 그렇다보니, 변명일 수도 있겠지만 공부하는 것도 손도 안가고..;;;ㅜㅜㅜㅜ 그냥 답답하고 막막하고 두려움 뿐이 었던 것 같다...

 

시험만을 위한 공부가 되어버리는 순간 그 공부는 하기싫어질 뿐 아니라 자꾸만 피하고 싶어지는데 간과하고 있었던 것 같다.

급할수록 돌아가자, 꾸준하고 차분하게

코딩테스트의 '코'자도 모르는지만 지금부터 내가 생각하고 고민했던 부분을 함께 나누려고 한다.

 


 

 

언어 선택에서 가장 헷갈렸던 말과 의식의 흐름...

언어를 선택하기에 앞서 각 언어에 대한 나의 base는 다음과 같았다.

* C : 학부 때 프로그래밍 기초로 배움
* C++ : 학부 때 알고리즘 과목으로 구현해봄
* Java : 현직 개발자로 일하는 중...
* Python : 빅데이터분석 함 

언어야 뭐 사실 개발자라면 시간을 주고 학습하는 것이 어렵진 않다고 생각한다. 다만, 현직자로 일하며 사용하는 주력언어가 '자바'라는 점이 생각보다 타 언어를 사용하는데 있어서 어려움이 있었다. 나는 멀티가 안되는 사람이라;;; 하루 8시간을 Java만사용하다보니 알고있던 C, Python의 문법이나 사용스킬을 어느정도 떠올리는 것이 아니라면 쉽게 인지하기가 어려웠다...

 

그럼에도 불구하고 아래와 같은 이유들 때문에 언어 선택에 대한 방황을 오래했다.

 

 


 

 

자바는 자료가 부족하니 비추천

자바는 자료가 다소 부족하고, 코딩테스트에 유용한 표준 라이브러리가 부족하고, 코드가 길어진다는 단점이 있어 일반적으로는 비추천

오??? 나는 자바 개발잔데,, 코딩테스트에 적합하지 않다? 오케이.. 파이썬 학부 때 데이터분석으로 조금 깔짝해봤으니까 할 수 있겠지 뭐. "파이썬이 답이다.."

 

파이썬은 C++에 비해 느리다

파이썬은 C++에 비해 상당히 느립니다. 알고리즘의 종류에 따라 다르지만 5배 정도의 차이는 기본이고 심하게는 100배 가까이 차이나기도 합니다. 물론 코딩테스트 주최자들도 언어별 속도 차이를 충분히 잘 알고 있기에 보통 언어별로 시간 제한을 다르게 둡니다. 하지만 이러한 점을 감안하더라도 파이썬은 너무 느립니다. 그렇기 때문에 만약 정해로 접근했다면 당연히 C++과 파이썬 모두 통과하겠지만(사실 놀랍게도 파이썬에서 정해조차 통과되지 않는 경우가 아주 가끔씩 있긴 합니다) 접근을 잘못해서 비효율적인 코드를 제출했을 때 C++은 통과되지만 파이썬은 통과되지 못하는 경우가 생길 수 있습니다

아? 느리면 안되는거 아닌가? 파이썬 인터프린트니까 좀 느리긴 하지;;; C++ 어렵지만,, 그래도 언어 배운다는 생각으로 하면 되지 않을까? "가보자고 C++ 강의와 책 구매함 ◠‿◠ "

 

C++은 러닝커브가 존재한다

언어 난이도적 측면에서 보면 모두가 공감하겠지만 파이썬이 C++에 비해 압도적으로 쉽습니다. 문법의 딱딱함을 제외하고서라도 C++은 unmanaged language의 특성상 포인터의 잘못된 사용, 배열 인덱스 범위 초과, Integer overflow 등의 문제를 금방 알아차리기 힘들어 초심자의 학습에 아주 큰 애로사항으로 다가옵니다. 또한 C에서 char 배열로 문자열을 다룰 때 보다야 상황이 나아졌다지만 여전히 문자열의 처리가 다소 까다롭습니다. 반면 파이썬은 다소 편하게 공부를 이어갈 수 있습니다.

C++로 강의 깔짝이면서 느낀점 = 너무어려운데..?!?!?!?!?! "ㅋㅋㅋㅋㅋㅋㅋ파이썬ㅋㅋㅋ으로 다시 돌아갈래~"

 

 

결론

조금이라도 잘할 수 있는 언어, 오랜시간 노출되는 언어

이 내용을 보고 깨달은 생각은 그냥 하고싶은걸로 하세요.. 입니다ㅋㅋㅋㅋㅋㅋ 물론 언어마다 장단점이 확실한 건 맞다.

그러나, 사람마다 본인에게 적합한 언어는 다를 것이다. 그러니 다른 사람의견에 휘둘리지말고 본인이 조금이라도 잘할 수 있는 언어를 선택하는 것이 맞을 것 같다고 생각한다.

 

 

 

좋았서, 자바로 가보자고