🧨공지사항및 잡담

프로그래밍 입문 하시는분들에게

Mawile 2022. 7. 26.
728x90

이 글을 보러 오시는분들은 아직 프로그래밍을 어떻게 공부해야될지 방향성이 안잡하시는분들을 위한 글입니다.

물론 이 글은 저의 경험과 주관을 기반으로 작성된 글이기때문에, 맹신한다기보다는 참고정도로만 생각해주셨으면 좋겠습니다.

 

🥅  목표를 정하자

우선 프로그래밍 공부도 목표가 없으면 중간에 헤매게됩니다.

또, 목표가 없는 공부를 해도 헤매고 얼마못가 흥미가 점점 사라져서 오래 못갑니다.

프로그래밍 공부는 저가 생각하기에는 흥미를 못느끼면은 공부하기 어려운분야이라고도 생각합니다. 흥미를 느끼려면 저에게 뭔가 자극이 되는 요소가 필요한데요, 저는 자극이 되는 요소를 얻기위한 도구로 토이 프로젝트나, 공부가 있다고 생각하고 있습니다.

그리고 그러한 요소들을 기반으로 자신만의 목표를 정하는것이죠.

 

저가 흥미를 깊게 느끼는분야는 컴퓨터그래픽스 쪽입니다. 애초에 저가 무엇인가를 깊게 공부하고 전문적으로 학습하는걸 좋아하는 성격인지라, 이것이 컴퓨터그래픽스 라는 특정분야에 국한되는 이야기는 아니다만...

개인적으로 뭔가를 연구하고 내 생각을 기반으로 구현해냈을때의 성취감은 말로 표현할 수 없을정도죠.

 

 

저는 초등학교때 마인크래프트(Minecraft PE) 라는 게임을 좋아했습니다.

당시 저가 초등학교 4학년이였고 그당시에는 블록런처(BlockLauncher) 라고 해가지고, 마인크래프트에 스크립팅기능을 넣어 기존게임에서는 없는 기능들을 유저들이 직접 구현하도록 만든 앱이 있었어요.

 

그 앱을 사용해서 저가 직접 게임내의 아이템을 만들고, 모드를 만드는등.. 그런것들을 저의 블로그에 공유하기도 했습니다. 지금 생각해보면 진짜 재미있는때였는데 중학교 1학년에 올라가고 나서 그만뒀죠..

 

사실 이걸 2년전..?에도 찾아봤는데 유행이 많이 지났더군요. 그래서 할려다가 말았습니다.

여러분도 아마 머리속으로 생각하시면서 내가 뭐를 좋아했었나?? 뭐를 만들고 싶은가?? 한번 생각해보시기 바랍니다.

 

🥅  언어가 주요(main)공부내용이 되어서는 안된다

이 말은 프로그래밍 언어를 공부하지 말라는 이야기가 아닙니다.

프로그래밍 언어만을 공부한다고해서 무엇인가 생산성있는 플랫폼이나 프로그램을 만들기 어렵기 때문에 프로그래밍 언어만을 공부하지는 말라는소리입니다.

 

프로그래밍 언어공부는 어디까지나 도구에 불과하며, 우리가 실제로 유용하거나 생산성있는 프로그램을 위해 알아야할 가장 기본이 되며 최소한 알아야하는 개발입문의 시작 이라고 생각하시면 됩니다.

 

실제로 무엇인가 만들때에는 프로그래밍 언어에 대한 이해도 충분히 중요합니다만, 하드웨어 구조, 다른분야의 지식이 메인이 되어 생산성있는 결과물을 만들 수 있습니다.

 

쉽게 은유하자면, 언어는 공부하기위해 필요한 필기도구이며, 문제를 푸는 뇌는 수학, 알고리즘, 디자인, 음악, 패턴, 과학 등과 같은 지식이 필요하다고 생각합니다.

 

하지만, 당연히 예외적인 사항은 존재합니다.

진짜 언어만을 공부하고싶으신분들은 이런문제에 관하여 상관하지 않으셔도 괜찮다고 생각합니다.

하지만, 진짜로 무엇인가 의미있는 결과물을 만들고싶으신분들은 언어공부에만 머무르시면 안된다고 말씀 드리고 싶습니다.

 

🥅  그러면 구체적으로 어떻게 공부해야 하는것인가?

사실 프로그래밍이라고 다 같은 프로그래밍이 아닙니다.

이 분야가 워낙 광대하게 넓기 때문에 딱 정해진 로드맵이라는게 없죠.

또한, 프로그래밍이라고 하더라도 다 같은 프로그래밍이 아니기에 각 분야별로 공부해야하는것도 매우매우 달라집니다.

 

예를들자면, 웹프로그래밍은 수학보다는 디자인감각이 실제 생산성있는 플랫폼개발에 중요한 요소로 작용하며, 프로그래밍언어를 다루는게 중요합니다..

반면, 게임프로그래밍은 선형대수와 미적분에 관한 기본적인지식과 더불어 커스텀으로 물리엔진을 직접 구현한다고하면

동역학에다가 고전물리까지 알고있어야 개발에 있어서 매우 유리합니다.

게다가 일반적으로 학문적인 물리와는 달리 실제 게임개발에 쓰이는 게임물리는 일반적인 물리와는 성질이 좀 다릅니다.

때문에, 정말 프로그래밍공부는 정해진길이 없습니다.

 

그래서 저가 추천드리는 방식은 위에서 설명드린바와 같이 흥미를 느끼시는 분야(웹, AI, 게임, 리버싱 등등)를 찾아보신다음, 언어를 고르시고 관련지식들을 천천히 습득해나가는 방향을 추천드려요.

 

예를들어서 게임분야라고 한다면, 저의 경우 이런식으로 대충 로드맵을 짤수있죠.

나의 초간단 게임개발 로드맵

 

https://whimsical.com/L8jBPaaYXMXg21z6THL5nj

 

whimsical.com

 

🤌 Issue Q&A

여기서부터는 프로그래밍과 관련된 갖가지 이슈에 관한 질문과 답변에 대한 형식으로 진행하겠습니다.

저의 주관적인 의견이기때문에 참고만 해주시기 바랍니다.

 

 

🥅  프로그래밍은 재능이다...?

일단 저의 대답은 아니요라고 답하고 싶습니다.

최소 지금까지 저가 봐왔던 모든 좋은 개발자분들은 모두 노력파로 보였습니다.

다른사람들이 보이지 않는곳에서 얼마나 열심히, 얼마나 공부에 시간을 투자했을지..

 

최근 한 시니어개발자분의 깃허브를 보면은 꾸준히 무엇인가 커밋되어 올라가며,

가끔씩 책에 관한 내용도 올라오고는 합니다.

저는 가끔씩 슬럼프가 오면은 공부에 대한 동기부여를 이러한 시니어 개발자분들의 생각과 결과물들을 기반으로 받는편입니다.

 

저가 생각하건데, 좋은개발자분들은 모두 프로그래밍에 관하여 오랜기간 최선을 다해왔고 그에 알맞은 위치에 서 계시는거라고 생각합니다.

 

또한, 저도 매번 프로그래밍공부를 하면서 느끼는것중하나가 프로그래밍은 절대로 재능만으로 커버할수없습니다.

프로그래밍 공부해보신분들은 아시겠지만, 공부량이 어마무시합니다..

쉽게 은유해서 말씀드리자면, 재능만으로 프로그래밍이라는 학문을 커버하겠다는 소리는 수능시험문제들을 찍는것만으로 고득점을 받겠다는 소리입니다.

 

 

🥅  수학을 잘하면 프로그래밍도 잘한다...?

일단 저의 대답은 보편적으로는 아니지만, 분야에 따라 다르다 입니다.

상식적으로 생각해보면 당연하게 납득하실 수 있을 이야기이지만, 웹에서 수학이 쓰일 일은 거의 없습니다.

그에 반해 게임쪽에서는 수학이 밥먹듯이 쓰입니다.

 

웹게임을 만들지 않는이상, 웹에서 선형대수가 쓰이는가..? 절대아니죠.

반대로 게임쪽은 선형대수를 몰라도 만들수 있는가..? 음... 아마 매우 힘들겁니다.

 

기본적으로 선형대수에 행렬과 더불어 벡터, 거기에 포함된 여러가지 수학법칙등과 같이 매우 기본적인 지식마저 모른다면 만들수는 있지만, 응용은 전혀 하지 못할겁니다.

 

결론적으로는 수학을 잘한다고해서 무조건적으로 프로그래밍을 잘하는것도 아닙니다.

둘은 밀접한 학문이지만, 엄연히 공부하는방식이 다릅니다.

진짜 상식적으로 생각해봅시다..

수학을 공부하면서 프로그래밍도 같이공부하면 당연히 둘 다 잘하겠지만,

프로그래밍을 따로 공부하지않아도 잘한다는것은 정말 말이 안되는 이야기이죠.

 

이 말은 위에 나와있는 "프로그래밍은 재능인가?" 라는 이슈랑도 맞물립니다.

프로그래밍은 그에 해당하는 노력을 하지않으면 절대 잘할수없다고 생각하는 분야입니다...

 

 

🥅  마치며...

어디까지나 저의 경험을 기반으로한 글이기에 참고만 해주시기를 바라며,

프로그래밍 입문자분들께 많은 도움이 되었으면 좋겠습니다.

궁금한점은 댓글로 질문주시기 바랍니다.

728x90

'🧨공지사항및 잡담' 카테고리의 다른 글

생존여부  (0) 2023.10.30
방학에 할일 정리 2 (수정: 2022-12-29)  (0) 2022.11.23
방학에 할일 정리  (0) 2022.07.09
나의 공부 로드맵  (0) 2022.06.02
(구) 나의 공부 로드맵  (0) 2022.03.14

댓글