Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

소프트웨어분야는 특히 독학으로 관련 기술을 습득한 후 산업현장에 직접 뛰어드는 경우가 많은 것 같다. 산업현장이라고 하니, 너무 기계냄새가 나는 것 같지만 얘기하기 쉽게 산업현장이라고 했다. 그러려니 하고 넘어가줬으면 한다. 이렇게 된데에는 소프트웨어의 다음과 같은 특성 때문이 아닐까 생각해본다.
  • 비교적 역사가 짧다.
  • 역사가 짧은것에 비하여. 높은 수준의 응용이 쏟아져 나오고 있다.
  • 비싼장비가 필요 없다. 일반 PC로도 개발에서 테스트까지 해볼만한거 다 해볼 수 있다.
  • 특히 웹의 경우 기반이 잘 갖추어져 있어서, 개발 메뉴얼 읽는 정도로 서비스를 제작할 수 있다.
여기에 Internet(:12) 인프라가 잘 갖추어져 있기도 하다. 즉 개인이든지 단체이든지 간에 쉽게 학습환경을 만들 수 있다는 점, 학습해야할 내용도 고도로 추상화된 내용 이라서 쉽게 접근 할 수 있다는 점 등이 복합작용한 것 같다. 진입장벽이 낮다는 얘기다. 워낙에 높은 수준의 응용이다 보니, 기술발전 속도가 빠르고 역동적이라는 점도 독학을 하게 만드는 요인이라고 생각된다. 젊은이들은 아무래도 순발력에 관한한 어느정도의 자신감을 가지고 있을 것이 분명하기 때문이다.

독학이 그만큼 유행을 하니, 독학의 장단점에 대해서 생각해 보는 것도 의미가 있을 것 같기도 하다. 온라인 상에서의 개발자 관련 글을 보면, 독학으로 개발자 분야에 뛰어들어도 괜찮은가요?라는 내용의 글이 단골메뉴이기도 하고 말이다. 이런 내용의 글이 자주 올라오는 건, 분명히 실무기술을 빠른시간에 배우기는 하지만 그만큼 간과하고 있는게 있지 않을까. 그래서 산업현장에서 실재 무시를 당하거나 기회를 얻는데 있어서 불리함이 작용하지 않을까 하는 염려 때문일 것이다.

참고로 나도 비전공자이며 독학으로 이바닥에 들어선 몸이다. 그러니 선입관은 가지지 말아주었으면 한다.

독학과 정공의 가장 큰 차이점중에 하나는 이름을 가지느냐 아니냐의 차이라고 생각된다. 다시 말하자면 용어를 알고 있느냐 그렇지 않느냐의 차이다.

경험으로 이해하고 있는 것과 그 경험에 붙여진 이름을 알고 있는 것과는 분명한 차이가 있다. 전술패턴(:12)을 예로 들어 얘기해 보자면, 사실 전술패턴이라는 용어를 모르더라도 어느정도의 개발 경험이 쌓인다면, 경험적으로 전술패턴이 응용된 코드를 만들어낸다. 이런류의 개발자들이 나중에 패턴관련책을 보게 되면, 얼래? 뭐.. 이거 내가 이전에 다 써먹던 내용아냐!!!라는 생각을 가지게 된다. 독학을 했다면, 이런 경험을 분명히 가지고 있을 것이다.

경험으로 알고 있는 것이나 이름을 알고 있는 것이나 무슨 차이가 있나 ? 결국은 써먹느냐 못하느냐가 중요한 것 아니냐 ? 라고 생각할 수 도 있을 것이다. 그러나 분명한 차이가 있다. 이름을 알고 있을 때, 얻을 수 있는 가장 큰 잇점은 수월한 커뮤니케이션에 있다. 이러저러해서 요러저러하고 쿵더쿵 하면, 빠르고 쉽게 개발을 할 수 있습니다. 라고 하는 것보다 전술패턴을 사용하겠습니다. 라고 하는게 커뮤니케이션 하기가 훨씬 쉽다.

또한 그 집단에 쉽게 발을 들여 놓을 수 있느냐 하는 것도 결정이 된다.

언어의 경계가 곧 세계의 경계라는 말이 있다. 이 말은 같은 언어를 쓰게 되면, 세계의 일부를 공유하게 됨을 의미한다. 특정 집단에 쉽게 융화될 수 있다 이런 얘기가 될 것이다. 소위 말하는 전문가 집단에서 인정받을려면 그들 전문가 집단이 사용하는 전문용어를 잘 사용해야 된다는 얘기가 여기에서 나오는 것이지 싶다. 뭐, 엄청 있어보이는 척 할려고 전문용어를 사용한다라고 기분나빠할 수도 있겠지만 이걸 단순히 있는 척의 문제라고만 할 수 있을까.

이름을 알고 있을 때, 얻을 수 있는 또다른 장점을 경험과 정보,지식을 더 잘 체계화할 수 있다는데 있다. 그냥 간단히 정보를 분류하고 체계화 하는 그 중심에 뭐가 있는지를 생각해보면 된다. 어떤 정보를 정리할 때 쓰는 가장 효율적인 방법중 하나는 계층적으로 정보를 구조화 하는 것인데, 이 중심에 있는게 단어다.

단어를 알고 있으면, 경험을 더 쉽게 끄집어 낼 수 있다는 장점도 있다. 우리가 어렸을 적의 일을 기억하지 못하는 이유는 단어를 모르기 때문이라는 연구결과를 본적이 있다. 사실 사물이나 사람을 기억하기 위한 가장 좋은 방법은 이름을 외우는 일이기도 하다. 이른바 연상을 통한 정보의 검색이라고나 할까.

이러한 이유들 때문에, 독학을 통해서는 체계적으로 지식망을 만들기 힘들다. 특정 집단에 인정받을 수 없다라는 얘기가 생겨나는게 아닌가 하는 생각이 든다. 몇몇 아예, 용어를 통해서 진입장벽을 쌓는 영역도 있는 것같다.

음 그럼 독학으로 얻을 수 있는 장점은 뭐가 있을까.

가장 큰 장점은 기존의 틀에 얽매이지 않고, 자유로운 사고가 가능하다는데 있지 싶다. 창조적인 생각이 틀에 얽매이지 않은 자유로운 사고속에서 더욱 활발히 활동한다는 것은 널리 알려진 사실이기도 하다.

우리가 정보를 기억해내고자 할때, 매개체로 삼는 것은 단어인데 원래 단어라는 것은 여러가지 함축된 의미를 일반화,단순화 한 것이기 때문으로 생각을 한방향으로 제한시킨다. 이는 알려진 문제는 빠르게 풀 수 있도록 도와주지만 창발성을 제한시킨다. 이는 자유로운 사고가 중요한 일을 함에 있어서 문제가 될 수 있을거라 생각한다.

모든 것이 메뉴얼화되고 색인된 대기업 조직에서 창의적인 생각이 제한되는 이유가 아닐까.

또한 내가 많이 알고 있다고 생각할 수록 즉 자신이 전문가에 가깝다고 생각할 수록, 자신이 모든 종류의 중대한 문제에 대해서 잘알고 있으며, 다른 누구보다 잘 해결할 수 있다는 아집에 빠질 수 있다. 때때로 사람들은 어려운 단어를 많이 알고 있을 때, 자신이 전문가라고 생각하는것 같다. 개발자 커뮤니티에서의 flame, 문제 해결을 위한 타부서사람들과의 대화, 가볍게 모인 개발자 오프모임에서의 옹고집 주장을 내세우는 몇몇과 그들로 인해 마음이 상해본적이 있다면 이해가 빠를 것이다. 이 경우 정말 기분이 우울한 것은 분명 무언가 잘못되었다는 걸 느끼는데, 말로 어찌해볼 수 없다는 것이다.

반대로 권위에 의해서 정해진 코스를 밟지 않고 공부를 한 사람들은 그렇지 않은 사람보다 더 겸손할 수 있다. 소크라테스가 말하길 지혜로운 사람은 많이 알고 있는 전문가가 아닌, 자신의 부족함을 알고 있는 자라고 했다.