CodeGym /Java Blog /무작위의 /시니어 개발자가 되는 것. 역할에 대한 짧은 가이드
John Squirrels
레벨 41
San Francisco

시니어 개발자가 되는 것. 역할에 대한 짧은 가이드

무작위의 그룹에 게시되었습니다
전통적으로 기술 산업에서 개발자는 자격 수준에 따라 Junior, Middle, Senior 및 Team Lead의 네 가지 등급으로 나뉩니다. 이전 두 기사에서 주니어 및 중급 개발자가 되는 것이 어떤 것인지에 대한 모든 기본 사항을 이미 다뤘습니다 . 이제 다음 단계로 넘어갈 차례입니다. 시니어 개발자, 하나가 된다는 것은 어떤 것이며 시니어와 미드레벨 코더는 어떻게 다릅니까? 알아 보자. 시니어 개발자가 되는 것.  역할에 대한 간략한 가이드 - 1

시니어 개발자는 누구입니까?

소프트웨어 개발의 직업 및 전문화에 관한 기사에서 우리는 항상 일종의 면책 조항을 작성해야 합니다. 특정 위치에 대한 인식과 이해는 회사, 운영 중인 산업 및 기타 요인에 따라 크게 다를 수 있음을 설명합니다. . 다소 보수적인 경향이 있는 일부 사람들은 코딩 경험이 10년 이상인 경우에만 시니어라고 부를 수 있다고 생각합니다. 즉, 풀타임 직원으로 실제로 코딩을 하던 몇 년 동안만 12세에 처음으로 Basic에서 프로그래밍을 시도했을 때부터 계산을 시작할 수 없습니다(많은 젊은 코더들이 하는 경향이 있으므로 실제 시니어 프로그래머를 화나게 합니다) ). 덜 보수적이기 때문에 많은 사람들은 소프트웨어 개발자로 5년 이상 정규직으로 일하면 자신을 시니어라고 부를 수 있다고 생각합니다. 반면에 수년간의 경험은 숫자에 불과하며 실제로 중요한 것은 지식, 기술 및 적용 가능한 경험입니다. 시니어 개발자는 종종 모든 것을 알고 전능한 코딩 마법사로 간주되기 때문에 시니어 타이틀을 받을 자격이 있는 것을 실제로 제공해야 하는 곳입니다. 경영진의 인식에서 선임은 일반적으로 프로젝트 관련 작업을 해결하는 방법이나 필요한 코드를 작성하는 방법을 아는 사람입니다. 그러나 특정 소프트웨어 개발 프로젝트에서 수석 개발자의 가장 중요한 기능 중 하나는 모든 문제, 요구 사항, 뉘앙스 등이 있는 프로젝트 자체에 대한 지식입니다. 자율적으로 일할 수 있다는 것은 시니어의 중요한 자질입니다. 이것은 시니어가 무엇을 언제 해야 하는지 알고 있다는 것을 의미합니다. 그가 해야 할 작업을 수행하기 위해 감독이 필요하지 않습니다. 그리고 이것은 모든 고용주의 눈에 상당히 귀중한 자질입니다. 이는 개발자에게 프로젝트 관련 작업을 제공하고 나머지는 모두 그/그녀에게 맡길 수 있음을 의미하기 때문입니다. "나머지 모든 것"은 완료해야 할 작업에 대한 요구 사항, 요구 사항 및 제한 사항 파악, 올바른 접근 방식 제시, 적절한 도구 찾기, 큰 작업을 작은 작업으로 나누고 중급 및 주니어 수준에 할당 개발자 등 중급 및 주니어 코더와 시니어를 구별하는 또 다른 주요 측면이 있습니다. 그들이 작성하는 코드와 수행 방식에 있습니다. 시니어는 일반적으로 가장 명확하고 단순하며 간결한 코드를 작성하는 사람이며 그래야 합니다. 때로는 이 코드가 지나치게 간단하고 원시적으로 기본적으로 보일 때도 있습니다. 이는 Senior가 작업의 완료를 최종 결과로 고려할 뿐만 아니라 새 코드가 프로젝트의 코드 기반에 미치는 전반적인 영향을 고려해야 하기 때문입니다. 시니어 개발자는 유지 관리성과 확장성을 염두에 두고 코드를 작성하며, 이는 경험이 있어야만 얻을 수 있는 주요 강점입니다.

선임 개발자의 책임은 무엇입니까?

이제 시니어 개발자의 가장 표준적이고 일반적인 책임에 대해 좀 더 자세히 이야기하겠습니다. 자연스럽게 Java 프로그래머에게 일반적인 책임에 초점을 맞춥니다.
  • 사용자 요구 사항 식별 및 분석
  • 코딩 작업의 우선 순위 지정, 할당 및 실행
  • 자바 애플리케이션 개발
  • 정확성과 기능을 위해 코드 작업을 검토합니다.
  • 정기적으로 코드 세그먼트 분석
  • 신기술을 최신 상태로 유지하고 주니어 개발자에게 사용 방법을 교육합니다.
  • 다른 팀 구성원과 함께 개발 주기와 관련된 아이디어 및 솔루션 생성
  • 모든 개발 작업 및 프로젝트 코드에 대한 일반적인 책임을 집니다.

시니어 개발자를 위한 요구 사항

다음은 이 직업을 얻기 위해 충족해야 하는 선임 개발자에 대한 가장 일반적이고 일반적인 요구 사항 목록입니다. 물론 요구 사항은 회사 채용 정책, 프로젝트에 사용된 기술 및 프로그래밍 언어에 따라 다릅니다.
  • 소프트웨어 개발 및 해당 기술에 대한 광범위한 일반 지식
  • Java에 대한 강력한 지식;
  • 엔터프라이즈 애플리케이션 설계, 구축 및 테스트 경험
  • Spring, Spring Boot 또는 Java EE, JSF 등과 같은 널리 사용되는 Java 프레임워크에 대한 심층 지식
  • 객체지향 설계(OOD)에 대한 경험.
이것들은 기본적인 프로그래밍 관련 요구 사항일 뿐이지만, 강력한 시니어를 구성하는 다른 중요한 기술이 너무 많기 때문에 기술 지식을 갖는 것만으로는 종종 시니어 개발자의 직업을 얻기에 충분하지 않습니다. 다음은 수석 개발자에게 일반적으로 언급되는 비기술적 요구 사항입니다.
  • 좋은 위임 및 시간 관리 기술;
  • 문제 해결 능력;
  • 좋은 의사 소통 능력;
  • 강력한 서면 및 구두 의사 소통 기술;
  • 마감일을 맞추고 전략적으로 사고하는 능력.

시니어 개발자의 수입은 얼마입니까?

아시다시피 미국에서 코딩 작업에 대한 급여에 관해서는 숙련된 선임 개발자의 경우 Google, Facebook, Amazon, Apple 및 Microsoft와 같은 거대 기업이 소프트웨어 엔지니어에게 많은 돈을 지불하고 있기 때문에 하늘이 한계입니다 . 예를 들어 Google에서 개발자로서 얻을 수 있는 최고 수준으로 간주되는 레벨 7의 소프트웨어 엔지니어는 연간 총 $608,000를 벌 수 있습니다. 그러나 평균 수치를 살펴보겠습니다. Glassdoor에 따르면 미국의 시니어 프로그래머 평균 연봉은 약 121,000달러로, 이는 Mid-Level 코더 연봉 71,000달러, 주니어 개발자 평균 연봉 63,502달러에 비해 상당히 높은 수준입니다. 보고서 _10-19년의 경력을 가진 선임 개발자인 PayScale은 5,523개의 급여를 기준으로 평균 $109,122의 급여를 받습니다. 경력 후반(20년 이상)에 직원들은 평균 $111,432의 총 보수를 받습니다. PayScale에 따르면 독일에서 10년 이상의 경험을 가진 선임 소프트웨어 개발자는 총 평균 €63,638의 보상을 받습니다. 프랑스, 시니어의 평균 급여는 €54,982입니다. 늘 그렇듯이 순전히 숫자만 따지면 미국 프로그래머는 유럽과 다른 지역의 동료보다 앞서 있습니다. 주목해야 할 또 다른 흥미로운 점은 미국의 선임 프로그래머가 중급 프로그래머보다 훨씬 더 많은 수입을 올린다는 것입니다. 아마도 이것은 미국에서 실제로 전문적이고 경험이 풍부한 수석 코더의 대다수가 세계 최고의 소프트웨어 인력 지출자인 미국 기술 대기업에서 일한다는 가정으로 가장 잘 설명될 것입니다.

경력 관점

경력 관점에 관해서는 시니어 개발자가 확실히 가지고 있습니다. 그러나 재미있는 것은 그들 중 대다수가 실제로 아무것도 찾고 있지 않다는 것입니다. 팀 리더 및 기술 리더와 같은 직책은 시니어 레벨에 도달할 때 기대할 수 있는 주요 옵션 중 하나입니다. 기술 관리의 다양한 옵션뿐만 아니라. 기술 회사의 CTO 및 CEO 직위는 선임 개발자의 경력에서 가능한 최고의 성과일 것입니다. CTO는 물론 더 현실적인 것입니다. 기술 산업에서도 대부분의 CEO는 실제로 기술적 배경이 없거나 매우 제한적입니다.

시니어 개발자가 되는 것. 의견

일반적으로 시니어 개발자 직위와 관련하여 대부분의 토론은 개발자가 토론하고 싶어하는 두 가지 핵심 주제에 초점을 맞추는 경향이 있습니다. 즉, 귀하를 실제로 시니어 개발자로 만드는 것과 자신을 시니어라고 부르기 시작할 수 있는 시기입니다. “놀라운 사람도 있겠지만 시니어 직종은 지원자에게 5년에서 8년 사이의 경력을 지속적으로 요구했습니다. 10년 이상을 요구하는 사람도 있었지만 많지는 않았다. 시니어 개발자로서 회사는 귀하가 모호한 아이디어를 채택하고, 사양을 지정하고, 개발을 계획하고, 팀을 참여시키고, 완료할 때까지 따라갈 수 있기를 기대합니다. 반면 중간 개발자는 일반적으로 감독 없이 자신에게 할당된 개별 작업을 수행하고 팀 내에서 작업하며 일부 멘토링을 수행해야 합니다.그의 견해를 공유합니다 . “선임 개발자와 함께 높은 수준/더 모호한 목표를 제시할 수 있으며 그들은 그것을 구체화하고 실행 계획을 만들고 내가 실행한 다음 최소한의 손을 잡고 구현하도록 할 수 있습니다. 따라서 모호한 아이디어를 가지고 완전히 완성할 수 있다고 확신할 때 당신은 시니어 개발자입니다. 모든 사람이 때때로 도움을 요청하기 때문에 절대 도움을 요청하지 않는다는 의미는 아니지만, 내가 당신을 돌보지 않고도 프로세스를 주도할 수 있습니다.”라고 Wise Telemetry의 공동 창립자이자 CEO인 Eric Wise는 말합니다 . 이 좋은 인용문 으로 마무리하겠습니다.독일의 숙련된 소프트웨어 개발자인 Pablo Oliva는 다음과 같이 말했습니다. 문제가 발생할 때마다 의지할 수 있는 자원이 많았습니다. 그들은 우리가 일상적으로 사용하는 도구와 언어를 아주 잘 알고 있었고 무언가를 모를 때 어디를 찾아야 하는지도 알고 있었습니다. 오래된 솔루션에 대한 이러한 지식과 새로운 솔루션을 찾는 데 능숙한 능력은 동료들로부터 존경을 받았고 동료들은 종종 제안을 요청했습니다. 또한 그들은 스스로 찾는 것을 멈추고 동료에게 도움을 요청해야 할 때를 알게 될 것입니다. 일부는 인증을 받았고 일부는 그렇지 않았습니다. 일부는 졸업했고 일부는 졸업하지 않았습니다. 그러나 그들은 항상 자신의 팀(심지어 다른 팀의 사람들, 특히 뛰어난 수석 개발자들에게도)의 기준점이었습니다. 그래서 막힐 때 당신에게 도움을 요청할 생각을 하는 사람이 몇이나 될까요?”
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION