CodeGym /행동 /Kotlin SELF /프로그래머의 길

프로그래머의 길

Kotlin SELF
레벨 13, 레슨 0
사용 가능

왜 프로그래머들은 늘 그렇게 행복해 보일까요? 답은 단순하면서도 당황스러울 정도로 직설적입니다. 좋아하는 일을 하면서, 돈도 아주 많이 벌기 때문이죠.

프로그래머의 세계에 오신 것을 환영합니다.

프로그래머의 연봉

프로그래머의 연봉 이야기를 해보겠습니다. 실제로 연봉 수준이 어떻게 형성되는지, 어디로 취업하는 것이 더 나은지, 어디는 피하는 게 좋은지 말이죠. 프로그래머가 아닌 사람이 이 주제를 혼자 파고들면 서로 모순되는 데이터 묶음을 얻기 쉽습니다.

핵심은, 프로그래머의 연봉에 영향을 미치는 가장 큰 요인이 그의 실력이 아니라 근무하는 회사(일자리)라는 점입니다. 때로는 같은 실력이어도 ‘좋은 곳’과 ‘나쁜 곳’의 차이가 2~10배(!)까지 벌어질 수 있습니다.

어떤 시점이든 여러분의 실력은 그 순간에는 고정되어 있습니다. 한 달 만에 경험이 두 배가 되어 연봉을 두 배로 받는 것은 어렵죠. 하지만 한 달 안에 직장을 옮겨 연봉을 두 배로 받는 것은 충분히 가능합니다. 그렇다면 어디에서 일하는 것이 가장 좋을까요?

다음 세 가지 요소가 회사의 연봉 수준에 매우 큰 영향을 줍니다.

1) 소프트웨어 개발이 회사의 핵심 비즈니스인지.

2) 회사가 국제 시장을 대상으로 하는지, 국내 시장을 대상으로 하는지.

3) 회사의 소유주가 서구(해외) 기업인지, 국내 기업인지.

여러분이 사는 도시가 결정적인 역할을 하는 것은 아니라는 점에 주목하세요. 즉, 드레스덴에서 사는 여러분이 뉴욕에 사는 지인보다 10배 적게 번다면, 위에서 열거한 요소들이 작동하고 있는 것입니다.

구체적인 수치

전 세계를 아우르는 ‘정확한 수치’를 제시하기는 어렵습니다. 여기서는 동유럽의 상황을 설명하겠습니다. 이는 IT 아웃소싱/아웃스태핑이 어느 정도 발달한 대부분의 국가에도 대체로 적용됩니다.

회사 레벨에 따라, 경력 5년의 Java Senior Developer가 월급으로 벌 수 있는 금액은 대략 다음과 같습니다.

레벨 월급 설명
1 $200 — $500 가장 아래에는 IT가 회사의 비핵심 부서인 곳이 있습니다. 고객은 국내 시장이고, 소유주는 국가(정부)인 경우가 많습니다. 예를 들어 세무서 같은 공공기관의 IT 부서가 해당합니다.
2 $500 — $1500 중간 이하에는 은행 등 다양한 비정부 조직의 IT 부서가 있습니다.
3 $1,000 — $2,500 중간 레벨은 소프트웨어 개발을 하는 회사입니다.
4 $3,000 — $4,000 중간 이상은 소프트웨어를 개발하며, 고객이 서구(해외)인 회사입니다.
5 $4,000 — $5,000 최상위는 소프트웨어를 개발하고, 고객도 서구(해외)이며, 소유주도 서구(해외)인 회사입니다. 수는 많지 않습니다. 공개 채용도 자주 있지 않고 들어가기도 쉽지 않습니다. 하지만 존재합니다.

이 상황에서 가장 이상한 점은 무엇일까요?

프로그래머의 절반이 레벨 1과 2 회사에서 일한다는 것입니다.

함정이 무엇인지 알고 싶나요?

레벨 3과 4 회사에는 프로그래머 채용 공고가 수백 개씩 열려 있는 경우가 많습니다. 이런 회사들은 더 높은 연봉을 제시할 준비가 되어 있고, 보통은 훨씬 더 좋은 근무 조건도 제공합니다.

현실의 예를 들어보죠. Java Junior 두 명이 있습니다. 한 명은 월 $100(레벨 1 회사)으로 일하고, 다른 한 명은 월 $1,000(레벨 4)으로 일합니다. 왜 더 적게 받겠습니까?

딴짓만 안 하면 어디까지 갈 수 있을까

프로그래밍 분야에서 꾸준히 자기계발을 한다면, 오늘부터 여러분의 연봉은 대략 다음과 같이 변하게 됩니다(여러분이 일하는 도시/지역에 따라 ± 수백 달러 차이는 있을 수 있습니다).

플랜

0~3개월(수습/학습자)

프로그래밍에 대해 아는 것이 거의 없습니다. 학교나 대학에서 배웠을 수도 있지만, 아주 피상적인 수준일 가능성이 큽니다.

여러분의 과제는 프로그래밍을 배우고 Java를 공부하는 것입니다.

목표는 최소 레벨 3 이상의 회사에 Java Junior로 취업하는 것입니다.

이 플랜의 첫 3개월 동안은 아무 수입도 없습니다. 그저 프로그래밍을 공부하는 기간이기 때문입니다. 앞으로 가족이 생기고 대출이 잔뜩 생기면, 분야(전공)를 바꾸는 일이 훨씬 더 어려워집니다. 실수를 바로잡으려면 ‘정상적인 생활’ 1년치를 버틸 돈을 따로 모아야 할 수도 있습니다. 어리석은 실수는 하지 마세요.

3~15개월(Java Junior Developer)

이미 프로그래머로 일하고 있고, 경험은 매일 쌓입니다. 느슨하게 굴지 마세요. 아직 해야 할 일이 많고, ‘이제 좀 쉬어도 되겠다’고 하기까지는 갈 길이 멉니다.

여러분의 과제는 Middle 개발자가 되는 데 필요한 기술들을 공부하는 것입니다. 어떤 기술이냐고요? 세상은 변합니다. 지금 조언을 해도 현실이 전부 바뀔 수 있어요. 인터넷에서 채용 공고 몇 개를 찾아 어떤 것이 요구되는지 확인해 보세요. 그리고 브루스 에켈의 책 “Thinking in Java”(Java 철학)도 꼭 읽어보세요.

Java Junior로 일한 첫 1년의 목표는 Java Middle 수준까지 성장하는 것입니다. 결코 쉽다고 말할 수는 없지만, 목표의식이 있는 사람에게는 충분히 가능합니다. 그 결과로 연봉이 곧바로 약 $1,500 수준까지 뛰는 경우가 많습니다.

프로그래머 2년 차(Java Middle Developer, level 1)

지난 1년 동안 열심히 일했고, 이제 여러분은 Java Middle Developer가 되었습니다. 월 $1,500 정도면 꽤 정상적으로 생활할 수 있습니다. 회사에서는 진지한 과제를 맡기고, 경험은 말 그대로 폭발적으로 늘어납니다. Java Senior Developer까지는 2~3년이면 도달할 수 있습니다. 이 과정을 억지로 가속할 필요는 없습니다. 어차피 급격한 연봉 상승을 얻기도 어렵습니다.

여러분의 과제는 디자인 패턴을 공부하고, 맥코넬의 “Code Complete”(완벽한 코드)를 읽는 것입니다. 코드 품질과 팀 협업 능력을 개선하세요. ‘매주 IT 관련 책 한 권 읽기’를 규칙으로 삼을 수도 있습니다. 그러면 1년 뒤에는 남들보다 50권만큼 더 똑똑해져 있을 겁니다. 미루지 마세요. 앞으로 자유 시간은 더 늘지 않습니다. 가족이 생길 수도 있고, 이미 있다면 더 늘어날 수도 있으니까요.

목표는 Senior 개발자로서 전문화할 기술 몇 가지를 선택하는 것입니다. 모든 것을 다 배울 수는 없습니다. 좁은 분야에서 ‘구루’가 되는 것은 좋은 선택입니다.

프로그래머 3년 차(Java Middle Developer, level 2)

여러분은 이미 숙련된 Middle 개발자이고, Senior Developer가 되는 것을 고민하기 시작합니다. 기분도 좋고, 꽤나 폼도 납니다. 여러분의 연봉은 $2,000을 넘습니다(키이우 기준 데이터). 이 시점부터는 여러분 같은 전문가에 대한 수요가 공급을 초과합니다. 언제든 며칠 만에 새 직장을 구할 수 있고, 지금보다 적게 받을 가능성도 낮습니다. 물론, 어리석은 행동만 하지 않는다면요.

여러분의 과제는 선택한 기술 스택을 계속 깊게 파는 것입니다. 더 잘 일하세요. 고용주를 위해서가 아니라, 여러분 자신을 위해서요. 유망한 기술(이 글이 작성될 당시의 Big Data 같은 것들)이 있는 프로젝트에 들어가려고 하세요. 어차피 하루 8시간을 사무실에서 보낼 텐데, 그 대가로 돈을 조금 더 받고(그리고 더 중요한) 앞으로 필요할 귀중한 경험을 얻는 편이 낫지 않을까요?

목표는 이직입니다. 좋은 팀은 어디에나 있습니다. 새로운 프로젝트와 기술을 경험하게 될 겁니다. 의자에 너무 일찍 ‘정착’하지 마세요. 아직도 레벨 3 회사에 있다면 레벨 4로 옮기는 것을 고려해 보세요. 레벨 5는 매우 매력적이지만, 아직은 현실적으로 어렵습니다.

프로그래머 4년 차(Java Senior Developer, level 1)

여러분은 Senior 개발자가 되었습니다. 축하합니다. 어쩌면 ‘실력보다 빨리’ 된 것 같고, 본인도 그것을 느낄 수 있습니다. 그래도 축하합니다. 지금 이 직책을 완전히 자격 있게 수행하느냐보다 중요한 것은, 미래에 그 자격을 갖추는 것입니다. 좋은 자리를 먼저 얻고 1년 안에 그 수준까지 성장하는 편이, 좋은 포지션까지 성장해 놓고 그 자리가 열릴 때까지 1년 더 기다리는 것보다 낫지 않겠습니까?

제 조언을 잊지 않고 매주 책 한 권씩 읽었다면, 이제 여러분의 역량을 부러워할 학생은 한둘이 아닐 겁니다. 더 정확히 말하면, 그들은 그 역량을 ‘숭배’할 준비가 되어 있을지도 모릅니다. 생각해 보세요. 여러분의 연봉은 $3,000에 가까워졌습니다. 아마도 여러분은 아직 젊을 가능성이 큽니다. 세상이 여러분 발밑에 있습니다.

여러분의 과제는 선택한 기술들을 다시 한번 점검하는 것입니다. 전문 분야를 바꿔야 할 수도 있습니다. 세상이 바뀌었고, 기술도 바뀌었고, 지난 2년 동안 여러분의 지식도 늘었습니다. 지금 어디에서 멈추느냐가 앞으로 몇 년간의 선택이 됩니다. 이제는 ‘좋아하는 기술’을 고를 때입니다.

목표는 앞으로 더 성장할 수 있는 방향을 선택하는 것입니다. 선택지는 정말 많고, 누구도 모든 경우를 나열할 수 없습니다. 하지만 선택은 지금 해야 합니다. 오늘 여러분이 현재를 조금 바꾸면, 미래는 크게 바뀝니다.

프로그래머 5년 차(Java Senior Developer, level 2)

여러분은 미래를 정했고, 꿈을 실현하기 위해 일하고 있습니다. 올바른 방향 선택에 ‘앞으로 나아가려는 의지’가 더해지면 결과는 곧 나타납니다. 축하합니다. 행복한 사람이 한 명 더 늘어난 것을 우리는 기쁘게 생각합니다.

이런 말이 있습니다. 사람들은 1년 동안 이룰 수 있는 것을 과대평가하고, 5년 동안 이룰 수 있는 것을 과소평가합니다. 5년 전을 돌아보세요. 정말 그렇습니다.

여러분의 과제는 어리석은 결정을 하지 않고, 게으름에 끌려가지 않는 것입니다.

목표는 방향을 선택하고 계속 나아가는 것입니다. 이게 끝이라고 생각했나요? 고등학교 졸업반 시절을 떠올려 보세요. 끝이 아니라 시작입니다.

향후 전문화

여러분은 기술 전문가(위쪽 트랙), 관리자(아래쪽 트랙), 혹은 고용된 전문직/독립 컨설턴트(가운데 트랙)로 성장할 수 있습니다. 모든 것은 여러분의 선호에 달려 있습니다.

프로그래머의 커리어

프로그래머라는 직업은 다른 직업과 다릅니다. 많이 벌기 위해 굳이 매니저 커리어를 밟을 필요가 없습니다. 시니어 프로그래머가 자신의 상사인 매니저보다 더 많이 버는 경우도 드물지 않습니다. 경험이 쌓일수록 상사와의 관계는 ‘상사-노동자’에서 ‘영화 스타와 그 매니저’ 같은 형태로 이동합니다. 자기 몸값을 아는, 배짱 있는 프로그래머들은 프로젝트도, 채용 공고도 골라 봅니다. 우리 편을 위해 박수 쳐줍시다.

그렇다면 세계적으로도 통하는, 이렇게 고급이고 수요가 높은 프로그래머가 되려면 무엇이 필요할까요? 가장 최신이면서 수요가 높은 기술에서 깊은 경험을 쌓아야 합니다. 어떻게 달성할까요? 답은 아래에 있습니다.

처음으로 프로그래머로 취업한 뒤, 여러분에게는 두 가지 일이 일어납니다. 흥미롭게도, 이 두 가지는 항상 눈에 띄는 것은 아닙니다.

1. 실제 프로젝트에서의 경험이 빠르게 쌓이기 시작합니다. 프로그래머로 일한 1년의 경험은, 전공 분야에서 대학 5년보다 더 많은 지식과 스킬을 줄 수도 있습니다. 경험은 매우 중요한 지표이기 때문에, IT 채용 공고에는 종종 “경력 3년의 Java 개발자” 같은 문구가 등장합니다.

2. 여러분은 하루 8시간씩 새로운 기술을 배우고, 그 대가로 꽤 후하게 돈도 받습니다. 이 요소의 가치는 과대평가하기 어렵습니다. 어떤 경우에는 습득한 스킬이 너무 중요해서, 그것을 얻기 위해 무급으로 일하거나 심지어 돈을 내고 일해도 될 정도입니다. 여러분이 참여할 프로젝트를 똑똑하게 선택한다면, 눈부신 커리어가 기다립니다.

그런데, 무엇을 선택해야 할까요?

대부분, 어떤 기술이 자신에게 유용할지 모르면 “좋아하냐, 싫어하냐” 혹은 “유행이냐, 아니냐” 같은 기준으로 고르게 됩니다. 운에 맡기는 셈이죠. 그래서 미리, 내가 어디로 가고 싶은지 아는 편이 낫습니다.

프로그래머의 성장 경로는 매우 다양합니다. 단순화를 위해 몇 가지를 뽑아, 이 상황에 대한 우리의 관점을 설명하겠습니다. 이 도식을 ‘엄격한 정답’으로 받아들이지 말고, 최소한의 명확성을 주기 위한 단순화된 시각으로 봐 주세요.

200년 사는 프로그래머.

프로그래밍 자체가 가장 좋다면, 여러분의 길은 Senior Developer, 그다음 Tech Lead Developer, 그리고 아키텍트입니다. 혹은 그냥 50년 동안 프로그래머로 일할 수도 있죠. 종종 시니어 프로그래머와 테크리드의 연봉이 그들의 매니저보다 높습니다. 기회를 놓치지 마세요.

매니저. 운이 좋네, 너는 남들과 달라.

여러분은 적의 편으로 넘어갔습니다. 농담입니다. 뛰어난 조직 능력이 드러났다면, 여러분의 길은 Team Lead, 그다음 Project Manager입니다. 이는 디렉터가 될 기회를 주고, 자신의 사업을 시작할 때도 도움이 됩니다. 여러분도 그걸 원하죠, 그렇지 않나요?

트랙터를 훔치기.

이미 가족과 아이가 있다면, 안정적인 경제를 가진 나라에서 조용하고 풍족한 삶을 원할 수도 있습니다. 캐나다, 미국, 스위스, 혹은 호주로의 이주/이민을 고민하겠죠. 여러분에게는 훌륭한 스킬과 수요가 높은 직업이 있습니다. 설거지 아르바이트부터 시작할 필요는 없습니다. 예를 들어 Senior Java Developer로 시작하면 됩니다. 게다가 아마도 높은 연봉으로요. 나쁘지 않죠.

파리만 빼고 전 세계를 보고, 죽지 않기.

아직 가족이 없고 여행을 원한다면, Upwork가 답입니다. 고객을 찾고, 그와 시급(예: $20/시간부터)을 협의한 다음, 노트북을 들고 출발하세요. 여러분의 수입이면 전 세계 어느 나라에서도 정상적으로 살 수 있어야 합니다. 지금 당장 꿈을 실행해 보는 건 어떨까요?

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION