상세 컨텐츠

본문 제목

프로그래머로 가는 길 - 프로그래밍에 입문하시는 분들을 위하여

종태기 생각

by ryujt 2010. 12. 20. 16:35

본문

프로그래머의 길에 오신 것을 환영합니다.  근래 "IT 인력에 대한 대우가 나쁘다 전망이 없다" 하여 프로그래머의 길을 기피하는 현상이 있는 것 같습니다.  하지만, 이 길에서 꽤 오랜 시간을 보내왔고, 아직도 이 길을 천직으로 알고 사는 저로서는 프로그래머만큼 매력적인 일을 본 적이 없습니다.

이제부터, 입문자들을 위해서 부족하지만 제가 몇 가지 충고를 드릴려고 합니다.  하지만, 그 전에 한 가지 당부하고 싶은 말이 하나 있습니다.

"천천히, 자신의 선택을 즐기세요!"

지금부터 여러분들은 마라톤보다 더욱 길고 긴 여정에 올라섰습니다.  실망과 시련이 반복된다고 해도, 그것이 당연한 것이니 조급한 판단은 유보하세요.  프로그래머의 길은 전문가의 길 입니다.  전문가란 어느 하나를 제대로 아는 사람을 뜻 합니다.  적어도 1만 시간 이상의 훈련이 필요하다고 합니다.  저는 개인적으로 10년은 수련해야 전문가의 길이 시작된다고 생각합니다.

  "미치지 않으면 찾을 수가 없고 
   미쳐 버리면 도달할 수가 없다."
 
너무 미쳐버리면 결국 고수의 길은 열릴지라도.. 
편협한 사고에 갇혀 가던 길을 멈추게 되는 것..
 
  "프로그래머로 가는 길.."



자신에게 맞는 멘토를 찾아라

우리 모두는 자신만의 색을 가지고 있습니다.  서로 비슷 할 수는 있어도 똑 같은 수는 없습니다.  야구의 타자들만 해도 각 타자마다 서로 다른 타법을 가지고 있습니다.  어느 것이 옳고 어느 것이 틀렸다고 할 수가 없는 것들입니다.  

이런 것들은 자신에게 알맞은 것들이, 즉, 자신의 색과 잘 화합하고, 자신의 목소리와 아름다운 화음을 만들 수 있는 길이 있기 마련입니다.  

분명 모두가 공감하는 정석이라는 것은 존재합니다.  하지만, 어떤 경우에도 들어맞는 스타일이라는 것은 없습니다.  따라서, 누군가 그러싸한 조언을 한다고 해서 거기에 매달릴 것이 아니고, 자신과 잘 맞는 스타일을 찾고, 그 사람을 또는 그 스타일이나 책 등을 멘토로 삼아야 합니다.

그럴려면 편식하지 마시고 이런 저런 것들을 틈틈히 살펴보시기 바랍니다.



시작은 쉽게 가자

저는, 프로그래머로써 공부를 시작할 때, 기본적인 지식만으로도 충분하다고 생각합니다.  오히려 너무 깊게 파지 않기를 권고합니다.  프로그램을 짜는 그 흥분, 그 행복을 먼저 느낄 틈이 없어지기 때문입니다.

스스로 아이디어를 내고, 스스로 해결책을 찾아내고, 모르는 부분 다시 살펴보는 동안. 자신도 모르게 프로그래밍은 익숙해진다고 생각합니다.

요즘 프로그래밍을 시작하시는 분들은 자신을 시대적 흐름에 맞추기 위해 너무 서두르는 것이 아닌가도 생각합니다.  하지만, 그렇게 많은 것을 급하게 주어담고 파헤쳐 나가다 보면. 멀리 가지도 못해서 지쳐버릴 것 입니다.

지금은 버리고 떠나도, 언젠가 능력이 생기면, 그러한 것들은 자연히 이해가 되는 시기가 옵니다.  아무리 머리를 싸메도 이해 안가던 것들도 금새 줄줄 읽어나갈 수 있을 정도로 말입니다.



나팔 소리에 취하지 마라

꿈꾸는 바보 - 143. 속지마라 이 미련한 것들아

나팔소리에 취하지 마라
나팔소리에 이끌린 발자국도
땀냄새 없이 이루어지지 않나니
공연한 마음으로 헛걸음 하지 마라.

웃음소리에 취하지 마라
웃음소리에 깨어난 즐거운 하루도
진실에 대한 눈물에 씻기어 내릴터이니
거짓 웃음으로 스스로를 속이지 마라.

네 마음 속에
꽃 한 송이 피어나지 않거든
네 안에 숨을 쉬는
거짓들을 집어 던져라.

현실이 고달프고
현재는 초라해도
나팔소리에 취하지 마라
웃음소리에 취하지 마라

지하철에서 좋은 물건 공장이 망하서 싸게 판다하여 기분좋게 샀다가, 몇 번 쓰지도 못하고 버린 기억이 있나요?  우리 인간은 참으로 쉽게 속고 살아갑니다.  

더 무서운 것은 그런 것에 익숙해지다보면 신앙이라는 것이 생겨 납니다.  제 정신이라면 절대로 속거나 빠져들지 않을 대상에 무섭게 집착하게 됩니다.

IT에도 이런 저런 신앙들이 참으로 많습니다.  그 중에는 마치 진리처럼 당연하게 떠받들여 지는 것들이 많습니다.  하지만, 아무리 진리처럼 보인다고 해도, 그것을 스스로 이해하고 제대로 사용하지 못한다면 오히려 자신을 해치게 됩니다.

누군가 그대에게 그대의 짐을 쉽게 덜어 줄 수 있다고 말한다면, 그것이 바로 나팔 소리입니다.  서둘지 말고 천천히 정도를 걸어 가시기 바랍니다.



반짝이는 것만을 쫓아 다니지 마라

이 글은 나팔 소리와 이어서 쓰는 글 입니다.  다만, 밖에서 들려오는 소리가 아닌, 자신의 내부에서 들려오는 나팔 소리에 대한 이야기 입니다.

가끔 무엇인가 배우려는 사람이 기초를 완전히 무시하고, 자신에게 버거운 반짝이는 기술에 너무 관심을 갖는 경우를 보게 됩니다.  

물론 처음 시작 할 때 너무 지겨운 이론만을 접하는 것보다 바로 실전에 가까운 기술을 통해서 흥미를 유지하는 것도 상당히 중요합니다.  하지만, 거기에도 한계라는 것이 있기 마련입니다.  일어서지도 못하면서 뛰는 법을 배우려고 하려는 것처럼 무모한 일을 쫓아 다니지 마시기 바랍니다.



열정이 생기지 않는다면 지금 당장 다른 일을 찾아보라

"공부 해야 하는데.." 하고 이야기 하는 사람들을 많이 봅니다.  하지만, "해야 하는 공부"는 너무나 어렵습니다.  "하고 싶은 공부"도 어려운데, "해야 하는 공부"를 잘하는 것은 불가능에 가깝습니다.

예전에 대학에서 강의를 하게 되었을 때, 학생 들에게 이렇게 물어 본 적이 있습니다.

"혹시, 프로그래밍에 대한 희열을 느껴 보신 적이 있습니까?"

불행이도 손을 드는 친구들이 거의 없더군요.  저는 그들에게 프로그래밍에 대한 희열을 느껴 본 적이 없다면 지금 당장 다른 공부를 시작하라고 해줬습니다.  좀 더 쉬운 길, 이를 테면 의사가 되라고요.  학생들이 웃더군요.  제가 의사들의 고충을 잘 알지 못합니다.  하지만, 저는 프로그래머의 길이 그보다 더 험하다고 확신합니다.  

비유적인 글에 의사이신 분들이 기분 나쁘게 생각하시지 않았으면 합니다.   

프로그래머는 움직이는 진리를 쫓아서 공부하고 있습니다.  아무리 어렵더라도 한 번 공부하면 평생 다시 공부 할 필요가 없는 것이 아니라, 항상 새로운 것들을 공부해야만 살아남을 수 있는 세계입니다. 우리는 언제나, 서 있는 표적이 아니라 움직이는 표적을 맞춰야 합니다.  더구나 소프트웨어 분야는, 아직 이론적으로 완전히 정립되지 않은 분야입니다.

프로그래머의 길이 어려운 이유 중에 하나는, 그 시작이 너무나 쉽고 살아남기는 너무나 힘들다는 점에 있습니다.  전공자가 아니더라도 독학이나 학원 등을 통해서 바로 프로의 세계로 뛰어들 수 있기 때문에, 오히려 이 분야가 점점 더 살아남기 어려운 것으로 보입니다.

여기서 학원 출신들을 비하하기 위한 글은 아님을 미리 밝혀 둡니다.  이 글을 쓰는 본인도 전공자가 아닙니다.

저는 "아마추어와 프로가 같은 무대에서 싸우는 분야는 프로그래밍과 도박 뿐" 이라고 생각합니다.  그러니, 다시 한 번 경고합니다.  열정이 생기지 않는다면, 다른 길을 찾아보세요.



몰입

세간에 몰입(Flow)라는 열풍이 분 적이 있습니다.  서점에 가보시면 몰입에 관한 상당히 많은 책들이 나와 있습니다.  그중에는 책 읽기에 몰입되지 않는 것들도 있으니 살펴서 보세요 ^^*

그 요지는 상당히 간단합니다.  꽤 오래 전 부처도 같은 이야기를 설파한 적이 있습니다.  부처의 제자가 스스로 깨달음이 늦는 것을 한 탄하고 있을 때, 부처가 그가 비파를 잘 타는 것을 알고 대화를 이끌어 갑니다.

“소나야, 너는 집에 있을 때 비파를 잘 타지 않았더냐?” 
“그렇습니다. 세존이시여!” 
“너는 어떻게 생각하느냐? 비파 줄을 너무 강하게 죄면 소리가 잘 나더냐?” 
“그렇지 않습니다. 세존이시여.” 
“그러면 비파 줄을 아주 느슨하게 하면 소리가 잘 나더냐?” 
“그렇지 않습니다. 세존이시여.” 
“소나야, 그와 마찬가지로 노력도 너무 지나치면 마음의 동요를 가져오고, 너무 느슨하면 나태하게 된다. 그러므로, 소나야, 균형을 유지해야 한다.” 
“예, 그렇게 하겠습니다.” 

소나 존자는 세존의 가르침대로 행하여 마침내 깨달음을 얻어 아라한이 되었다. 

즉, 너무 자신을 몰아치며 어려운 것을 공부하다보면 호기심의 에너지가 사라지고, 익숙하고 쉬운 일만 반복하다보면 나태함으로 인해 열정이 식어가게 되는 것 입니다.

주기적으로 새롭고 흥미로운 것들을 찾아서 도전하고 공부하기를 게을리 하지 말아야 하며, 자신에게 너무 어려운 일에 매달려서는 안되는 것 입니다.



감각을 우선으로 키워라

"아는 것"과 "할 줄 아는 것"에는 커다란 차이가 있습니다.  하지만, 대부분의 경우 "할 줄 아는 것"보다 "아는 것"을 내세우면서 뽐을 내곤 합니다.  "할 줄 아는 것"보다 "아는 것"이 더 쉽기 때문입니다.  그래서, 이 분야에서는 너무나 많이 아는 초보들로 넘쳐납니다.

프로그래밍에서는 아는 것의 양보다도 감각이 더욱 중요합니다.  프로그래머에게 중요한 감각의 요소는 다음과 같다고 생각합니다.
감각 = (문제이해 능력 + 시나리오 작성 능력) * 학습능력

감각이 부족하게 되면, 실무에서는 전혀 쓸모 없는 인재가 되어 버립니다.  근래 잘나가는 기업들이 성적이나 시험이 아닌 창의력이나 문제 해결 능력을 평가하려고 안달이 난 이유도 여기에 있습니다.

아무리 좋은 것을 듣고 아무리 좋은 것을 읽어도 여전히 여러분의 실력이 성장한 것은 아닙니다.  깨달음은 순간일 뿐 입니다.  무엇인가 깨닫고 무엇인가 느낀 것이 있다면, 이제 수없이 연마하는 시간이 필요한 것 입니다.  

감각은 천부적으로 타고나는 경우도 있지만, 그것은 어디까지나 기본에 지나지 않고, 감각의 완성에는 수많은 훈련이 필요 합니다.
 
누구나 배트를 휘둘러 공을 쳐내는
"기술" 자체는 쉽게 이해할 수 있지만,
실재로 멋지게 공을 쳐내기 위해서는
수 없이 헛 방망이질을 해야 하는 것처럼...



기본*기본 그리고 또 기본!

입문 과정은 흥미를 쫓아서 시작 할 수 있습니다.  그리고, 그렇게 흥미를 가지게 되면 무서운 성장을 하게 됩니다.   프로그래머들 중에는 이렇게 성장한 경우가 많은 편 같습니다.

하지만, 기본이 무너지면 전체가 무너집니다.  1층을 건너 뛰고 그 위에 건물을 세울 수는 없을 겁니다.

동전 10개를 얼마나 빨리 쌓을 수 있는 지 내기를 해 봅시다.  대부분 금새 동전 10개를 쌓아 올릴 수 있을 것 입니다.  자 그럼, 그 동전 10개 위에 얼마나 많은 동전을 쌓을 수 있는 지, 내기를 변경해 보도록 하겠습니다.  어떻게 될 까요?  대부분 얼마 못 쌓고 동전을 무너트리고 말 것 입니다.

만약에 처음부터 동전을 높게 쌓는 것이 내기였다면 어떻게 되었을 까요?  처음 놓는 동전들이 쌓기 쉽다고, 그렇게 서두르지는 않았을 것 입니다.

이제 여러분들이 결정 할 시간입니다.  평생 동전 10개 누가 더 빨리 쌓느냐를 자랑하며 살아 갈 것인지?  아니면, 전문가로써 우뚝 서고자 할 것 인지? 말 입니다.

가끔, 이것 저것 다 조금씩 할 수 있는, 그리고 너무나 많은 지식을 겸비한, 넘처나는, 초보들을 현장에서 만나게되면, 우리 나라의 소프트웨어 관련 인재 양성이 얼마나 뒤틀려 있는 지를 알게 됩니다.

다양한 알고리즘과 프로그래밍 관련 퀴즈 등을 꾸준히 공부해주시기 바라며, 기초적인 이론 공부도 소흘히 넘기지 않기를 바랍니다.

물론, 저는 항상 감각과 열정이 가장 중요하다고 생각합니다.

'종태기 생각' 카테고리의 다른 글

10년 간의 삽질  (1) 2013.04.22
성장의 비밀  (0) 2011.12.22
우유를 시켜먹는 사람보다 배달하는 사람이 더 건강하다.  (2) 2010.12.20
얼마나 배워야 하나요?  (0) 2010.12.20
신입의 자격  (2) 2010.11.15

관련글 더보기