brunch

You can make anything
by writing

C.S.Lewis

by Younggi Seo Aug 27. 2021

대한민국에서 코딩 교육

의미 구문 자체와 구현되는 순서(로직)까지 외우는 까닭?





김포프(pope)라는 닉네임의 개발자가 있다. 게임 개발업계뿐만 아니라 개발자 중에 유명한 한국인이다. 그가 차린 포프 아카데미의 C언어 강좌 하나를 수강할까 말까를 고민하기를 어느덧 2, 내년에 C 언어 강의를 듣기로 결정을 미뤘다. 왜냐면 강의 하나가 백만 원인데, 내년 5월쯤 회사에게 복지카드가 발급되면  방에 그을 요량이다. 또한 그의 강좌  필자가 생각키로 C++  가장 어려울  같았는데, 오히려 수강자 후기 평에서 C > 공학용 수학 > C++ > C# 순으로 난이도가 쉽다는 리뷰가 많았.



그전에  개발자가  말로 본인은 개발을 좋아하게  까닭이 억지로 외워야   없었기 때문이라고 했던 것으로 기억한다. 그가 연대 법학과를 나오고 캐나다 워털루 컴공 학과를 진학한  보면 그러한 말을  계기가 아마도 한국과 캐나다에서의 교육방식에서도 비롯되었다고 추측되, 무엇보다 법학과에서 수도 없이 외운 판례들에 질려 있던 가운데, 캐나다의 수학교육방식이 한국과는 달리 외우지 않고 접근하는  있었을 거라는 확신이 든다.




필자는 언어를 배울 때 결코 어떤 프로젝트를 만들기 위해 어떻게 구현해야 될지에 대해 고민한 적이 없었다. 대한민국의 판에 박힌 코딩 교육(크게 보면 대학입시)처럼 특정 언어(학교로 치면 과목)를 짜인 커리큘럼대로 먼저 배우고 어떤 것을 만들어볼까 하는 게 당연한 순서였고, 그러한 과정을 따라가노라면 컴퓨터 언어조차 처음에는 문법부터 외워야 한다는 압박감이 도사린다. 특정 프로그램이 구현될 때, 실제 컴퓨터 내부에서 어떠한 동작이 이루어지는지를 먼저 알면 왜 이런 문법(개념이나 공식)이 만들어졌는지에 대한 이해하기를 알짜 고민 하나 없이 말이다.



실제 구현되는 알고리즘의 원리를 모르니, 특정 프로그램을 만들기 위해서는 이러한 로직대로 짜야한다는 암기가 요구된다. 이러한 로직을 왜 컴퓨터에서는 이루어질 수밖에 없는지에 대한 교육이 누락되니 자연스럽게 특정 소스를 '카피 앤 페이스트(Copy & Paste)' 하거나 그러한 공식, 이를 테면 싱글톤 객체(Singleton pattern)*라는 패턴을 자바에서 왜  쓰는지에 대한 정확한 이해가 없다면 필요할 때마다 복사해서 붙여 넣는, 이른바 코더의 역량이 된다.

  


언어를 배우는 데, 최소한의 문법을 외우고 있으면 코딩할 때 기본 베이스가 되기 때문에 런타임 오류가 뜨면 무엇을 고쳐야 하는지 알 수는 있다. 하지만 프로그램 소스가 구현되는 과정(알고리즘)까지 외우는 게 당연한 거처럼 생각하면 그것은 개발을 하는 게 아니라, 대한민국에서 흔히 저지르는 문제를 시간 내에 풀 수 있는지의 결과물밖에 산출하지 못하는 것이다. 어떠한 규칙성을 가지고 자신의 사고력으로 끝까지 문제를 해결하려는 몰입이 코딩 교육에서 가장 필요한 역량이라고 생각하는데 이 글을 읽는 독자분은 어떻게 생각하나요?




*Singleton pattern:  내가 만든 객체를 메모리에 '딱 하나'만 올려놓고 공유하고 싶을 때 사용하는 패턴으로, 반환 값(return)이 장기간 사용되지 않으면 null이 될 수 있음. 어쨌든 메모리에 객체를 하나만 얹히기 위해 사용함.









매거진의 이전글 부동산 복기 + 예측 AI 시뮬레이션
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari