기술이 세상을 빠르게 바꾸고 있다. 기술을 직접 개발하지 않는다 하더라도 각자의 영역에서 필요한 만큼의 기술에 대한 이해가 필요한 세상이 되었다. 학생은 미래의 직업을 선택하기 위해서 그리고 이미 직업을 가진 사람은 각자 직업의 미래를 예상하기 위해서 세상을 바꾸는 기술에 대해서 이해해야만 한다. IT조선은 [이학무의 테크리딩]을 통해서 기술을 이해하기 위한 기초 다지기와 이를 기반으로 필수적인 기술 이해 방법을 제공한다.<편집자주>
코딩은 하나의 답이 정해진 것이 아니다. 같은 결과를 만들어 내기 위해서 수많은 방법이 존재한다. 물론 그 중에서 좀 더 최적화된 방식이 있기는 하다. 하지만 수학처럼 최적화된 방식만이 답은 아닌 것이다. 단지 좀 더 좋은 방법이 있고 좀 덜 좋은 방법이 있을 뿐이다.
그러기에 처음부터 최적의 방법으로만 코딩을 하는 것은 진정으로 코딩을 배우지 못하는 것이다. 컴퓨터와 같은 방식으로 생각하고 이를 구현하는 것이기에 각자가 이해하는 방식이 중요한 것이다. 주입식 교육이 가장 맞지 않는 것이다.
앞서 예로 들었던 엘리베이터 운행 프로그램의 경우에도 언급한 방법 말고도 요청층을 중심으로 한층 위에 엘리베이터가 있는지 찾고 없으면 한층 아래층에 엘리베이터가 있는지 찾고 또 없으면 2개층 위에 엘리베이터가 있는지 찾는 방식으로 반복해 가면서 찾는 것도 방법이 될 수 있다. 위 아래로 한층씩 한층씩 찾으니까 젤 먼저 찾아진 엘리베이터가 가장 가까운 엘리베이터가 될 것이고 이 엘리베이터가 어디로 운행 중인지 체크해서 다시 판단하고 그 이전에 그 층이 10층보다 더 높은 층이거나 1층보다 더 낮은 층이 아닌지 체크도 해야 한다.
하지만 배울 때는 다르다. 내가 생각한 방식으로 끝까지 진행해서 그 방식으로 마무리 해보는 것이 더 중요하다. 우리가 코딩을 배우는 목적이 컴퓨터가 일하는 방식을 이해하는 것에 가장 우선이 있기 때문이다. 이와 같은 과정을 통하고 그리고 누군가의 더 좋은 방법을 듣고 비교해보면 더 확실히 컴퓨터가 일하는 방식을 배울 수 있게 된다.
따라서 코딩은 실력이 있는 선생님한테 배워야 한다. 그것도 꼭 직접 질문 하면서 배울 수 있는 환경에서 배워야 한다. 수 없이 많은 경우의 수 중에서 하나를 구현하는 방식을 동영상 등에서 배우거나 또는 그 방식 하나 밖에 모르는 선생님한테 배우면 스크래치의 테크닉만 배우는 것이다.
우리의 목적은 코딩을 통해서 기술을 이해하는 방법을 배우는 것에 있기 때문에 다수의 시행착오를 통해서 나만의 방식을 만들어 가는 것이 필요하다. 그 과정 속에서 컴퓨터가 일하는 방식을 좀 더 정확하게 이해할 수 있는 것이다. 눈으로만 본 것은 내 것이 되지 않는다. 직접 해보고 고민해야만 진정으로 내 것이 되는 것이다.
대학원 졸업 논문을 위한 실험을 할 때 1000줄 이상의 코딩을 했던 것으로 기억한다. 코딩을 하고 프로그램을 돌렸을 때 수도없이 에러가 떴었다. 에러의 이유는 다양하다. 심지어는 점 하나를 잘 못 찍어도 에러가 나고 동작이 안된다. 1000줄이 넘는 코드를 다 들여다 보면서 어디가 잘 못 되었는지 찾고 고민하는 그 시간에 배운 것이 많았다.
물론 찾아낸 에러의 이유는 점 하나일 지라도 그 사이에 수없이 많은 고민을 하게 되고 그 과정에서 컴퓨터를 조금씩 더 이해해 가는 것이다. 따라서 내가 고민하고 그 고민을 같이 해줄 수 있는 선생님에게 배워야 우리가 현대 시대에 코딩을 배우는 목적을 이룰 수 있다.
내 아들의 코딩 선생님을 찾을 때 현실적인 어려움이 있었다. 프로그래머가 너무나 많은 곳에서 필요하기 때문에 실력 있는 코딩 선생님을 구하기 어렵다. 경제적인 측면에서만 봐도 학원에서 코딩을 가르치는 것보다 소프트웨어 회사에서 프로그래머로 일하는 것이 훨씬 더 높은 급여를 받을 수 있다.
이같은 이야기를 하는 이유는 코딩을 배울수 있는 좋은 선생님을 찾기가 어려우니 힘들게 좋은 선생님을 찾았으면 충분한 비용을 지불하고 배울 것을 권하기 때문이다. 비용만 생각해서 동영상을 보고 코딩을 배우면 테크닉만 일부 배울 수 있지 코딩을 통한 기술을 이해하는 방법까지 얻기는 어려울 것으로 생각된다. 다음 편부터는 관심을 가져야할 기술들에 대해서 하나씩 어떻게 접근하고 이해할 수 있는지를 이야기 할 것이다. 그리고 코딩을 배운 것이 어떻게 연결되고 활용될 수 있을지에 대해서 구체적으로 이야기 나눠 볼 예정이다.
이학무 미래에셋증권 통신서비스 애널리스트 leehakmoo@gmail.com
※ 외부필자의 원고는 IT조선의 편집방향과 일치하지 않을 수 있습니다.
이학무 미래에셋증권 애널리스트는 반도체, 핸드폰, 디스플레이 등 IT 산업뿐아니라 전기차, 배터리 및 신재생에너지 산업까지 다수의 성장산업을 분석한 신성장 산업 분석 전문가다. 공학을 전공하고 비즈니스를 20년간 분석한 경험을 바탕으로 세상을 이끄는(lead) 기술 읽기(read)를 제공한다.
- [이학무의 테크리딩] NFT와 웹 3.0
- [이학무의 테크리딩] 패러다임 시프트 vs 기술발전
- [이학무의 테크리딩] 위성통신과 5G
- [이학무의 테크리딩] 탈 중앙화 플랫폼과 가상자산 스왑거래소
- [이학무의 테크리딩] 스테이블 코인(下)
- [이학무의 테크리딩] 스테이블 코인(上)
- [이학무의 테크리딩] 오징어 게임에서 생존하는 법
- [이학무의 테크리딩] 탈중앙화와 금융플랫폼(DeFi)
- [이학무의 테크리딩] 블록체인과 P2E 그리고 메타버스
- [이학무의 테크리딩] NFT 가치의 핵심은
- [이학무의 테크리딩] 잊지 말아야 할 비트코인의 철학
- [이학무의 테크리딩] MZ 세대와 메타버스
- [이학무의 테크리딩] 포스트 Android는 누구?
- [이학무의 테크리딩] 포스트 애플이 될 테슬라(하)
- [이학무의 테크리딩] 포스트 애플이 될 테슬라(상)
- [이학무의 테크리딩] 메타버스, 무엇이 필요한가
- [이학무의 테크리딩] 디지털 꿈의 다른 이름 메타버스
- [이학무의 테크리딩] 테슬라의 소프트웨어 2.0과 4D라벨링
- [이학무의 테크리딩] 융합의 시대, 영상을 아는 애널리스트
- [이학무의 테크리딩] 자율주행을 위한 인공지능의 핵심 '코딩'
- [이학무의 테크리딩] 인공지능과 자율주행 자동차
- [이학무의 테크리딩] 빅데이터와 인공지능
- [이학무의 테크리딩] 인공지능 이해하기…기초는 코딩 배우기
- [이학무의 테크리딩] 코딩 배우기는 기술 이해의 첫 단추
- [이학무의 테크리딩] 기술이 바꾸는 세상, 코딩 배워 극복하자