일본산업뉴스요약

‘고생하는 것’이 목적이 되어선 안 돼 -- 프로그래밍 학습의 함정
  • 카테고리비즈니스/ 기타
  • 기사일자 2025.8.08
  • 신문사 Nikkei X-TECH
  • 게재면 online
  • 작성자hjtic
  • 날짜2025-08-28 16:52:58
  • 조회수17

고생하는 것’이 목적이 되어선 안 돼
프로그래밍 학습의 함정

일반적으로 프로그램 코드를 전혀 작성해본 적이 없는 사람이 프로그래밍 개념을 이해하는 것은 어렵다.

하지만 지금은 사람이 프로그래밍을 하지 않아도 생성 AI(인공지능)에게 코드를 작성하도록 하면 원하는 소프트웨어를 만들 수 있게 되었다. 그러나 그것은 어디까지나 스스로 코드를 작성하지 않고 소프트웨어를 얻을 수 있게 된 것일 뿐, 프로그래밍을 이해할 수 있게 된 것은 아니다.

이러한 시대의 프로그래밍 학습은 어떻게 달라져야 하는가? 필자는 그 답을 찾는 특집을 닛케이크로스테크에 게재했다.

이번 특집에서는 프로그래밍 초보인 2명의 신참 기자가 자신이 원하는 애플리케이션의 코드를 생성 AI를 이용해 작성하고, 그 코드를 교재로 배우는 방법을 채택했다.

지금까지 프로그래밍 교재의 샘플 코드는 무엇에 도움이 되는지 알기 어려운 ‘학습을 위한 코드’가 대부분이었다. 이것으로는 코드의 내용을 이해하고 싶다는 동기를 갖기 어렵다. 이 상태에서 학습을 계속하는 것은 많은 사람들에게 고통일 뿐이다.

한편, 자신이 정말 원하는 앱 코드의 경우, '어떻게 움직이는 것일까'하는 흥미를 갖기 쉽다. 실제로 이번 특집에 참여한 두 기자는 생성 AI의 도움을 받아 앱 코드 처리 내용을 스스로 설명할 수 있는 정도의 실력을 가질 수 있게 되었다.

그렇지만, 어렵게 프로그래밍을 습득한 현역 프로그래머 중에는 ‘이런 손쉬운 방법으로 진짜 실력은 만들어지지 않는다’라고 생각하는 사람도 있을 것이다.

개인적으로도 그 마음을 절반쯤은 이해한다. 내가 다소나마 프로그래밍에 대해 알 수 있게 된 것은 학습을 위해 집중해서 코드를 작성하던 시기가 있었기 때문이다. 당연한 이야기이지만, 타고난 성향에 따라 차이는 있으나 전혀 노력하지 않고 얻을 수 있는 스킬은 없다.

프로그래밍 학습에 있어서 어려움은 필요할까, 불필요할까? 이번 칼럼에서는 이 문제에 대해 생각해보도록 하겠다.

-- 자신에게는 맞지 않았던 ‘사경(寫經)’ --
프로그래밍 학습 방법 중 하나로 자주 꼽히는 것이 ‘사경’이다. 원래 사경은 불교 경전을 자신의 손으로 옮겨 적는 수행을 가리킨다.

프로그래밍 학습 분야에서는 프로그램 코드를 손으로 입력해 프로그래밍의 지식 및 패턴을 배우는 훈련을 사경이라고 부른다. 프로그래밍 상급자 중에는 사경을 학습의 유효한 수단이라고 소개하는 사람도 많다.

그러나 필자는 개인적으로 이 사경이 프로그래밍 이해에 도움이 된다고 느낀 적은 없다. 사경은 그것이 유효한 사람과 그렇지 않은 사람으로 분명하게 갈리는 방법이라고 생각한다. 핵심은 ‘그 의미에 대해 생각하면서 입력할 수 있는가’이다.

필자가 자신에게 사경이 맞지 않는다고 생각하게 된 것은 고등학생 때의 경험이 관련되어 있는 것은 아닐까 생각한다.

당시 PC의 소프트웨어는 PC에 연결된 카세트 테이프 레코더를 통해 카세트 테이프에 저장하거나 로딩했다. 소프트웨어 기업들의 소프트웨어는 카세트 테이프에 수록되어 시판되고 있었지만, 종류는 적었다. 특히 필자가 태어나고 자란 지방 도시에서는 그런 것은 거의 팔지 않았다.

그렇다면 컴퓨터로 소프트웨어를 움직이려면 어떻게 해야 할까? 남는 방법은 두 가지이다. 하나는 스스로 프로그램을 만들어 작동시키는 것. 필자도 ‘위에서 떨어지는 장애물을 피하는 게임’이나 ‘2명의 플레이어가 팔을 늘려서 서로 싸우는 대전 격투 게임’ 등을 만든 기억이 있다. 지금 생각하면 완성도는 매우 낮았지만, 오락이라고는 텔레비전과 라디오, 독서 정도 밖에 없었던 시대였기에 이런 게임을 통해 꽤 오랜 시간 놀았던 기억이 있다.

또 하나의 방법은 PC 잡지에 실려 있는 게임 등의 프로그램 코드를 손으로 직접 입력해 작동시키는 것. 조금이라도 틀리면 동작하지 않아 에러 때마다 오타를 찾았었다. 문제없이 움직이게 되면 카세트 테이프에 저장했다. 그 목적은 게임을 통해 노는 것이었기 때문에 코드의 의미 같은 것은 거의 신경 쓰지 않았다.

즉, 필자는 코드의 의미를 생각하지 않고 빠르게 사경하는 것에 익숙해져 있었다. 이 경우, 아무리 사경을 해도 학습 효과는 전혀 없다. 사경이 유효한 것은 코드를 입력할 때 그 의미를 생각하는 사람뿐이다.

-- '직접 코드를 작성하는 것'보다 자신의 머리로 생각하는 것이 중요 --
이와 비슷한 것은 스터디 그룹에도 해당된다. 프로그래밍 분야에서는 프로그래밍 교실이 활성화되고 있다. 그러나 강사가 일방적으로 강연하는 유형의 프로그래밍 교실에서는 공부하고 있다는 자기만족만 얻을 뿐 별로 실력이 늘지 않는 경우가 많다.

코드를 직접 입력하는 것도, 프로그래밍 교실에 참여하는 것도 나름대로 노력이 필요하다. ‘고생’이라고 말해도 좋을 것이다. 그러나 '작업이 힘든 것'과 학습과는 본질적으로 관련이 없다.

예를 들어, 초보자가 고도의 프로그래밍 해설서에 쓰여진 글자만을 쫓아 의미를 모른 채 통독해도 실력은 늘지는 않는다. 힘들 뿐이다. 고생하는 것 자체를 목적으로 해 버리면, ‘프로그래밍의 이해’라는 가장 중요한 점이 빠져 버린다.

프로그래밍 실력을 높일 방법은 하나밖에 없다. 자신의 머리로 생각하는 것이다. 그 시점에서의 실력으로는 돌파할 수 없는 벽에 부딪혀 어떻게든 해보려고 필사적으로 생각하며 많은 시행착오를 거듭해 해결책을 짜내야 한다. 그것을 몇 번이고 반복할 수밖에 없다.

지금까지 이 칼럼 연재에서는 프로그래밍 실력을 높이려면 손을 움직여 코드를 작성할 필요가 있다고 거듭 주장해왔다. 이것은 기본적으로 틀린 말은 아니지만 다소 부정확했다고 느끼고 있다.

본질적으로 중요한 것은 ‘손을 움직인다’라는 형식이 아니다. ‘내 머리로 생각하는 노력을 얼마나 축척해왔는가’이다. 그 결과로 코드를 작성하는 작업이 생기는 것에 불과하다.

그런 의미에서 코드를 스스로 작성하지 않고 생성 AI에 전적으로 맡겨도 생각을 멈추지 않으면 프로그래밍 실력을 높일 수 있을 것이다. 코드를 작성하지 않기 때문에 더 이상 프로그래머라고 부를 수는 없겠지만, 앞으로 AI시대에는 이러한 완전히 새로운 타입의 우수한 소프트웨어 개발자들이 등장할지도 모른다고 생각하니 조금은 설렌다.

 -- 끝 –

 

Copyright © 2025 [Nikkei XTECH] / Nikkei Business Publications, Inc. All rights reserved.

목록