인생멘토·코딩교육

[코딩교육] 프로그래머가 코딩교육을 수행하기 어려운 이유

Buddhastudy 2022. 3. 23. 18:58

 

 

이번 강의에선 많은 사람들이 혼동 하고 있는

한 가지 이슈에 대해서 정리하는 시간을 가지려고 합니다.

 

여러분은 이번 강의를 듣고 나시면

왜 순수 프로그래머들이 코딩교육을 수행하기 어려운지에 대한 맥락을 이해하실 수 있게 될 거예요.

 

코딩교육과 프로그래밍교육이 서로 같은거 아닌가요하고 의아하게 여기실 수도 있을 것 같아요.

그런데 이 둘은 서로 다른 교육이라는 걸 분명히 할 필요가 있습니다.

이 둘을 잘 구분하지 못하면 오만가지 오해가 생길 수 있거든요.

일단 용어들부터 구분을 하는 시간을 가져볼께요.

 

코딩과 프로그래밍, 이 두 용어들은 어찌보면 비슷하게 보이긴 하거든요.

코딩하는게 결국 프로그래밍하는 거랑 똑같은 거 아니야 하고 생각할 수도 있어요.

 

그런데 한국의 프로그래머들은 실제로 이걸 굉장히 다르다고 구분하고 있습니다.

프로그래머들은 프로그래밍을 소프트웨어를 개발할 때 필요한 설계작업에 가까운 것으로 간주하고 있습니다.

 

이건 좀 포괄적이고 고차원적인 개념입니다.

프로그래머들은 자신들이 프로그래밍을 하는 사람이라고 생각하지

단순하게 코딩하는 사람이라고 생각하지 않거든요.

 

이게 무슨 말이냐면

프로그래머들은 코딩을 설계한 것에 따라 한 줄 한 줄 컴퓨터 코드를 작성하는 것으로 여긴다는 거예요.

코딩하는 일엔 그래서 고차원적인 디자인 작업이 포함되어 있지 않아요.

그냥 설계한대로 한 줄 한 줄 코드를 작성하는 것을 프로그래머들은 코딩이라고 생각해요.

 

그래서 코딩하는 사람들을 프로그래머들은 코더라고 부릅니다.

프로그래밍 하는 사람을 프로그래머라고 부르는 것과 비슷한 맥락이죠.

 

수준 높은 프로그래머들은

자신 들을 아키텍트라는 호칭으로 부르고 싶어하기도 해요.

영어로 아키텍트라고 하면 건축가라는 의미가 있어요.

즉 어떤 소프트웨어를 건축한 사람이 되고 싶어하는 거에요.

 

어떤 건물을 건축하려면 수많은 사람들이 필요합니다.

전 집을 지어 본 적은 없어서 건축에 대해서는 잘은 모르지만

대략 건축하는 일에 대해 예상해보면 기초를 파는 사람들도 있어야 하고

콘크리트 작업에 수도관 전기배선 외장재 도장 등등

굉장히 많은 일들이 이루어져야 합니다.

 

그런데 건축가가 이런 모든 작업들을 실제로 하지는 않죠.

건축가는 건물을 설계하고 설계한대로 필요한 사람들을 시킵니다.

 

이런 맥락과 비슷하게 프로그래머는

소프트웨어를 설계하는 사람이란 의미로

프로그래머들은 자신 들을 생각하고 있고

자신이 설계한대로 코딩을 하도록 코더에게 일을 줍니다.

 

그러면 코더들은 설계도를 보고 코드를 한 줄씩 한 줄씩 작성하면서

코딩을 하게 되죠.

보통 이런 것을 외주를 준다고 합니다.

 

제가 예전에 다녔던 회사에서도 외주를 굉장히 많이 줬었습니다.

예를 들면 인도 사람들은 상대적으로 임금이 한국인들과 비교해서 싸잖아요.

 

그래서 한국의 프로그래머들이 인도 개발자들에게 외주를 많이 줬습니다.

소프트웨어를 개발하라고 시켰던 건데요

한국 프로그래머들이 인도 개발자들에게 뭘 주냐면 그냥 설계도를 줍니다.

설계도엔 소프트웨어가 가지고 있어야 할 기능들이 설명되어 있고

어떤 모습을 해야 하는지에 대한 요구사항들이 자세하게 기술되어 있어요.

 

그럼 인도의 개발자들이 이걸 보고 소프트웨어를 요구 받은 대로 개발하는 겁니다.

여기서 인도 개발자들이 바로 코더라고 하는 거죠.

이분들은 소프트웨어를 설계하지 않습니다.

그냥 코딩만 하는 거죠.

 

그래서 제가 말씀드리고 싶은 건 이거에요.

프로그래머들은 코딩이란 용어를 무척 하찮은 일이라고 생각하는 경향이 큽니다.

프로그래밍과 코딩은 마치 갑과 을의 관계와 비슷하다고 생각하거든요.

 

프로그래머가 코더에게 일을 주거든요.

그런데 돈은 누가 더 많이 받을까요?

프로그래머가 당연히 훨씬 많이 받습니다.

 

그리고 그 소프트웨어를 개발한 사람은 누가 될까요?

프로그래머가 되죠.

그건 마치 어떤 멋진 건물을 보면서 이걸 누가 지었냐고 물어볼 때랑 비슷한 맥락이에요.

건물을 누가 지었냐고 물어봤을 때

우린 시멘트를 바른 사람, 수도공사를 한 사람, 전기배선 한 사람을 물어보는 게 아니잖아요.

건물을 설계한 아키텍트를 지칭하는 거죠.

그렇죠, 아키텍트가 돈도 가장 많이 벌고, 모든 명예도 가지고 가는 겁니다.

 

이런 이야기를 왜 해드리냐면

이런 실제적인 프로그래머의 업무 문화 때문에

코딩교육과 관련해서 불필요한 오해가 생기기 때문이에요.

 

코딩이란 것이 프로그래머들에겐 하찮은 일이라는 거에요.

그럼 코딩교육에 대해서 프로그래머들이 어떻게 생각할까요?

비슷한 맥락으로 코딩교육도 하찮게 생각하지 않겠어요?

 

많은 분들의 반응이 이럴 수 있어요.

무슨 코딩을 어렸을 때부터 가르치냐?

설계하는 걸 가르쳐야지 무슨 코딩 스킬을 가르칠려구 하냐?

어린 애들을 어렸을 때부터 개발자로 만들려고 하냐 등등

이럴 수 있습니다.

 

이분들은 본인들이 프로그래밍을 잘하는 사람일 수는 있어도

컴퓨터적 사고력을 주장하는 윙 교수의 논문이나 강의를 보지도 않고

그래서 그게 뭔지도 모르는 상태에서

코딩교육에 대해서 여러 가지 부정적인 의견들을 제시한단 말이에요.

 

프로그래머들은 프로그래밍을 잘하는 사람들이니까

어떤 권위가 있단 말이에요.

그럼 코딩교육에 대해서 궁금해하는 사람들이 누구에게 조언을 듣고 싶어할까요?

프로그래머들 아니겠어요?

 

이건 다분히 코딩교육이란 이 단어 때문에 발생하는 오해인 것 같아요.

프로그래머들은 코딩을 하찮게 여긴다.

그래서 코딩교육도 쓸데 없는 것이다.

뭐 이런 논리가 성립이 되는 거죠.

 

그래서 코딩교육이라고 부르지 말고

교육부에서 사용하는 것처럼 소프트웨어 교육이라고 하는게 차라리 훨씬 낫거든요.

 

제 개인적으로 소프트웨어 교육도 그렇게 썩 맘에 드는 명칭은 아닌데

코딩교육이란 명칭 자체가 오해를 불러 일으키니까

소프트웨어 교육이라는 명칭을 쓰는게 낫다고 생각해요.

 

그런데 또 문제는 사람들이 코딩교육이라는 명칭을 훨씬 익숙하게 더 많이 사용하고 있어요.

아마 그건 코딩교육이란 명칭이 더 짧기도 하고, 발음도 쉽고, 더 친숙하게 느껴지기 때문이 아닌가 싶거든요.

 

제 개인적으로는 코딩교육이라고 하지 말고

컴퓨터적 사고력교육이렇게 하면

오해가 일어날 여지가 전혀 없을 거라고 생각해요.

의미가 분명하잖아요.

이게 무엇을 위한 교육인지가요.

 

그런데 코딩교육이라고 부르니까

너무 많은 사람들이 코딩교육에 대해서 오해하고 있어요.

 

그리고 그 오해의 주요 근원이 프로그래머들

혹은 프로그래밍에 대해 약간이나마 아는 사람들 때문이다라고 생각하고 있어요.

 

제 블로그 이웃 중에 파워블로거 분을 알고 있는데

이분이 되게 엘리트세요.

교육 많이 받으셨고 현역이셨을 때에

프로그래머 활동을 하셨고 남편분도 프로그래머에요.

그래서 교육에 대해서 굉장히 많이 알고 있으세요.

그러니까 파워블로거가 될 수 있으셨겠죠.

 

그래서 이분 이 자신의 블로그에 코딩교육에 대한 의견을 정리해서 쓰신 적이 있어요.

굉장히 길게 쓰셨는데 요점이 뭐였냐면

코딩교육은 시기상조다

그건 나중에 해도 된다.

애들 코딩교육을 사교육으로 시키려면

학원에 묻지 말고 개발자에게 물어보는 것이 물어보시는 게 좋다.

수학과 같은 교육이 훨씬 더 중요하다.

코딩교육에 앞서야 할 공부들이 있다

뭐 이런 것들이었습니다.

 

이분이 파워블로거라서 댓글들이 어마어마하게 많이 달렸었는데요

댓글들 대부분이 애들 엄마들 이란 말이에요.

 

내용 대부분은

아 그렇군요 코딩교육은 시기상조 군요

더 중요한 교육을 받게 해야 겠어요

이런 댓글들이었어요.

 

제 입장에선 이게 좀 기가 찬 일이죠.

이분이 파워블로거이기 때문에 많은분들이 이분을 믿고 있단 말이에요.

신뢰한다는 말이죠.

그래서 그분의 의견을 사람들이 곧이 곧대로 받아들이는 걸 봤습니다.

 

만약 이분이 만약 윙 교수의 논문을 한 번이라도 읽어 봤다면

그런 의견을 쓰시지 않으셨을텐데

영향력이 있는 그런 분이 그런 의견을 쓰시니까

잘못된 개념이 널리고 퍼지고 있었다는 거예요.

 

--

정리하자면

코딩교육은 코딩을 가르치는게 목적이 아니라는 거에요.

코딩교육이 코딩을 가르치는 것 만이 주된 목적이라면

기존의 프로그래밍 교육과 크게 다를 바가 없어지는 것이거든요.

 

코딩교육이

개발자를 만들어내는 교육이 아니라는 걸 분명히 할 필요가 있습니다.

 

그리고 프로그래머들은

컴퓨터와 관련한 전문가라고 할지라도

코딩교육에 대해서는 조언할 입장에 있지 않다는 점이에요.

 

왜냐하면 그분들은 코딩교육을 받아본 적이 없는 세대에요.

코딩교육은 아이들을 대상으로 하고

아주 최근에 시작된 새로운 교육의 종류라고 했습니다.

 

지금 3040대인 프로그래머들이 코딩교육을 받았을 리가 없잖아요.

초등학교나 중학교에서요.

 

그리고 코딩교육을 강사로서 진행해본 경험도 없습니다.

코딩교육에 대한 경험이나 이론적 지식도 없는 프로그래머들이

코딩교육에 대해서 무슨 조언을 해줄 수 있겠어요.

 

제가 하는 말이

절대 프로그래머들을 무시해서 하는 말이 아니에요.

 

프로그래머들은 최첨단 IT 기술을 사용할 수 있는 전문가 집단이에요.

그분들은 가치있는 소프트웨어를 만들어냅니다.

 

산업계를 리딩하시는 분들이죠.

하지만 프로그래머들이 교육 전문가들은 아니라는 거에요.

그리고 코딩교육이 아이들한테 첨단 기술을 가르치는 교육도 아니라는 것이고요.

 

코딩교육은 프로그래머를 양성하기 위한 교육 아니라는 걸

기억할 필요가 있습니다.