게임 프로그래머로서 실력 향상하기 위한 방법에 대한 자료입니다.
많은 참고 하시기 바랍니다.
1. 게임 프로그래머 실력향상법 자료조사 ver 1.2 - 작성자: 황대영 - 수정일자: 2016-05-01
2. 목차 1. 개인적인 목적 2. 목적 3. 제 소개 4. 실력에 대한 편견 5. 실력 평가 기준 6. 개발자 유형 7. 개인적인 실력향상법 1. 목적의식 2. 게임 프로그래머 구분 3. 프로그래밍 습관 4. 멘토 5. 이직 노하우 6. 개발 서적 7. 스터디 그룹
3. 목차 1. GitHub와 포트폴리오 2. 세미나 3. 게임 개발자 커뮤니티 4. 기초부터 단단히 5. 실력 향상 그래프 6. T자형 인재 7. 책 [뇌를 단련하다] 1. 책 [프로그래머의 길, 멘토에게 묻다] 2. 게임 개발 서적 추천 3. 등가 교환 법칙 4. 스스로 전문가라고 말하지 말라 5. 인성도 실력이다 6. 게임 개발이 재밌는가? 7. 결론 - 느낀 점
4. 개인적인 목적 1. 제 개인적인 실력향상 법에 한계를 느끼고 더 나은 방법이 없을까 해서 자료 조사하고 문서화 2. 게임회사 특성 상 잦은 정리해고, 스타트업의 짧은 수명으로 인해 실력 향상 만이 살 길이라는 일종의 생존 본능으로 노력하였다. 3. 최근에는 저녁이 있는 삶, 행복, 건강, 경제적 보상, 보다 넓은 기회를 위해 해 외 게임회사 취업을 준비하면서 게임 개발 “실력” 향상만이 눈에 보였다. 4. 자료조사해서 평소에 가지고 있던 생각을 개선한다.
5. 목적 1. 게임 프로그래머로서 실력 향상 법에 대한 자료는 이미 많으나 정리된 것이 없어 SlideShare로 공유 2. 게임 프로그래머 지망생, 신입, 경력자분들 모두 도움이 될 수 있는 자료조사 3. 직접적인 코드에 대한 설명은 없고 방법론에 대해서 설명한다. [주의] 자료조사 주제 준비하는 것도 제 주관이 들어있고, 슬라이드에 제 주관이 들어간 부분이 있으므로, 참고 용으로 보시기 바랍니다.
6. 제 소개 [학력] 1. 경남외국어고등학교 중어과 졸업 2. 공주대학교 게임디자인학과 졸업 [경력] 1. 출시한 게임 3개, 참여한 상용 게임 프로젝트 8개 (4년 가량) 2. 단독으로 클라이언트 개발하거나 리드하였음 (서브 클라이언트 3번) 3. 수 백명의 해외 게임 프로그래머분들을 위한 기술 지원 업무 4. [해외취업 준비 및 해외취업 게임개발자 그룹] 페이스북 그룹 관리자
7. 제 소개 1.목표 (Goal) a. 게임 프로그래머 15년 경험할 것 (현재 4년) b. 아키텍트 10년 경험할 것 c. 초현실주의 가상현실 게임 프로젝트 EqualReality(가제) 5년 진행할 것
8. 제 소개 1.강점 (Strength) a. 게임 프레임워크, 초기설계, 일정 관리 b. Unity, cocos2d-x c. C#, C++ d. 영어로 의사소통, 독해, 쓰기 가능 2.약점 (Weakness) a. 2D RPG는 개발해 본 경험이 있으나, Full 3D MMORPG 게임 개발 경험 아직 없음 b. 개발자 관리 능력 떨어짐
9. 실력에 대한 편견 1. 큰 회사(N으로 시작하는 게임 회사들) 에 다니면 실력이 뛰어나다 ? a. 꼭 그렇지 만은 않지만 실력 뛰어난 게임 개발자를 만날 확률 높음 b. 연봉, 복지, 근무 환경이 좋기 때문에 실력 뛰어난 게임 개발자들이 몰려있는 편 c. 게임 복잡도가 낮거나 라이브 팀에는 신입들도 많음 d. A급 개발자가 C급 업무를 반복하는 케이스도 있음 => 개인 프로젝트 하지 않으면 실력 정체 우려됨
10. 실력에 대한 편견 1. 콘솔 > 온라인 > 모바일 순으로 플랫폼에 따라 실력이 뛰어나다 ? a. 책이나 발표자료를 보더라도 온라인과 모바일 기술적 수준 격차가 매우 컸음 b. 하지만 멀티플랫폼 지원 엔진(Unity, Unreal) 등장하고, 온라인에서 모바일로 플랫폼이 변경된 게임 개발자들이 많아지면서 이런 일종의 암묵적인 공식과 시선이 깨어지기 시작했음 c. 대학교 졸업 작품으로 WIPI / Java로 피쳐폰 게임 개발했기 때문에 제가 게임 실력이 떨어지 는건 아니라고 생각함 d. 하지만 아직까지도 플랫폼 별로 게임 개발자를 채용하는 게임 회사가 존재하는 듯 (예를 들어 자체 게임 엔진을 사용하는) e. PC 든 스마트폰이든 피쳐폰이든 로우 레벨 코딩부터 다 개발해 보면 유리함
11. 실력에 대한 편견 1. 경력이 많으면 실력이 뛰어나다 ? a. 개인적으로 만나본 게임 개발자에 따라서 경력과 상관없이 실력이 천차만별 이었음 b. 신입인데 경력 5년차 못지 않은 생산성과 무결성의 (버그가 없는) 실력을 보여주는 게임 서버 프로그래머과 같이 일한 적 있음
12. 실력에 대한 편견 1. 말을 잘하는 게임 프로그래머가 실력이 뛰어나다 ? a. 회사에서 비 프로그래머가 들으면 대단히 유능한 사람으로 비춰질 수 있다. b. 실력 좋으신 분들 중에 조용하고 겸손하신 분들도 참 많이 있었다. c. 말 소리가 크고 빠르다고 해서 실력이 뛰어난 것은 아니다. d. 의사소통 능력과 프로그래밍 실력은 또 별개의 것이다. e. 그러나 논리적인 사고를 하는 프로그래머는 의사소통 능력을 키우면 더욱 잘 할 수 있다.
13. 실력 평가 기준 (개인적으로 중요하다고 생각하는 순서로 번호 매김) 1. 포트폴리오 (소스 코드) 2. StarCraft, Diablo, WOW, LOL a. 와 유사한 게임을 혼자서 처음부터 끝까지 스스로 구현 가능하다. b. MOD 제외, WorldEditor와 같은 툴 사용하지 않고, 그래픽 / 사운드 리소스 이미 있다고 가정 3. 경력 4. 온라인 코딩 테스트
14. 실력 평가 기준 (개인적으로 중요하다고 생각하는 순서로 번호 매김) – 계속 이어서 1. 학력 2. 다른 게임 프로그래머분들의 자신에 대한 평가 a. 하지만 이것은 상대적이고 추상적이므로 과신 하면 상당히 위험하다. 3. 자격증 a. 국가 공인 정보처리기사 / 게임 프로그래머 자격증은 한국의 게임 회사에서 인정 안 해주는 것으로 보인다. b. 최근 Unity에서 공인 자격증이 생겼다고 하는데 효용성은 아직까지 모르겠다.
15. 개발자 유형- 임백준 님의 개발자의 50가지 그림자에서 [파랑] 1. 프로그래밍에 대한 재능을 타고 났으며 노력까지 기울이는 사람. 2. 상상을 초월하는 실력을 보여주거나 큰 성공을 거두는 프로그래머들은 일단 이 범주에 속하는 사람. 3. 잘 알려진 오픈소스 프로젝트를 주도하거나, 새로운 패러다임을 제시하거나, 고 전에 속하는 책을 쓰거나, 컨퍼런스에 단골로 초대되는 사람. 4. 회사에서 일할 때만이 아니라 밥을 먹거나, 길을 걷거나, 차를 타거나, 친구를 만나거나, 심지어 잠을 잘 때에도 코딩방법을 궁리하는 사람. 5. 진심으로 코딩이 게임이나 섹스보다 즐거운 사람들이다.
16. 개발자 유형- 임백준 님의 개발자의 50가지 그림자에서 [노랑] 1. 프로그래밍에 대한 재능은 특별히 없지만 노력만큼은 파란색 못지않게 기울이 는 사람. 2. 회사에서 주어진 일에 온 힘을 다함. 3. 문제가 생기면 다른 사람을 탓하기 전에 스스로 책임을 지려고 함. 4. 새로운 기술이나 동향에 항상 관심을 갖고, 좋은 책을 찾아서 부지런히 읽고, 동 영상 강의나 팟캐스트를 찾아서 듣고, 오프라인 모임이나 컨퍼런스에 참여한다. 5. 친구들과 코딩에 대해서 이야기하기를 즐기고, 회사에서 승진을 하거나 더 많 은 책임을 맡는 것에서 성취감을 맛보는 사람들이다.
17. 개발자 유형- 임백준 님의 개발자의 50가지 그림자에서 [빨강] 1. 프로그래밍에 대한 재능은 타고 났지만 노력을 기울이지 않는 사람들이다. 2. 천성이 게으르거나 다른 관심사가 많기 때문에 돈벌이 수단으로 회사에 다니며 코딩을 할뿐 그 이상의 의미를 두지 않는다. 3. 코딩은 너무 쉽고, 단순하고, 반복적인, 지루한 ‘회사일’이다. 4. 버그 없이 빠르게 동작하는 코드를 뚝딱 만들어내고, 밤에는 카페에서 기타를 연주하거나 친구들과 어울려서 포커를 즐긴다. 5. 때로는 노랑에 속한 사람들이 보고 깜짝 놀랄만한 성취를 이루어내기도 하지만 지속성이 부족하기 때문에 책임 있는 지위에 오르지는 못한다.
18. 개발자 유형- 임백준 님의 개발자의 50가지 그림자에서 [검정] 1.프로그래밍에 대한 재능이 없고 노력도 하지 않는 사람들이다. 2. 프로그래밍이 재미없고 어렵게 느껴진다. 3. 먹고살기 위해서 프로그래밍의 길로 들어서긴 했지만 제대로 하지 못하기 때문에 성취감도 없고, 새로운 것을 알고 싶은 욕망도 없다. 4. 가끔 책을 구입하기는 하는데 읽지는 않는다. 5. 다른 사람들이 새로운 기술이나 패러다임을 이야기하는 것을 들으면 잘난 척하는 것 같아서 기분이 나빠 진다. 6. 자기가 사용하는 언어나 기술에 지나친 집착을 보이기도 하고, 자기가 작성한 코드를 다른 사람이 보는 것 을 극도로 싫어한다. 7. 복사 후 붙여넣기 신공으로 작성한 코드를 들키는 것도 기분 나쁘고, 무엇보다도 왠지 발가벗는 기분이 드 는 탓이다. 8. 현장에서 심각한 코드가 보고되면 가슴이 철렁 내려앉는 경우도 많다. 혹시 자기가 짠 코드에서 나온 버그 가 아닌가 하고 걱정이 되기 때문이다. 9. 스스로 ‘짠’ 코드를 다른 사람에게 설명하지 못하는 것은 기본이고, 자신도 이해하지 못하는 경우가 흔하다.
19. 개발자 유형 - 임백준 님의 개발자의 50가지 그림자에서 여러분의 색깔은 어떠한가요 ? “이 글을 읽는 사람의 80%는 프로그래밍과 관련된 재능을 타고 나지 않았다. “ “개인적인 ‘어림짐작’에 따르면, 우리가 회사에서 일반적으로 만나는 개발자의 50%는 불행하게도 검정에 속한다. 10% 정도가 빨강이고, 30% 정도가 노랑이 며, 나머지 10%가 파랑이다.” “개발자의 40% 정도가 회사 밖에서도 코딩을 궁리하고 공부한다. 제대로 동작 하는 코드를 작성하는 사람은 50%이고, 나머지 50%는 수준 이하의 코드를 통해서 프로젝트의 진행을 방해한다.” “프로그래밍과 관련된 재능을 타고 나는 사람은 전체의 20%에 불과하며, 그 중 에서 반은 노력하고 반은 노력하지 않는다.”
20. Toptal (세계 상위 3%로 가리는 평가 시스템) Toptal 서비스를 이용해 자신의 실력을 객관적으로 평가 받고 채용 될 수도 있다. https://www.toptal.com/
21. Codingame (게임 코딩 테스트 웹 서비스) 자신의 실력이 어느 정도인지 온라인으로 테스트 가능 프랑스 게임회사 Ubisoft에서 채용에 참고 https://www.codingame.com/start
22. 개인적인 실력 향상 법 (중요한 순서로 번호 매김) 1. 머리 속에 나의 목적과 구체적인 목표와 실행 태스크를 그리고 하나 씩 실천 한다. 2. 좋은 프로그래밍 습관에 대해서 고민하고 개선한다. 3. 뛰어난 게임 프로그래머를 멘토로 삼아 자꾸 질문한다. ^^; 4. 실력이 뛰어난 / 경력이 많은 게임 개발자분들이 많은 팀 / 회사로 이직한다. 5. 회사에서 게임 개발하면서 R&D 기간을 갖는다. (일정에 포함시키지 못한다 면 개발과 병행)
23. 개인적인 실력 향상 법 (중요한 순서로 번호 매김) 1. 사무실 책상에 게임 개발에 직접적으로 필요한 책을 가져다 놓고 눈치 보지 않고 읽는다. 2. 주말에 출근하지 않으면 스터디 그룹에 참석한다. 3. 경력자가 되어도 포트폴리오는 꾸준히 업데이트해서 GitHub에 올려놓는다. 4. 새롭게 배운 기술을 현재 회사 프로젝트에 적용할 여건이 안 된다면 개인 프 로젝트 / 포트폴리오에 적용해 본다. 5. 웹 상의 괜찮은 아티클은 대개 영문으로 되어 있으므로 프린터로 출력해서 봄
24. 개인적인 실력 향상 법 (중요한 순서로 번호 매김) 1. 게임 개발 관련 세미나에 참석한다. 2. 게임 개발자 선배님분들과 같이 밥도 먹고 술도 마시면서 친해진다. 3. 일주일에 한 번씩은 오프라인 서점 / 온라인 서점을 둘러보며 기술 트렌드 확 인한다. 4. 게임 개발자 트위터는 무조건 팔로우한다. 5. 읽어본 기술 책은 요약 정리해서 SlideShare로 공유 6. 게임 개발자 커뮤니티에 하루에 한 번씩 방문해서 게임 개발자들의 생각과 동향 파악한다.
25. 개인적인 실력 향상법 => 요즘은 훌륭하신 회사 게임 프로그래머분 들 보면서 저 자신이 작아지고 실력 향상에 한 계를 느낀다.
26. 목적 의식 1. 캐나다 토론토 대학 교수, 심리학자 Gary Latham a. “가장 많은 동기를 부여하고 생산성을 높이려면 목표를 크게 세우는 것이 최선의 결과를 낳는 다. b. 큰 목표는 작은 목표나 중간 크기의 목표에 비해 상당히 더 높은 성과를 냈다. c. 목표가 크면 주의를 더 집중하게 되고, 더 끈기 있게 매달리게 된다. d. 실패하더라도 기꺼이 일어나 다시 도전하게 된다.”
27. 목적 의식 1. 게임 프로그래머의 우상, 존 카멕 a. “ 한가지 일에 열심히 일하는 것은 성공을 위한 가장 실질적인 방법이다. b. 오직 목표에만 초점을 맞춰라. c. 그리고 목표를 달성하기 위해 다음 발걸음을 내딛더라. d. 만약 지금 네가 하고 있는 길에 대한 확신이 서지 않는다면, 다른 길도 함께 가보고 더 나은 것이 어떤 것인지 찾아내라”
28. 목적 의식 1. 저 개인의 경우 a. 현실과 구분이 안되는 가상세계 구축 위해 게임 프로그래머의 길을 걷기 시작하고, b. 게임 업계에서 살아남기 위해 생존 수단으로 실력을 길렀으며, c. 지금은 해외취업 준비를 위해 더욱 실력을 기르려고 노력하고 있다. d. 결과적으로 보다 높은 목표가 끊임 없이 노력하도록 함 e. 개인적으로 목적 의식이 실력을 향상 시키는데 가장 큰 기여를 한다고 생각한다.
29. 게임 프로그래머 구분 1. 한국에서는 주로 클라이언트 / 서버로 구분 2. 해외의 경우 더 세분화 됨 a. 네트워크 프로그래머 b. 엔진 프로그래머 (자체 엔진 개발 팀의 경우) c. 그래픽스 프로그래머 d. 게임플레이 프로그래머 e. 프론트엔드(UI) 프로그래머
30. 게임 프로그래머 구분 a. 오디오 프로그래머 b. 도구(tools) 프로그래머 c. 만능(generalist) 프로그래머 : 특정 분야에 전문화 되지 않고 이것저것 두루두루 적당히 할 수 있는 프로그래머입니다. d. 기술 지원 프로그래머 : 문서화, 번역, API 샘플 테스트 등 1. 자신의 목적에 따라 어떤 프로그래머가 될지 선택
31. 프로그래밍 습관 “나는 훌륭한(great) 프로그래머가 아니다. 훌륭한(great) 습관을 가진 좋은 프로그래머일 뿐이다.” - Kent Beck
32. 저의 프로그래밍 습관 1. 키보드로 코드를 입력하기 전에 먼저 머리 속으로 생각하거나 / 종이에 써본 다. 2. 초기설계 => 코딩 => 테스트 => 디버깅 => 설계 (생략 가능) => 코딩 => …(반복)... 3. 어쩔 수 없이 야근해야 될 때는 조용한 사무실에서 내가 짠 소스 코드를 다른 사람이 본다고 생각하고 스스로 코드 리뷰해 본다. 4. 리팩토링 습관화
33. 저의 프로그래밍 습관 1. “바퀴를 다시 발명하려고” 하고 있는 것은 아닌지 염두에 두고 검색 생활 화 2. 모르는 게 생기면 바로 구글링, 도저히 모르겠으면 선배 게임 프로그래머에게 질문 3. 웹 상의 다른 사람이 짠 소스코드를 Copy & Paste 하기 전에 먼저 왜 이렇게 짰는지 생각해 본다. 4. 제대로 돌아가고 버그가 없으면 일단 의심부터 한다.
34. 멘토 1. 멘토는 멀리 있는 분이 아니다. 2. 직장 상사가 될 수도 있고 내 동료(실력이 자신보다 월등히 뛰어난)가 될 수 있고 학과 선배가 될 수도 있다. 3. 장점 a. 책에서 얻은 기술적 지식과 다르게 현실적인 기술 적용에 대한 노하우를 배울 수 있다. b. 게임 프로그래머에게 있어서 코딩이 다가 아님을 배울 수 있다. c. 게임 회사 생활을 어떻게 잘 할 수 있을 지에 대해서도 배울 수 있다.
35. 멘토 a. 배울 것이 한도 끝도 없음을 느끼게 되고 한없이 겸손해진다. b. 추천 입사 등으로 이직 시 유리하다. 1. 단점 a. 어느 분이 나의 멘토라고 주변에 함부로 말하고 다니지 말 것 => 멘티의 실력이 미약하면 멘 토까지 욕을 하는 사람도 있음 b. 같은 회사의 상사가 멘토라고 해서 과잉 충성하면 오히려 여러가지 역효과를 불러올 수 있음
36. 이직 노하우 1. “가장 뒤떨어진 이가 되라” - 책 [프로그래머의 길, 멘토에게 묻다] 2. 입사 지원할 때 보통 유명하거나 큰 회사에 지원하는 경우가 많은데, 3. 게임잡 채용공고에 “지원자격”과 “우대사항”을 유심히 살펴볼 것을 권한다. 4. 까다로운 조건을 내세울 수록 기술 면접이 어려운 편이다. 5. 경력자라도 기술 테스트를 필수로 보는 곳도 있다. 6. 어려운 기술 면접을 본 곳이 경험 상 실력 좋은 게임 프로그래머들이 포진해 있는 팀 / 회사일 확률이 높았다. 7. 바꿔 말하자면 학력 / 성별 / 나이 / 경력보다는 실력을 중시 여긴다는 의미이
37. 이직 노하우 1. 항목 별 가중치 적용해서 입사 지원 및 결정 2. “게임 개발 실력”을 어떻게 하면 기를 수 있는가를 기준으로 항목 선정
38. 이직 노하우 1. 예시: a. 언리얼 엔진을 사용하는 프로젝트 - 가중치 10점 b. 신규 게임 프로젝트 - 가중치 9점 c. RPG, RTS 등 복잡도가 높은 장르의 게임 - 가중치 8점 d. 경력자라고 하더라도 채용절차에 필기 테스트 또는 기술 면접을 통해 선별하는 회사 - 가중치 8점 e. 리팩토링 / 디버깅을 개발 기간에 산정, 할당하는 팀 - 가중치 7점 f. 외국계 게임회사 개발팀 - 가중치 7점 g. 애자일 정착 되거나 도입 의지 있는 팀 - 가중치 6점 h. 스케줄을 작업자 스스로 관리하고 책임짐 - 가중치 6점 i. 클라이언트 프로그래머 사수 계심 - 가중치 5점 j. 콘솔 플랫폼을 대비하는 팀 또는 회사 - 가중치 4점 k. 현재 매출이 발생하는 회사 - 가중치 3점 l. 도서 구입비 지원, 스터디 그룹, 코드 리뷰 등의 문화 권장 회사 - 가중치 2점 m. VR 게임 프로젝트 - 가중치 2점 n. 사원수가 100명 이상 회사 - 가중치 1점 o. 지인이 추천하는 회사 또는 지인이 근무하는 회사 - 가중치 1점
39. 이직 노하우 앞 장의 항목을 바탕으로 게임회사 별로 시트를 만들어서 한 눈에 비교 가능하도 록 하여, 가중치 합산 점수가 가장 높은 곳에 최종 입사 결정한다.
40. 개발 서적 1. 게임 개발 / IT 관련 전공 서적은 가리지 않고 사서 모으는 편 2. 저의 유일한 재산이기도 함 3. 장점 a. 웹에 비해 양적 질적으로 매우 우수한 정보 제공한다. b. 장점에 대해 사실 설명이 필요 없을 정도이다. c. 뭔가 성장하고 있다는 느낌이 든다.
41. 개발 서적 1. 단점 a. 개발 특성 상 버전 업이 빠르므로 출판된 서적이 최신 버전을 못 따라감 b. 내가 진행하고 있는 프로젝트보다 수준이 높은 책들이 많아서 잘 안 읽힘 c. 이사할 때마다 이사 짐이 많아서 번거로움 2. 단점 보완법 a. 책을 요약 정리해서 SlideShare에 올려두고 필요할 때마다 본다. b. 해외 취업을 고려한다면 원서만 구입
42. 개발 서적 a. 게임 개발 경력이 조금씩 생기면 변하는 기술과 변하지 않는 기술 둘로 구분할 수 있는 눈이 생긴다. b. 트렌드에 의해 빠르게 변하는 기술 관련 서적은 되도록 도서관에서 빌려 보도록 하고 c. 오랫동안 2판, 3판, 4판.. 을 거듭하는 명저들은 소장하는 것을 권함
43. 스터디 그룹 1. 초중급 게임 개발자 스터디 그룹 [데브루키] a. 지금까지 가본 오프라인 스터디 그룹 중에서 가장 수준이 높으며 좋다. b. 발표 로테이션 방식이고 발표가 끝나면 Q & A c. 스터디 장이신 박민근님은 강의 경력도 있으시고 업계의 대표 게임 개발자 d. https://www.facebook.com/groups/devrookie/ 2. 여건이 안된다면 지인과 함께 2인 이상이라면 언제든 스터디 그룹을 만족할 수 있다.
44. GitHub와 포트폴리오 1. 네이버 개발자센터 오픈프로젝트 a. public 아닌 private 설정 가능 (무료) b. subversion 지원 c. https://developers.naver.com/main 2. GitHub a. private은 유료, public으로 해야 무료 b. git 지원 c. https://github.com/
45. 세미나 1. NDC a. https://ndc.nexon.com/main 2. KGC a. http://www.kgconf.com/ 3. GDC a. http://www.gdconf.com/
46. 게임 개발자 커뮤니티 1. 게임코디 http://www.gamecodi.com/ 2. 전설의 레전드 게임개발자료 https://www.facebook.com/groups/730799873611073/ 3. 유니티 개발자 커뮤니티 https://www.facebook.com/groups/unitykorea/ 4. 언리얼4 개발자 커뮤니티 https://www.facebook.com/groups/unreal4dev/ 5. 생활코딩 https://www.facebook.com/groups/codingeverybody/
47. 기초부터 단단히 1. 게임 클라이언트 프로그래머 기준 기술 면접 키워드
48. 기초부터 단단히 1. 책 [나는 프로그래머다] 중 197p a. “학생들의 질문의 수준이 너무 높아서가 아니라, 가장 기초적인 C 언어의 문법 사항을 묻는 것인데도 불구하고, 나는 제대로 된 대답을 할 수가 없었다.” b. “나 역시 혼자서 독학으로 C 언어를 공부했고, 명색이 대기업 연구소에 소속되어 정부 국책 과제까지 성공적으로 이끌었던 몸이지만, 그런 사실은 모두 껍데기였던 것이다.” c. “그렇게 생활한 지 1년 여가 지나자, 나는 그곳에서 가장 유능한 강사가 되어 있었다.” d. “부끄럽게도 나는 자신의 무능을 깨닫는 순간부터 새롭게 정진할 수 있었던 것이다.” 2. 예시: a. Effective 시리즈의 책은 중급 이상의 개발자들이 읽는 것이므로 너무 무리해서 다 읽으려고 하지 말것
49. 기초부터 단단히 1. 예시: a. Effective 시리즈의 책은 중급 이상의 개발자들이 읽는 것이므로 너무 무리해서 다 읽으려고 하지 말것 b. 초급 개발자의 경우, 우선 기초 문법 책부터 다시 읽어보고 연습 프로젝트해 보는 것을 권장함 2. 선배 게임 개발자분들의 조언 a. “기초부터 확실히 닦으라” b. “기초로 돌아가라”
50. 실력 향상 그래프 1. 실력은 학습량에 정비례하는 것은 아니고, 2. 계단과 같이 일정 시간 정체해 있다가 갑자기 어느 순간 올라간다.
51. 실력 향상 그래프 1. 제 경험 상, 실력이 갑자기 상승 되었다고 느낀 때는 프로젝트 완료하고 다음 프로젝트 시작할 때였다. 2. 제가 실력이 정체 되어 주눅 들어 있을 때 선배 게임 개발자분 들께서 계단 그래프에 대해서 말씀하셨다.
52. T자 형 인재 1. 도요타에서 최초 제시 2. 미국 게임회사 Valve 신입사원 안내서 중 a. “우리는 T자형 인간을 소중히 여긴다.” b. “풀어 말하자면, 다양한 방면에 수준 높은 기 술을 가지고 있고(Generalist 제너럴리스트), c. 그 중 한 가지 분야에서는 해당 분야의 최고 중 하나라고 불릴만한 기술을 가진 사람 (Specialist 스페셜리스트)을 말한다.”
53. 책 [뇌를 단련하다] 1. 일본의 대표적인 다독가 다치바나 다카시의 도쿄대 강의 서적 2. 20대에 전공보다 교양을 우선적으로 배워야 하는 이유에 대해서 체계적으로 설명 3. 편견과 한 가지 사고로 매몰되어 커버린 어른이 되지 않으려면 (잘 안 바뀜) 대학교에서 열심히 교양 수업 듣고 책을 많이 읽어야 함을 강조
54. 책 [뇌를 단련하다] 1. 현재 한국 정부가 시행하고자 하는 조기 프로그래밍 교육의 효용성에 대해서 개인적으로 의문을 가짐 2. 자칫 잘못하면 인성과 교양이 없고 자기 것만 최고 라고 생각하는 프로그래머가 양성 될 수 있음 3. 스펀지처럼 모든 기술과 가치를 빨아들이려면 책을 많이 읽어 다양성 인정할 필요가 있음
55. 책 [프로그래머의 길, 멘토에게 묻다] 목차 1. 잔을 비우다 a. 첫 번째 언어 b. 흰 띠를 매라 c. 열정을 드러내라 d. 구체적인 기술 e. 무지를 드러내라 f. 무지에 맞서라 g. 깊은 쪽 h. 한발 물러서라 2. 긴 여정을 걷다 a. 긴 여정 b. 예술보다 기예 c. 지속적인 동기 부여 d. 열정을 키워라 e. 자신만의 지도를 그려라 f. 직위를 이용하라 g. 전장에 머물러라 h. 또 다른 길
56. 책 [프로그래머의 길, 멘토에게 묻다] 목차 1. 정확한 자기 평가 a. 가장 뒤떨어진 이가 돼라 b. 멘토를 찾아라 c. 마음 맞는 사람들 d. 팔꿈치를 맞대고 e. 바닥을 쓸어라 1. 끊임없는 학습 a. 능력의 폭을 넓혀라 b. 연습, 연습, 또 연습 c. 부숴도 괜찮은 장난감 d. 소스를 활용하라 e. 일하면서 성찰하라 f. 배운 것을 기록하라 g. 배운 것을 공유하라 h. 피드백 루프를 만들어라 i. 실패하는 법을 배워라 1. 학습 과정의 구성 a. 독서 목록 b. 꾸준히 읽어라 c. 고전을 공부하라 d. 더 깊이 파고들어라 e. 익숙한 도구들
57. 게임 개발 서적 추천 C++ 기초 플러스 뇌를 자극하는 C# 5.0 프로그래밍 유니티 4 게임 개발의 정석 따라 하면서 배우는 NGUI 유니티 2D 게임 프로그래밍 유니티 네트워크 프로그래밍 좋은 프로그램을 만드는 핵심 원리 25가지
58. 게임 개발 서적 추천 성공과 실패를 결정하는 1%의 프로그래밍 원리 게임 프로그래밍의 정석 리팩토링 Head First Design Pattern Game Programming Gems 시리즈 실용주의 프로그래머
59. 게임 개발 서적 추천 위대한 게임의 탄생 시리즈 CODE COMPLETE Debug It! 실용주의 디버깅 Effective C++ 셰이더 프로그래밍 입문 DirectX9를 이용한 3D Game 프로그래밍 입문
60. 게임 개발 서적 추천 프로그래밍 면접 이렇게 준비한다 익스트림 프로그래밍 열혈 C 프로그래밍 3D 게임 프로그래밍 Programming Game AI by Example 게임 프로그래머를 위한 기초 수학과 물리
61. 게임 개발 서적 추천 STL 튜토리얼 레퍼런스 가이드 나는 프로그래머다
62. 등가 교환의 법칙 1. "사람은 그 무언가의 희생 없이는 아무것도 얻을 수 없다. 무언가를 얻기 위해서는 그 와 동등한 대가를 치러야 한다. 그것이 연 금술에서 말하는 등가교환의 법칙이다." - 애니메이션 [강철의 연금술사] 2. 실력 향상 하느라 쉬는 날 없이 주경야독하 면 자칫 건강을 잃을 수 있다. 3. 따라서 건강 관리 능력도 실력에 포함되어 야 한다는 게 제 소견
63. 스스로 전문가라고 생각하지 말라 1. 자기 스스로 업계 탑10 이라고, C++ 전문가라는 사람 말 절대로 안 믿는다. 2. 헨리 포드 a. “우리 직원들 중에는 전문가는 없다. b. 정말 안타까운 일이지만 자기 자신을 전문가라고 생각하는 순간, c. 그 사람을 내쫓아야 했다. d. 마음 속에 전문가라는 생각이 자리 잡는 순간 수 많은 것들이 불가능해진다. e. 정말로 자기 일을 잘 아는 사람은 절대 스스로를 전문가라고 생각하지 않는다.”
64. 스스로 전문가라고 생각하지 말라 1. Sydney J. Harris, 미국 저널리스트 a. “승자는 남들이 전문가라고 인정해도 자신은 아직 배울 것이 많다고 생각합니다. b. 패자는 자신의 무지는 깨닫지 못하고 사람들이 전문가로 인정해 주기만 원합니다.”
65. 인성도 실력이다 - 개인 경험 1. 개인적으로 팀에서 에이스라는 소리도 듣고 선배 게임 개발자분들에게 칭찬 을 많이 들었다. 2. 하지만 점점 실력으로만 사람을 보기 시작하면서 저 자신이 오만해 졌었던 흑역사가 있었다.. ㅠ_ㅠ 3. 따라서 자신에 대한 타인의 상대적인 평가에 의지하게 되면 매우 위험하다. (우물 안 개구리가 될 가능성 농후하고 오만해 질 수 있음)
66. 인성도 실력이다 1. 게임 프로그래머 중에 실력이 좋으면 까칠하고 인성이 좋지 않다(?)는 정설(?) 비슷한 이야기가 많이 들렸다. 2. N으로 시작하는 게임 회사에 있는 지인 대부분은 인성 + 실력을 겸비한 분들 이었다. 3. 인성도 실력이라는 포프 김님의 말씀에 백번 공감하고 있다. 4. 이를 위해 책도 많이 읽고 겸손해지기 위해 공부를 더 치열하게 할 필요가 있 다. 5. 해외에 가면 실력 좋은 게임 프로그래머 차고도 넘친다. 6. 당장 GitHub에 올라간 소스코드만 봐도 겸손해 질 것이다.
67. 게임 개발이 재밌는가? 1. 이세돌 a. “바둑은 즐거워야 한다… 그것이 핵심이다” - JTBC 인터뷰 중 2. Epic Games 팀 스위니 a. “나 스스로는 프로그래머라고 말하고 싶다. 지금 하는 일도 현 역 프로그래머다. 코드를 작성하는 일이 즐겁다. “ 3. 리눅스 창시자, 리누스 토발즈 a. “그래, 싸우고 헤쳐 나가는게 인생이지만, 결국 궁극적인 목적 은 인생을 즐기는 게 될거야.”
68. 결론 - 느낀 점 1. 자료조사를 마무리하면서 끝으로 느낀 점입니다. 2. 선배 게임 개발자분들의 공통적인 조언은 밤낮 가리지 않고 열심히 하다 보 면 실력이 늘 수 있다는 단순하면서도 강력한 진리가 있었습니다. 3. “1만 시간(10년)의 법칙” 4. 그렇다고 무조건 야근을 해야 한다고 해석하시면 안됩니다. 5. 일찍 퇴근해서 집에서 책도 보고 개인 프로젝트도 하면서 자기 계발해야 된 다는 것입니다.
69. 결론 - 느낀 점 1. 게임 업계는 다른 업계와 다르게 온전히 실력으로 인정 받을 수 있는 곳이기 도 합니다. 2. 그 말은 온전히 자기 자신의 노력으로 인정 받을 수 있다는 의미입니다. 3. 저처럼 재능 없다고 그만 두라는 말을 듣기도 한 사람이 여태 게임 개발을 업 으로 밥 벌어 먹고 살고 있습니다. (누구에게 큰 폐 끼친 적 없음)
70. 결론 - 느낀 점 1. 제가 아는 게임 개발자분들 대부분이 지방에서 상경해서 고시원 / 좁은 원룸 에서 시작해서 지금은 결혼도 하시고 행복하게 사시는 분들 많습니다. 2. 그 노력을 위해서는 자신이 사회 생활 하면서도 즐겁게 코딩 할 수 있느냐가 가장 중요한 것임을 다시금 상기하게 해준 자료조사 였습니다.
71. 참고 서적 1. [뇌를 단련하다] - 다치바나 다카시 a. http://www.yes24.com/24/goods/435006?art_bl=1896221 2. [훌륭한 프로그래머 되는 법] a. http://www.yes24.com/24/Goods/23335420?Acode=101
3. [리눅스 그냥 재미로] - 리누스 토발즈 a. http://www.yes24.com/24/goods/197293?scode=032&OzSrank=1
72. 참고 서적 1. [프로그래머의 길, 멘토에게 묻다] a. http://www.yes24.com/24/goods/4045732?scode=032&OzSrank=2 2. [나는 프로그래머다] a. http://www.yes24.com/24/goods/1375113?scode=032&OzSrank=3
73. 참고 SlideShare 1. [0319] 게임 개발자는 왜 공부해야만 하는가 - http://www.slideshare.net/agebreak/0319-7329060 2. [1127 박민근] 일 잘하는 게임 프로그래머 되기 - http://www.slideshare.net/agebreak/1127- 5965524 3. 고대특강 게임 프로그래머의 소양 - http://www.slideshare.net/eiaserinnys/ss-4359340 4. 게임 프로그래밍 기초 공부법 - http://www.slideshare.net/utilforever/ss-43853774 5. [KGC2011_박민근] 신입 게임 개발자가 알아야 할 것 - http://www.slideshare.net/agebreak/ss- 10098747 6. 초급 개발자 탈출 - http://www.slideshare.net/rockdoli/frends-meetup 7. 게임 클라이언트 기술 면접 키워드 - http://www.slideshare.net/ddayinhwang9/ss-60678034
74. 참고 영상 자료 1. 이세돌 "바둑은 즐거워야 된다…그것이 핵심이라 생각" - https://youtu.be/FbfAdUkDr5Y 2. 한 분야의 마스터가 되려면 - https://youtu.be/RDBXnBg_WQs 3. 개발 경력 3년이면 - https://youtu.be/ie2epvAsAGE 4. 야근과 자기발전 - https://youtu.be/UlqNxG95CRE
75. 참고 웹 자료 1. https://drive.google.com/folderview?id=0B9v3Ehq7zBtWYlo0dTFhVHJ4VFU &usp=sharing 2. http://blog.hyundai.co.kr/TALK/Story/hyundai-generalist.blg#.VxrczjCLSUk 3. https://www.toptal.com/ 4. https://www.codingame.com/start 5. http://www.thisisgame.com/webzine/news/nboard/5/?page=127&n=15120
76. 참고 웹 자료 1. http://singleton.tistory.com/416 2. http://likelink.co.kr/34683 3. http://www.zdnet.co.kr/column/column_view.asp?artice_id=2015093007555 1&type=det&re=
77. 감사합니다. 기본으로 돌아가서 더욱 정진하는 게임 프로그래머가 되겠습니다. 부족한 자료를 봐주셔서 감사합니다. 피드백 주시면 더욱 감사하겠습니다.
'정보공유' 카테고리의 다른 글
[정보] 4차 산업혁명과 인공지능 (0) | 2018.01.08 |
---|---|
[정보] 인공지능 발전이 가져올 2030년의 삶 (0) | 2018.01.08 |
[정보] 암호화폐의 미래에 관한 브리핑 (0) | 2018.01.04 |
[정보] 게임회사 해외취업 자료조사 (0) | 2018.01.04 |
[정보] 프래텀 차이나 리포트 - 공유 보조배터리 투자 현황 (0) | 2017.12.20 |
[정보] 프래텀 차이나 리포트 - 중국 신유통 현황 (0) | 2017.12.20 |
[정보] Media Commerce (0) | 2017.12.20 |
[정보] 도쿄브랜치는 왜 만들었는가? (0) | 2017.12.09 |