이 질문에 이미 답변이 있습니다. :
댓글
답변
시니어 :
- 전체 소프트웨어 개발 수명주기를 끝에서 끝까지 처리 할 수 있습니다.
- 다른 사람을 이끌거나 다른 사람이 지침을 구합니다.
- 프로젝트를 자체적으로 관리 할 수 있습니다.
소프트웨어 개발은 다른 분야와 달리 흥미로운 존재입니다.
때로는 대학을 졸업 한 신입생이 20 년 이상의 경험을 가진 베테랑 주변에서 서클을 운영 할 수 있습니다. 프로그래밍은 코드가 왕인 기이 한 세상입니다.
일부는 2 년 이내에 위의 목표를 달성하고 다른 일부는 10 년이 걸립니다.
댓글
답변
선임 개발자라는 말을 들으면 프로그래밍을 마스터 한 사람을 생각해보십시오. 시스템을 설계, 코딩 및 테스트 할 수있는 사람을 생각합니다. 시스템 아키텍처 또는 구성 요소 설계에 대해 이야기 할 수 있습니다. 그들은 디자인 패턴을 이해하고 사용합니다. 이 사람은 성능 병목 현상을 예상 할 수 있지만 사전 최적화를 알지 못합니다. 이 사람은 적절한 경우 비동기 프로그래밍, 큐잉, 캐싱, 로깅, 보안 및 지속성을 활용합니다. 질문을 받으면 선택과 장단점에 대한 자세한 설명을 제공 할 수 있습니다. 대부분의 경우 그들은 객체 지향 프로그래밍 및 디자인을 마스터했으며 Javascript, F #, Scheme과 같은 절대적인 다른 언어는 강력하고 객체 지향이 아닙니다. 그들은 위험 관리에 능숙하며 앞서 언급 한 것을 동료들에게 전달할 수있는 모든 것 중에서 가장 중요합니다.
숙달이란 무엇입니까? 하나의 기술을 습득하려면 인간의 몸과 마음이 기술을 파악하고 내재화하는 데 10,000 시간의 반복이 필요하다는 일반적으로 받아 들여지는 아이디어가 있습니다. 이 내용은 Malcolm GladWell의 책 Outliers 에 자세히 기록되어 있습니다. 원저자가 분야를 마스터하는 것에 대해 이야기했을 때, 그는 경쟁이 치열한 분야의 정상에 도달하는 데 10,000 시간이 걸린다고 언급했습니다.
Malcolm GladWell의 특이 치에 대한 몇 가지 예는 다음과 같습니다.
Mozart 그의 첫 번째 21 살의 어린 나이에 협주곡. 처음에는 젊어 보이지만 11 살 때부터 작곡을하고있다.
비틀즈 는 처음에는 기피되었습니다. 그들은 겨자가 없어서 다른 작업 라인을 고려해야한다고 들었습니다. 그들은 독일에서 3 년 동안 각기 다른 장소에서 약 1200 번 플레이하며 매번 5 ~ 8 시간을 보냅니다. 그들은 오늘날 우리가 알고 사랑하는 비틀즈로 다시 등장했습니다.
마지막으로 Bill Gates 20 세는 하버드를 중퇴하여 마이크로 소프트를 찾았습니다. 어떤 사람들에게는 이것은 어리석은 것처럼 보일지 모르지만 그는 20 세에 그의 어린 인생 프로그램의 거의 절반을 보냈다고 생각했습니다. 1975 년에 그가 경험 한 경험은 세계에서 50 명 정도에 불과했습니다. 그의 경험 덕분에 Microsoft의 미래를 볼 수있는 예지력이 생겼습니다.
Peter Norvig는 또한 자신의 에세이 “ Teach Yourself Programming in Ten Years”에서 10,000 시간 규칙에 대해 논의합니다. ”.
George Leonard의 Mastery 책에는 기술을 습득하는 방법에 대한 자세한 내용이 나와 있습니다. 기술을 계속해서 연습해야합니다. 반복할수록 각 반복의 차이점을 더 많이 인식하게됩니다. 이 통찰력이 있어야 더 나아질 수 있습니다.
소프트웨어 업계의 직함 (주니어, 중급 및 시니어)은 오해의 소지가 있으며 조직마다 일관성이 없습니다. 저는 선임 개발자를 5 년 이상의 경력을 가진 사람으로 정의한 회사와 함께 일했습니다. 경험의 질에 대한 언급은 없으며 단지 5 년 동안 컴퓨터 앞에 앉아 있었다는 것뿐입니다. 이 사람들과 함께 일하면서 그들 중 다수는 아직 객체 지향 프로그래밍을 이해하지 못했지만 시니어 개발자로 간주되었습니다.
소프트웨어 엔지니어의 기술을 측정하는보다 객관적인 방법이 있어야합니다. John Haugeland 는 컴퓨터 프로그래머의 기술 매트릭스를 게시했습니다. 이는 프로그래머의 기술 수준 을 측정하는 객관적인 방법이며 그렇지 않으면 직감에 맡겨집니다.
소프트웨어 엔지니어를 보면 4가 보입니다. 기술 계층 : Luminary, Senior, Mid-Level 및 Junior.
Luminary (10 년 이상) 는 기술을 습득하고 각자의 훈련을 개선하기 위해 설정 한 사람입니다. 몇 가지 예는 다음과 같습니다. Ted Neward , Uncle Bob Martin , Donald Knuth, Oren Eini , Peter Norvig , Linus Torvalds. 유명인은 귀하의 기술에 따라 변경됩니다.
시니어 (7 ~ 10 세 이상, 레벨 3) 는 특정 장르에서 지난 10,000 시간 동안 프로그래밍을 한 사람입니다. 디자인 패턴에 대한 강력한 이해가 있으며 적절한 경우 비동기 프로그래밍, 큐잉, 캐싱, 로깅, 보안 및 지속성을 활용합니다.
시니어가 Luminary에 도달하지 못할 가능성이 매우 높습니다. 유명 인사는 종종 말하고 쓰는 것으로 발견됩니다. 그들은 자신의 규율에 영향을 미치기 위해 적극적으로 노력하고 있습니다.
중급 (4 ~ 6 년, 레벨 2) 는 일상적인 프로그래밍을 이해하는 사람입니다. 그들은 독립적으로 작동하며 강력한 솔루션을 만듭니다. 그러나 그들은 아직 크고 복잡한 시스템을 만들거나 유지 한 경험이 없습니다. 일반적으로 중간 수준의 개발자는 구성 요소 수준의 개발에 능숙합니다.
주니어 (1 ~ 3 년, 수준 1) 는 프로그래밍의 기본을 이해하는 사람입니다. 그들은 소프트웨어 공학 또는 컴퓨터 과학 학위를 가지고 있거나 독학으로 배웁니다. 그들의 코드는 지속적으로 검토됩니다. 알고리즘, 유지 보수 용이성 및 구조에 대한 지침이 제공됩니다.
댓글
답변
“언제 자신을 선임 개발자라고 불러야합니까?”– 주니어 개발자를 멘토하기 시작했을 때.
댓글
답변
당신은 ”
시니어는 아무 의미가 없습니다. 주니어는 아무 의미도 없습니다. 직함은 아무 의미도 없습니다. 내 직함-준 비즈니스 시스템 이사. 내 책임-사내 소프트웨어 개발에서 인프라, 보안을 통해 인프라에 이르는 모든 IT 관리, 내 소프트웨어 개발 경험-독학. 네트워크 경험-독학. IT 분야의 전반적인 능력-당신보다 나쁘다.
관리하고 지시하는 능력-논쟁의 여지가 있지만 제 성격과 성격이 제 직업을 얻었고 성공하게 만들었습니다.
직위는 능력을 의미하지 않으며 노력은 모든 것을 의미합니다. 저는 최고가 아닙니다. 그렇게 믿는 것은 오만 할 것입니다.
제목에 대한 끊김을 잊고 가치를 증명하세요!
댓글
답변
동일한 경향을 발견했습니다. 다른 날 질문 중 하나는 건축가로 이전 한 경험이 2 ~ 3 년인 선임 개발자에 관한 것이 었습니다.
도토리를 나무라고 부를 수는 있지만 그것이 그 모습을 바꾸지는 않습니다.
유일한 논리적 인 결론은 “상급”이 다른 것을 의미한다는 것입니다.
- “대학을 막 졸업 한 사람의 상급자”와 같은 상대적인 순위
- 불쌍한 스페인어 철자, 즉 그들은 señor를 넣어야 함
- “senior butt-crack, pull up them pants”에서처럼 남부 철자법
요즘은 그냥 직업 일뿐입니다. 제목 이며, 상대적인 업계 경험에 대해 말하거나 말하지 않습니다.
댓글
답변
최상의 답변은 Darknight에서 제공 한 것 같습니다 .
필요한 것 같습니다. 다음을 지적합니다.
2-3 년의 프로그래밍 경험 (작업 + 함께 개인)은 1 시간에 충분하지 않습니다. o 충분한 수의 프로젝트를보고 충분한 양의 문제를 처리했습니다. 작동하지 않습니다. 일을 머릿속으로 보내고, 경험을 반영하고, 정신적으로 더 높은 수준의 사고로 이동할 시간이 필요합니다. 하룻밤 사이에 일어나지 않습니다.
5 ~ 7 년 미만의 연습 (다시 작업 + 함께 개인적으로)은 기적이 예상되지 않는다고 말하고 싶습니다. 특정 언어와 프레임 워크에 대한 많은 경험을 얻을 수 있지만 아직 뛰어 들지는 않습니다. 새로운 수준의 사고.
다른 것은 개인의 전반적인 성숙도입니다. 제 생각에는 처음에는 30 세에 가까워집니다. 그 전에는 뇌가 더 높은 클럭 속도로 작동 할 수 있습니다. 그러나 그것은 더 큰 그림을 볼 수있는 충분한 데이터가 메모리에 부족하기 때문에 정크를 처리하는 것입니다. 우리의 일반적인 삶의 경험은 우리가 생각하고 일하는 방식에 미묘하지만 실제적인 것을 추가하므로 다른 종류의 작업으로 프로그래밍 할 수도 있습니다.
개인적으로 선배를 받아들임 : 최소 27 년 이상 7 년 이상의 경력을 가진 사람 . 그 전에는 개인적으로 회의적이었습니다 (하지만 여전히 개방적이지만 더 많은 증거가 필요합니다).
댓글
답변
최근 Martin Fowler의 좋은 블로그 게시물이 있습니다. 내가 빼 놓은 것은 다음과 같습니다.
-
누군가를 위해 일한 기간과는 아무 상관이 없습니다. 3 년 동안 일하고 시니어 개발자가됩니다. 6 년 후에는 어떻게됩니까? 시니어 시니어 개발자가 되십니까?
-
시니어 개발자는 귀하를 얕보거나 자신보다 낫다고 생각하지 않습니다. 그것은 매우 중요합니다. 자존심을 방해하면 문제가 발생합니다.
-
선임 개발자는 책임을지지 않습니다. 그들은 문제를 예상하고 긍정적 인 방식으로 해결합니다.
-
사람들은 선임 개발자와 협력하기를 원합니다. 이것이 제 열쇠입니다. 나는 사람들이 나와 함께 일하기를 원하고 그들이 나와 함께 일하는 것을 즐기기를 바랍니다.
-
선임 개발자는 가장 똑똑한 엔지니어가 아닙니다. 그들은 가장 복잡한 문제를 다루지 않습니다. 그들의 기술은 프로그래밍에 관한 것이 아닙니다. 그들의 의사 소통 능력은 똑같이 중요한 역할을합니다.
-
선임 개발자는 예측에 능숙합니다.
-
선임 개발자는 항상 자신이하는 일에 관심이 있습니다. 지루한 작업은 잠재적으로 더 흥미로운 다른 작업과 동일한 품질로 완료되어야한다는 것을 이해합니다.
명확하게
위에 나열한 기술은 기본적인 소프트웨어 엔지니어링 기술 및 관행에 더해 우수한 선임 소프트웨어 엔지니어가 가져야한다고 생각하는 기술입니다.
댓글
답변
많은 멘토를했고 처음에 동의하지 않은 후 몇 년 후 대부분 감사를 표했다면 명령 할 수있는 제목에 “Senior”를 자유롭게 추가하세요.
그때까지는 “리드”가 더 설명적인 용어 일 것입니다.
저에게 “시니어”라는 용어는 사람들과 그들의 임의적 기대를 다룰 때 실용적인 경험과 지혜의 정점을 나타냅니다. . 다음 시나리오를 고려하세요.
16 명의 프로그래머가 팀에 소속되어 있으며 각 프로그래머는 나머지보다 정확히 1 년 더 많은 경험을 가지고 있습니다. 이것은 16 “번째 프로그래머가 16 년 이상의 경험을 가지고 있다는 것을 의미합니다. 가장 경험이 많은 멤버 중 8 명이 버스가 가게에 부딪히면 비극적으로 살해됩니다. 경험이 절반 인 사람이 이제 시니어 개발자로 간주 될까요? 그렇지 않습니다. 회사가 방금 잃어버린 것과 동등하거나 더 많은 능력을 가진 사람들로 신속하게 공백을 교체하기를 바랍니다.
“라는 용어를 사용하는 것이 싫습니다. 숙련 된 사람 “을 프로그래밍에 적용 할 수 있지만 일부는 적용됩니다.”시니어 “라는 용어는 기술 지식을 훨씬 뛰어 넘기 때문에 15 년 미만의 경험을 가진 누구에게도”내가 건네 줄 것 “이 아닙니다.
댓글
답변
이 “주니어 / 선임 개발자”제목이 잘못되고 오해의 소지가있는 이유는 이를위한 실제 측정 단위는 없습니다. 우리는 모두 실무 경험이 적거나 많은 소프트웨어 개발자입니다. 소프트웨어 개발자를위한 계층 구조를 만들려고하지 마십시오. 요점이 없으며 주요 초점 인 훌륭한 소프트웨어 개발 팀에 해를 끼칠 수 있습니다.
댓글
답변
이전 작업을 되돌아보고 그것이 무엇인지 깨달을 때. 그리고 당신은 “더 나아졌지 만 갈 길이 멀고, 배움은 영원하다는 것을 이해합니다.
댓글
답변
때로는 다른 직업과 왜 소프트웨어 프로그래밍이 자체적으로 표준화되지 않는지 궁금합니다. 특정 레벨을 획득하는 데 허용되는 표준이 있기 때문에이 질문에 대한 소용이 없을 것입니다. 그런 다음 “누가 죽고 그들을 왕으로 남겼습니까?”라는 깨달음에 도달했습니다.
우리 모두는 경험, 교육, 인증 및 직함이 다른 모든 사람이 프로그래머의 능력을 매우 기본적인 것으로 파악할 수 있다는 것을 알고 있습니다. 자신이하는 일을 알고 있거나 그렇지 않은 경우 자신의 냄새를 맡을 수 있습니다. 친절하거나 할 수 없습니다.
답변
“WHAAAT …. UNIT TEST !!!! I”ma senior 프로그래머 … 더 이상 내 코드를 테스트 할 필요가 없습니다. “
예전에 들었습니다 …. 따라서 그는”Juniors “가 버그를 수정하고 테스트하도록합니다.
“우리는 건축가를 고용 할 것입니다. X 씨가 아닙니다. 우리는 훨씬 더 선배이고 더 이상 코딩하지 않는 사람을 원합니다.”
인터뷰 후반 :
정말 시니어는 스티븐이 말하듯이 제목과 같은 관점의 문제 일뿐입니다.하지만 결국에는 여러분이 작성한 코드라고 말할 수 있기를 바랍니다. 중요하지만 안타깝게도 대부분의 경우 양복과 넥타이가 더 큰 영향을 미칩니다. 특히 더 이상 구체적인 업적 (코드)으로 측정되지 않지만 계층 구조에서 본질을 얼마나 잘 확신 할 수 있는지에 대한 것입니다.
댓글
답변
돈과 관련이있을 수 있습니다.
일부 회사는 정해진 급여 계획을 따릅니다. 주어진 규칙 때문에 “개발자”사다리의 중간에 놓을 수는 없지만 “선임 개발자”사다리의 맨 아래에 놓을 수는 있습니다.
개인적으로는 한 사람이 대학을 졸업 한 직후에 선임 직함을 부여받는 것이 이상하다는 것을 알게되지만 다른 한편으로는 누가 신경을 쓰나요? 저는 지금까지 10 년 동안 “개발자”로 일했고, 제가 “선배”직함을 받았음에도 불구하고 지금 직장을 바꾸는 것은 아무 의미가 없습니다. 나는 새 도메인의 신입생이 될 것입니다. 적어도 잠시 동안 …
답변
다른 사람이 전화 할 때 수석 개발자. 하나의 정의가 없습니다. 회사에서 회사로의 변화. 잘 정착 된 회사에서 신입생에게는 일이 적고 학습 곡선이 느립니다. 신생 기업에서 신입생은 많은 책임을지고 짧은 시간에 많은 것을 배울 수 있습니다. 나는 이것을 직접 경험했다. 안타깝게도 코드 나 작업의 품질을보고 지식의 깊이를 계산할 수있는 것은 다른 숙련 된 사람들뿐입니다. 시간이 다되면 모두가 자신의 직함을 얻게 될 것입니다.
회사를 바꾸지 마십시오. 🙂
Answer
다른 많은 제목과 마찬가지로 제목입니다. 여기에있는이 “십대”는 박사 학위를 가질 수도 있습니다. , “반드시 아무 의미가 없습니다. 그러나 그것은 분명히 그들에게 더 높은 급여를 줄 것입니다. 선임 개발자 또는 선임 설계자에게도 동일하게 적용됩니다. 또는 수석 프로젝트 관리자 등.
그 사실을 고려할 때 수년 간의 경험을 바탕으로 자신의 카드에 해당 제목을 추가하는 것보다 직장 동료가 “우리의 수석 개발자”라고 부르는 것이 좋습니다. 기회가있을 때 했어요. 🙂
그 외에는 10 년이 최소라고 말하고 싶습니다 (대학 또는 기타 교육 포함).
댓글
답변
최근에 1 년 미만의 경력을 가진 CS 졸업생을 찾고있는 일부 채용 공고를 보았습니다. 이것은 단지 직함이라 할지라도 제게는 정신 나간 것 같습니다. 하나는 직함을 물러서 게하는 것입니다. 그 게시물에서 본 몇 회사에는 실제 선배를 나타내는 다른 “수퍼 선임”직함이 있습니다. 이것은 나쁜 채용 전략이 아니라고 생각합니다. 직함이 전부는 아니지만 두 직종간에 모두 동등하다는 것입니다. “마스터 수석 개발자”라는 제목을 가진 것.
“마스터 수석 개발자”(또는 그 높은 지위가 무엇이든, “상위”또는 기타)가 실제로 정당화되는 시점은 고정하기 어렵지만 . 나는 우리가 그것을 정량화하는 것에 대해 너무 객관적이라고 생각하지 않습니다. 대략적인 공식으로, 그들이 일반적으로 방에서 최고이고 방에 최소 8 명의 전문 개발자가 포함되어 있다면 시니어라고 말해야합니다. 이는 노인이 최소한 87 번째 백분위 수에 있음을 의미합니다.나는이 개발자들이 가장 많은 경험을 가진 사람들이 될 것이라고 말하고 싶지만, 경험 ==“선임”이라고 말하지 않을 것입니다. 동시에, 7 ~ 8 년 미만의 진정한 선배의 수가 극히 적어야한다는 것은 의심 스럽지만, 그 이하의 사람이 마스터가되는 것은 불가능하지 않습니다.
22 살이 된 저는“마스터 카테고리가 될 것 같지 않은 것”에 속합니다. 나는“1 년 경력의 10 년 (또는 30 년)”유형 중 일부이고 솔직히 내가 더 낫다고 생각하고 싶은 유혹이 있지만, 그 사람들이 노력을 전혀 기울이지 않았더라도 기억하려고 노력합니다. 학습하는 데 수십 년이 걸렸지 만 순수한 삼투를 통해 다양한 주제에 대해 나보다 더 많은 지식을 얻었을 것입니다. 전체 프로젝트 수명주기에 대해 그들만큼 알 수있는 방법은 없습니다. 나는 나보다 나이가 많은 한 사람과 함께 일한다! 그가하는 것보다 그 범위의 프로젝트를 유지하는 것에 대해 더 많이 알고 있다고 정말로 생각하는 것은 꽤 주제 넘은 것입니다.
또 한 가지 명심해야 할 점은 자신을 22 세에 선배라고 부르기 시작하면 32 세가 되겠습니까? 당신이 이미 정상에 있다고 가정하는 것은 당신의 미래에 약간의 실망입니다. 많은 사람들은 누군가가 전문가인지 결정하기 위해 10,000 시간 규칙을 고려합니다. 아이디어가 제안 된 Malcom Gladwell의 책에서 전문가는 단순히 최고가 아니라 특정 역할을 수행한다는 것이 분명합니다. 초보자는 어떤 식 으로든 최악은 아니지만 능력 이상의 방법에 대한 설명입니다. 초보자는 엉뚱한 일을 빨리 배울 수 있지만 종종 전문가처럼 가장 일반적인 일을하는 데 어려움을 겪습니다. 전문가는 일상적인 일을 매우 정확하고 신속하게 수행 할 수 있으며 문제를 나타낼 수있는 것이 무엇인지 파악할 수 있지만 종종 변화에 반응하거나 자신의 안전 지대를 벗어난 것을 배우는 데 어려움을 겪습니다. 이를 염두에두고 아직 전문가가되고 싶지도 않습니다. 안정적인 도메인에 정착하기 전에 가능한 한 많은 새로운 정보를 수집하고 싶습니다.
댓글
답변
10 년 ?? 농담 이군요. 좋아요, 10 년을 어떻게 정의하나요? 누군가가 15 세에 프로그래밍을 시작했지만 25 세에 프로페셔널이되었다고 가정 해 봅시다.
업계는 그렇게 작동하지 않습니다. 다른 회사에서는 사람들이 5-8 년 사이에 그들을 X 또는 Y 선임 개발자라고 부를 수 있다고 생각합니다. 조직의 많은 선임은 능력만으로 오지 않습니다. , 그것은 개인이 취하고있는 이니셔티브와 그가 공유하고자하는 책임의 종류와 많은 관련이 있습니다. 대부분의 경우 합리적인 기술과 강한 동기를 가진 사람들은 상급 프로가됩니다.
BTW 22 년은 청소년이 아닙니다;-)
댓글
답변
처음으로 “고전적인 기술 면접”이 아닌 하나 이상의 면접 세션을 기반으로 구직 할 때 (예 : 건축, 개념, 디자인, 회사에 대한 견해, 경험에 대해 이야기) , 등)
저의 (제한된) 경험은 일반적으로 주니어 개발자는 표준 면접 질문의 성능을 기준으로 채용되고 시니어 개발자는 다양한 기타 상호 작용을 기반으로 채용됩니다.
답변
연령은 숫자 일뿐입니다. 어린 아이가 더 똑똑해지고 _insert number 년의 경험이있는 프로그래머가 이제 막 늙어 가고 있습니다 … 요즘에는 어린이도 글을 쓸 수 있습니다. 스마트 한 방식으로 더 깨끗하고, 더 좋고, 더 빠른 코드. 옛 친구는 질투 만 할 수 있습니다.
댓글