관리 메뉴

새로운 시작, GuyV's lIfe sTyle.

Part 2. 프로그래밍을 공부하며 들이면 좋은 버릇 또는 조언[1] 본문

ⓟrogramming/웹프로그래밍 제대로 배우기

Part 2. 프로그래밍을 공부하며 들이면 좋은 버릇 또는 조언[1]

가이브 2020. 2. 2. 01:29

이번 글에서는 당연한 얘기를 좀 할까 합니다.

 

왜?? Why?? 어째서??

간단하게, 이제 막 말을 배우기 시작하는 어린아이처럼 "엄마, 이건 왜 빨간색이야?", "아빠, 저건 왜 기울어져 있어?" 같이 끊임 없이 의문을 가지는 것을 추천합니다. 자매품으로,

안되는 것을 당연하게 여겨라.

가 있습니다. 원하는 대로 작동을 안하면 "왜 안되지?"라고 절로 나오겠죠. 잘 작동을 해도 "왜 작동하지?" 라고 생각해보는 것도 중요합니다. 

일상생활에서도 뭔가에 대해 의문을 가지면 깊숙한 곳으로 들어가기가 쉽거든요. 컴퓨터는 절대적으로 객관적인 사실에 의해서 돌아가는 기계일 뿐입니다. "잘 되야 되는데 왜 안되지?"로 시작하지만 결국에는 컴퓨터가 이긴 게임입니다. 100%확률로 사람이 시킨 대로 동작하는 컴퓨터인데, 당연하겠지요? 

프로그래밍 언어는 누군가(사람)가 만든 프로그램의 일종입니다. 그 사람만이 완벽하게 잘 작동할 수 있도록 코딩하는 것이 몸에 배겨 있고, 언어를 만든 사람이 아닌 사용하는 다른 사람들은 언어를 만든 사람이 내놓은 문법책을 끊임없이 보고 언어가 잘 작동하게 노력해야 됩니다. 그러니, 당연히 잘 안됩니다. 잘 되는게 이상하지 않나요??

글을 읽으시는 분이 게임을 하나 만들었다고 가정해봅시다. 간단하게 총알을 피하는 게임이라고 하죠. 이 게임을 다운받은 사람은 조작은 다른 게임처럼 "ASDW"키나 화살표 키로 하겠지. 라고 생각할 확률이 높겠죠? 그러나, 진실은 게임을 만든 나만이 알고 있죠. 게임을 할 사람들에게 알려주지 않으면 각자의 상상력일 뿐이고, (글 뒤에 다시 언급할 내용이지만) 팩트는 아무도 모릅니다. 이게 함정이예요. 컴퓨터 앞에서 아직 익숙하지 않았다면, 내 생각을 과감하게 버리세요.

 

1개를 정확하게 이해하면 비슷한 100개를 안해봐도 이미 해본 것과 다름없다.

당연한 말인데, 책이나 강좌를 보면서 생각없이 그냥 따라하고, 그 날 배운 것들을 다시 해보면 내가 바보였던가?? 왜 분명 배웠는데 못하지? 하며 자책하시는 분들이 많을 것입니다. 함정에 빠지신 건데요. 만약 달달 외우신다면 배운 그대로 다시 리플레이 해보면 잘 돌아가겠죠. 그런데 이걸 어디다가 써먹지? 라는 질문에는 답하기 어려울 것입니다. 그리고, 무언가를 만들어 내는게 중요한게 아니라는 것입니다. 기본 문법들이 모여서 완성품이 나오게 되겠죠? 

문법을 하나 이해를 했다면 내가 표현할 수 있는 말이 예제에서 다루지 않은 것들도 막 내뱉을 수 있는 것과 같은 원리라고 생각하세요. 하나 이해했다면 이미 많은 것을 알고 있는 것과 다름이 없습니다. (검증을 안했을 뿐이겠지만요)

 

이해하지 못했다면 밤을 새어도 절대 해결 안된다.

 "A만들자~" 하고 해봤는데, 뭔가 원하는 기능이 구현이 안되는 겁니다. 대표적인 이유로는 만들기 전에 체크를 하지 못했거나 놓쳤기 때문이겠죠. 일단 키보드부터 손이 가는 경우가 많습니다. 만약에 내가 만드는 프로그램이 정확히 이해를 하지 않는 상태로-주로 누군가가 시키니 수동적으로- 키보드에 손을 얹어 코딩을 시작했다면, 다시 지우고 새로 작성할 확률이 높습니다. 정말 이해하고 코딩한게 맞을까요? 이해하지 못했다면 아예 키보드에 손을 얹지 않기를 추천합니다.

 

직접그린...

 

 

공부할 때는 완성하지마라.

결과물, 중요합니다. 꼭 내 눈으로 봐야 희열도 생기고 그렇지요. 한 두번 정도는 추천합니다만, 글쎄요.. 시간 낭비입니다. 앞서 말씀드렸지만, 내가 이해를 했다면 결과는 잘 나오게 되어있습니다. 이 부분은 의심하지 마세요. 정 시간들여 코딩을 해서 답을 봐야겠다. 개인적으로 추천해 드리는 것은, "아, 될 것 같네." 생각이 들면 차라리 "그럼 다른 방법은 뭐가 있을까?"를 고민해 보는것을 추천합니다. (사실 배움의 길은 갈 길이 멀어요.. ^^)

완성보다는 과정입니다. "프로그래밍에서는, 삽질의 결과물 보다 방금 내가 파낸 흙이 더 중요하다"라는 말을 하고 싶습니다.

 

쓰고 싶은 글이 더 있긴 한데요, 지루하니 앞으로 한번 씩 언급을 하도록 하겠습니다. 

오늘은 여기까지입니다.

반응형
Comments