한창 8월을 보내고 있을 무렵 2013년부터 쓰던 랩탑이 사망했다. 동시에 다른 개인사로 인해 돈 나갈 일이 한번에 생겨, 여유롭게 프리코스 수강에 시간을 쏟으려던 계획이 틀어졌다. 부랴부랴 일을 구해 돈을 벌기 시작했고, 9월 말 친구를 통해 미국에서 중고 맥북을 주문하여 그것을 10월 초에 손에 넣었다. 맥에 익숙해지기 위해 안간힘을 쓰고 있는데 병원에서 지낼 일이 생겼고, 한동안 랩탑/인터넷을 사용할 수 없었다. 그렇게 지나간 시월, 하루하루는 길게 느껴졌지만 한 달은 정말 눈 깜짝할 새 사라지고 없더라. 지난 주부터 다시 일을 하며 남는 시간에 밀린 과제들을 해치우고 있다. 새로 구매한 맥북에서 터미널 사용이 익숙지 않아, VS Code로 과제를 해 놓고도 깃 커밋에 연달아 실패하고 결국 코드를 메신저로 보내서 다른 윈도우 랩탑에서 다시 커밋하고 pull request 하는 등의 삽질이 있었다(다음에 구매할 일이 생기면 다시 윈도우 랩탑으로 돌아갈 것이다). 기한 내 페어프로그래밍/페어리뷰를 진행하지 못해 코스 수료증을 받지 못할 것을 알지만, 일단 내 선에서 할 수 있는 게 남아있다면 그만큼은 노력하기로 했다.

프리코스 수강을 시작하고, 새로운 과정에 합류하고 사람들의 이름이나 얼굴, 커뮤니케이션 스타일 등을 익히게 되는 흥분이 사그라들 때쯤부터 사실 몇 주간은 코딩, 특히 자바스크립트에 흥미가 완전히 죽었었다. 우스운 말이지만 자바스크립트가 싫었다. "뭐가 너무 많아서." 8월 초였나, 그 때쯤 나눴던 친구(L)와 나(J)의 대화.

나: (…) I’m not learning anything complicated now, though; just JavaScript and I hate it because I don’t speak the language yet.
L: (…) yeah, JS is a hoot. I have to use it at work a bit. What other languages have you learned?
나: I briefly looked at C and Python before I started this course in Javascript/HTML/CSS. Is it weird if I liked C better than JS? I’m still trying to get used to it.
L: C is a much smaller toolbox and, in some regards, far more formal and strict than JS. I personally liked C a lot when I used it. But the languages are quite different in their purpose when you really get into them. C, really, is about looking at “physical memory” and operating on a very minimally abstracted state machine. JS loves structures and objects and things that C doesn’t have the room to talk about it. It means you can do a lot very quickly in JS, but you need to also know a lot more about each piece.
나: I’ll probably prefer JS over C once I learn what I can do with JS, but just for the metaphor’s sake, I always prefer a restaurant owned by a chef with expertise in specific cuisine offering fewer menu, rather than a gigantic hotel buffet or a food court filled with different chefs/cooks offering millions of menu. Oh now I want Cambodian noodles. (…)
L: (…) I absolutely agree with you about languages prioritizing a couple of things over being totally general. You end up with far more coherent language and ecosystem. The company I work at has actually been doing a lot of work to try and keep with that belief.

세 달이 지난 지금은 그렇게 생각하지 않는다. 과제를 마치며, 온갖 메뉴가 혼재하는 뷔페 레스토랑이 아니라 다양한 조합이 가능한, 또 그를 가능하게 하는 툴킷이라는 것을 확실히 알겠다. (당시에는 라이브러리 검색과 사용이 익숙하지 않았다.) 그리고 이런 굳이 비유를 끌고 올 필요가 없다는 것도.

(뒤늦게)코드스테이츠 프리코스 수료 과정의 요구사항을 하나씩 해치우며

과제

JavaScript Basic, Algorithm, Koans, Testbuilder까지는 대략 peachy.
빠르게 타이핑하다 엉킨 오타 때문에 넘어가지 못하며 "이게 왜 안 되는 거야"의 늪에 빠져 있던 것(e.g.: 수많은 expect 중 하나가 excpect 라고 써 있어서 통과되지 않았던 것을 몰라 Testbuilder에서 두 시간 동안 코드를 뜯어고치고 있던 것, 길이 비교를 <=로 써서 통과하지 않았던 것 등)도 있고, 새로운 개념을 코드로 적용하는 게 어려울 것 같으니 먼저 코드를 보며 개념을 이해하자! 싶어 과제에 달려들었다 "이게 도대체 뭐하는 거야"가 코어인 좌절의 참맛을 보기도 했다(언더바 하다가 울고, 리커션 하다가 검색의 벽에 부딪히기를 반복...) 마지막까지 남겨둔 과제였던 Twittler의 경우, 디자인에 신경써서 html과 css만 열심히 작성했는데 브라우저로 확인하면 DATA가 뜨지 않아 멘붕을 겪고 이것저것 시도하다가 다른 수강생들의 코드를 참조해 script.js 파일을 고치면서 애초 디자인했던 것들이 싹 사라지기도 했다.

어떤 과제를 하든 이 기술로 무엇을 할 수 있는지를 알아야 훨씬 재미있게 할 수 있다. 그런 정보를 미리 찾아보고, 이 메소드가 어떤 곳에 어떻게 쓰이는지를 잘 찾아본 뒤 시도하면 동기부여에 도움이 될 것이다. 나처럼 막바지에 와서 단시간에 달리다 여기저기 걸려 넘어지며 프로그래밍에 대한 흥미를 잃지 말자.

주차별 피드백(리뷰)

매주 화목에 온라인 세션이 진행되고, 목요일 세션이 끝나면 토요일 자정이 마감기한인 피드백 링크가 전달된다. 주중에 온라인 세션을 듣지 못하고 시간이 좀 남는 주말을 기다리면서는 해당 주차 세션에 대한 리뷰를 남기기 어렵기 때문에, 제대로 된 피드백이 아니라 폼을 제출하기 위한 피드백을 작성하게 되기도 했다. 또한 해당 주차 세션에 대한 만족도뿐 아니라 프리코스 과정 자체에 대한 만족도를 매주 체크하고 작성해야 했다. (프로그램 진행과 수강 과정을 돌아보며, 진정한 피드백/리뷰는 지금에서야 쓸 수 있을 것 같은데 말이다.)

TWIL/블로깅

일단 프로그래밍의 경우 코드를 그때그때 쓰고 (복붙도 하고!) 익혀야 하니, 개발자 도구의 콘솔이나 VS Code에서 연습한 뒤 심플노트나 Bear 앱에 간단히 정리해서 TWIL을 작성했다. 프리코스를 수강하게 된 계기였던 WCC 장학 프로그램의 일환으로 TWIL (This Week I Learned)을 꾸준히 작성해야 했고, 이는 자바스크립트에 잠시 슬럼프를 겪었던 중간의 한 달을 제외하면 어렵지 않았다. (다만 그 한 달이 중요했을 뿐. 잠시 랩탑과 인터넷을 - 비자의적으로 - 떠나 있던 기간에, WCC 수료 요청/인증 기간이 지났다는 것을 이제서야 알게 되었다.)

블로그 포스트 작성에 있어서는 플랫폼을 정하는 게 무엇보다 너무 어려웠다. 사실 대부분의 플랫폼에 계정을 하나씩은 가지고 있지만, 시기나 내용별로 자주 찾던 플랫폼이 나뉘어 있고, 최근까지 지속적으로 운영해 온 것은 없다. 그렇다고 옛날 일기가 비공개 포스트로 쌓여 있는 블로그를 몇 년만에 찾아 프로그램 수료를 위한 공개 포스트를 발행하고 싶지도 않았다.

일기나 계획/일정 정리, 학습 요약 노트의 경우 결국에는 손으로 쓰는 게 내게는 가장 편할 뿐더러 효율적이어서, 강연 내용을 받아적고 정리해 다른 사람들과 공유하기 위한 필기가 아니면 굳이 전자기기를 이용할 일이 없었다. 온라인 세션을 들으면서도 노트에 필기를 하게 되기 일쑤였다. 블로그 플랫폼처럼, 노트도 근 십오 년간 용도별로 다른 것을 쓰며 최적의 매체를 찾아 헤매다 겨우 작년에야 완전한 단권화를 이룩했는데, 중간에 다른 메모가 섞인 세션 필기의 사진을 찍어 올릴 수도 없는 노릇이었다.

무엇보다, 개인적인 이야기를 담을 준비가 되지 않은 게 한몫 했다. 나의 삶이나 커리어는, 단계 단계가 간단한 키워드나 짧은 문장으로 요약되며 각 단계가 외부에서 보기에 직관적인 인과관계를 가지고 이어져 온 종류의 것이 아니었기 때문에. 직관적인 흐름이 없고, 다듬지 않은 서사이고, 아직 준비되지 않은 모습 뿐이고. 어떤 내용을 어떻게 정리하면 좋을지 고민이 길었다. 그러나 개인적인 이야기마저 없다면 오직 수료 요구조건을 충족시키기 위해 발행되는, 그 어떤 의미도 없는 포스트 aka 넷상의 해양쓰레기가 되고 만다. (태평양 어딘가에 떠 있다는 광활한 쓰레기 섬에 대한 기사를 접할 때면 바이럴 마케팅을 위한 각종 네이버 블로그 포스트나 각종 매장에서 추가 혜택을 받기 위해 발행되어 웹을 떠돌고 있는, 정보가치가 낮은 수많은 리뷰/인증샷들을 떠올리지 않을 수 없다)

블로깅에 대한 어떤 글을 읽고 어떤 시각을 접해도 결론은 비슷했다. 블로그는 글을 전하는 매체이며, 그리하여 꾸준히 전달할 콘텐츠가 있어야 - 꾸준히 글을 써 나갈 수 있어야 의미가 있다는 것. 그런 면에선 주기적 블로깅의 개인별 지속가능성/실효성/당위에 대한 고민 및 판단이 좀더 중요한 게 아닐까. 그렇다면 프로그램 수료 요구조건으로가 아니라 장려하는 것 정도로도 충분할 것이다. 입문 개발자들을 위한 technical writing에 대한 정의나 작법에 대한 충분한 안내가 있는 게 아니기 때문에, 아주 바쁘지 않다면 프리코스 수강 전에 다양한 기술 블로그들을 먼저 탐독하는 것이 좋겠다.

마치며

단어를 찾을 때면 손으로 공기를 쥔다. 컵케익을 들고 있는 모양새로. 혹은 그 옛날 피아노를 칠 때 달걀을 쥐듯 손가락을 모으라고 했던 선생님의 지시를 뒤늦게서야 잘 따른 모양새로. 관자놀이를 관통해 이마를 거쳐 성대로 내려와 입으로 뱉어야 할 단어가 어디선가 막혀 배송이 되지 않을 때면, 혹은 유실 상태일 때면, 곧잘 취하는 제스쳐이다. ‘아… 그 뭐지 그 뭐지 그 뭐지…’ 눈을 굴리다 보면 그에 따라 안구 뒤에서 움직이는 시각신경과 근육들이 뇌를 자극해 어떻게든 현재 부재중이신 그 단어를 찾아올 것처럼, 비장하거나 간절하게 시선이 눈높이의 45도 위를 헤매기도 한다. 어떤 식으로 코드를 써야 할 지 모를 때, 함수를 어떻게 써야 하는지, 변수 선언이 어디서 어떤 식으로 이뤄져야 하는 지 모를 때 우리는 깜박이는 커서가 답을 줄 것처럼 스크린을 노려보지 않는다. 답은 정해져 있지 않고, 어떻게 접근할 것인가를 내가 결정해야 하며, 그 결정을 위해 필요한 정보를 검색할 수 있기 때문에.

(문제를 바라보는 시각에 따라 해결해야 할 과제를 작은 단위로 나누고 그것을 코드로 적는 방식이 사람마다 다른 게 재미있다. 확실히 수학적으로 접근하는 머리가 있는 사람은 코드를 좀더 간단하게 쓸 수 있다.)

프리코스를 수강하며, 스스로 보완해야 할 지점들을 더 잘 알게 되었다. 여태까지 나는 흐름을 가지고 길게 이어지는 코스에 약했다. 초반 한 달을 열심히 즐기고는, 그 때부터 흥미를 붙일 다른 것에 눈독을 들이기 시작하며 뒷심을 잃어 왔다. (이 사실을 마주하며, 십 년도 전 체대입시 운동을 하며 귀가 막히게 듣던 “뒷심! 뒷심!”하는 코치의 외침에 숨이 너무 차 목구멍이 또 한 번 찢어진 기분이었다.) 이 심각한 버그를 어떻게 차근차근 고쳐나갈지 순서도를 작성하고, 그것을 따르다가 예외적 상황에 맞닥뜨렸을 때 취할 수 있는 행동을 정리할 것이다. 물론 오랜 기간을 통해 굳어온 습관과 삶의 방식은 그 어떤 복잡한 컴퓨터 프로그램보다도 수정하기 어렵다. 게으름과 귀찮음에 승복하고는 핑계를 만들어 자신을 방어하면서도 한편 자책과 자조를 통해 느끼는 희미한 희열, 그를 반복하며 아 이것이 내 수준인가보다/나는 여기까지인가보다 하는 비관적 자기객관·일반화, 그리하여 살아온 그대로 머물러 있으려는/있게 되는 이 성질(항상성)은 생각보다 강한 것이기 때문에.

여태까지는 내가 나를 잘 몰라서 그렇다고 생각했다. 나를 충분히 파악하지 못해서. "내가 나를 잘 몰라서" 헤맨 이들이 많을 것이다. 그런데 나를 알아간다는 것만큼의 bullshit이 있을까. 해야 할 것을 정하고(부여받고), 주어진 조건(환경/제약)을 파악해서, 어디서 시작할지 정하고, 그냥 하는 것이다. 기대치 못한 상황이 발생하면 또 그에 맞게 대응하는 것이다. 하고자 하는대로, 그리하여 실제 하는대로, 알게 될 뿐이다. 그렇게 보니 아주 작은 의사결정의 기로에서도 심호흡을 한 번씩 하게 되고, 전보다 조금씩 나은 선택을 하게 되었다. 여전히 바쁘고 여전히 어렵겠지만, 앞으로의 삶이 더 재미있을 것 같다.