저의 개인적인 경험을 바탕으로 면접과 신입시절에 대해 끄적여봅니다

일반적이지 않을수 있지만 약간이나마 가이드가 될수도 있습니다


1. 서류 통과하기

이건 뭐 운이긴 합니다만, 이력서와 자기소개서를 최대한 성의껏 작성하면 뽑힐 확률이 높아집니다

웃긴건, 자기가 할줄도 모르는데 몇번 구경만 했던 것도 할줄 안다고 쓴사람들 부지기수입니다

근데 서류감독관도 그러게 해서 취업을 했기때문에 그런건 줄 다 알고 있습니다

어짜피 신입한테서 기술적인 능력을 바라고 뽑는건 아니라서요


2. 면접 통과하기

케바케이긴 한데 보통은 신입면접때 기술적 질문은 거의 안합니다

형식적으로나마 '콜바이 벨류와 콜바이 레퍼런스의 차이를 아느냐' 정도 수준..

위에 적었듯이 어짜피 신입한테 기술력을 바라고 뽑는건 아니라서..

똘똘하고, 말잘듣게 생겼고, 커피타오라면 불평없이 잘 타올거 같고, 예의바르고

그런것들에 중점을 맞춥니다

잘생기고 예의바르고 똑똑하고 말도잘하고 그러면 좋겠죠


3. 취업

여기서부터 좀 갈립니다

패키지 제작하는 회사도 있긴한데, 규모도 작고, 미래도 불투명한 경우가 많습니다

연구소... 음..  연구소도 있고,

그리고  si  , 대한민국 산업체계가 대부분 갑을병정으로 나눠져 하청에 하청 구조인데 si도 그렇습니다

갑을병정중 어디에 취업하느냐가 관건이긴한데, 여러분 학력이 높으면 높을수록 갑에 취직할 확률이 높고,

낮으면 낮을수록 정에 취직할 확률이 높습니다

갑업체에 취직했다면 장땡인거고, 을정도에만 취직해도 삶이 그리 고단하진 않습니다. 대우도 을정도까진

괜찮고요


4. 개발툴

보통 팀장이 사용하는 개발툴을 씁니다

팀장이 변태라서 power builder 같은거쓰면 써야합니다

난 emacs 파인데 팀장이 vim 파라서 vim으로만 하라고하면 그걸로해야합니다

그러게 하는이유가 신입이 기한을 넘기도록 못끝내거나, 퇴사해버리면 뒷처리를 자신이 해야되서

그렇습니다

근데 보통 그런경우는 잘 발생안하고 신입은 본인취향에 안맞는 개발툴을 사용하게 됩니다


5. 밤새는 이유

결론부터 이야기하면 자기가 못해서 밤을 샙니다

프로그램 작은거 하나라도 안만들어보고 온사람도 있고, 문법도 다 못땐 사람도 있고, 공부할땐

전혀 들어본적도 없는걸 만들어야 하는경우도 있고, 갖가지 이유로 밤들을 샙니다

하루이틀 밤새는게 아니라 일이주씩 밤새는 사람도 있고, 삼사주씩 밤새는 사람도 있습니다

월화수목금금금도 많습니다

좀 가혹하다고 생각할수도 있지만, 관리자 입장에서는 3년차한테 시키면 이삼일만에 다

끝낼 일들을 몇주씩 붙들고 있으니 답답하기도 합니다


6. 많이 쓰이는 기술

회사 특유의 솔루션이 있을수도 있고, 없을수도 있는데, 공통적으로 데이터 관리는 들어갑니다

데이터베이스, xml, json, 동기 비동기 소켓, ftp, http, 병렬서버, gui, os관련 라이브러리 정도 입니다

데이터베이스는 일단 sql 문법이랑

oracle client 설치, 설정, 연결, 쿼리입력 정도 문제없게

mysql odbc, oledb, adodb 연결, 쿼리입력 정도 문제없게

xml, json은 일단 문법이랄것도 없지만, 문법과 dom sax 사용법과

자신의 주언어로 공개된 라이브러리를 이용해서 분석, 변경, 저장, 전송 정도 문제없게

소켓은 bsd socket 이랑 winsock 함수들 사용법, 소켓옵션등 자유자재로 활용할 정도로.

ftp, http는 관련 라이브러리로 파일 올리고내리고, 보내고 등등 문제없을 정도로

병렬서버는 개념이랑 간단하니까 구현도 할수 있고, 관련 라이브러리 활용에 문제가 없을정도로

gui는 주언어에서 사용하는 라이브러리로 control(widget) 자유자재로 사용하고

bitmap만 있으면 어떤 ui든 다 만들수 있을 정도로

이게 중요합니다

os관련 라이브러리는 윈도우즈는 당연 win32api, mfc 할줄 알아야하고, 리눅스는 system call

programming, bash 할줄 알아야합니다

이게 되냐 안되냐에 따라서 갑을병정중 어느회사에 취직하느냐도 좀 갈리고, 신입생활때

밤을 사를지 아니면 칼퇴하고 맥주를 마실지가 갈립니다


7. 안쓰이는 기술

알고리즘, 자료구조.. 이건 기본이라고 해서 저도 취직전엔 다 공부했던 것들인데 실무에서

제가 써먹은건 배열을 이용한 환형연결리스트 딱 한건입니다

안써먹어도 되는데 그동안 알고리즘 공부한게 억울해서 일부러 써먹었습니다

일단 ide에는 제가 만든것보다 훨씬 좋은 자료구조와 알고리즘 라이브러리들이 있습니다

제가 구태여 자료구조, 알고리즘을 구현할 이유가 없죠

c++ 언어 자체에도 훌륭한 자료구조와 알고리즘들이 있습니다

그리고 데이터가 많아서 자료구조와 알고리즘이 필요한 정도라면 보통은 데이터베이스에 저장합니다

많은 데이터는 프로그램에서 처리하게 하지 않고 데이터베이스에서 처리하게 합니다

그러다고 공부하지 말아야 하느냐는. 일단 개념은 알긴 알아야 합니다

많이는 필요없고, 스택, 큐, 연결리스트, 이진트리정도 c로 구현할정도만 되면 됩니다

검색, 정렬 알고리즘은 이런게 있다, 사용법은 이러하다 정도까지만 알아도 충분합니다

필요한 경우도 거의 없거니와, 필요한 경우가 생기면 라이브러리차원에서 거의 해결되고

직접 구현해야 할 일이 생기더라도, 어려운게 아니니 그냥 구현해버리면 됩니다

인터넷에 소스 찾아다 배껴도 되고요

근데 여기 프갤을 보니 중요한건 별로 관심이 없고 쓸데없는거에 관심이 많으신것들 같아서

염려차 몇자 적었습니다


8. 동료, 상사

못하는 사람들 많습니다.

못하는 상사도 많고, 못하는 선배도 많습니다

근데 잘하는 사람도 의외로 많습니다

못하는사람이 많고 잘하는사람이 별로없으면, 잘하는 사람들 다 나갑니다

잘하는 사람이 어느정도 있으면, 못하는 사람들이 잘하는 사람 덕을보며 삽니다

5년차가 구조체 동적할당을 못해서, 배열도 아닌 해괴한 복사붙여넣기 하는경우도 있고,

변수이름이 int i, j, k; 이런사람들도 있고, 시키면 모른라고 성질내는 사람도있고

그렇습니다

못하는 사람은 이직이 어려운데, 잘하는 사람은 이직이 쉽습니다

사내 정치를 잘해놔서 못하는 7~10년차들이 망쳐놓고, 초급, 중급들이 해결해놔도

큰소리 뻥뻥치며 지내는 경우도 있습니다



개인적인 경험을 바탕으로 쓴거라 일반적이지 않을 수 있습니다