안녕하십니까. 현업 프로그래머 겸, 강사 겸, 데브피아의 ASP.NET 시삽을 맡고 있는
서학수라고 합니다.
앞으로 개발자의 길을 걷고 싶으시거나, 이제 막 걸음을 떼시려고 하시는 분들께 조
금이나마 보탬이 될까 싶어서 글을 남겨봅니다. 개인 의견에는 항상 모순도 있을 수
있고, 옳지 않을 수도 있으며, 의견을 달리 하시는 분들도 많으실 껍니다. 그저 참고
로만 삼아주시길 바랍니다.
그 동안 제 통신 경력 11년에 Visual Basic 3.0 프로그래머들의 모임때부터 이어온
커뮤니티의 경험과 실직자 및 미취업자의 취업교육, 회사의 재정이 약하여 고급 개발
자가 없는 기업의 교육, 데브피아의 코너를 맡아서 본 경험, 직접 구인을 해서 면접
을 본 경험등을 살려서 의견을 담아 봅니다. ^^;; (거창해 보이지만, 사실 알고 보면
별 것 없습니다. .. ^^)
1. 학생들의 착각....
전산학과 학생들이건, 아니면 학교에서 전산, 개발이 좋아서 비전공이면서 개발자를
꿈꾸는 사람들의 큰 착각은 바로 자신이 그 집단(여기서는 학교의 학과일수도 있고,
학원생, 친구, 모임 등등..)에서 나름대로 무엇인가 배웠다고 생각하는 점입니다.
운전면허에 비유하자면 운전면허 시험장에서 그 시험장을 마스터 하고 나서 생기는
자부심인데, 이것은 면허시험장 내부의 문제일 뿐 세상에 막 나오면? 아시죠? 러시
아워.. 꽉 막힌 교통..끼어들기.. 폭력, 사고, 정체, 차량 고장.....등등...
회사에서는 학생들의 공부를 인정하지 않습니다. 그저 공부로만 생각할 뿐입니다. 따
라서 학교나 학원에서 공부를 좀 더 해서 사회에 나서겠다는 것 보다는, 사회에서 몸
으로 부딪혀서 익히는 것이 더 좋습니다. (물론 취업이 어렵지만요.. )
2. 학력은 무관??
면접을 직접 보신 경험이 있는 분들은 모두 공감하는 얘기가 있습니다.
처음엔 학력 파괴, 개발자는 학력과 관계없다. (저도 전공과 지금 개발과는 거리가
많습니다.) 그래서 이력서의 학력은 보지도 않습니다. 그러나... 시간이 지나고 수백
통이 넘는 이력서와 수십명을 몇달에 걸쳐서 만나보면, 그 뒤로는 학력란에 눈이 가
고 있는 자신을 발견하게 됩니다.
만일 학교나 학원에 계신 분들이 이 글을 보신다면, 절대 학교나 학원의 과정등을 무
시하는 실수를 범하지는 마시길 바랍니다. 직접 관련은 없어도 절대 무시 못 하는 변
수로 작용합니다.
3. 자신의 눈높이는??
누구는 연봉이 억대이더라, 누구는 프로젝트 하나를 한달간 해주고 몇천만원 받았더
라.. 그사람이 겨우 나이가 30대라더라... 이러한 소문은 수많은 젊은이를 개발자로
몰았습니다. 벤처라는 허울좋은 기업 트랜드도 그 한 몫을 했고, 어리버리한 정부도
그에 동조를 했었지요.
그러나 초보인 경우, 적어도 개발자라면 초봉이 얼마는 되어야지.. 라는 생각을 조금
이라도 갖고 계신분은 빨리 포기하시길 바랍니다. 초보일수록 돈 보다는 자신의 윗사
람이 누구인지를 살피십시오. 자신의 윗사람 (결국 이사람도 개발자겠죠?)에 따라서
자신의 인생의 속도는 급격한 차이를 보입니다.
참고로 저도 처음 일 할때는 두달간 일해주고 30만원 받았었습니다. 생각해보니 차비
와 밥값이 더 나간 듯....T.T
4. 자신의 기술을 믿는가?
개발자들이 사용하는 프로그램을 뭐라고 부르는지요? 바로 툴입니다.
툴은 도구란 뜻이지요. 도구란 용도에 맞게 사용하면 그만입니다. 그러나 너무나도
많은 개발자는 자신의 툴, 언어를 맹신하는 경향이 있습니다. 요즘 인기 많은 "보아"
라는 가수는 3개국어를 구사하더군요. 그 "보아"가 한국어, 일본어는 별루고, 영어가
최고이니 앞으론 TV에서 영어만 얘기할 껍니다라고 한다면, 그 누가 좋게 보겠습니까
...
자신에게 주력하는 툴, 언어, 기술이 있을 껍니다. 없는 사람은 없습니다. 그러나,
그것이 정답인양 자부하거나, 행동하지 마십시오.
5. 새로운 것에 민감한가?
지나치게 새로운 것에만 민감한 사람이 있습니다. 이 사람은 실속이 없지요. 뭐 하나
잘 하는 것이 없다는 얘깁니다. 반대로 지나치게 보수적인 사람이 있습니다. 난 이
거면 충분해. 새로 나온것은 일단 지금 하는 것이나 잘하고 나서 보지 뭐..하는
사람이 있는데 이 역시 위험한 생각입니다.
외국과 달리 한국은 개발에도 유행이 어느 정도 영향이 있습니다. (아닌 경우도 물론
있구요..) 따라서 자신의 현재 기술이 아직 높지 않다고 하더라도, 언제나 새로운
정보에는 눈과 귀를 열어 두셔야 합니다. 그래야 앞으로의 처신을 능동적으로 대처할
수 있습니다.
6. 정말 알고 있는 것 맞나요?
면접을 보면 정말이지 수퍼 개발자들의 이력서가 따로 없습니다.
안 만져본 OS가 없으며, 안 다뤄본 DB가 없으며, 왠만한 개발툴을 다 경험이 있다고
써 있습니다. 뭐 공부한 것을 부풀려 쓰는 이력서야 일단 눈에 띄게 하는데에는 효과
적이니 저도 권장하는 편입니다. 어차피 회사도 다 감안해서 살펴보니 마구마구 쓰세
요..
그런데!!! 이런 비유를 하나 하고 싶습니다.
자기 차를 가지고 있는 홍길동이 있습니다. 홍길동은 운전면허를 딴지 언 1년이 지나
고 차를 몰아본 경험도 1년이 되었습니다. 그러나, 차를 몰 줄만 알았지 본네트
한 번을 열어본 경험도 차를 유심히 본 경험도 없습니다. 이 홍길동을 차량 전문가라
고 할 수 있을까요?
지금의 초보 개발자의 큰 문제점 중에 하나가 바로 이런 써보는 것만으로 경력이 채
워진 분들입니다. 그 어떠한 툴, 그 어떠한 언어도 쉽게 배워지는 것은 없습니다. 활
용은 두말할 것도 없습니다.
진정한 차량 전문가라면 차에서 나는 소리만으로 어디가 문제인지, 뭘 해줘야하는지
다 압니다. 아니 모르면 공부를 해서라도 알아냅니다. 그래서 남이 타던 차를 타보기
만 해도.. "이 차는 어디어디어디가 문제야, 이렇게 저렇게 해.." 라고 말할 수 있는
것입니다. 그러나 지금의 개발자는 언어 자체에 목숨을 거는 개발자가 너무도 많습니
다. 잘 안쓰는 함수들, 특이한 기법들... 남이 알아보기힘든 코딩 스타일.. 이것은
스스로 무인도로 걸어들어가는 길입니다.
외국어를 하는 것이 잘 안쓰는 단어로 문장을 만드는 것인가요? 평범한 단어로 재치
있고, 유머러스하며, 그 언어의 토박이들이 친근감을 느끼게 하는 문장이 더 좋은 것
입니다. 공부를 하시되, 마치 회화를 하듯 어떻게 하면 쉽고, 간결하며, 정확한 의미
가 전달될 수 있는지 알아야 합니다. 이것을 위해서는 해당 툴, 해당 언어 등의 동작
원리, 설계원리, 구현표준방법 등에 관심을 갖고 살펴봐야 합니다.
7. 자신의 눈으로 보고 있지는 않은지?
초보 개발자가 취업을 위해서 자신의 파일럿 프로젝트 (학원에서 임시로 해본다던지
하는...) 나, 기존 회사의 코드 등을 보여주는 경우가 종종 있습니다. 물론 동작하지
않는 미완성 코드는 당연히 회사에서 달갑지 않은 것이고, 그것을 면접에서 보여주
는 사람은 아마도 없을 것입니다.
그렇다면 모두가 다 정상적으로 동작하는 것을 보여주고 취업을 시도한다는 얘깁니다
. 무엇이 차이일까요? 여러분이 차를 산다고 하면, 어떤 차를 사시겠습니까? 핸들,
바퀴 4개, 트렁크 정상적으로 열리는 지를 볼껀가요? 차를 살 때에는 차의 내부를 봅
니다. 엔진은 어디껏이며, 얼마나 성능이 좋은지, 사고 날때에 얼마나 안전한지, 기
름을 얼마나 조금 먹는지..... 개발자의 결과물도 마찬가지 평가를 받아야 합니다.
겉으로 웹, C/S 이런게 중요한 것이 아닙니다. 얼마나 성능을 고려해서 설계했는지,
재활용성을 얼마나 좋은지, 오류 발생시 어떻게 처리되는지, 하드웨어를 얼마나 조금
소모하는지.... 물론 이런 것들은 쉽게 알 수 없습니다. 그러나 공부하는 방법을 바
꿔본다면..그다지 먼 곳에 있지도 않습니다.
자신의 눈으로 결과를 판단하지 마십시오.
8. 자신의 코드인가? 타인의 코드인가?
어떤 초보 개발자가 간이 프로젝트를 시도해 봅니다. 설계 부터 막막합니다. 책을 참
고하여 설계를 익혀봅니다. 여의치가 않습니다. 일단 책에서 제시한 스타일로 설계를
합니다. DB는 표준 DB인 Northwind를 사용합니다. 개발을 합니다. 익숙치 않은 언어
와 툴 탓인지 에러가 많고, 컴파일이 안됩니다. 데브피아에 질문을 합니다. 다른 사
람의 소스를 찾아서 같은 부분을 복사합니다.... 완성했습니다....
이게 누구의 코드인가요?
물론 모방은 창조의 어머니이며, 이 말은 개발에서 100% 활용 가치가 있는 말입니다.
여러분이 중, 고등학교 때에 수학이라는 과목을 배웠습니다. 공식을 달달달 외워서
문제를 풉니다. 잘 풀었습니다.
그러나 이렇게 잘 푼 사람을 수학의 전문가라고 할 수는 없습니다. 적어도 공식을 이
해하고 공식을 증명할 수준이 되어서야 비로소 전문가라고 할 수 있는 대열에 낄 자
격이 있습니다. 타인의 소스, 타인의 답변, 책의 예제, 공개된 소스,..... 모두 좋습
니다. 그러나.. 이것을 이해해서 자신이 설계한 것과, 그 소스를 일단 있는 그대로
베껴내고, 소스 코드의 동작만을 살펴봐서는 절대 초급자에서 벗어나지 못 할 것입니
다. 개발은 응용입니다. 원리를 모르는 사람에게 응용이란 뜬 그름 잡는 일입니다.
9. 마지막으로 사람은 많은데 사람이 없다~~....
현재 경제도 좋지 않고, 부Si 라는 사람은 전쟁이나 할려고 하고, 정치판에서 돈 먹
기 바쁘고, 사업가는 자신의 재산 불리는데만 혈안인 이 나라에서 취업을 하기란 쉽
지 않은 것은 누구나 공감하는 사실일 것입니다.
그런데 회사에서는 사람을 뽑기가 힘든 사실을 알고 계십니까?
실업자가 늘어나면 사람이 많아야 할텐데 정작 회사에서는 뽑을 사람이 없습니다.
여러분이 취업을 원하십니까? 그렇다면 회사가 바라는 여러분이 되셔야 합니다.
공부 보다는 실무를... 테크닉 보다는 솔루션을... 결과물 보다는 내부를...
지금의 회사들은 경력이 없는 초보를 돈을 줘가면서 키우려는 의지가 없습니다.
그러나, 회사 역시 고급 개발자에게 줄 돈이 없기 때문에 서로 타협하여 조금이라도
더 나은 초, 중급 개발자를 뽑으려고 합니다. 학원, 책, 학교를 다니고 배운 사람은
너무도 많습니다. 그러나 그 원리를 이해하고, 설계를 할 줄 알며, 응용을 할 줄
아는 사람은 그다지 많지 않습니다.
페인트 통에 붓을 담궜다가 벽에 바르는 것은 저도 할 수 있습니다. 그러나 전 페인
트 전문가가 아닙니다. 여러분이 개발툴로 간이 프로젝트를 만들었다고 해서 실제로
프로젝트를 할 수 있다고 믿지 마십시오. 전정한 결과물은 이해로 부터 나오는 것입
니다.
이러한 바탕에서 부터 공부를 한 초보 개발자 만이 학력과, 경력 없음에서 해방되어
취업에 성공할 수 있습니다.
여기까지 읽어주셔서 감사드리며, 여러분의 취업과 성공을 바랍니다.
공감되지 않는 부분이 있다면, 넘겨주시고, 공감하는 부분이 있다면, 속으로 기억해
주시면 더없이 기쁘겠습니다. 저도 취업을 위해서 뛰어다니던 옛 생각과 경기가 안
좋은 때에 넋두리였습니다. ^^;;