게임 프로그래밍 공부 방법(입문) - 프로그래밍 공부, 대체 어떻게 해야 돼?
백수로 맞이한 생일, 그리고 향그러운(?) 봄 바람을 만끽하며 어느 덧 백수의 끝이 보이긴 합니다. 언제까지 놀면서 돈만 까먹을 순 없으니 ㅠ_ㅠ
오늘의 포스팅은 요즘 많은 사람들이 꽤 궁금해 하고 또 충분한 needs가 있는 "프로그래밍 공부, 대체 어떻게 해야 돼?" 입니다. ㅎㅎㅎ 멋대로 정해본 제목..
아무 뼈대 없이 걍 생각나는대로 글을 쓰므로 두서가 없고 내용이 빠지는 게 종종 있을 수 있습니당.
먼저 오늘의 주가 되는 독자들은 전혀 프로그래밍 지식이 없는 사람들을 대상으로 해봅시다.
태어나서 처음 "프로그래밍 언어"를 접하게 돼면, 일단 가장 먼저 이런 생각이 들지요. "왓더 ㅈㅇㄹ#$!!# 이 외계어는 뭔가?"
정말로 처음 느낌은 뭔가 굉장히 낯설게 느껴집니다. 그럴 수 밖에 없지요. 그게 정상입니다. 만일 여러분들이 처음 프로그래밍 언어를 보고도 평안한 마음이라든가 득도의 햇살을 느낀다면 스스로가 정상이 아님을 인지 하시면 됩니다.
그런데 한 가지 팁을 알려드리자면, 낯설을 뿐이지 어렵진 않아요. 정말로~
스스로 세뇌를 해보세요
자 이제 본격적인 이야기를 해보자면 (음?) 보통의 게임 프로그래머가 돼기 위해서 공부하는 첫 번째 프로그래밍 언어는 C/C++ 입니다. 사실 C와 C++은 서로 다른 언어이긴 한데, 예를 들어 설명하자면 C++은 C의 확장팩 입니당. 스타 오리지널과 확팩이 있듯이요. 그렇게 이해 하면 쉽죠 ㅎㅎㅎ
그래서 게임 프로그래머 목표이신 분들이면 모두 C/C++을 배웁시다!!! 배워서 남주는거 없으니 한살이라도 어릴 때 하나라도 더 배웁시다. :D
진짜 문제는 이제부터 나오는데, 대체 이놈에 C/C++(이하 걍 C++) 은 생긴 것부터 맘에 안드는데, 처음 접하시는 분들은 이게 뭔지도 모르죠. "플밍 언어?? 먹는거임?"
먹는 거는 아닌건 확실함
사실 그래서 쌩판 아무것도 모르는 상황에서 시작 하실 때 가장 좋은 건,
1:1 과외가 짱이겠죠?
음...이건 논외로 치고 어쨌든 학원이든 대학이든 정규 커리큘럼을 우수한 성적으로 이수 하는 방법이 가장 좋습니다.
사실상 아무 지식 없는 '무' 상태에서 프로그래밍을 독학으로 공부 한다는 건 대단히 어렵긴 합니다.
결국 좋은 스승을 만들어야 합니다. :D (돈을 쳐 바르든...납치를 하든)
대략적으로 초반에 배워야 할 것들만 정리해 보면
- C/C++
- 자료구조
- 알고리즘
- Win32API
정도가 있겠군요. C/C++은 언어고 나머지는 이상한 것들입니다. 뭐 지금 당장은 너무 자세히 알려 하지 맙시다.
언어를 해결하는 부분에 초점을 맞춰야 하니까요.
C++ 언어의 기본 문법은 쉽습니다. (진짜임 ㅎ_ㅎ)
실제로 제가 C언어를 첨본게 (C++말고) 중학교 3학년때 였는데 책 한권 사서 독학으로 기본적인 것들은 했어요. 이런 건 쉬워요. 안되면 걍 외워버리는 방법도 있으나 제가 프로그래밍을 좋아하는 이유 중 하나는
아무것도 외울게 없다.
그러합니다. 한 개도 안외워도 됩니다. 이해만 하면 됩니다. 그럼 됩니다.
다시 앞 이야기로 돌아가서, 프로그래밍 언어가 뭔지에 대한 설명은 이곳에서 블라블라 하기엔 어렵구요. 제 포스팅의 주제는 어디까지나 공부 방법에 있으니까 ( 근데 아직까지 제대로 안쓴거 같은데 )
간략하게 이야기 하자면 프로그램은 (소프트웨어) 프로그래밍 언어로 만들어집니다. 끗
프로그래밍 공부의 가장 첫 번째는 언어의 공부입니다.
어떻게하면 언어를 이해 할 수 있는지, 그리고 한국말 처럼 유창하게(?) 쓸 수 있는지 이게 핵심이지요.
제가 드리는 팁은, 먼저 독학은 쉽지 않습니다. 아예 아무것도 모르는 상태에서 독학 한다는 건 어렵죠 (물론 가능한 사람들도 있어요) 그래서 가급적이면 학원이나 대학등을 이용해서 배경 지식을 습득하는 게 좋습니다.
훌륭한 멘토가 있는 것도 좋구요. 평이하죠 이 방법은?
두번째로는 걍 부딧치는 방법이 있죠. 제가 좋아하는 방법인데요 일단 부딧쳐 보세요. 대학? 학원? 그런거 걍 먹어버리세요. 초반에는 많이 해봐야 늡니다. 저는 개인적으로 초반에 코딩의 양이 중요하다고 생각해요.
이해 하지 못해도 무작정 예제들을 따라서 코딩 하고 컴파일 해보고, 결과를 확인해보고 디버깅 해보고.. 이런 과정들을 하면서 언어의 문법도 제법 잡히고 점차 프로그래밍이라는게 어떤건지 감도 잡혀갑니다.
근데 언어를 쌩판 처음 접하면 이 방법은 무용지물이겠죠. 먹는 건줄 알고 있는 상태니까 혀를 갖다 대고 있을테닝ㅎ_ㅎ
이건 먹는 건강??
이런 분들을 위해 행동강령을 짚어 보자면 일단 책을 삽시다. C++ 책을
그런데 최근 나오는 입문 서적들 중 어떤 것들이 있는지 전혀 몰라서, 딱 "이걸 보세요!!" 라고 할 순 없구요. 다만 이러이러한 책인지 살펴봅시다. (어페가 좀 있는뎅.. 잘 모르니 좋은 책을 찾는 것도 쉽진 않으니 @_@)
예제 중심의 책인지 봅시다. 책에서 특정 소스들을 중심으로 설명하고 연습 해 볼수 있는 식으로 진행이 되는지 봅시다. 뭔가 문제를 풀거나 하는건 아니에요. 책을 폈는데 퀴즈가 들어 있다면 내려 놓고 딴거 봅시다.
챕터1 (목차1) 부분을 읽어봅시다. 이 사람이 하는 말이 한글말인지 외계어인지 읽어보고 생각해봅시다. 알아들수 있는지?? 못 알아먹겠으면 내려 놓고 딴거 봅시다.
이 부분은, 같은 걸 설명할 때에도 쉽게 풀어서 잘 설명을 할 수 도 있으나 귀찮으니 걍 어렵게(?) 막 설명 할 수도 있어요. 특히 쌩판 모르는 상황에서 처음부터 배경지식이 필요한 말들이 나와버리면, 뇌에서 파업해버립니다.
앞 부분을 읽어보면서 저자가 어떤식으로 설명과 풀이를 하는지 봅시다. 설마 챕터1에다가 어려운 내용을 적어두진 않았을 겁니다. 만약 챕터1부터 포인터가 나온다면....내려 놓고 딴거 봅시다.
이렇게 어려운 검증을 통해 얻은 책을 이제 봐야합니다. 많은 사람들이 책을 사놓고 안봅니다!!!! (저도 그러함...)
돈 주고 산다고 그 지식이 내 머리 속에 복사 되지 않으니 읽어야 비로써 돈 값을 합니다.
뭔가 병맛 같은 외계어로 쏼라 거려도 읽어봅시다.
책을 읽는 방법은 여러가지 있는데, 여러번의 속독 후 정독 / 정독 후 속독 / 정독..정독..정독..
가장 좋은 방법이야 3번 정독하는 게 좋지요. 다만 1번도 끝까지 보기 힘든데 3번이라니 ㅎ_ㅎ 저도 지금껀 살면서 3번 읽은 책이 있기나 한가?? 싶네요
어쨌든 많이 봐야 합니다. 똑같은거 자꾸 봐야해요. 우리 모두의 엄마들 말씀인 "반복 학습" 입니다.
본인이 스스로 생각했을 때 "아 난 ㅈㄴ 천재니까" 그러면 밑에 A, 그게 아니면 "난 낫 놓고 ㄱ 자도 모르는 ㅄ 이야" 하면 B 를 봅시다.
A. 처음부터 책에서 시키는대로 하나씩 해보면서 진도를 끝까지 나갑니다. 중요한건 완독!!! 끝까지 다 가서 책의 마지막장 까지 읽는게 중요! ( 천천히 정독 )
B.일단 한글만 읽어보자.
B 그룹의 경우엔 제 말을 믿고 책을 걍 끝까지 읽어봐요. "이건 교양서적이다~" 생각하고 걍 끝까지 갑시다.
아, 참고로 너무 두꺼운 책을 사면 안돼요. 입문 서적은 그냥 얇은거 사세요. 우리들은 두꺼운거 사봐야 반도 못 봅니당. 걍 얇은 책이 짱짱임
B그룹 여러분들은 걱정 하실 필요 없어요. 사람인 이상 책을 끝까지 읽을 수 있고, 끝까지 일단 읽고 봅시다. ㅎ_ㅎ
그 후엔 A그룹 처럼 하시면 됩니당.
낮부터 열심시 쓰다가 중간에 끊어 쓰다보니 오늘은 여기서 이만 줄입시당.
언젠가 블로그에다가 C/C++ 기초부터 강의형식으로 만들어 보고 싶네요. 긍데 제가 게을러서 >_<
ps. ToolFramework 2편도 써야 하는뎅 ㅎ_ㅎ 요즘 디아에 푹 빠져있다보니 ㅌㅌㅌ
'나만의 강의' 카테고리의 다른 글
C# 클래스 할당시 메모리 구성 디버깅 (1) | 2017.06.24 |
---|---|
C# 리플렉션으로 Struct(구조체 / ValueType) 수정(Set) 하기 (0) | 2017.06.19 |
[ToolFramewrok] 게임엔진과 툴을 연결하는 구조 1 (0) | 2014.03.26 |
[KGC2012 - 자료공개] WPF와 XBAP으로 만드는 개발툴 (0) | 2013.01.01 |
[자료공개] Boost Function ( 2008년 7월 4일 ) (0) | 2012.02.19 |