본문 바로가기

개인 및 일상

프로그래밍(코딩) 이 공부에 도움이 되는 이유 (2018 코딩 의무교육화)

프로그래밍, 코딩이란 Java, C, C++, Python, C#, Visual Basic, PHP 등의 프로그래밍 언어를 사용해 구체적인 컴퓨터 프로그램(소프트웨어)으로 구현하는 기술을 말한다.

이제 곧 다가오는 2018년 부터 중학교에서 코딩교육이 의무화된다고 한다. 2019년부터는 초등학교 5,6학년도 코딩교육이 의무화된다.

지금도 학생들이 공부할 과목은 산더미인데 왜 새로운 과목을 추가하는 걸까? 그 이유가 무엇인지 생각해보자.



사회에서의 코딩

현재 4차 산업혁명 시대에 전 세계적으로 떠오르는 신사업 분야(빅데이터, 인공지능, 사물인터넷IoT 등)는 전부 코딩과 관계되어있다고해도 과언이아니다.

신사업 분야 뿐아니라 기존의 대부분의 사업들까지 코딩과 밀접하게 연관되어있다.

사업을 하려면 매출원이 되는 상품을 사람들에게 널리 알려야 한다. 즉, 사업에서 홍보는 선택이 아닌 필수라고 볼 수 있다.

가장 효과적인 홍보 매체는 무엇일까? 바로 전 세계사람들이 언제 어느 곳에서는 광고를 접할 수 있는 인터넷이다.

그리고 이러한 홍보업체 또한 코딩을이용해 프로그램을 설계,제작 후 서비스한다.

하물며 농업, 수산업, 목축업 등은 경작하고 수확하고 기르기만 하면 되는것 아닐까?라고 생각할 수 있지만 유통과 판매 과정에서 요즈음시대에 인터넷을 빼놓을 수 없는 수단이다.

또 코딩되어 만들어진 최첨단 제품을 이용해 일손을 덜고 비용과 시간을 현저히 줄일 수 있다.

사무직 또한 코딩(또는 함수)을 이용한 효율적인 엑셀작업을 필요로 한다.

이처럼 코딩과 연관이 없는 사업은 찾아보기 어렵다.

하지만  위와 같은 일들은 여러 프로그래머들처럼 코딩관련 전문 종사자가 하면 될 일이다.

코딩 교육이 의무화되면 관련 종사자가 늘어날 수는 있지만 모두에게 해당되는 일은 아니다.

관련 종사자가 아니더라도 해당 직업에 대한 이해도 정도는 늘어날 수 있겠지만 말이다.

코딩교육이 의무화되는 가장 중요한 이유는 따로있다.


코딩이 공부에 어떻게 도움이 될까?

함수란 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다. 수학에서의 함수 f(x)와 의미가 비슷하다. x라는 매개변수를 받아 f라는 정의된 행위를 수행하는 기능을 하는 것이 바로 함수이다.

프로그래밍에서 함수가 없으면 프로그래밍이 거의 불가능하다고 해도 과언이아니다. 반복적으로 수행해야 하는 복잡한 기능을 변수가 조금 다르다고 몇십, 몇백번이고 반복해서 코딩할 수는 없지 않은가?

프로그래밍을 하다보면 프로그래밍 언어에 기존의 내장된 함수를 사용하기도 하지만 다른 사람이 직접 제작한 함수나 새로운 함수를 제작하여 사용해야 하는 경우가 정말 많이 있다.

여기서 하나의 훈련이 이루어진다고 할 수 있다. 아래의 글을 확인해보자.


프로그래밍의 함수가 사람에게 미치는 영향 - 이해력의 훈련도구

함수를 자신이 개발하는 프로그램에 적용하기 위해서는 해당 함수에 대한 이해가 완벽히 이루어져있어야한다.

당연히 자신에게 필요한 함수를 제작하는 경우엔 더욱 더 깊은 이해가 필요하다.

하루에도 여러 가지의 새로운 함수를 접하고, 만들면서 함수들의 알고리즘을 이해하는 행위가 훈련이 되는 것이다.

이해하는 능력, 즉 이해력이 증가한다는 말이다.


필자의 생각에는 수학을 공부하는데 코딩이 절대적으로 도움이 될 수밖에 없다.

프로그래밍을 하면서 함수를 많이 접해본 사람은 수학에서 새로운 개념이나 함수가 등장한다고 해도 전혀 겁먹지 않는다.

겁을 먹을 필요가 없다. 그 원리를 분석하고 적용 방법을 이해하면되기 때문이다. 프로그래밍의 함수와 마찬가지로 말이다.


프로그래밍에는 생략이 없다 - 논리적 사고의 집약체

프로그래밍에서는 알파벳 한자라도 오타가 났다간 프로그램이 오류를 일으키거나 의도와 다르게 오작동을 한다.

절대 생략할 수 없는 것이다. 컴퓨터에게 '그냥 이정도는 좀 넘어가주면 안돼?' 라며 얼버무려 넘기려고해도 컴퓨터는 절대로 이해할 수 없다.

이 과정에서 흔히들 이야기하는 논리적 사고력이 자신도 모르게 증가하게 되는 것이다.

논리적 사고란 사고의 전개에 있어서 전후 관계가 일치하고 있는가를 살피며 원인과 결과를 명확히 하는 사고를 의미한다.

하나의 프로그램을 개발하려면 처음부터 끝까지 생략없이 모든 과정을 이해해야한다.

함수 하나하나마다 원인과 결과를 구체적으로 생각하여 설계하여야한다.

공부를 하면 어떤 분야이던간에 제목이 있고 대단원이있으고 소단원이 있다.

프로그래밍을 하면 이 전체를 인과관계에 따라 이해하려는 사고방식이 생겨난다.

말그대로 논리적 사고를 하게된다는 말이다. 

부분이 있는 이유는 전체가 있기 때문이다. 부분을 볼때에도 전체와 연관지어서 생각하게 된다.

따라서 분야에 대한 이해도의 증가속도와 학습능력이 빠를 수 밖에 없다.


세계가 원하는 창의적 인재

여러 코딩교육 관련 기관들이 슬로건으로 '창의적 인재'라는 단어를 언급하곤 한다. 이는 당연한 말이다.

왜 당연할까? 앞서 말했듯이 코딩은 논리적 사고력을 길러주며 어떤 분야이던간에 빠르게 이해하고 학습할 수 있게 해준다.

창의성이란게 뭔가? 위키백과에 따르면 창이성이란 [새로운 생각이나 개념을 찾아내거나 기존에 있던 생각이나 개념들을 새롭게 조합해 내는 것과 연관된 정신적이고 사회적인 과정]이다.

새로운 생각이나 개념을 찾아내는 것은 또 어떻게 한단 말인가? 당연히 기존의 생각이나 개념을 아주 깊이 이해하고 있어야한다.

그래야만 기존의 생각이나 개념을 새롭게 조합하는 일 또한 가능한 것이다. 앞서 설명했듯이 코딩은 그것을 가능하게 해준다.


결론

글을 한 줄로 요약하자면 '코딩을 열심히하면 이해력과 논리적 사고력이 증가하며 창의적 인재가 될 수 있다.'이다.

이게 모두에게 해당되는 사실이라면 벌써 전부 창의적 인재가 됐을 것이다.

하지만 어중간한 코딩공부로는 필자의 설명처럼 되기는 힘들다.

코딩은 진득한 인내심을 필요로 한다. 머리가 깨지는 고통 또한 수반할 때도 있다.

그 고통을 인내하면 반드시 보상이 있을 것이다.


요즘 시대에 필수적으로 떠오르는 '창의적 인재, '파이형 인재' 등과 '논리적 사고'는 매우 밀접한 연관이 있다.

2018년 부터 코딩교육이 의무화되는 것은 어쩌면 필연적인 일이었을 수도 있겠다.

이 글을 통해 한 번쯤 그런 생각을 해보는 계기가 되었으면 좋겠다.


이 글은 여러 정보들과 저의 주관적인 의견을 바탕으로 작성했습니다.