Post on 22-Jan-2018
선린 인터넷 고등학교 특강
“My Way, Your Way“[부제 : 개발자가되기위한방법]
옥찬호Nexon Korea, Microsoft MVP
utilForever@gmail.com
소개• 옥찬호 (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)
시작하기 전에… 선린 인터넷 고등학교 특강My Way, Your Way
• 제가개발자가 된계기와 지금까지 어떻게 살아왔는지를 이야기합니다.
• 그리고 개발자가 되기 위해 어떤 일들을 했는지 이야기합니다.
• 제 생각이 정답이라고할 수는 없습니다. 다양한 생각이 있을 수 있습니다.
PPT에서는 제가 겪었던 경험과갖고 있는 생각을 토대로 이야기합니다.
• 여러분이 개발자가 되기위해서는 어떻게 해야 될까요?
• 겨울 방학을 보람차게 보낼 수 있는 방법은?
• 질문은 언제나환영합니다.
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 이제 여러분의 이야기를 해보려고합니다.
• 나의 진로는 개발자인가?
• 나의 진로는 (어떤) 개발자인가?
• 나의 진로는 (무엇을하는) (어떤) 개발자인가?
• 나의 진로는 (어느 회사에서) (무엇을하는) (어떤) 개발자인가?
• 나의 진로는 (어느 회사에서) (무엇을하는) (어떤) 개발자인데,
(어떤 지식을 배워야할까)?
• 나의 진로는 (어느 회사에서) (무엇을하는) (어떤) 개발자인데,
(어떤 지식을 배워야 하고), (어떤 경험을 하면 좋을까)?
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 개발자인가?
• 무언가를개발하는게 즐거워야 어렵고 힘든과정을 이겨낼 수 있다.
• 개발하는게 즐겁지않다면, 다른 진로를 고려해 보는 것도 방법이다.
• 본인 스스로가개발자라는 직업이 적성에맞는지 생각해 보길 바란다.
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어떤) 개발자인가?
• 웹개발자
• 모바일 개발자
• 시스템 개발자
• 서버 개발자
• 게임 개발자
• 보안 개발자
• 데이터 엔지니어
• ...
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어떤) 개발자인가?
• 프로그래밍언어 선택
• 어떤 언어인지는 중요하지 않다.
• 하나의 언어를잘 아는게 중요하다.
• 하나의 언어를잘 알고 있다면,
다른 언어도 비교적 쉽게 배울 수 있다.
• 메모리를 수동으로 관리하는 언어 하나 (C/C++ 등),
메모리를 자동으로 관리하는 언어 하나 (C#/Python 등)를 배워두면 좋다.
• https://fossbytes.com/how-to-pick-your-first-programming-
language-4-different-ways/
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어떤) 개발자인가?
• 어떤 개발자가 될 지 정하지 못했다고 해서 걱정할 필요는 없다.
• 이번 겨울 방학이 다양한개발을탐색하기 좋은 시기!
• 가장재미있었던 분야, 적성에맞다고 생각한분야가 정해질 때까지 여러 분야를
조금씩 다양하게 경험해 보기 바란다. 정하는 데 오랜 시간이 걸려도 좋다.
• 일찍 시작했다고해서 반드시잘하는게 아니며,
늦게 시작했다고해서 반드시 뒤쳐지는 게 아니다.
1년 만에 남들이 이룬 몇 년의 성과를한번에 이뤄낼 수 있는 게 개발 분야!
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 실제로 회사에서 어떤 일을 하는지 궁금하다면, 채용 정보를확인하라.
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 실제로 회사에서 어떤 일을 하는지 궁금하다면, 채용 정보를확인하라.
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인가?
• 실제로 회사에서 어떤 일을 하는지 궁금하다면, 채용 정보를확인하라.
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야할까)?
• 회사의채용 정보에서 필요한 지식을확인할 수 있다.
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
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 나의 진로는 (어느 회사에서) (무엇을 하는) (어떤) 개발자인데,
(어떤 지식을 배워야 하고), (어떤 경험을 하면 좋을까)?
• Git 사용 방법 익히기
• 프로젝트 협업 경험 해보기
• 포트폴리오 작성하기
• 블로그에기술관련 글 써보기
• 알고리즘 문제 풀어보기
• 스터디에참여해보기
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/
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
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 포트폴리오 작성하기
• 다른 사람에게 내가갖고 있는 기술을 보여줄 수 있는 최고의 방법
• 포트폴리오에 따라 회사에서 여러분을 뽑을 수도, 뽑지 않을 수도 있다.
• 배운 지식으로 다양한 프로그램을만들어서 포트폴리오를만들어 보자.
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 블로그에 기술 관련 글 써보기
• 본인이 공부하면서, 또는 프로그램을만들면서 겪었던 경험을 정리해서 써 보자.
• 영어로 된 기술 블로그 글을 번역해서 작성해도 좋다. (단, 저자의 허락을 받을 것!)
• 특히, 본인이 어떤 문제를 해결하기위해삽질했던과정을 정리하면 좋다.
(이런 지식은 다른 곳에서 쉽게 찾을 수 없으며, 온전히 본인의 지식이 된다.)
• 책이나 사이트의 내용을 복사, 붙여넣기만하지말고,
지식을 온전히 자기의 것으로 만들려는노력을 병행해야한다.
• https://github.com/utilForever/ModernCpp/blob/master/Articles/
The%20Four%20Polymorphisms%20in%20C%2B%2B.md
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
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• 스터디에참여 해보기
• 혼자서 공부하는 게 어렵다면, 여럿이 뭉쳐 헤쳐나갈 수 있다.
• 학교를벗어나면, 정말로 다양한 주제의 스터디가 있다.
• 스터디에는 현업 개발자도참가하기때문에 실무와 관련된 지식도 얻을 수 있다.
• 비용이 약간 들 수도 있지만, 본인의참가의지에 따라 가치는 무궁무진 해진다.
• https://github.com/CppKorea/CppConcurrencyInAction
• https://github.com/CppKorea/DesignPatternStudy
• https://github.com/CppKorea/OptimizedCppStudy
Your Way 선린 인터넷 고등학교 특강My Way, Your Way
• (+1) 큰 프로젝트를 어떻게 만들지잘 모르겠다면…
• Github나 GitLab에 있는 오픈 소스 프로젝트를 기반으로 똑같이만들어 보기
• Github나 GitLab에 있는 다양한 오픈 소스 프로젝트를 찾아보며
무슨 프로젝트를 만들지 생각해 보기
• 프로젝트의 라이선스 확인하기 (중요!, 잘 모르겠다면 원작자에게 문의하기)
• 프로젝트를 실행해 보고, 구조를 파악하기
• 처음부터 똑같이 만들어 보기
• 다 만들었으면, 나만의 무언가를 추가해 발전시켜 보기
• 나만의 무언가를 추가했다면, 포트폴리오로 활용 가능