개발자로 계속 성장하려면 선택과 집중이 필요하다! 기술 전문성을 계속 키우고 싶은 개발자들이 기술 리더로 가는 출발점, 스태프 엔지니어
지난 수년 동안 기업에서는 유능한 개발자들에게 매니저 직책을 부여해 왔다. 그러나 기술 리더십 능력을 갖춘 개발자가 경영 능력까지 모두 갖추기는 쉽지 않다. 이런 상황에서 이 책은 스태프 엔지니어라는 합리적인 해결책을 제시한다. 스태프 엔지니어가 되면 개발자 롤모델로서 기업의 기술 전략을 결정하고, 대규모 프로젝트를 추진하며, 동료의 스킬 역량 향상을 도울 수 있다. 책에서는 스태프 엔지니어의 역할부터 업무 시간 관리 방법·전략적 사고·기술 작업의 기준 설정 방법까지 체계적이고 구체적으로 설명한다. 타냐 라일리는 스태프 엔지니어라는 직무를 구성하는 세 가지 기둥을 다음과 같이 제시한다.
회사 입장에서 어려움 점을 이해해 보고 주니어 개발자가 꼭 알아야 할 점을 파악해 봅니다.
1️⃣ 주니어 개발자는 1, 2년의 투자 기간이 필요하다
최소 1, 2년 정도 한 사람에게 투자할 수 있는 팀이 아니라면 주니어 개발자를 고용하지 않는 것이 좋다. 특히 투자자들에게 결과물을 빨리 내야 하는 스타트업에는 적합하지 않은 고용 방법일 수 있다.
2️⃣ 그들에게는 경력이 많은 관리자가 필요하다
경력이 없거나 자질이 없는 관리자는 주니어 개발자를 고용하거나 멘토 할 수 없다. 주니어 개발자를 고용하려면 경력이 풍부한 관리자가 필요하다.
3️⃣ 잘 정의된 업무만 줄 수 있다
주니어에게 몇 주 만에 결과물을 내야 하는 업무를 줄 수 없다. 따라서 팀은 최소 6개월에서 12개월 안에 결과물을 낼 수 있는 프로젝트를 갖고 있어야 한다. 하지만 실상에서 '주니어'에게 적합한 프로젝트를 많이 가진 팀이 없다.
4️⃣ 주니어 개발자에게 투자한 만큼 이득을 못 볼 수 있다
실리콘 밸리의 엔지니어는 같은 회사 근무 기간이 평균 18개월에서 24개월이다. 그만큼 이직이 잦은데, 주니어 개발자를 성장시키기 위해 약 1년에서 2년 투자하면 이득을 보기 전에 그들은 다른 회사로 이직할 확률이 크다.
📌 원문에는 '시니어 개발자의 생산력을 저하한다'라는 포인트도 있지만, 개인적으로 주니어 개발자를 발굴하고 그들을 성장시키는 것 또한 시니어 개발자의 직책이라고 생각합니다. 단기적으로 생산력을 저하할 수 있어도, 여러 가지 프로세스 개선(예: 개발자 온보딩 코스 만들기, 자주 묻는 질문에 대한 답변 문서화하기, 그룹 학습 세션 정기적으로 열기, 다른 사람에게 위임하기 등등)을 통해 생산력을 올릴 수 있고, 무엇보다도 장기적으로 보면 좋은 일이라고 생각합니다. 그리고 팀마다 적합한 시니어/주니어 비율을 갖는 것이 '회사의 책임'이라고 생각합니다. 좋은 시니어/주니어 비율과 학습 프로세스 개선은 오히려 생산성을 높일 수 있다고 봅니다.
📌 주니어 개발자가 알아둬야 할 점
글을 읽고 주니어 개발자가 알아야 할 점을 생각해 봤습니다.
1. 경험이 많은 관리자가 있는 팀을 찾자. 2. 주니어 개발자에게 투자할 수 있는 팀인지 확실하게 알아보자. 3. 시니어/주니어 비율이 상대적으로 좋은 팀으로 가자. 4. 온보딩 프로세스나 문서화가 잘되어 있는 팀은 주니어 개발자로써 학습 속도를 끌어올리는 데 도움 된다. 5. 주니어 개발자의 성장을 돕고 '그들의 성장'을 '직책'이라고 여기는 시니어 개발자와 관리자와 함께 일하는 것이 좋다.
프로그래머는 엄격한 규칙을 따를 필요가 없습니다.따라서 프로그래밍 스타일을 개발하는 데 아무런 문제가 없습니다.그러나 나쁜 습관에 빠지는 것은 우리 모두가 겪은 일입니다.최고의 개발자라도 단기적으로는 작업을 더 편리하게 만들 수 있지만 나중에는 자신과 동료, 고객에게 문제를 일으킬 수 있는 지름길, 방법 및 태도에 의존할 수 있습니다.
이 기사 전체에서 개발자가 즉시 버려야 하는 7가지 최악의 습관에 대해 논의할 것입니다.이러한 습관을 알면 향후 이러한 습관을 피하고 개발자로서 성공하는 데 도움이 됩니다.성공적인 소프트웨어 개발자와 비효율적인 소프트웨어 개발자 모두 이러한 불행한 습관에 빠지기 쉽습니다.
1. 코드 복제
소프트웨어가 올바르게 작동하면 중복 코드를 수정할 필요가 없다는 것이 프로그래머 사이의 일반적인 인식입니다.당신이 하고 있는 유일한 일은 당신의 소프트웨어에 불필요한 벌크를 추가하는 것입니다.대부분의 개발자가 몇 개의 코드 블록을 실행하는 데 몇 밀리초밖에 걸리지 않는다고 주장할 것이라는 데는 의심의 여지가 없습니다. 이는 소프트웨어를 몇 번 사용하려는 경우에만 가능합니다.
뿐만 아니라 중복 코딩은 코드 품질에도 영향을 미칩니다.그것은 당신의 코드를 냄새나게 만들고 기술적 부채를 증가시킵니다.이 부채를 복구하려면 개발자에게 비용을 지불하여 단순화하거나 중복을 제거해야 합니다.
코드의 중복이 적을수록 프로그램이 더 빨리 실행되고 공간이 덜 소모된다는 점을 항상 기억하십시오.참을성 있게 기다리던 시대는 갔다.이제 모든 것이 원활하고 빠르게 실행되어야 합니다.
2. 자신의 방식대로 일하기
우리 모두는 코딩 스타일이 있습니다.그러나 당신의 방식대로 일을 쉽게 할 수 있음에도 불구하고 다른 사람들이 당신의 코드 스타일에 적응하지 못할 수도 있고, 그것이 일반적이지 않다면 당신을 따르는 누군가가 당신의 작업을 사용하는 데 어려움을 겪을 수도 있습니다.그것을 하는 사람은 장기적으로 코드를 작성하는 것이 생산적이지 않거나 행복하지 않을 것입니다.
3. 코딩 스타일에서 문제 수정 미루기
훌륭한 프로그래머는 코드의 모든 부분이 중요하다는 것을 알고 있으며 수정 사항을 찾는 과정에서 기능 뒤에 있는 디자인과 아이디어에 의문을 제기합니다.수년 동안 저는 개발자가 다른 문제보다 코딩 스타일 문제를 수정하는 것을 더 미루는 경향이 있음을 알게 되었습니다.코딩은 일반 개발자도 마스터가 되지 못하게 하는 수많은 나쁜 습관이 있는 기술이라는 점을 명심하십시오.자신을 개선하고 더 나은 개발자가 되려면 자신의 나쁜 특성을 이해하고 수정하기 위해 노력해야 합니다.
4. 코드 최적화 방법을 모름
효과적인 최적화 전략을 개발하려면 경험이 필요합니다.이 프로세스에는 관련된 각 시스템에 대한 탐색, 분석 및 지식이 필요합니다.이러한 사항을 숙지해야 합니다.일반적인 성능, 알고리즘 복잡성 및 데이터베이스 쿼리 평가를 측정하는 방법을 알아보세요.
성능은 알고리즘 복잡성, 비효율적인 데이터베이스 작업, 타사 API 사용 또는 N+1 쿼리 실행과 같은 일부 상황에서 큰 문제가 될 수 있습니다.성능 문제를 분석하는 방법을 이해하고, 무엇이 시간이 걸리는지 파악하고, 문제가 발생하는 즉시 수정하는 것이 중요합니다.알고리즘과 데이터 구조를이해하는 것은당신에게 큰 도움이 될 것입니다.
5. 도움 요청 거부
내 경험상 개발자는 이러한 습관을 가질 가능성이 가장 높습니다.그렇다면 이 개발자들이 상사나 팀원에게 도움을 요청하지 않는 이유가 궁금하다면?음, 두 가지가 이 요인으로 이어집니다.첫 번째, 자부심, 두 번째는 그들이 부끄러워하고 승진이나 급여 인상의 기회에 영향을 미칠 수 있는 특정 사항에 대한 지식이 부족하다는 인상을 다른 사람들에게 주고 싶지 않다고 생각합니다.
우선, 더 높은 사람에게 도움을 요청하는 것을 부끄러워할 필요가 없습니다.자기 의심을 경험하는 것은 흔한 일이지만, 그것에 매달리는 것은 흔한 일이 아닙니다.자신감을 가지세요!팀으로 작업하는 경우 팀이라고 하는 데에는 이유가 있습니다!의심이 들 때마다 팀원이나 원하는 사람과 자유롭게 이야기하십시오.긍정적인 태도를 유지하고 가능할 때마다 도움을 요청하십시오.
6. 건강에 집중하지 않음
프로그래머가 밤늦게까지 일하는 것은 흔한 일입니다.일반적으로 이는 대부분의 프로그래머가 서버에 과부하를 주지 않고 디버그 및 컴파일할 수 있도록 밤늦게까지 일하고 낮에는 회의가 없기 때문입니다.따라서 프로그래머는 일반적으로 늦은 밤에 가장 생산적입니다.
하지만 아침에 출근해야 한다는 걸 알면서도 밤늦게까지 일하는 것은 건강상의 문제를 누적시킨다.지금은 기분이 좋지 않을 수도 있지만 직장에서 너무 많은 시간을 보내거나 재미로 코딩을 한다면 웰빙에 주의를 기울여야 합니다.
수면 부족은 정신 및 생리적 문제로 이어질 수 있으며, 소진, 우울증, 질병 등의 자기강화 주기로 이어집니다. 규칙적으로 충분한 수면을 취하고, 상쾌하고, 명상하고, 전체 기간 동안 생산적이고 집중하는 법을 배움으로써 이 문제를 해결할 수 있습니다. 낮.
7. 쉽게 포기한다
해결책을 찾을 수 없는 문제를 해결하는 데 어려움을 겪고 있습니까?하나도 생각이 안난다면 당신은 굉장한 개발자임에 틀림없죠?그것은 그것이 작동하는 방식이 아닙니다.어딘가에 갇혀 있다고 해서 무능하다는 의미는 아닙니다.그러나 포기는 이 개념이 사실임을 증명합니다.
모든 문제는 코드로 해결할 수 있음을 항상 기억하십시오.정확한 시간과 자원을 확보하는 것이 관건입니다.문제에 갇혀 있다고 느낄 때마다 포기하지 마십시오. 문제를 해결하기 전에 시간과 조사가 필요할 것입니다.
"명랑한 마음은 인내하고 강한 마음은 천 가지 어려움을 헤쳐나갑니다."— 스와미 비베카난다
골든래빗이 펴낸 '개발자 원칙'은 다양한 기업 현장에서 뛰는 나름 경력 있는 개발자들이 개발에 대한 각자 중요하게 생각하는 것을 담은 책이다. 9명이 강조하는 개발자 원칙이 담겼는데, 글쓰기를 업으로 삼다 보니 글쓰기과 코딩이 비슷한 점이 많다는 내용을 담은 장동수 데이원컴퍼니 CTO의 글이 눈길을 끈다.
글을 읽다 보니 글쓰기와 코딩은 비슷한 점이 참 많은 것 같다. AI와 관련한 변화에 직면한 것도 그렇고. 챗GPT가 나오면서 글쓰는 일에도 변화가 있을 것이란 전망이 많은데, 코딩 쪽 역시 마이크로소프트 깃허브가 내놓은 코딩 AI 도우미인 코파일릿이 많은 관심을 끌고 있다.
개발자 커리어 플랫폼 프로그래머스 운영사 그렙이 국내 개발자들의 기술 트렌드와 커리어 고민을 엿볼 수 있는 ‘2022 프로그래머스 개발자 설문조사 리포트’를 공개했다고 밝혔다.
프로그래머스 홈페이지에 공개된 리포트는 프로그래머스를 이용하는 개발자 5,362명을 대상으로 2021년 12월 3일부터 31일간 실시된 온라인 설문조사 결과를 바탕으로 발행됐다. 개발자 설문조사 리포트는 우리나라 개발자들의 생각을 공유하는 목적으로 매년 상반기에 발행한다. 이번 리포트에는 근무 지역·형태, 평균 연소득, 자주 사용하는 툴, 배우고 싶은 프로그래밍 언어, 이직과 구직 시 중요한 점, 채용 정보와 개발 트렌드를 얻는 곳 등 총 35문항을 수록했다.
ⓒ 그렙 해당 자료에 따르면, 응답한 개발자 49.5%는 회사로 출근한다고 응답했다. 재택근무와 출근을 병행하는 개발자는 38.3%, 재택근무만 하는 개발자가 12.2%로 총 응답자 중 87.8%의 개발자는 회사로 출근한 것으로 나타났다. 가장 많은 개발자가 근무하는 지역은 서울시 강남구(25.3%)로 나타났으며, 네이버, 엔씨소프트 등 IT 기업이 다수 포진돼 있는 경기도 성남시(14.5%)가 2위, 강남구 옆에 위치한 서초구(6%)가 3위를 기록했다.
연소득 관련 질문에서는 설문에 참여한 개발자의 43.5% 만이 4,000만 원 이상을 받는다고 답했다. 개발자 영입 전쟁이 치열해지면서 처우개선과 사이닝 보너스, 스톡 옵션 제공이 연일 화제가 되고 있으나 모든 개발자가 고액의 연봉을 받지는 않는 것으로 나타났다.
한편, 개발자들이 회사를 선택할 때 가장 중요하게 여기는 것은 연소득/인센티브/스톡옵션 등의 금전적 보상(60.3%)이었으며, 다음으로 동료(55.1%)와 개발 스택/환경(47.7%)을 고려한다고 답했다. 개발자들이 선택한 회사를 선택하는 기준 톱3는 매년 변하지 않는 순위를 유지하고 있다.
개발자들이 가장 자주 사용하는 에디터(최대 2개 선택)는 비주얼 스튜디오 코드(56.3%), 인텔리J(29.6%), 이클립스(17.7%) 순이었다. 비주얼 스튜디오 코드는 2020년 46.5%와 비교해 10% 가까이 사용량이 증가했다. 또한 새롭게 배우고 싶거나 배울 필요성을 느끼는 언어는 코틀린(15.5%), 고(15.3%), 타입스크립트(12.5%) 순이었다. 2020년 1위를 차지한 파이썬의 경우 4위로 하락했는데, 이미 많은 개발자들이 Python에 익숙해졌기 때문인 것으로 분석했다.
또한 매일 밤샘 근무를 하는 개발자 이미지와 달리 34.7% 개발자는 야근을 하지 않는 것으로 나타났다. 매일 또는 거의 매일 높은 강도로 야근하는 개발자는 13%로 응답자 중 가장 적은 비중을 차지했다.
그렙 이확영 대표는 “해외에도 다양한 개발자 설문조사 리포트가 발행되지만 국내와 근무환경이 다르기 때문에 우리 주변의 개발자들의 생각을 보여주지는 못하는 아쉬움이 있었다”면서 “프로그래머스는 설문조사 리포트를 통해 많은 개발자들이 궁금증을 해소하고 공감대를 얻기를 바라는 마음으로 매년 상반기 설문조사 리포트를 발행하고 있다”라고 말했다.