원문-Stop Being a Junior by Kent C Dodds 를 번역한 글입니다. 오역과 의역이 있을 수 있습니다.


당신은 주니어 개발자인가요? 이 질문에 ‘예’라고 대답했다면 어떻게 자신이 주니어 개발자인걸 알았나요? 당신의 직함이 ‘주니어 개발자’이기 때문인가요? 당신의 동료들은 흥미로운 일을 하지만, 당신은 그저 지루하고 반복적인 일들과 단순한 버그잡기를 더 많이해서 인가요? 혹은 그저 나는 아직 ‘주니어’라는 딱지를 때기에는 ‘이르다’라고 생각하고 있는 건가요?

어떤 경우든 간에, 저는 당신에게 주니어가 되는 것을 그만두라고 말하고 싶습니다. 당장 그만 두세요. 저에게 “저는 이제 막 시작했어요” 혹은 “저는 그냥 주니어에요.”라고 말하며 대화를 시작하는 사람들에게 저는 이렇게 대답한 적이 있습니다. “좋네요! 소프트웨어 개발 세계에 오신 걸 환영합니다” 그리고 그들이 소프트웨어 개발자로 일한 지 이미 1년 반이 넘었다는 걸 알아버렸고, 매우 놀랐습니다. 그리고 이런 경험들은 쌓이고 쌓여서 어떻게 하면 당신을 영원한 주니어의 세계에서 탈출시키고, 더욱더 중요하고 긍정적인 커리어를 시작할지에 대해 블로그 글을 쓰게 되었습니다.


기술은 빠릅니다.

가장 먼저, 아래의 사실이 중요합니다.

당신이 주니어를 벗어나기까지, 얼마나 오랫동안 개발자가 되어야 하는지에 대한 절대적인 시간제한은 없습니다.

아마 당신이 들어봤을 수도 있는 그 모든숫자는 틀렸습니다.

이 업계에서 제가 좋아하는 것 중 하나는, 업계가 움직이는 빠른 속도입니다. 항상 새로운 기술이 등장하고, 기존 기술이 발전함에 따라, 이러한 발전을 주도하고 있는 개발자가 수십 년의 경험이 있는 개발자와 비교할 수 있는 수준에 도달하는 데는 긴 시간이 걸리지 않습니다.

저는 이렇게 생각하는 걸 좋아합니다. 일정한 물살로 흐르는 강이 있다고 상상 해보세요. 튜브를 타고 강을 내려가는 것은 소프트웨어 개발 경험을 쌓는 것과 같습니다. 모든 사람이 강의 시작점에서 시작하는 게 아니라, 다른 사람들이 있는 곳에서 시작합니다. 강에 있는 다른 모든 사람을 따라잡기 위해 뛰어든다면, 그들이 그것을 얼마나 오래 했던지 상관없이 그건 별로 오래 걸리지 않을 거예요. 맞아요, 강의 상류에서의 경험은 부족하겠죠. 하지만 그렇다고 해서 지금의 경험이 달라지는 것은 아니에요. 완벽하지 않은 비유인 걸 알지만, 저는 이게 꽤 교훈적이라고 생각합니다.

물론, 수십 년의 경험을 가진 사람들은 긍정적인 말들을 듣겠지만, 전부 다 긍정적인 것은 아닙니다! 수년간의 경험을 가진 사람들은 종종 새로운 지식들이 오래된 지식들과 닮아 있어서 더 빠르게 새로운 지식을 배울 수도 있습니다. (하지만 항상 그렇지는 않아요!! “배우지 않는 것”도 확실히 중요합니다.) 경험이 풍부한 개발자들은 현실 세계에서 어떻게 일이 진행되는지를 보고 제약 조건을 더 잘 이해하기 때문에, 문제가 되기 훨씬 전에 코드의 문제를 식별할 수 있습니다.

이는 즉, 경험이 많은 엔지니어들은 새로운 도구와 기술을 시도하는 것을 주저하고 대신 그들의 방식대로하는 경향이 있습니다. 이로 인해 개발 생태계와 도구들의 엄청난 발전을 놓치게 될 수 있습니다. 경험이 많은 개발자들은 특정 방식으로 작업하는 데 익숙하기 때문에 언어와 도구의 중요한 새로운 기능을 놓칠 가능성이 높습니다.

아무튼, 제 요점은 소프트웨어 개발 업계가 움직이는 속도가 굉장히 빠르다는 것입니다.

선택된 몇 가지 기술을 계속 활용하면 누구나 해당 기술의 전문가가 될 수 있습니다.

그리고 만약, 그 사람이 자신의 열정을 경험 부족으로 인한 영향력에 대한 현실적인 이해와 함께 조절 할 수 있다면, 회사에 엄청난 파급력을 발휘할 수 있습니다. (만약 허용된다면요.)


나의 경험

저는 대학에 갔고, 학교에 있는 동안 인턴으로 일한 적이 있습니다. 이는 제가 공식적으로 정규직 일자리를 찾기 전에, 저에게 개발 업계에 대한 놀라운 경험이 되었습니다. 그래서 저는 졸업했을 때, 이미 1년 반동안 파트타임 소프트웨어 개발자로 일하고 있었습니다. BYU를 졸업하고, 정규직 엔지니어로 입사 했을때, 저는 “주니어”라는 타이틀을 벗는데 어려움을 겪었습니다. 그전까지의 모든 경험은 학교를 다니면서 파트타임을 한것 뿐이지만, 저는 팀의 코드 베이스에 대한 지식이 다른 사람들과 다를 바 없다고 느꼈으며, 따라서 우선순위가 낮은 작업을 계속해서 맡는 것은 옳지 않다고 생각했습니다.

경험이 많은 엔지니어들에게 매우 중요한 아키텍쳐 수준의 작업이 할당 되는 것을 보았고, 저도 그 일에 기여하고 싶었습니다.

하지만 학생에서 정규직 인턴으로 전환되었고, 모두가 저를 학생으로 알고 있었기 때문에 언제나 사람들이 저를 “인턴”으로 보는 것 같았습니다.

아마 저의 목표와 희망에 대해 더 단호하게 표현 할수도 있었겠지만, 저는 그저 더 많은 책임을 맡기 위해서는 사람들이 나를 “인턴”이 아닌 “일반 동료”로 인식 할 수 있는 새로운 회사로 이직해야한다고 결심했습니다.

그래서 그렇게 했습니다. 정규직으로 전환한 후 딱 네 달만에 다음 회사로 스카우트 되어 엄청난 급여 인상(50% 이상 증가)과 시간의 20%를 아키텍쳐에 할애 했습니다. 이건 놀라운 경험이었습니다. 아무도 저를 주니어로 보지 않았습니다. 사실, 대학 졸업 후 단 4달만에 25억 달러 규모의 기관에서 아키텍트 바로 아래 직급이었습니다.

그것은 그들에게 매우 큰 성과를 가져왔습니다. 제가 회사에 합류한 시점에서, 회사는 프론트엔드 도구의 중요한 마이그레이션을 원했고, 저는 마이그레이션 경로를 설계하는데 중요한 역할을 했으며, 큰 성공을 거두었습니다.

저의 전체 이야기는 2010년대 회고에서 읽으세요.


어떻게 주니어가 되는 것을 그만두나

어떤 것이 되는 것을 그만두는 대신 어떤 다른 것이 되길 시작할지 생각하세요.

우리 회사에서 시니어 개발자들은 무엇을 하는지 알아보세요. 주니어 개발자들이 하는 것들을 대신하지 말고, 그들이 하는 일을 하세요. 그게 전부입니다.

당연히 회사는 당신보다 시니어 개발자들을 신뢰하기 때문에 지나치게 나서려 하지는 마세요. 하지만 복잡한 작업에 자원봉사하세요. “저도 그 회의에 참석해도 될까요?”라고 말하면 됩니다. 낯선 부분에 대해서는 메모를 해두고, 나중에 관련 질문을 하세요. 앞으로의 회의에서는 축적된 지식을 바탕으로 점점 더 기여할 수 있게 될 겁니다. 회의 후에는 조금 더 공부하고, 제안을 해보세요.

과하게 나서는 것은 주의하세요. 비록 당신이 빠르게 현대적인 지식을 많이 축적 할 수는 있지만, 당신의 경험은 그 지식의 유용성을 제한 한다는 사실을 인정해야 합니다. 따라서 동료들에게 예의를 갖추는 것이 중요합니다. 그러나 당신이 빠르게 지식을 축적하는 동안 당신의 질문들에 대답하며 당신의 경험적으로 부족한 부분을 채워줄 수 있는 사람들을 찾으세요.

빠르게 움직이는 기술을 당신의 장점으로 활용하여, 회사의 개발자들이 현재 활용 할 수 있는 새롭고 개선된 기술에 대해 배워보세요. 그런 다음 “브라운백”점심 회의에서 이러한 개념을 가르쳐보세요. (브라운백 점심 회의란 모두가 점심을 가져와서 누군가가 주제를 발표하는 회의로서, 주로 주간으로 진행됩니다.) 회사에 브라운백 점심 회의가 없다면, 회의를 만들고 발표하세요.

지역 밋업에서 발표를 하는 자원봉사를 하세요. 밋업에서 발표하는 것은 저에게, 앞서 언급한 이직과 Egghead.io의 강사가 되는 것에 큰 역할을 했습니다. 컨퍼런스에서 발표하기 위해 시도해보세요.

당신이 이룬 성과에 대해 이야기하여, 주니어의 기대 이상으로 기여하고 있다는 것을 입증하세요. 그들이 스스로 “음, 이 개발자는 주니어인데도 그런 일을 했구나? 더 이상 주니어가 아니겠는걸.”이라고 생각하게 만드세요.

개발자로서의 목표의도당신의 매니저가 이해하도록 하세요. 당신이 급여 인상 여부를 알려주는 회의에서 승진을 요청하려 한다면 이미 너무 늦었습니다. 그들은 그보다 훨씬 일찍부터 당신의 목표를 알아야합니다. 당신은 어떤 수준에 도달하기 위해 어떤 능력을 갖춰야 하는지 그들에게 먼저 물어볼 수 있습니다.


될 때까지 시도하세요.

저는 “fake it ‘till you make it” 즉, “될 때까지 된 척해라”라는 말을 별로 좋아하지는 않습니다. 하지만 그 말의 핵심을 여기서 쓸 수 있겠네요. 당신이 원하는 수준으로 가능한 한 최선을 다하고 운영하다보면, 결국 그 수준에 도달한 것 처럼 느껴질 것입니다.

저는 원하는 수준에 도달하기 위해 속해 있던 회사를 떠나야만 했다고 느꼈습니다. 만약 제가 더 참을성이 있었다면, 이미 속해있는 회사에서 다른 시도를 할 수도 있었을 것입니다. 또한, 다른 회사로 스카우트되지 않았다면 아마 그렇게 할 것이었습니다. 그렇지만 때로는 “주니어”라는 타이틀을 벗을 수 없다면 다른 기회를 찾는 것도 고려해볼 수 있습니다.


결론

저는 이 아티클을 통해 이 업계에서 경험을 쌓고 영향력을 발휘하는 데 필요한 작업량이 줄어들기를 바라지는 않습니다. 우린 많은 일을 해야해요. 하지만, 저의 주된 목표는 몇몇 사람들이 그들의 목표를 더 높이 세우도록 영감을 주는 것을 돕는 일입니다. 당신은 당신이 생각하는 것보다 더 많은 것을 할 수 있습니다. 제가 보장합니다.

당신은 더 이상 주니어로 남을 필요가 없어요. 이제 업그레이드 할 시간입니다.

행운을 빕니다!