1. 선린 인터넷 고등학교 특강
“My Way, Your Way“
[부제 : 개발자가 되기 위한 방법]
옥찬호
Nexon Korea, Microsoft MVP
utilForever@gmail.com
2. 소개
• 옥찬호 (Chris Ohk)
• Nexon Korea Game Programmer
• Microsoft VSDT MVP
(Visual Studio and Development Technologies)
• 페이스북 그룹 C++ Korea 대표
• IT 전문서 집필 및 번역 다수
• 게임샐러드로 코드 한 줄 없이 게임 만들기 (2013)
• 유니티 Shader와 Effect 제작 (2014)
• 2D 게임 프로그래밍 (2014)
• 러스트 핵심 노트 (2017)
• 모던 C++ 입문 (2017)
3. 시작하기 전에… 선린 인터넷 고등학교 특강
My Way, Your Way
• 제가 개발자가 된 계기와 지금까지 어떻게 살아왔는지를 이야기합니다.
• 그리고 개발자가 되기 위해 어떤 일들을 했는지 이야기합니다.
• 제 생각이 정답이라고 할 수는 없습니다. 다양한 생각이 있을 수 있습니다.
PPT에서는 제가 겪었던 경험과 갖고 있는 생각을 토대로 이야기합니다.
• 여러분이 개발자가 되기 위해서는 어떻게 해야 될까요?
• 겨울 방학을 보람차게 보낼 수 있는 방법은?
• 질문은 언제나 환영합니다.
31. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 이제 여러분의 이야기를 해보려고 합니다.
• 나의 진로는 개발자인가?
• 나의 진로는 (어떤) 개발자인가?
• 나의 진로는 (무엇을 하는) (어떤) 개발자인가?
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야 할까)?
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야 하고), (어떤 경험을 하면 좋을까)?
32. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 결국은 기승전치킨!?
33. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 프로그래머는 치킨집을 차릴 수 있는가?
(https://docs.com/user272240/3010)
34. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 개발자인가?
• 무언가를 개발하는 게 즐거워야 어렵고 힘든 과정을 이겨낼 수 있다.
• 개발하는 게 즐겁지 않다면, 다른 진로를 고려해 보는 것도 방법이다.
• 본인 스스로가 개발자라는 직업이 적성에 맞는지 생각해 보길 바란다.
35. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어떤) 개발자인가?
• 웹 개발자
• 모바일 개발자
• 시스템 개발자
• 서버 개발자
• 게임 개발자
• 보안 개발자
• 데이터 엔지니어
• ...
36. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어떤) 개발자인가?
• 프로그래밍 언어 선택
• 어떤 언어인지는 중요하지 않다.
• 하나의 언어를 잘 아는게 중요하다.
• 하나의 언어를 잘 알고 있다면,
다른 언어도 비교적 쉽게 배울 수 있다.
• 메모리를 수동으로 관리하는 언어 하나 (C/C++ 등),
메모리를 자동으로 관리하는 언어 하나 (C#/Python 등)를 배워두면 좋다.
• https://fossbytes.com/how-to-pick-your-first-programming-
language-4-different-ways/
37. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어떤) 개발자인가?
• 어떤 개발자가 될 지 정하지 못했다고 해서 걱정할 필요는 없다.
• 이번 겨울 방학이 다양한 개발을 탐색하기 좋은 시기!
• 가장 재미있었던 분야, 적성에 맞다고 생각한 분야가 정해질 때까지 여러 분야를
조금씩 다양하게 경험해 보기 바란다. 정하는 데 오랜 시간이 걸려도 좋다.
• 일찍 시작했다고 해서 반드시 잘하는 게 아니며,
늦게 시작했다고 해서 반드시 뒤쳐지는 게 아니다.
1년 만에 남들이 이룬 몇 년의 성과를 한 번에 이뤄낼 수 있는 게 개발 분야!
38. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 실제로 회사에서 어떤 일을 하는지 궁금하다면, 채용 정보를 확인하라.
39. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 실제로 회사에서 어떤 일을 하는지 궁금하다면, 채용 정보를 확인하라.
40. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 실제로 회사에서 어떤 일을 하는지 궁금하다면, 채용 정보를 확인하라.
41. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야 할까)?
• 회사의 채용 정보에서 필요한 지식을 확인할 수 있다.
42. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야 할까)?
• 필요한 지식을 정리해 놓은 사이트도 있다.
• 웹 개발자 로드맵
https://github.com/kamranahmedse/developer-roadmap
• 게임 개발자 로드맵
https://github.com/utilForever/game-developer-roadmap
• 모바일 개발자 로드맵
https://github.com/godrm/mobile-developer-roadmap
43. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야 하고), (어떤 경험을 하면 좋을까)?
• Git 사용 방법 익히기
• 프로젝트 협업 경험 해보기
• 포트폴리오 작성하기
• 블로그에 기술 관련 글 써보기
• 알고리즘 문제 풀어보기
• 스터디에 참여 해보기
44. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• Git 사용 방법 익히기
• 버전관리 시스템은 소스코드의 중요한 변화들을 기록하는 행위
• 어떤 문제가 발생했을 때 문제의 맥락을 파악 할 수 있도록 도와주고,
변화에 실패 했을 때 과거의 상태로 쉽게 돌아갈 수 있게 해줌
• 학교에서 협업할 때 사용할 뿐만 아니라, 회사에서도 널리 사용
• https://opentutorials.org/course/1492
• https://backlog.com/git-tutorial/kr/
• http://rogerdudler.github.io/git-guide/index.ko.html
• http://learnbranch.urigit.com/
45. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 프로젝트 협업 경험 해보기
• 개발 실력을 향상시킬 수 있는 가장 빠른 방법
• 다른 사람과의 역할 분담을 통해 협업, 커뮤니케이션을 익힐 수 있음
• Github, GitLab, Trello 등 다양한 협업 도구를 사용할 기회
• https://github.com/utilForever/CubbyFlow
• https://github.com/MineScroll/Cubby
• https://github.com/doyubkim/fluid-engine-dev
• https://github.com/Hearthstonepp/Hearthstonepp
• https://github.com/CppKorea/CppCoreGuidelines
46. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 포트폴리오 작성하기
• 다른 사람에게 내가 갖고 있는 기술을 보여줄 수 있는 최고의 방법
• 포트폴리오에 따라 회사에서 여러분을 뽑을 수도, 뽑지 않을 수도 있다.
• 배운 지식으로 다양한 프로그램을 만들어서 포트폴리오를 만들어 보자.
47. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 블로그에 기술 관련 글 써보기
• 본인이 공부하면서, 또는 프로그램을 만들면서 겪었던 경험을 정리해서 써 보자.
• 영어로 된 기술 블로그 글을 번역해서 작성해도 좋다. (단, 저자의 허락을 받을 것!)
• 특히, 본인이 어떤 문제를 해결하기 위해 삽질했던 과정을 정리하면 좋다.
(이런 지식은 다른 곳에서 쉽게 찾을 수 없으며, 온전히 본인의 지식이 된다.)
• 책이나 사이트의 내용을 복사, 붙여넣기만 하지 말고,
지식을 온전히 자기의 것으로 만들려는 노력을 병행해야 한다.
• https://github.com/utilForever/ModernCpp/blob/master/Articles/
The%20Four%20Polymorphisms%20in%20C%2B%2B.md
48. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 알고리즘 문제 풀어보기
• 요즘 대학교 입시나 회사에서 알고리즘 문제를 풀게 하는 경우가 많다.
• 최소 하나의 프로그래밍 언어, 그리고 자료 구조와 알고리즘 지식이 필요하다.
• 방학을 이용해 친구들과 함께 알고리즘 문제를 풀어보는 것도 좋다.
• https://www.acmicpc.net/
• https://algospot.com/
• http://codeforces.com/
• http://www.topcoder.com/
• https://www.hackerrank.com/contests
49. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• 스터디에 참여 해보기
• 혼자서 공부하는 게 어렵다면, 여럿이 뭉쳐 헤쳐나갈 수 있다.
• 학교를 벗어나면, 정말로 다양한 주제의 스터디가 있다.
• 스터디에는 현업 개발자도 참가하기 때문에 실무와 관련된 지식도 얻을 수 있다.
• 비용이 약간 들 수도 있지만, 본인의 참가 의지에 따라 가치는 무궁무진 해진다.
• https://github.com/CppKorea/CppConcurrencyInAction
• https://github.com/CppKorea/DesignPatternStudy
• https://github.com/CppKorea/OptimizedCppStudy
50. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• (+1) 큰 프로젝트를 어떻게 만들지 잘 모르겠다면…
• Github나 GitLab에 있는 오픈 소스 프로젝트를 기반으로 똑같이 만들어 보기
• Github나 GitLab에 있는 다양한 오픈 소스 프로젝트를 찾아보며
무슨 프로젝트를 만들지 생각해 보기
• 프로젝트의 라이선스 확인하기 (중요!, 잘 모르겠다면 원작자에게 문의하기)
• 프로젝트를 실행해 보고, 구조를 파악하기
• 처음부터 똑같이 만들어 보기
• 다 만들었으면, 나만의 무언가를 추가해 발전시켜 보기
• 나만의 무언가를 추가했다면, 포트폴리오로 활용 가능
51. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• (+1) 큰 프로젝트를 어떻게 만들지 잘 모르겠다면…
52. Your Way 선린 인터넷 고등학교 특강
My Way, Your Way
• (+1) 큰 프로젝트를 어떻게 만들지 잘 모르겠다면…