프로그래밍을 배우고 싶은데 ‘어떤 언어로 시작할 것인지’는 초심자가 끈덕지게 물어보는 최빈도 질문이다. 마치 게임 시작할 때 어느 캐릭터 고를지 고민하는 느낌인데 아무짝에도 쓸모없는 고민이라고 말해주고 싶지만 대부분의 선배들은 뭔가 대답을 해주기는 한다. 그도 그럴 것이 모든 언어가 목적이 있어서 만들어진 것이라 특징이 다 있으므로 더 용이한 영역이 분명 있기는 있다. 그런데 그 용처가 ‘코딩 잘 배우라고’는 절대 아닌 것인데 항시 그 목적으로 궁금해하니 적합한 답을 줄 수가 없다.
어린이 친구들이 코딩 감각을 익히라고 만들어진 교육용 언어들이 있기는 하나 그런 것을 원하는 것은 전혀 아닐 것이고, 컴퓨터로 먹고살고 싶은데 나중을 위해서 ‘뭐가 더 유리해요?’ 라는 게 질문의 본질 아닌가. 그렇다면 정작 중요한 건 질문에 목적이 빠졌다는 것이다. “국수 먹으려면 젓가락 쓰고 국물 먹으려면 숟가락 써라.” 이게 당장 하고 싶은 말이다.
컴퓨터학과의 신출내기 친구들은 우선 당장 이렇게 생각한다. ‘코딩 실력을 쭉 키울 건데 어느 언어부터 하는 게 유리할까?’ 그러나 정작 대화를 나누고 속내를 파악해보면 질문이 완전히 잘못됐다는 걸 느끼게 된다. 모두 똑같이 표현하지만 프로그래밍 스킬을 쌓고 싶다는 것이, 누구는 웹 개발을 하고 싶고, 누구는 게임 개발을 하고 싶고, 누구는 데이터 분석을 하고 싶고 목적지가 서로 다 다르다. 그러면 질문을 그렇게 해서는 안된다.
데이터 분석을 하겠다고 하면 파이썬부터 배우라고 할 것이다. 빅데이터를 쓰자면 자바부터 알고 가는 게 좋겠다만 데이터 분석이나 인공지능만 하자면 당장은 파이썬만으로도 충분하다. 적어도 지금 세대의 친구들은 은퇴까지 다른 언어를 안 배워도 된다. 이 분야에서 프로그래밍 언어는 그냥 도구일 뿐이다. 사실 그 분야의 언어는 수학이라고 이미 따로 있다.
웹개발을 하겠다면 언어니 뭐니 하는 건 다 때려치우고 당장 뭐든지 따라서 만들어보라고 할 것이다. 이 동네는 코드 몇 줄 더 그럴싸하게 잘 적는 게 중요한 게 아니다. 알아야할 게 산더미고 모든 게 쌓여있는 문화와 역사다. 약속이 곧 의미이고 표현은 계속해서 새롭게 만들어진다. 이 쪽에서 일하려면 언어를 배우는 게 아니라 글짓기를 배워야 한다. 조선시대 사람들이 그랬다. 중국어를 할 수 없지만 글을 써서 뜻을 전하고 읽을 수 있었다. 우리가 영어회화는 전혀 안되면서도 얼마든지 작문 독해 시험은 만점받을 수 있듯이 웹개발도 그렇다. 몰라도 쓸 수 있다. 근데 쓸 수 없다면 그건 모르는 거다. 이곳은 모든 게 실전이다.
반면 프로그래밍 스킬을 제대로 쌓고 싶다는 건 좀 다른 의미다. “어셈블리어부터 할래? c언어부터 할래?” 라고 물어는 보겠지만 코볼, 포트란, 프롤로그 할 것 없이 다 해보는 게 좋다. 프로그래밍 언어론을 공부하는 것도 좋고, 자바계열 언어와 스크립트 언어까지 모조리 다 겪어봐야한다. 그렇게 하고나면 대리급 준전문가들에게 흔하게 퍼져있는 편견이 겨우 조금 사라진다. 이 언어가 더 우월하느니 저 언어는 언어라고 할 수 없느니 하는 고집이 없어지고 편안하게 실체를 바라보게 된다. ‘목적이 바뀌면 도구는 그에 맞게 바꾸면 그만’. 바로 이게 진짜들의 태도다. 근데 그러려면 경험이 풍부해야 한다. 특정 분야를 이르게 깊이 배우면 경험이 풍부해질 기회를 쉽게 잃는다. 그렇다면 차라리 베이직부터 배워보는 건 어떨까. 비주얼 말고 GW 같은 걸로.
사실 먼저 배워서 유리해지는 언어 같은 건 없다. 작업의 목적이 있으면 그에 걸맞는 언어가 있는 것이고, 계속해서 목적에 맞는 언어를 찾아 쓰다보면 언젠가 빠르게 익히고 적합하게 쓰는 감각도 늘게 된다. 고민해야할 것은 호미냐 쟁기냐가 아니라 농사짓는 법이다.
