등록
넥토리얼이 시작되고 채용박람회를 본사에서 진행한다고 해서 바로 접수!
신청하고 그 주에 문자가 와서 사전등록을 신청했다.
입장 예정 시간도 물어봐서 당연히 10시로 첫 번째로 입장했다.
줄이 엄청 길었다... 내부도 신기했지만 내가 이 글을 쓴 이유는 가서 배운 내용을 작성하기 위함이므로 PASS...
1대 1 직무상담
먼저 2층으로 달려가 프로그래머의 1대 1 직무상담을 받을 수 있었다. 총 10분 남짓 되는 시간 동안 미리 생각해 놓은 질문을 할 수 있었다. (사무실 한쪽이 유리창으로 되어있어 밝은 분위기가 인상 깊었다.
Q1. 컴퓨터 공학을 졸업하고 국비지원 게임 개발 학원을 갈 생각인데, 다니면서 추가적으로 공부하면 좋은 것은 무엇일까요?
A1. CS, 자료구조가 핵심이라고 말해 주고 싶다.
CS의 예시를 들자면 Virtual Table이 어떻게 이루어져 있는지, 왜 VT가 필요한지와 같은
CS의 깊은 이해와 응용지식을 갈고닦아야 한다.
Q2. 독학으로 공부할 때 도움이 되었던 자료나 학습방법이 있을까요?
A2. 책도 좋지만 요즘은 외국 유튜브에 좋은 정보가 많은 거 같다.
Q3. 학원 홈페이지에서 보여주는 포트폴리오 정도면 취직이 가능한다.
A3. 포트폴리오를 구현하고 그것에 대해 이해하고 있다면 가능하다.
또한, 취직은 타이밍이 크다고 본다 팀에서 원하는 인재가 신입일 수도 급하게 실무에 필요로 하는 인원일 수도 있기 때문에 그 점은 걱정하지 말고 열심히 하라.
Q4. 게임 개발 과정에서 가장 크게 느끼는 기술적 도전과제(새로운 콘텐츠 및 기술)를 극복하기 위한 방법을 알려주세요
A4. 우선 자료 서치를 진행하고 구현 후 좋은 케이스를 추려서 Develop 하는 식으로 콘텐츠나 문제를 해결해 나가고 있다.
코드의 경우에는 중간중간 리펙토링을 통해서 보수를 진행하였다.
직접 구현하는 것이 얻는 것도 많고 실제로 방향을 잡는데 큰 도움이 된다.
프로그래머 QnA
단체 상담으로 정해진 시간마다 진행하였는데, 이때 들은 인상 깊었던 질문들과 답변은 작성하겠다.
Q1. 넥슨에서는 어떤 개발자를 원하시나요
A1. CS 지식에 대한 깊은 지식을 제일 우선시합니다. 그다음 자료구조/알고리즘을 중요하게 여깁니다.
깊은 이해란, 기술에 대한 why, how, when을 파악하고 있는 것이다.
(왜 그렇죠?, 어떻게 그렇게 작동하죠?, 언제 사용하죠?)
Q. 포트폴리오가 중요한가요?
A. 아닙니다. 우선 포트폴리오의 신뢰도가 낮고(복사), 포트폴리오는 면접 질문을 만들기 위한 추가 점수의 개념이라고 생각하시면 됩니다.
포트폴리오를 통해 어떤 경험을 했고 문제를 어떻게 극복해 나갔는지를 확인하고 이를 면접 때 질문합니다.
Q. 포트폴리오의 목적은 무엇인가요?
A. 사감의 경험을 확인하고, 코딩스타일(효율성, 신뢰성)을 파악합니다.
포트폴리오의 결과물이 중요한 것이 아닌 진행하면서 겪은 문제와 해결 과정을 중요시합니다.
Q. 코드를 제출하라고 요구하는 경우는 어떻게 해야 하나요?
A. 구현하신 메커니즘을 ZIP 파일로 만들어서 제출하시면 됩니다
(이때 제출한 코드를 바탕으로 구현할 때 반드시 얻어야 하는 지식을 질문드립니다.)
Q. 상용엔진 사용능력이 중요한가요?
A. 아니요, 필요하긴 하지만 CS가 더 중요합니다. 엔진이나 언어 같은 경우에는 회사의 방침이나 프로젝트에 따라서 바꿔지는 경우가 있고 이경우에 포팅에 보통 3개월이 걸립니다. 따라서 CS보단 중요도가 떨어집니다.
+협업은 중요합니다.
프로그래머의 협업에 중요한 것은 코드의 가독성이며, 경험을 통해 협업을 이야기하는 것이 좋습니다. 협업은 주로 팀 면접 때 확인을 합니다.
Q. 지원하는 프로젝트는 C#인데 저는 C++ 기술을 가지고 있는데 어떻게 해야 할까요?
A. 지원서에 작성하시면 C++도 물어보고 C#도 물어볼 겁니다.
C# 포팅하는데 오래 걸리지 않으니 준비하시면 될 것 같습니다.
커리어 세션, - 거기 학생, 게임 프로그래머를 꿈꾸시나?
QnA를 해주셨던 분께서 발표를 맡아 진행해 주셨다.
1. 게임 프로그래머의 마음가짐
게임 프로그래머란 게임을 만드는 사람들에 속해서 기획의 설계에 맞춰서 아트의 디자인으로 결과물을 만들어 내는 사람들이다.
PM이 아닌 다른 직군의 꿈을 현실로 만들어 주는 사람들임을 명심하자.
2. 신입 프로그래머에게 기대하는 것은?
입사 후 바로 업무가 가능한 신입은 극소수이며, 채용후 최소 3개월 일반적으로 6개월은 최소한의 간단한 업무를 한다.
더 긴 시간인 2~3년 정도 지난 후에 1명의 역할을 기대하며 채용하는 것이 신입이다.
신입에게 바라는 네 가지 열정, 열린 마음, 논리적 사고, 기초지식
열정
- 모든 것에는 이유가 있다.
- 기존 코드를 통해서 누군가의 경험을 내 것으로
열정(시간)
- 누군가의 경험을 배우는 것에는 시간이 많이 소요됨
- 처음에는 작업 시간이 매우 부족하게 느껴짐
- 부족합을 채우는 데에는 근무 시간만으로 부족함..
논리적 사고
- 문제를 알고리즘으로 해결
- 업무 요청을 받았을 때 어떻게 만들지 그려내는 능력
기초 지식
이 부분은 사진으로...
Computer Science 기본 지식
- 컴퓨터 구조, 운영체제, 언어론 등 개발에 필요한 기반 지식
- 로직 버그가 아닌 제약적인 상황에서 발생하는 버그의 대응 가능
- 개발할 때 성능적 한계를 미리 설정할 수 있고, 시스템을 설계할 때 필요한 기반 지식 제공
자료구조 & 알고리즘
- 로직을 설계할 때 자료 저장 및 관리를 위한 기본 지식
- 성능의 극명한 차이를 보여주려는 결과물
- C++의 STL에 대한 충분한 이해
- C#의 Container에 대한 충분한 이해
기초 그래픽스 지식
- 심도 있는 그래픽스 지식을 요하지 않는다.
- 기본적을 학습 수준으로도 충분, 일반적인 2D, 3D 프로젝트 개발 경험에서 얻는 수준이면 충분하다.
- 행렬, 벡터 등에 대한 기초 수학 지식이 있으면 좋다. (들어와서 고생을 덜 할 수 있다.)
- 업무를 하면서 경험을 쌓는 것도 가능
병렬 처리 (서버)
- 서버 개발을 지망한다면, "CS에 대한 더 확실한 이해"를 필요로 함
- 기본 지식을 기반으로 한 병렬 처리 개발 경험이 있는 것이 더 좋음
고급 개념
- 예를 들면, 디자인 패턴 같은 것,
- 기본적인 디자인 패턴 같은 것을 알면 좋지만, 신입은 자세하게 숙지하지 않아도 크게 상관없다.
- 입사 후, 기존 프로젝트에 구성되어 있는 것을 참고하거나, 자기 학습으로도 충분히 습득 가능.
- 신입 프로그래머에게 이것을 적용해야 할 정도의 업무를 시키는 조직은 거의 없다.
언어의 이해(C#, C++ 등)
- 모든 프로젝트에서 기본적으로 요구하는 사항
- C++, C# 등 언어에 대한 기초 이해는 거의 완벽을 요구한다.
- 언어를 공부할 때, CS 기본 지식이 없다면 높은 수준이 이해를 얻어 내기 힘들다
- 사용 언어의 이해 없이 게임 엔진에서부터 언어를 배워 내려가면 매우 곤란
게임 엔진(Unreal, Unity)
- 기본적인 엔진 특성에 대한 이해와 사용 경험
- 프로젝트 OT 기간과 적응 기간 동안 충분히 학습 가능
- 조직 이동으로 인한 Unreal < - > Unity 사용이 바뀌는 경우도 많음.
DB
- 전공과목에 있는 Database에 대한 지식이면 충분.
- 조직에 DB 특화 프로그래머가 있는 경우도 많고, DBA의 전문적인 도움을 받기도 함.
소통 능력
- 기술적 배경이 없는 동료와 업무를 주고받음
- 개발 문서를 써야 하는 경우가 종종 있음
- 잘못된 이해를 기반으로 개발하면 막대한 시간적 손실 발생
- 면접 시에 매우 중요한 평가 요소이기도 함.
- 알고 있는 것을 얼마나 잘 설명하기, 질문의 의도를 빠르게 파악하는지...
- 실제로 +-20% 정도의 평가 가감 요인이 되는 경우가 많음
- 다름에 대한 이해가 있어야 한다.
- 배경 지식도, 생각도 다르기 때문에 불필요한 오해가 생기는 경우도 있다.
- "이걸요? 제가요? 왜요?" 안 됩니다.
- 프로그래머는 최대한 요청을 구현하는 방향이어야...
질문 잘하는 방법
- 궁금한 부분을 짧고 간결하게 물어보고,
- 그 부분이 왜 궁금한지(어떤 작업 때문인지) 설명하고
- 본인이 해결을 위해서 어떤 노력을 했는지 설명
3. 공부는 어떤 것을, 어떻게 해야 할까?
WHY / HOW / WHEN
- 항상 3가지 요소를 충분히 고려해서 공부하는 것을 추천
넓게, 그리고 중요한 내용은 깊게
- 다양한 것을 대충이나마 알고 있는 것은 개발 과정에서 학습 시간을 줄여줌
- 하지만, 기본적으로 알아야 할 것들은 깊게 바닥까지 공부해야 함
- 특히, 사용 언어와 자료구조...
포트폴리오는 어떻게 준비하면 좋을까요?
- 직군 면접 단계에서 결과물에는 큰 관심을 가지지 않음
- 하나의 프로젝트를 진행하면서 얻게 되는 "경험"이 중요
- 면접 과정에서 해당 경험의 과정에 대해서 질문하는 경우가 있음
코딩 테스트를 합격한 사람에 한해서 면접 진행
- 코딩 테스트를 잘 보는 방법은?
- 계속 풀어보고, 다른 사람의 해법을 충분히 이해해서 내 것으로 만드는 것 밖에...
- 코딩 테스트 점수가 높다고 해서 실제 면접을 잘 보거나, 실무를 잘하는 것은 아님
- 올해 코딩 테스트 난이도는 넥토리얼 1회와 2회 사이 정도 수준을 목표로...
4. 면접에서는 무엇을 물어볼까?
직군 면접
- 기술의 지식 및 경험에 대한 평가
팀 면접
- 팀에 맞는 인재인지, 제약 없는 평가
직군(개발) 면접에서 묻는 내용
- 개발에 필요로 하는 기본 지식(CS, 언어 등)의 이해
- 클라이언트 지망이면 사용 경험이 있는 엔진에 대한 지식
- 서버면 네트워크, 멀티스레드에 대한 지식
- 알고리즘(문제해결) 퀴즈
- 여러분이 어떤 게임을 좋아하는지는 사실 특별히...
예시)
- 32비트와 64비트는 어떤 차이가 있을까요?
- STL List의 주요 특성은? 왜 그렇게 작동하나요?(WHY)
- 어떻게 그렇게 작동하나요?(HOW)
- 언제 사용하면 좋을까요?(WHEN)
※나중에 보면 당연히 알고 있어야 하는 것 아니에요..? 라는 반응이 많다.
그 외에도...
- 포트폴리오나 이력서 상의 프로젝트 경험 등에 대한 질문
- 관심 있는 분야 대한 질문
마무리
게임 클라이언트 신입 프로그래머에게 필요한 역량에 대해 정확하고 구체적으로 배울 수 있는 채용박람회였다.
'코딩 공부 > TIL(Today I Learn)' 카테고리의 다른 글
협업을 위해 알아보는 인코딩 (1) | 2023.11.03 |
---|---|
Udemy【한글자막】Unreal Engine 5 C++ 개발자 : 수료 후기 (0) | 2023.11.02 |
넥슨 채용의 나라 질문 리스트 (0) | 2023.10.11 |
넥슨게임즈 필요역량 및 스킬 (0) | 2023.10.11 |
[직무조사] 스크린 골프 탐방 (1) | 2023.09.20 |