brunch

매거진 사람 레벨

You can make anything
by writing

C.S.Lewis

by 김나솔 Mar 06. 2017

관점 D. 프로그래밍을 배우다 포기한 이의 관점

24시간 영어-코딩 상호멘토링 캠프 후기

<이글은 24시간 영어-코딩 상호멘토링 캠프 후기...의 시리즈 입니다>


나는 농담반 진담반으로 얘기하곤 한다.

"프로그래밍을 배우려고 한 수백 번은 시도한 것 같아요. 그런데 번번이 포기했죠."

수백 번은 안돼도 수십 번은 됐을 것이다. 사실 내가 꼭 프로그래밍을 할 수 있어야 하는 것은 아니다. 나는 프로그래밍을 하는 능력을 갖고 싶다. 그걸 직업으로 하지 않더라도.

프로그래밍을 아예 해보지 않은 것은 아니다. 소싯적 대학 때 컴퓨터 동아리에 들어가서 프로그래밍을 배우겠다고 했다. c언어도 배우고 링크드 리스트를 직접 구현해보겠다고 끙끙대서 불완전하게나마 구현해보기도 했다. 선배 중 한 명이 볼랜드 c++ builder라는 개발도구를 잘 다뤄서, 나는 그 선배에게 그 도구를 배웠는데, 잘 배우지 못한 상태에서 어떤 아르바이트를 덥석 하게 되었다. 당시에는 넵스터라는 음악 p2p 공유 프로그램이 많이 쓰이고 있었고, 음반 회사들은 이런 프로그램을 통한 저작권 위반에 골머리를 앓았다. 이런 음반회사들을 타깃으로 생각하여 아이디어를 낸 벤처가 있었으니 이름하여 스톰. storm이 아니라 stom. 나는 거기에서 넵스터 서버와 통신할 수 있는 클라이언트 프로그램을 만드는 알바를 하게 되었다. 그 프로그램은 나중에 넵스터에게 가짜 음원 정보를 뿌려서 교란시키는 역할을 하기로 되어 있었다.

여하튼 나는 그런 걸 만드는 걸 할 수 능력이 없는데도 하겠다고 했다. 그냥 해보고 싶었다. 많이 복잡하지 않을 거라고 생각했다. 시간을 들이면 될 거라 생각했다. 이렇게 만들어야지.. 생각하고 뚜닥뚜닥 만들어봤는데 물론 안되었다. 막막했다. 누구에게 물어보지? 선배에게 물어볼 수도 있지만 좀 책임감 없다는 생각이 들었다. 할 수도 없는 일을 맡고선 일을 남에게 시키는 느낌?

한 두 달여 동안인가.. 인터넷에서 찾은 볼랜드 관련 국문, 영문 커뮤니티에서 수없이 질문을 올리면서 결국 어찌 됐든 저찌 됐든 만들었다. 그때 정말 온라인 커뮤니티의 힘을 느끼기도 했다. 여하튼 그 경험을 밑바탕 삼아 계속 나아갔을 법도 한데 나는 어찌 된 일인지 계속하지 못한다.

그다음 해였나, 나는 또 다른 알바를 하게 된다. 어설프게 프로그래밍을 할 줄 아는 나와 어설프게 디자인을 배운 내 친구에게 알바 의뢰가 들어온 것이다. 선배가 자기에게 의뢰가 들어왔는데 시간이 없다고 우리에게 연결해준 것이었다. 제사 음식을 판매 배달해주는 서비스를 만들려는 분이 웹사이트와 그 안에 들어가는 게시판을 만들어달라는 게 요구사항이었다. 당시만 해도 제로보드 같은 게시판이 없을 때였다 (적어도 내 기억엔, 있었다면 내가 바보 ㅜ). 지금 생각해보면 맡으면 안 되는 일이었지만 어쨌든 당시에는 덥석 물었고, 나는 웹 게시판을 만들려면 php, mysql을 할 수 있어야 한다는 얘길 듣고선 배워서 만드는 데 돌입했다. 나는 어설픈 게시판을 구현했고, 내 친구는 어찌어찌 홈페이지를 만들고, 디자인한 이미지들을 넣었다.

생각해보면 이런 것들을 접했다는 것이 참 좋은 기회이기도 했는데, 나는 왜 손을 뗐을까? 여하튼 이 이후로는 프로그래밍에 손을 대지 않았고, 그냥 나는 재능이 없다고 결론 내렸던 것 같다.

그러다가 첫 회사에 입사했을 때 나는 한창 엑셀에 심취해 있었다. 매일매일 들어오는 데이터를 활용해서 매일매일 깔끔한 보고서를 만들어내야 하는데 그것을 매일 수작업으로 보고서에 입력한다는 것은 실수가 예상되고 번거롭고 비효율적인 작업이었다. 나는 엑셀을 사용하면 이것을 자동화할 수 있을 거라고 생각했고 2주인가 한 달인가를 매달려서 원하는 것을 만들어냈다. 상사는, 회사는 한 가지에 파고드는 곳이 아니라는 이야기도 했지만, 내가 파고들어서 그런 걸 만든 것에 대해서 다른 팀 사람들에게 자랑스럽다는 듯이 이야기하시기도 했다. 하지만 엑셀의 문제는 매크로나 비주얼 베이직을 사용했을 때 내 컴퓨터에서는 괜찮은데 다른 컴퓨터에서 열 때 안 열리고 이런 문제들이 있었고, 나는 그런 문제들을 해결할 수 없었다. 그래서 나는 엑셀을 철저히 "로컬용, 나만 쓸 수 있는 것"이라고 생각했다. 엑셀을 쓰는 것을 프로그래밍이라고 볼 수 있을까? 나는 엑셀을 사용하는 데 프로그래밍적인 사고가 사용된다고 생각한다. 구글 앱스 스크립트라는 것에 대해 알게 됐을 때 구글 엑셀과 구글 앱스 스크립트를 사용해서 방과 후 수업 신청을 처리하는 것을 만들었는데, 도저히 사용자가 쉽게 쓸 수 있게 만들지 못해서 결국 사용되지 않았고, 또 한 번 좌절했다. 웹 프로그래밍을 잘할 줄 알았다면 이런 것도 만들어볼 수 있었을 텐데...

그러다 언제쯤이었을까? 내가 프로그래밍을 할 수 있었으면 좋겠다... 고 다시 강렬하게 생각한 것은... 정확하지는 않지만 두 가지 정도가 작용했던 것 같다.

하나는 생각들과 정보들을 정리하는 것에 대해서 고민하던 때가 있었는데, 그때 데이터를 제어할 수 있으면 얼마나 좋을까 생각했고, 그것은 프로그래밍을 배우면 할 수 있는 일이었다. 생각과 정보를 정리하는 방식에 대해 프로그램 기획을 하고 이것을 직접 구현할 수 있으면 정말 좋겠다고 생각했다. 누군가에게 돈을 주고 맡겨서 구현하기에는 수지가 안 맞는 프로그램이었다. 하지만 내가 만들어서 내가 쓸 수 있다면 그 효용은 가늠할 수 없다.

또 하나의 계기는 웹 프레임워크라는 것에 대해 알게 된 것이었다. 더욱 구체적으로는 아마 루비 온 레일즈의 20분 안에 블로그 만들기 동영상을 본 것이었다. 아니 세상에... 이건 옛날에 게시판을 만들 때 했던 방식과는 차원이 다른 무언가였다. 이런 것을 쓸 수 있다면, 내가 생각하는 정도의 웹프로그램을 만들 수 있지 않을까?

그래서 이것저것 배우려고 시도했다. 루비 온 레일즈가 아마 처음이었던 것 같다. 온라인 튜토리얼을 따라 해 보고, 책도 사서 봤던 것 같다. 결국은 포기해서 중지했다. 포기한 이유는 너무 복잡해서였다. 튜토리얼을 그대로 따라 하면 블로그가 만들어지긴 하는데, 응용할 수 있을 정도로는 파악이 되지 않았다. 어느 폴더에 무슨 파일이 있고 이런 것도 너무나 헷갈렸다. 튜토리얼에 나오는 샘플 블로그를 만드는 것이 나의 목표는 아니었다. 내가 원한 것은 루비 온 레일즈로 이렇게 하면 이런 것을 만들 수 있다..라는 감을 잡고, 내가 기획한 프로그램을 내가 만들 수 있을 정도로 단순화하고 그걸 실제로 만들어서 쓰는 것이었다. 내가 기획한 것을 만들어보면, 나오는 에러에 대해서 나는 해결하지를 못했고, 튜토리얼은 이에 맞춰져 있는 게 아니었다. 결국 MVC란게 이런 이야기구나.. 정도의 감을 잡게 된 정도로 입맛을 다시며 그만두었다.

새로운 웹 프레임워크를 알게 되면, 이번에는 할 수 있을까? 기대하며 배우려고 해봤다. 번번이 실패했다. 어느 지점을 결국 넘지를 못했다. 지금 생각해보면 처음 그 넵스터 클라이언트를 만들었을 때처럼, 온라인 커뮤니티에서 의문을 해소하는 것도 방법이었을 텐데 싶은데, 왜 그것을 실천하지 못했을까 싶다.

그러다가 이제 혼자서 배우는 데는 한계가 있다고 느껴서 누군가의 도움을 받으면 좋겠다고 생각하던 차에, 프로그래밍에 관한 멘토 같은 분들을 만나게 되었다.

- 이호성 님, 1:1 프로그래밍과 영어 교환, 파이썬 django로 writing sandbox를 만드는 프로젝트
- 육창수 님, 1:1 프로그래밍과 영어 교환, angularJS로 뭔가 입력하는 웹서비스 프로젝트
- 이고잉님, 생활코딩 온라인 강의를 듣거나, 오프라인 강의에 참석

사실 좋은 기회들이었는데, 여러 가지 사정으로 인해 지속하지 못했다. 이호성 님이나 육창수 님의 경우 일주일에 한 번 정도 만나서 2시간 정도 보냈는데, 이번 캠프했던 것을 생각해보면, 한번 날 잡아서 빡세게 10시간 정도 해봤다면 어땠을까? 하는 생각도 든다. 물론 그때는 시간적 여유가 좀 없었긴 했다. 하지만 이런 경험의 장점을 알았더라면 좀 더 적극적으로 추진했을 것도 같다. 생활코딩의 경우 html, css, js 온라인 강의 완주하고 오프 강의도 2회 정도 들었는데, 그건 정말 잘 했다고 생각한다. 이고잉님은 친구이기도 해서 특정 부분에 대해 도움을 요청하면 흔쾌히 도와주셨을 텐데, 명확한 프로젝트를 설정하지 않아서 그런지, 질문하거나 도움을 요청하는 게 지속성이 생기지 않았다.

혼자 배우다가 포기하고, 멘토의 존재를 겪어보는 등, 이런 저런 경험을 한 후에 나는 다음의 결론에 이르렀다.

1. 내가 혼자서 파고드는 분야가 아니라면 마음 편하게 물어볼 수 있는 멘토가 필요한 것 같다.
2. 프로그래밍을 배우려면 미니 프로젝트를 진행하는 게 좋은 것 같다.
3. 만든 프로그램을 로컬에서 보고 확인하고 끝나는 게 아니라, 웹에서 실제로 돌아가서 내가 어디서나 쓸 수 있는 프로그램을 만들어보는 게 좋은 것 같다.

수요일은 개영일에 붙박이로 나오던 분인 범재님과 이런저런 얘기를 하다가, 내가 범재님께 영어가 좀 느신 것 같다며, 좀 많은 분량을 쓰는 경험을 해보시면 좋겠다고 얘기했고 이는 영어와 코딩을 상호 멘토링 하는 캠프 기획으로 이어졌다.

사실 2016년에 열렸던 워드프레스 캠프 이야기를 빼놓을 수 없다. 커뮤니티 긱스(이범재 님과 천예지 님)가 주최하고 주관했던 이 캠프는 "3박 4일 동안 워드프레스로 홈페이지를 만들기"라는 뚜렷한 목표를 내세웠다. 나에게는 매력적이었다. 프로그래밍과 마찬가지로 워드프레스 또한 몇 번 익혀봐야지 했지만 결국 내가 "쓸만하다고 판단되는" 홈페이지를 만들어내는 상태에 이르지 못해서 포기한 케이스였다. 그 캠프 참가 후 나는 어쨌든 내가 원하는 수준의 홈페이지를 만드는 스킬을 갖추게 되었다. 워드프레스를 마스터하게 된 것은 아니다. 하지만 적당한 정도의 스킬은 갖추게 되었다. 7개 정도의 홈페이지를 만들어낼 수 있을 정도의...

이 캠프를 통해 나는 결론에 두 가지를 추가했다.

4. 내가 원하는 것은 적정기술.
5. 인텐시브 하게 긴 시간을 한 번에 투입시켜 특정 사이클을 숙달시키는 경험이 매우 유용하다.

이 다섯 가지 결론과 영작 캠프, 프로그래밍을 배우고 싶어 하던 나의 열망이 만나서 이런 형태의 캠프가 기획되었다.

그리고 내가 배우고 사용할 웹 프레임워크는 자연스럽게 루비 온 레일즈로 결정되었다. 어느 프레임워크를 쓰는지가 중요한 게 아니었다. 적정한 정도를 내가 익히고 숙달하고, 내가 생각하는 것을 구현할 수 있는 레벨에 도달하는 게 중요했다. 그러려면 작은 웹 프로그램을 실제로 웹에서 돌아가게 해보고 반복도 해보고 해야 하는데, 그 과정에서 생겨나는 어려움을 친절하게 도와줄 수 있는 멘토가 필요했고, 범재님은 그렇게 하기에 적절한 분이었다. 그래서 나는 자연스럽게 범재님이 개인적으로 좋아하는 루비 온 레일즈를 선택했다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari