안녕하세요 콩딱입니다.

오늘은 무려 2개의 글을 적게 되었는데요. 아침에 한경 컨센서스를 통해 주식관련 글을 적다가 오늘은 이러한 글을 적게 되었습니다.

코딩을 어떻게 배우는가?라는 주제로 이야기를 나눠볼려고 합니다.

 

지난번 글에서 저는 코딩학원에 대한 이야기를 했었습니다. 관련 내용은 아래의 글을 참조해 주세요.

it-kkongdak.tistory.com/52

 

컴퓨터학원(코딩학원)을 다녀야 할까요? (광고X)

안녕하세요 콩딱입니다. 오늘은 코딩학원을 다녀야 하는지에 대해서 이야기 해보는 시간을 가지겠습니다. 많은 전공자 혹은 비 전공자가 코딩학원 혹은 국비지원 컴퓨터학원을 다니게 됩니다.

it-kkongdak.tistory.com

 

 

학원을 다니던 혼자 독학을 하던 중요한 부분이 있습니다. "코딩을 어떻게 배우나요?" 사실 이것보다 코딩을 어떻게 제대로 배우나요가 맞는 말이라고 생각합니다.

 

 

 

많은 분들이 코딩에 대해서 이야기를 할때 프로그래밍 언어라고 이야기 합니다. 즉 언어라는 관점으로 이야기를 많이 하게됩니다.

저도 당연히 해당 이야기를 하고 넘어갈 생각입니다. 왜냐하면 이것만이 코딩에 대해서 제대로 알려줄 수 있는 방법이기 때문입니다.

 

저희 아이도 요즘 엄마라는 말을 자주합니다. 하지만 아빠라는 말을 아직 못하는 상황입니다. (아빠라서 슬프지만...)

엄마라는 말을 하기위해서 아기는 무수히 많은 말을 들었을 것입니다. 그러고 나서 아!! 저 사람이 나의 엄마구나. 엄마라고 부르면은 나를 바라봐주네. 엄마라고 부르니까 내가 원하는것을 잘들어 주는구나 라고 생각하게 될것입니다.

 

여기에서 중요한 부분은 무수히 많은 훈련이 존재했다는 것입니다. 코딩도 동일하게 적용할 수 있습니다. 무수히 많은 코딩 훈련을 통해서 한 사람의 프로그래머로 거듭나게 되는것입니다. 사실 프로그래머 보다 코더?(낮은 표현이지만)가 된다는게 맞을것 같습니다.

그렇다면 우리는 어떠한 훈련을 거듭해야지 되는것일까요? 어린아이의 경우 알아서 부모님이 훈련을 시켜주지만 우리는 그렇지 않은경우가 많습니다. 또한 좋은 훈련이더라도 우리는 거부 할 수 있기 때문입니다.

 

 

 

옳바른 코딩에 대한 훈련


코딩에서 가장 기초가 되는것이 무엇일까요?

흔히들 문제해결 능력, 논리력, 이해력 뭐 기타등등의 것들을 이야기 하는경우가 많습니다. 하지만 코딩으로 들어와서 가장 기초가 되는것은 바로 문법입니다. 일반적인 언어의 경우 문법에 맞지 않는 말을 사용하더라도 문제가 없습니다. 그 언어를 받아들이는 대상이 알아서 받아들여주기 때문이죠. 이 글 또한 많은 맞춤법과 띄어쓰기가 틀릴것입니다. 하지만 여러분이 읽는데 거북함은 들수있지만 아무런 문제는 없습니다.  이 차이를 받아들여야 합니다. 우리가 말하고자 하는 대상은 생각하는 대상이 아닌 컴퓨터입니다. 그렇기 떄문에 컴퓨터와의 대화에는 옳바른 문법으로 대화를 진행해야지만 컴퓨터가 알아들을 수 있습니다.

 

때문에 가장 중요한 것은 문법입니다. if, for, switch, while, struct, class 등의 문법은 가장 기본이 되는 지식입니다.

지식을 활용하는 방법은 그 이후의 문제입니다. 여러분이 처음으로 수학을 배울때를 생각해 봅시다.

사과1개와 사과1개가 있다면 사과는 몇개인가 2개!! 이렇게 배우게 됩니다 이것을 식으로 나타내면 1+1 = 2라는 공식이 성립되는 것입니다. 여기서 +, = 는 문법입니다. 이 2가지 기호를 바탕으로 어떻게 문제를 풀어나가는지를 반복 숙달하는 과정이 공부라고 이야기 합니다.  여기에서도 +와 =는 당연하다고 생각하고 넘어가게 됩니다. 이 당연한것이 바로 문법이라는 것입니다.

 

그렇다면 문법은 어떻게 숙지하는게 좋을까요?

어떠한 언어를 공부하는 방법은 다양합니다. 패턴형식으로 공부도 하고, 마음에 새기는 방식으로 공부도하고, 암기도하고 다양한 방식을 활용합니다. 그것은 자신에게 맞는 방식을 사용하면 됩니다. 하지만 저는 실제로 언어를 어디에 사용하는게 맞는지에 대한 공부를 추천드립니다. "엄마, 아빠"라는 단어를 읽히면 엄마, 아빠라고 불러봐야 합니다.

 

동일하게 문법을 읽히면서 문법을 사용할만한 곳에서 사용을 해봐야 한다는 것입니다. 그를 통해서 실제로 머리로 이해하는것을 넘어서 체득을 하게 되는것이라고 생각됩니다. 그렇다면 어떻게? 라는 물음이 생기게 됩니다. 여기에서는 쉬운방법이 있습니다. 책 한권에 있는 예제를 모조리 작성해 보는것입니다. 문법을 읽히면서 나오는 모든 문제들을 직접 해결도 해보고 예제로 나온 모든것을 따라서 작성하는 것입니다.  책 한권이 나오기까지 쉽지 않고 저자가 필요없는 부분을 넣을만큼 멍청하지도 않습니다. 모든것에는 의미가 있으며 그것을 따라하는 방식이 가장 좋을 수 있습니다.

 

 

문법 넘은 세상은 어떠한 세상일까?

문법을 이제 완벽하게 숙지하였고 사용할 수 있다면 (사실 이런게 있다고 알고 찾아서 사용할 수 있으면 됩니다) 무엇이 문제일까요?

그떄부터 이제 프로그래머의 세계로 넘어가게 되는것입니다. 기초지식들이 필요합니다. 하지만 아직 여러분에게 기초지식이라는 것이 필요한지에 대한 의문이 들기 시작합니다. 왜냐하면 우리는 이제 걸음마를 시작했을 뿐이니까요. 걸음마를 시작했다면 이제 뛰어다녀도 보고, 계단도 오르락 내리락 해봐야 합니다. 그 과정에서 엎어지기도 하고, 무릎도 까져보고 새살도 돋아나고 하면서 정상적으로 걸어다닐수 있어지는게 아닐까 생각합니다.

 

그렇기 위해서 훈련을 거듭해야 합니다. 이 과정에서 좋은것이 복사 & 붙여넣기 입니다. 실제로 CTRL + C, CTRL + V를 하라는 것이 아닙니다. 우리에게는 많은 프로그래머들이 작성한 github라는 공간이 있습니다 이 공간에서 다양한 코드들을 확인해보고 작성해보고 코드의 의미를 파악해 보는 훈련의 시간을 거쳐야 합니다.

 

처음에는 작은것부터 시작하는게 좋습니다 기본이 되는 자료구조, 알고리즘등에 대해서 파악을 시작하는것입니다. 정렬알고리즘도 책을 통해서 익힌것이 있을것입니다. 자료구조 책을 사서 공부를 하는것도 좋고 인터넷 검색을 통해서 정렬알고리즘등을 찾아볼수도 있습니다. 여기서 중요한건 단순 복사&붙여넣기로 끝나서는 않되고 그것을 이해하고 활용할 수 있어야 한다는 것입니다.

 

처음은 복사&붙여넣기로 해보고 다음번 나온 알고리즘은 직접 작성해보고 github를 통해서 정답을 찾아서 비교도 해봐야 합니다.

남들의 방식과 나의 방식이 무엇이 차이가 있는지 알아과는 과정이 필요합니다.

 

이러한 과정속에서 차근차근 컴퓨터의 지식들이 들어오지는 않지만, 여러분의 코딩능력은 발전해 나갈것이라고 저는 믿습니다.

 

 

Posted by 콩딱파파
,