저는 지금까지 ‘개발’을 독학으로 진행해왔습니다. 지난 5년 간 독학으로 쌓아왔습니다. 그런데 어느 방법이든 로스(loss)가 있기 마련입니다. 그래서 독학에서 ‘개발’을 배우면서의 느낀점을 소개해드릴 겁니다. 예를 들면 장단점이라던지 이렇게 했으면 더 좋겠다던지 등의 내용입니다.


독학이라는 것

흔히 말해서 ‘혼자 공부하는 것’이라는 의미로 사용합니다. 여기에서는 꼭 사전적인 의미가 아니더라도 모두가 알던 그 뜻으로 단어를 사용하겠습니다.

독학은 사실 많은 사람이 해왔습니다. 특히 ‘개발’ 영역에서도 말이죠. 많은 블로그가 저와 같이 기술과 프로그래밍 언어에 대해서 다루고 있습니다. 그만큼 정보를 검색하는것도 쉽습니다. 하지만 이는 어떻게 보면 순수히 역기능입니다. 여기에서 저는 이 역기능에 대해서 말하고 싶습니다. 그리고 어떻게 주의할지의 힌트를 줄 것입니다. 글의 마지막에서는 약간 다른 주제도 다룰 것입니다. 그리고 나서는 제가 지금까지 말한 것에 대해서도 질문을 가지게 될 것입니다. 그 이유는 특정 부분마다 모호함이 숨어있기 때문입니다. 평면적으로 읽게 된다면 큰 문제가 없을 것입니다. 하지만 만약 이 글이 모호하다고 느낀다면 배움에는 정답이 없음을 생각하시길 바랍니다.

정보의 무질서와 그에 대한 학습

흔히 독학을 시작하면 저희는 인터넷에서 정보를 접하게 됩니다. 그러나 정보가 생각 이상으로 방대하기 때문에 문제가 됩니다. 정확히는 Disordered된 상태로 정보를 접하게 됩니다. 그 이유는 하나의 포스트는 하나의 하위주제를 다루고 있기 때문입니다. 이야기를 하기 전에 아래와 같은 스토리 설정을 제공하겠습니다.

  • 학습하려는 프로그래밍 언어: JavaScript

위와 같이 JavaScript라는 전체주제를 학습하려고 합니다. 여기에서 세부주제란 말은 JavaScript를 사용한 특정 해법을 말합니다. 그래서 XHR를 사용한 웹 컨텐츠 가져오기, jQuery에서 Ajax를 사용한 준실시간 개발과 같은 제목의 글이 세부주제가 되겠습니다. 하지만 하나 더 나아가자면 위의 예시 제목들 중에서 아래와 같이도 또다른 세부항목으로 정렬할 수 있습니다.

  • 전체주제: JavaScript
  • 주제: PureJS, jQuery
  • 세부주제: XHR를 사용한 웹 컨텐츠 가져오기, jQuery에서 Ajax를 사용한 준실시간 개발

그리고 여기에서 저희는 아래와 같은 상황에 직면하기가 쉬워집니다.

더하기를 배우기 전에 공식을 배우고 곱셈을 배웁니다.

위와 같은 상황은 매우 쉽게 발생할 수 있습니다. 그 또다른 이유를 제시하자면 ‘기준’이 없기 때문입니다. 흔히 학교 수업(학원, ... 등 무엇이든)에서는 진도과정이 제시됩니다. 하지만 독학에서는 저희가 진도를 만들어갑니다. 하나의 학습코스를 만드는 것이죠. 그런데 배우려는 것에 대해서 알고 있었습니까? 이는 매우 큰 시간적인 비효율을 이룰 것입니다. 시간의 손실에 대해서는 ‘나중에 다시 제대로 배우려고 할 때’와 같은 상황이 발생하기가 쉽다는 것입니다.

‘선생님’ 역할에서 도움받기

항상 무엇이든 정답이 되기 어렵습니다. 그러나 시간적 효율을 위해서 한 가지는 권장합니다. 동영상 강좌나 다른 방법이든 하나의 이어진 코스를 통해 학습하세요. 인터넷은 참고자료가 되는 것이 더 어울립니다.

아래와 같은 것들은 하나의 전체, 세부주제에 대해서 점진적으로 다가갑니다:

  • 영상 강좌
  • Coursera 등 솔루션

인터넷 블로그포스트는 무엇이 문제인가요?

물론 블로그포스트도 일부의 경우 n편으로 나누어져 순차적인 학습을 제시할 때도 있습니다. 하지만 이는 문제가 되기 쉽습니다. 그 이유는 항상 그 n편이 완벽하지 않을 때가 많습니다. 즉, 쉽게 중간에 중단될 수 있습니다. 그리고 품질적인 문제가 제일 시급합니다.

반대로 블로그포스트가 가질 수 있는 장점을 말해본다면:

  • 공식적이지 않아도 개인적인 팁을 무제한적으로 방출할 수 있습니다.
  • 학습이 훨씬 자유롭기 때문에 훨씬 큰 틀 내에서 학습할 수 있습니다.

여기에서 첫 번째 장점은 매우 커다랗습니다. 하지만 그것을 받아들이는 것은 저희입니다. 또한 선택적이며 책임이 따릅니다. 그 책임이 위에서 제시한 ‘선생님’의 결여로 인한 시간적 손실입니다.

온라인 커뮤니티에서의 ‘질문’

흔히 배우다보면 당연히 질문이 생깁니다. 하지만 인터넷에서는 약간 더 조심하세요. 받아들이는 정보를 잘 정제해야 합니다. 자신이 알고있지 않다면 말을 하지 않는 편도 많습니다. 그러나 저와 같은 경우는 때때로 모르는 것임에도 불구하고 가서 의견 제시를 할 때가 있습니다. 이 문장은 문제가 될 수 있지만 질문자의 입장에서 보면 일종의 불필요한 정보가 될 수 있습니다. 질문의 본질을 흐릴 수 있다는 것입니다.

그렇다고 의견 제시를 하지 않아야 한다는 것은 아닙니다. 의견 제시는 자신의 생각을 평가받고 공유하고 다시 정제하는 과정입니다. 다시 질문자 입장에서 답변자의 의견도 다시 생각해볼 필요가 있다는 것입니다.

질문에 대한 답을 찾아나가고 싶습니다만

저는 온라인에서 그렇게 많이는 아니지만 그 5년 동안의 질문을 했었습니다. 무엇이 문제였을까요? 답변자 분들 중에는 뛰어난 분들이 많습니다. 그러나 하나같이 대부분의 답변자 분들은 저에게 답변을 한 것이 아닌 질문을 답변했었습니다. 그게 정답이었을지라도 저에게는 아니었습니다.

답변자 분들 중에 특정 답변자 분들은 이렇게 생각합니다:

제 순수한 ‘의견’을 말하고 싶습니다

그런데 아닙니다. 받은 답변 중 특히 화나는 몇 가지 경우가 있었습니다. 질문을 왜 합니까? 저는 이 부분에서 답변자분들에게 약간 화가 납니다. 그것은 제 시점에서 어울리는 답변이 아닙니다. 특히 개발, 코딩의 과정에서의 일입니다. 예를 들면:

  • 실제 주제에 관한 문장형(단문, 장문 모두)으로 이루어진 자신의 의견

애초 인터넷에서 독학을 한 경우이고 완벽한 전 과정에 대한 이해가 보장되지 않습니다. 그런데 그 상태에서 갑자기 난이도만 한 단계 올린 셈입니다. 전혀 어울리지 않다고 생각합니다. 만약 지금 똑같은 답변을 들었다면 그것은 저에게 좋은 답으로 평가받았을 것입니다. 당시에 훨씬 더 많은 ‘개발’ 분야의 전제가 깔려있기 때문입니다. 이는 충분히 아웃라인을 잡아준 것으로 생각합니다. 하지만 당시였다면 차라리 소소한 팁이라도 훨씬 고마웠을겁니다. 그렇지 않다면 굳이 당시의 저에게 잘난 척 그 이상, 그 이하로도 보이지 않습니다.

질문을 통해 자신은 문제의 해결법을 찾으려고 했습니다. 일종의 바로가기입니다. 그러나 결과적으로 저는 힌트가 아닌 또다른 주제를 얻기가 끝이었습니다.


이렇게 글을 굳이 남긴데에는 이유가 있습니다. 정말로 시간적으로 손실이 일어났기 때문입니다. 그리고 정말로 아깝습니다.

제 끄적임을 읽어주셔서 감사합니다.