| 소프트웨어 개발 교육과 사이클링은 놀랍도록 닮은 꼴 | 2022.10.31 |
전문적인 사이클링 대회를 준비하는 사람들은 여러 과정을 거치고 나서야 시합에 임한다. 그런데 그 준비 과정이 소프트웨어 개발 교육에 그대로 적용해도 될 만큼 닮아 있다.
[보안뉴스 문정후 기자] 국제사이클리스트연합(Union cycliste Internationale, UCI)의 월드투어 대회에 참가하면 장장 9개월이 넘는 기간 동안 30번이 넘는 경주를 진행해야 한다. 2월에 시작해서 보통 10월에 끝난다. 필자는 소프트웨어 개발자라는 직업을 가지고 있긴 하지만 사이클링에 있어서도 그 누구보다 진심이다. 저 길고 긴 월드투어에도 부지런히 참가할 정도니까 말이다. 그런데 자전거를 한참 타다보니 소프트웨어 개발과 사이클링 사이에 미묘한 공통점이 있다는 걸 알게 됐다. ![]() [이미지 = utoimage] 먼저 전 세계 사이클링 선수들과 아마추어들이 익히 들어봄직한 말이 하나 있다. “폐로 페달을 밟아라!”이다. 폐활량과 뇌의 작용을 한 곳에 집중시킴으로써 사이클리스트의 능력을 극한으로까지 끌어올리는 방법을 압축적으로 설명한 문장이다. 놀랍게도 소프트웨어 개발자들을 훈련시킬 때에도 통하는 말이다. 이를 설명하려면 사이클링과 소프트웨어 개발이 다음 7가지 측면에서 닮아있다는 걸 짚고 넘어가야 한다. 그 7가지는 다음과 같다. 1) 전체 경로와 방향을 알아야 한다. 2) 오르막과 내리막이 어떤 식으로 펼쳐져 있는지를 확인해야 한다. 3) 중간 중간 쉴 만한 곳이나 중간 점검을 할 곳을 결정해야 한다. 4) 시범적으로 코스를 미리 달려봐야 한다. 5) 기어를 중간 중간 바꿈으로써 변속을 해야 한다. 6) 최종 도착선을 지나간 후 검토와 평가를 해야 한다. 7) 다시 시작한다. 기어를 높여 이 일곱 가지에 대해 보다 상세히 설명해 보겠다. 1) 전체 경로와 방향을 알아야 한다 : 산책 삼아 자전거를 타는 게 아닌 이상 사이클리스트라면 자전거에 오르기 전에 지도부터 본다. 최종 목적지를 정하고, 거기까지 가는 경로를 확인하고, 사이클링을 하는 이유에 대해 다시 한 번 떠올린다. 소프트웨어 개발 교육과 훈련을 시작할 때도 다짜고짜 컴퓨터 전원 버튼부터 누르지 않는다. 최종 목표 지점과 경로를 정한다. 이 때 목표 지점은 지도 위의 도착지처럼 분명하고 구체적이어야 한다. 경로를 확인할 때는 중간중간 난코스가 어디이며 장애물이 있을 만한 곳이 어디인지도 검토할 필요가 있다. 2) 오르막과 내리막을 점검한다 : 자전거를 타는 사람들 대부분 오르막을 그리 좋아하지 않는다. 프로 사이클링 선수들에게도 오르막은 꽤나 까다로운 적이다. 그래서 선수들은 경로를 확인할 때 오르막길이 어디에 있는지를 확인하고 외워둔다. 고저가 어떻게 변하는지 마음 속에 깊게 새겨서 시합 때 페이스를 조절한다. 소프트웨어 개발 훈련을 할 때에도 이러한 접근법은 필수적이다. 주제에 따라 학습하기 어려운 게 있고 쉬운 게 있을 것이기 때문이다. 훈련을 이끌어가는 사람이라면 어디가 어렵고 어디가 쉬울지 미리 알려주는 게 좋다. 특히 어려운 부분을 지나갈 때 미리 경고를 해 두면 그렇게 하지 않는 것보다 학습과 훈련의 효과가 커진다. 또한 수업 순서를 정할 때 쉬운 것과 어려운 것을 골고루 섞어두는 게 좋다. 그 어떤 자전거 시합 코스도 절반은 처음부터 끝까지 오르막, 나머지 절반은 처음부터 끝까지 내리막으로 구성되어 있지 않다. 3) 중간에 쉴 곳이나 점검할 곳을 정한다 : 가다가 힘들 때마다 쉬는 건 대단히 아마추어스러운 페이스 관리의 기법이다. 프로들은 절대로 그렇게 하지 않는다. 미리 쉴 곳을 정하고, 실제 경주를 할 때 힘들지 않더라도 자기가 정한 중간 점검 지점에서 잠시 멈춘다. 소프트웨어 개발 훈련을 실시할 때도 쉴 곳을 미리 지정해두는 게 좋다. 학생들의 학습 페이스를 적당한 쉼으로 조절할 수 있어야 한다는 것이다. 학습이 진행되는 과정을 잘게 쪼개고, 이를 통해 학습자들이 계속해서 열정을 끌어올릴 수 있도록 함으로써 공부가 잘 되도록 하는 게 이런 중간 휴식의 목적이다. 4) 시범적으로 미리 코스를 경험한다 : 여러 날을 밖에서 시간을 보내야 할 정도로 장거리 사이클링을 하기 전에는 코스의 일부라도 미리 달려보는 게 중요하다. 그래야 좀 더 객관적으로 나의 신체 상황을 점검하고, 심리적인 준비도를 향상시킬 수 있게 된다. 소프트웨어 개발 훈련을 시킬 때도 강연자로서 필자는 미리 강연 자료를 크게 낭독하고 수업에 들어간다. 수업의 중요도에 따라 동료들은 물론 일부 학생들과 함께 수업의 일부를 미리 시범적으로 진행해보기도 한다. 그랬을 때 좀 더 보완해야 할 부분들이 눈에 잘 띄고, 생각지도 못했던 부분을 보강할 수 있게 된다. 동료와 학생들의 피드백도 큰 도움이 된다. 5) 기어를 중간중간 바꾼다 : 비싼 자전거들에는 보통 여러 단의 기어들이 존재한다. 선수들은 이 기어들을 코스와 체력 상황 등에 맞게 조정함으로써 순간순간 발생하는 일들에 대처할 수 있게 된다. 한 마디로 모든 선수들이 똑같이 경주하는 동일한 코스를 커스터마이징 할 수 있게 된다는 것이다. 소프트웨어 교육과 훈련의 현장에도 이러한 도구들의 활용이 절실하다. 열심과 열정, 뛰어난 언변만이 교육의 질을 결정하는 게 아니다. 게다가 소프트웨어 교육 현장이라면 첨단 IT 기술이 실제 어떻게 활용되는지 보여줄 필요도 있다. 모든 교육 상황이 다르기 때문에 어떤 기술을 활용해야 한다고 꼬집어 설명하기는 어렵지만, 적어도 책과 종이, 훌륭한 교재와 말주변만 가지고 충분히 교육을 할 수 있다는 편견을 버리는 게 좋다. 6) 도착 후에는 검토와 평가가 있어야 한다 : 자전거 타기를 마쳤다면 어떻게 탔고, 어디를 보완하거나, 어디를 더 향상시켜야 하는지를 분석해야 한다. 어떤 오르막에 몇 단 기어가 어울렸고, 커브 구간을 어떤 각도로 진입해야 좋은지 평가하고 가설을 세우고 실험을 해봐야 한다. 매번 소프트웨어 훈련 수업 후에는 어떤 비유나 설명이 학생들에게 잘 통했고, 어떤 연습 문제가 효과가 있었으며, 지금 사용하고 있는 교재가 교육의 목적에 잘 맞는지 등을 검토할 필요가 있다. 학생들 편에서 어떤 점을 궁금해 했고, 어떤 부분을 잘 이해하지 못했는지 역시 곰곰히 떠올리고 기록해야 한다. 그리고 다음 수업에 반영하는 게 필요하다. 7) 다시 시작한다 : 위의 모든 과정은 준비와 훈련에 해당하는 것이다. 프로 사이클링 선수들은 위의 과정을 본 시합이 시작될 때까지 반복하고 또 반복한다. 아마추어들도 같은 코스를 타고 또 타면 기록이 단축되는 것을 경험했을 텐데, 이는 연습이라는 것이 얼마나 정직하게 효과를 발휘하는 지를 증명한다. 소프트웨어 개발 훈련 코스에서도 이는 반드시 지켜져야 한다. 즉, 반드시 학생들이 직접 손을 키보드 위에 올려놓고 몸으로 코딩과 개발을 익히고 또 익히게 해야 한다는 것이다. 개발의 이론만 주구장창 공부해봐야 직접 해 보는 사람을 이기지 못한다. 글 : 조 슐츠(Joe Schulz), 부회장, Orasi [국제부 문정후 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|