Levels of Seniority
roadmap.sh
연차가 높아지면서 사람들이 스스로에게 하는 질문이 있습니다. "나는 내 직급에 맞는 실력과 역량을 갖추고 있을까?" 그런데 이 '직급에 맞는 실력과 역량'이라는 게 정확히 무엇일까요? 회사에서 직급에 따라 기대하는 바가 정확히 정의되어 있으면 그나마 낫겠지만, 그렇지 않은 경우 스스로 이를 파악해야 합니다. 오늘 글에서는 Kamran Ahmed님이 정의한 주니어, 미드 레벨, 시니어 개발자의 차이를 소개드립니다! 🌱 주니어 개발자 - 코드를 작동하게 하는 것에만 주로 집중함. ‘작동하는 코드 = 좋은 코드’라고 생각함. - 업무를 받을 때 구체적이고 잘 정리된 요구사항을 받아야 진행 가능. - 일을 하다 막히면 직접 해결하기보다는 시니어의 도움을 필요로 함. - 문제가 있을 때 그 문제의 근본 원인을 파악하기보다는 당장 눈에 보이는 상황을 해결하려 함. - 익숙하지 않은 시스템의 업무를 받는 것을 두려워함. - 자신이 얼마나 모르는지 알지 못함. 주니어 개발자는 해당 분야에 경력이 얼마 없기 때문에 당연히 모르는 것이 많습니다. 하지만 이게 꼭 나쁜 것은 아닙니다. 팀에서 주니어가 모든 걸 다 알 거라고 기대하지도 않고요. 하지만 계속 배우고, 경험을 쌓고, ‘주니어’라는 타이틀에서 벗어나기 위해 스스로를 발전시켜 나가는 것은 본인의 몫입니다. 🪴 미드 레벨 개발자 - 자신의 기존 코드에서 개선점을 발견하기 시작함. - 주니어 개발자보다 문제를 빠르게 해결할 수 있음. - 지식이 어느 정도 쌓여 문제를 “올바른 방법”으로 해결하려 하지만, 그 과정에서 실수를 하기도 하고 모든 걸 “제대로” 하려는 마음에 시간을 너무 많이 쓰기도 함. 아직까지 시니어의 도움이 필요한 상태. - 일을 원칙적으로 해야 하는 상황과 트레이드오프(trade-off)가 필요한 상황을 잘 구분하지 못함. - 자신의 코드에 애착을 느껴 피드백을 잘 받아들이지 못하는 경우가 많음. 미드 레벨 개발자는 주니어 개발자보다 탄탄한 실력을 갖췄지만, 아직까지는 전체를 볼 수 있는 시야가 부족한 상태입니다. 현업에서 여러 경험을 쌓고, 시니어 개발자의 멘토링을 받으면 충분히 다음 단계로 발전할 수 있는 레벨입니다. 🌳 시니어 개발자 - 과거 경험을 바탕으로 비슷한 상황에서 발생할만한 문제를 미리 예상할 수 있게 됨. - 코드 및 시스템 아키텍처의 방향성을 가이드할 수 있음. - 광범위하고 추상적인 문제를 제대로 정의하고, 더 작은 단위로 쪼개고, 하나씩 해결하는 것에 익숙함. - 상황에 맞게 적절한 선택을 할 줄 아는 능력을 갖춤. 어떨 때 원칙적으로 밀고 나가야 하고 어떨 때 트레이드오프(trade-off)가 필요한지 이해하고 있음. - 대부분의 상황에서 특정 문제를 어떤 툴/언어/기술을 이용해 해결해야 하는지 알고 있음. 본인이 직접 그 기술을 사용해본 경험이 없더라도 기존 지식을 바탕으로 방향성을 제시할 수 있음. - 모두가 한 팀으로 일해야 한다는 걸 인지하고 있음. 다른 개발자들을 멘토링 하고, 문서화를 하는 등 팀원들을 서포트하는 역할을 자신의 책임이라고 생각함. - 개발 뿐 아니라 비즈니스 도메인을 깊게 이해하고 있음. 프로덕트와 비즈니스 전체를 이해하는 게 개발에도 얼마나 도움이 되는지 알고 있음. 시니어 개발자는 기존의 경험과 노하우를 바탕으로 팀의 방향성을 제시하고, 팀원들을 이끌고, 어려운 문제를 나서서 해결하는 역할을 합니다. 물론 연차가 쌓인다고 모두가 이런 역량을 갖추는 건 아닙니다. 단순히 몇 년을 일했는지보다는 얼마나 다양한 문제를 해결해봤는지, 그리고 그 과정에서 얼마나 많은 고민을 해봤는지가 더 중요하죠. 📌 이상적인 팀에서는 다양한 직급의 개발자들이 섞여 함께 조화롭게 일합니다. 자신이 부족한 부분에 대해 너무 조급한 마음을 가질 필요는 없지만, 다음 단계로 나아가기 위한 꾸준한 노력은 필요합니다. “나는 주니어니까 이건 못해”, “이런 건 시니어가 해야지”라는 마인드셋보다는 어려운 문제도 직접 해결해보려는 시도를 하는 건 어떨까요? 그렇게 한 단계씩 성장하다 보면 어느새 멋진 시니어 개발자가 되어 있을 거예요! 📔 함께 읽어보면 좋은 글 - 주니어 개발자가 알았으면 하는 10가지: https://careerly.co.kr/comments/70537 - 빠르게 승진하는 사람들의 네 가지 특징: https://careerly.co.kr/comments/70698 위 내용은 Kamran Ahmed님의 글 <Levels of Seniority>의 일부를 정리한 내용입니다.
2022년 10월 26일 오전 8:51
Q&A에 올라오는 질문들에서도 각 직급에 맞는 역량과 실무 내용을 종종 보곤 하는데요~ 그분들한테 지현 님의 이 글이 도움이 됐으면 좋겠습니다:)
많이들 궁금해 하시는 내용이었군요! 저도 도움이 되었으면 좋겠습니다 :)
저는 현재 12년차 개발자 & PM을 하고 있지만 한국의 개발자 역량이 다소 심각하긴 합니다 개발자라 함은 머릿속에서 알고리즘이 떠올라야 하는데 단지 단가가 많이 올랐다는 이유만으로 이 업계가 되게 메리트가 있는마냥 다들 시도하는게 문제가 되는거 같습니다 안되면 노력하는 자세가 있으면 좋으련만 꼰대같으시겠지만 노력을 통해 시니어가 되시든 이 업계를 떠나셨으면 좋겠습니다^-^
제게 도움이 될것 같은데. 무슨말씀이신지. 잘 캐치가 안되네요. ㅠㅠ
자신을 성찰할 수 있는 글 감사합니다. 함께 좋은 개발자 되어요😊
읽어주셔서 감사합니다! 네 함께 좋은 개발자 되어요🤗
전 시니어를 향해가는 미드레벨 이었군요. 폭넓은 언어를 통한 방향제시와 문서화.. 부족한점을 알게되었습니다. 방향제시해 주셔서 감사합니다.
도움이 되셨다니 기쁘네요🙂 누구나 부족한 점은 있죠. 부족한 점을 알고 발전시키려는 노력이 중요한 것 같아요!
이제 곧 1년차가 되어가는 주니어 개발자입니다... 갑작스럽게 사수가 퇴사하며 이젠... 혼자서 어쩔 수 없이 일을 끝내야하는 상황에 맞는지도모르는 개발을 하며 하나하나 해나아가고있어요 사실 막힐때 물어 볼 사람이 없어서 하루에 몇번이고 퇴사생각을 하게 됩니다... 물어볼 사람이 없다보니 멈추고 또 멈추고 이게 맞나하고 또 해결해서 돌아가면 아닌데 이게... 란 생각에 도돌이표 많이 힘드네요 ㅠ
에고 많이 힘드실만한 상황이네요ㅠㅠ 퇴사할 땐 하시더라도 이렇게 혼자서 문제를 해결해보신 경험이 나중에 큰 도움이 되실 거예요! 힘내시고 좋은 결정하시길 바라겠습니다!
마케터입장에서 봐도 매우 공감이 가는 글이네요 👍