1) 영어를 잘해야 함. 잘한다는건 의사소통 하는데 지장 없을정도는 되야할것. 대부분 여기서부터 좌절하곤 하지.


2) 언어 하나는 능숙하게 다뤄야함. 대부분 회사에서 면접볼때 코딩문제를 내는데 슈도코드 말고 진짜 프로그래밍 언어로 짜야함. 다른 말로 메이져 언어 하나만 잘 다뤄도 됨.


3) 문제 해결 능력을 길러야함. 학부 자료구조 과목에서 배우는것쯤은 다 구현할수 있어야 하고 알고리즘도 기본적으로 재귀 함수, 기본 그래프 알고리즘 (BFS, DFS), 기초 알고리즘 패러다임 (분할 정복, 동적 계획법, 그리디)은 잘 알고 있어야 함. 최대 유량같은 좀 더 어려운 알고리즘도 알면 좋긴 한데, 경험상 한번도 물어본적이 없어서 필요는 없을듯. 


(트라이 문제 한번 물어본적 있었는데 직접 코딩 할 필요는 없었음)


4) 기본적인 멀티 쓰레딩 코딩 지식은 플러스 - 몰라도 크게 지장은 없음.


5) 오픈 소스 프로젝트 참여. 난 한적은 없는데 해본 경험 있으면 유리함.


6) 네트워크. 사실 이게 가장 중요 할수도 있음... 일단 리크루터한테 연락을 해야 하는데, 그 회사에 다녔거나 리크루터하고 친분이 있는 지인이 있으면 거의 직빵으로 면접 볼 수 있음.


그냥 그렇다고.