입사시험에서 보게 됨직한 것들

…이 뭐가 있을까하는 중.

어제 저녁에 Azyu 님이 NHN 공채 pre-test를 본다고 뭐가 나올 것 같냐고 물으시길래 내가 봤던 시험 얘기, rica, 아사 등등의 얘기가 나왔었다.

대충 C/C++ 관련된 얘기로 나온게, (그러니까 이건 총집편)

  • extern “C"의 의미
  • C++으로 swap 짜기1
  • virtual 함수의 의미
  • 가상 소멸자의 필요성 or 가상 생성자가 불가능한 이유
  • binary search2
  • 문자열 뒤집기 (이건 C문제?)

이 정도였는데. 사실 이거 Effective C++ 만 정독해도 다 풀수있는데 이런 문제로 걸러낼 수 있다는건 전반적인 C/C++ 지식 없이 사회에 나오게 된다는 소리 같은데3. 여튼 프로그래밍 언어 쪽에만 한정적으로 말하면 이 정도 수준이 아닐까.4

회사라는게 의외로 사용하는 언어의 스펙트럼이 넓다. NHN의 예를 들어보자면 bash shell script로 돌아가는 서비스 뒷단도 있다고하고, 그 위에는 python도 돌리고, 아파치 모듈은 C나 C++로 짜게되고, Java도 하고, 약간이지만 .net 환경도 있다고…

비슷하게 내가 있는 N 모사에서도 나 자신의 경우에는 주로 C++을 쓰고, 작업에 따라서 python을 쓰거나, 스레딩 위에서 돌리면 lua도 쓰고 그러는데, 다른 곳을 보면 JSP가 쓰이기도 하고, Java runtime위에서 돌기도하고 .net도 쓰고 C도 쓰고.

그런 의미에서 많이 사용되는 언어 질문도 하지만 전공 전체의 기초가 되는 질문들도 많이 할 수 밖에 없다. (저걸 다 배우고 나타나는건 별로 의미도 없는 것 같고) 그런 즉슨, 여담이 뭔가 길어지지만, 아직 학교에 있다면 이걸 다 배우는 것보다는 기초에 전념하자. OS, DB, 네트웍, 컴파일러, 알고리즘 이런 거 회사와서는 못배운다. 알고 와도 새로 배울게 많다 — 실무를 접하면서는 더더욱.

여담으로, 내가 현재 회사 입사시험 때 풀었던 것은, 저 위에 없다.


  1. 놀랍게도 공채에서 이걸 맞게 푸는 사람의 비율은 30% 정도. 그리고 다시 그 중 1/3 정도는 template으로 짜버린다고. ↩︎

  2. 종이 위에서 짜는 걸로 이만큼 어려운건 드물다고 생각함; 하지만 나는 컴퓨터 구조 시간에 배우는 binary 곱셉/나눗셈을 종이 위에 짜는 입사 테스트를 본적이 있다. ↩︎

  3. 뻘소리지만, C++은 몰라도 — 패러다임이 좀 많으니 — C는 알고 오는게 자기 발 밑에 무엇이 있나를 알기 위해 배워두는게 좋지 않을까 한다. 물론 Java, .net 처럼 라이브러리 구성이 잘된 언어의 라이브러리 구성 방식을 보는 것도 좋고, Ruby, Python같은 현 시대의 스크립트 언어도 알면 좋겠지만… 배울게 많긴 한가. ↩︎

  4. 여기서 나온 내용 N모 사들 정도로 한정된다는게 문제지만… ↩︎