기사 공유하기

[box type=”note”]개발자가 아닌 사람들에게 프로그래밍을 알려주는 것을 목적으로 하는 비영리 활동인 생활코딩으로 시작한 오픈튜토리얼스는 현재 생활코딩, 효도코딩에 이어 생활표현까지 그 범위를 확장하고 있습니다. 오픈튜토리얼스를 이끌고 있는 이고잉 님이 생활코딩을 시작한 계기와 과정에 대한 이야기를 풀어놓았습니다. (편집자)[/box]

많은 사람이 프로그래밍을 어렵게 생각한다. 물론, 프로그래밍은 어렵다. 하지만 어렵기 때문에 불가능한 다른 분야와는 다르게 어려움에도 불구하고 가능하다. 그리고 운이 좋다면 게임에 심취했을 때 경험하는 멘탈에 도달해서 밤낮없이 코딩에 몰두하고 있는 자신을 발견하게 될지도 모른다. 심지어 생산적이기까지 하다. 이보다 좋은 취미가 또 있을까?

지금은 프로그래밍으로 밥벌이를 하는 나 자신도 처음부터 개발자는 아니었다. 인문학을 전공했고, 주변인 중에 프로그래밍을 할 줄 아는 사람이 전무했던 내가 코딩을 할 수 있었던 것은 우선은 만들고 싶다는 열망이 간절했고, 무엇보다 프로그래머들이 이룩한 개방과 공유라는 문화적 성취가 실로 대단한 것이었기 때문이다.

특허와 오픈소스 중 어느 쪽이 당신 생계에 더 공헌했나

이를테면, 프로그래머들의 세계에서는 궁금한 것을 물어보면 면식도 없는 사람이 답글을 한다. 댓글 따위임에도 그 내용이나 형식은 포스트로서도 손색이 없었다. 또 가공할 오픈 소스들을 이용하니 개발 행위를 하는데 돈이 들지 않는다. 지나가는 개발자를 붙들고 “‘특허’와 ‘오픈 소스’ 중에 어느 쪽이 당신의 생계에 더 공헌했나요?” 라고 물어보면 대부분의 개발자는 ‘오픈 소스’라고 답할 것이다. 이런 대단한 문화적 자산을 개발자들은 고마워하기는커녕 문제가 생기면 불평한다. 바로 이것이다. 고마워하지도 않는 당연한 것. 당연함이라는 창고에 무엇이 들어있느냐가 그 사람과 관계와 사회를 대변한다고 봤을 때, 지적 공공성에 대한 진정한 실천자들의 과반이 이 바닥에 있지 않을까 싶다. 프로그래밍은 대단히 복잡한 지적 활동이다. 과연 내가 의학이나 법률을 독학으로 하려고 했다면 지금과 같은 상태에 도달할 수 있었을까? 어림없다.

온라인에는 이미 수많은 프로그래밍 정보들로 가득 차있다. 다른 분야와는 다르게 소프트웨어는 유독 온라인상에서 공개된 컨텐츠의 양이 많고 검색 친화적으로 잘 분류되어 있어서, 검색하면 나온다. 오죽하면 구글 지향 프로그래밍이라는 말까지 하겠는가? 그것은 일차적으로 프로그래머들이 정보를 유통하는 역할을 하는 사람들이고, 또 이들이 대부분의 시간을 온라인에서 보내면서도, 지적 공공성에 대한 남다른 문화적 풍토에 서 있기 때문일 것이다.

오픈튜토리얼스

비전문가란 무엇을 모르는지 모르는 상태

이렇게 프로그래밍을 하는 데 필요한 정보가 이미 온라인에 지천인데, 굳이 생활코딩이 필요할까? 온라인의 수많은 정보는 본의 아니게 파편화되어 있다. 그리고 파편화된 정보는 그 정보를 사용하는 수요자가 전문가인 이상은 가치 있다. 전문가는 이 파편들이 전체 퍼즐에서 어디에 들어가는지 이미 알고 있기 때문이다. 무엇을 검색해야 하는지 알고 그 검색된 결과를 자기가 직면한 문제의 맥락 안에서 이해할 수 있다. 문제는 비전문가다. 전문가란 모든 정보를 알고 있는 상태가 아니라, 전체적인 지식을 알고 있어서 ‘무엇을 모르는지 아는 상태’라고 나는 정의한다. 그렇다면 비전문가는 이렇게 정의할 수 있겠다. ‘무엇을 모르는지 모르는 상태’ 예를 들어, 어떤 블로그에 프로그래밍과 관련된 모든 정보가 다 들어있다고 치자. 프로그래밍을 모르는 사람이 이곳을 통해서 프로그래밍을 배울 수 있을까? 블로그는 기본적으로 최신순으로 컨텐츠를 보여주는 정렬방식을 택하고 있다. 그것은 뉴스와 같은 정보를 보여주기에는 훌륭하지만, 프로그래밍과 같이 거대한 덩어리의 지식을 전달하기에는 빈약하다.

그래서 오픈튜토리얼스라는 서비스를 만들었다. 블로그가 최신 글을 먼저 보여준다면, 오픈튜토리얼스는 오래된 글을 먼저 보여준다. 생활코딩에서 오래된 글은 먼저 봐야 하는 것을 의미한다는 점에서 이런 정렬 방식은 순차적으로 수업을 따라오도록 유도하는데 유리하다. 또 각각의 수업 별로 쪼개서 메뉴를 구성할 수 있어서 같은 맥락의 컨텐츠는 모으고, 다른 맥락의 컨텐츠는 쪼갠다. 생각해보면 오픈튜토리얼스라는 서비스 자체가 나에게는 생활코딩이었다. 생활코딩을 하다 보니까 내 몸에 맞는 컨테이너가 필요했고, 그래서 오픈튜토리얼스라는 웹서비스를 만들었다. 최근에는 이런 경험 자체를 실습으로 만들고 있다. 거창하게 말해서 ‘자전적 실습’이다. 오픈튜토리얼스가 어떤 맥락에서 시작되었고, 어떤 개발 과정을 거쳐서 지금의 상태에 도달했는가를 ‘무조건 따라하기’ 식으로 만들어볼 생각이다. 그래서 개발행위는 어떤 과정으로 흘러가고 또 이것을 하는 데 필요한 지식들은 어떻게 구성되어 있는지를 알려주는 것이 목적이다. 생활코딩을 통해서 프로그래밍을 시작하고 싶다면 생활코딩 – 웹서비스 만들기부터 시작하면 된다.

안 할 이유는 있어도 못 할 이유는 없다

또래 중에 ‘생산자 기질’을 가지고 있는 사람들은 정말 빠짐없이 방황하고 있었다. 이 대규모의 방황에는 예외가 없었었다. 나 또한 열심히 직장생활을 했지만, 그것은 열정적일 수 없었기 때문이다. 열정적이었던 몇몇 시절이 너무나 그리웠다. 내가 세운 묻지 마 가설이 하나 있는데, 열정이라는 심리적인 상태는 무엇인가를 하고자 하는 ‘의지’와 그것을 실현할 수 있는 ‘능력’이 내 안에서 조화롭게 공존할 때 만들어진다. 물론, 열정적이 된다고 행복해지는 것은 아니다. 다만 덜 불행하다. 내가 글쓰기를 좋아하는 것은 글을 쓰는 데는 특별한 생산수단이 필요 없기 때문이다. 글쓰기가 밑천 없이 사람의 마음을 움직이는 것이라면 프로그래밍은 밑천 없이 기계를 움직이는 활동이다. 현대인이라면 누구나 가지고 있는 장치들만 있다면 지금 당장 프로그래밍을 시작할 수 있다. 안 할 이유는 있어도 못 할 이유는 없다.

[box] 생활코딩?
1. 생활코딩 홈페이지
2. 생활코딩 페이스북 그룹 [/box]

관련 글

2 댓글

  1. 핑백: Learn THINGS

댓글이 닫혔습니다.