4-5 년은 프로그래밍 경력의“중산 위기”입니까? 4 년 이상 동안 C #을 전문적으로

나는 4 년 이상 동안 C #을 전문적으로 프로그래밍 해왔다. 지난 4 년 동안 저는“웹 / 광고 대행사”, 소규모 산업별 소프트웨어 상점에서 소규모 신생 기업에 이르는 소수의 중소 ​​기업에서 근무했습니다. 나는 주로 고급 프로그래밍 언어 (쓰레기 수거)를 사용하는 “비즈니스 앱”을 해왔으며 전반적인 경험은 내가 한 모든 작업이보다 전문적 일 수 있다는 것이 었습니다. 사람들이 항상“지금”무언가를 원했고 가장 적은 금액의 돈으로 원했던 비용 요인으로 인해 많은 것들이 급하게 잘못되었습니다. 나는 더 큰 회사 나 프로그래머에게 더 적합한 회사 나 그 밖의 곳에서 일할 수 있을지에 대해 계속 생각했다. 나는 장기적이고 더 유지하기 쉬운 무언가를 실제로 만들 돈과 시간을 얻었습니다. 나는 내 경력에서 더 즐거웠을 것입니다. 나는 4 년 동안의 경력을 안내해주는“멘토”를 본 적이 없습니다. 나는 내 학사 IT 학위 이외의 블로그 / 구글 / 자기 교육 프로그래머입니다.

또한“나의 근무 환경”에서 소위“노인”프로그래머가 실제로 상급 기술이 아니라는 또 다른 문제도 관찰했습니다. 그들은 오랫동안 프로그래머 였기 때문에“노인”이지만, 그들이 작성한 코드 나 그들이 내리는 결정은 절대적으로 쓰레기입니다! 그들은 배우기를 원하지 않고, 더 나아지기를 원하지 않습니다. 그들은 단지 돈을 받고 싶어하고 그들이 말한 것을 이해하고 우리 대부분이 그런 식으로 행동합니다. 어쩌면 그것이 그들이 지금 어디에 있는지 이유입니다. 그러나 나는 내가 더 좋아지기를 좋아하지 않습니다. 나는 더 이상 내 미래의 경력을위한 프로그래머가되지 않을 것이라는 정신 상태에 빠졌다. 나는 더 좋은 일이있을 것이라고 생각하기 시작했다. 더 많은 블로그를 읽을수록“실제”에서 멀어 질수록 더 많은“모범 사례”를 시도했습니다. 그러나 나는 위대한 프로그래머가 아닙니다. 그렇지 않으면 내가 지금 어디에 있는지 생각하지 않습니다. 저는 4-5 년이 한 단계 발전한 현명한 경력이 될 수있는 단계라고 생각합니다.

나는 위에서 언급 한 것과 과거 프로그래밍 경력에서 비슷한 상황을 겪었는지, 어떻게 다루 었는지에 대해 다른 사람들의 의견을 듣고 싶었습니다. 감사.



답변

당신은 매우 흥미로운 질문을 엽니 다. 나는 진심으로 당신에게 동의합니다. 비슷한 관찰을했습니다.

나는 이미 몇 년 동안 전문적으로 프로그래밍 해 왔으며, 내가 관찰 한 것은 훌륭한 프로그래머, 작업을 좋아하고 품질과 열정으로 그것을 할 수있는 훌륭한 개발자의 수가 거의 제로에 가깝다는 것입니다. 나에게 무언가를 가르 칠 수있는 사람을 만났을 것입니다. 내가 아는 것의 대부분은 책과 포럼을 읽고, 포럼에서 질문하고 계시록을 찾기 위해 인터넷을 통해 배운 것입니다.

잠시 후 나는 이것을 많이 후회하지 않습니다.

작업 환경에서 배우는 옵션은 종종 제한 될 수 있습니다. 당신은 일을 시작하지 않습니다. 당신은 그들을 끝내지 않습니다. 설계, 개선, 리팩토링, 아키텍처에 대해 생각하지 않고 코드를 작성하고 해킹하기 만하면됩니다. 대부분의 상점들이 일하는 방식입니다. 아무 것도 배우지 않을뿐만 아니라 소프트웨어를 개발하지 않는 방법으로 대부분 잘못된 것을 배우게 될 가능성이 높습니다. 나는 당신이들은 모든 반 패턴, 내 주위의 무서운 것들을 지속적으로보고있다. 더 나쁜 것은, 나는 그들 스스로해야한다는 것이다.

어떻게 된건 지 모르겠지만 어떻게 든 입력 장벽을 만들었습니다. 나는 열린 채로 들어보고 자기 개선의 가능성을 발견하면 연구하고 기술이나 아이디어를 채택 할 수 있습니다. 그러나 어떤 BS도 통과 할 수 없습니다. 나는 오랫동안 프로젝트를 잘못 운영했지만, 나 자신을 위해 그 나쁜 기술을 채택하지 않았습니다.

프로그래밍에 대한 만족을 원한다면 직업을 잊고 자신의 개인 프로젝트를 가지고 있다는 것을 곧 알았습니다. 모든 사랑, 열정 및 지식을 적용하여 고품질의 일을 바로 수행 할 수 있습니다. 지루한 회사 직원을 해킹 할 때 결코 노출되지 않고 도전하지 않았던 수많은 것들을 배울 것입니다. 나는 월급 만 받고 내 개인 프로젝트에 만족합니다.

내가 정말로 이해하지 못하는 것은 오늘날 이러한 상황이 어떻게 가능한지입니다. 소프트웨어 개발이 많이 발전했습니다. 좋은 경험과 나쁜 경험이있었습니다. 많은 성공적인 프로젝트와 많은 실패한 프로젝트. 장기 프로젝트에 대한 경험과 하나 또는 다른 조직이 프로젝트에 미칠 장기 영향을 이해합니다. 이용 가능한 많은 연구와 좋은 책이 있습니다. “Pragmatic Programmer”, “Code Complete”, “Mythical Man-Month”, “일상적인 것들의 디자인”등. 왜 우리 외에 아무도 프로그래머가 읽지 않습니까? IT에서 20 년 동안 일한 후에도 대부분의 개발자와 관리자는 하나 또는 다른 방법론을 읽을 시간을 찾지 못했습니다. 그들은이 약을 가장 필요로하는 사람들을 위해 작성되었지만 거의 읽지 않습니다.

경력 관점에 관하여. 또한 직원을위한 구직 시장에서 일반적으로 주목 한 것은 품질 작업에 대한 관심을 점점 잃는 고용주 (한 번에 상상했던 것)가 가장 저렴한 작업용 공예품을 위해 점점 더 많이 쇼핑하고 있다는 것입니다. 우주에 대한 지식, 경험 및 이해를 다른 사람에게 판매하기가 어렵습니다. 수요가 없습니다. 필요한 것은 경험이없고 전문적인 업무를 수행하고자하는 후배들에게 프로젝트를 망치게하는 것입니다. 싸구려 사람들이 사용되고 남용 된 다음 던져져 다음 라운드가 시작됩니다. 프로젝트는 저임금 대상으로 아웃소싱되어 프로젝트에서 프로그래밍을 배우기 시작한 사람들이 수행합니다. 그것은 내가 정말로 이해하지 못하는 것입니다.

나는 미래에 언젠가는 고용 된 프로그래밍 작업을 포기할 것이라는 아이디어를 점점 더 즐겁게하고있다. 나는 내 자신의 프로젝트를 시작하면서 일을하고 싶습니다. 그렇지 않다면 저는 프리 랜싱을 시도하거나 유급 직업을 바꾸는 것을 고려하고 있습니다. 결국, 나는 근무 시간 동안 거의 아무것도 배우지 않으며 전혀 만족을 얻지 못합니다. 나는 9-5 일을 할 수 있으며 항상 내 개인 프로젝트에 만족합니다. 온라인 커뮤니티에서 많은 것을 배웁니다. 나는 여기에주의를 기울이고, 나의 아이디어를지지하며, 때로는 직장이나 직장 동료들과 함께 할 수없는 인정까지받습니다. 내가 미래에 어디에 있는지 볼 것이다.


답변

Jeff Atwood의 Coding Horror에 대한 게시물 이 이것이 재미있을 것이라고 말했습니다. 그리고 소프트웨어 개발자라는 직업 설명의 일부는 당신의 일을 즐기고 있습니다. 그렇지 않으면 그것은 당신을 위해 정말 지루하고 성가신 직업이 될 것입니다.

지속적으로 업무를 개선 할 수있는 방법을 찾고, 새로운 것들과 모범 사례에 대한 정보를 지속적으로 받는다는 사실은 자연스럽게 일을 즐기는 것을 보여줍니다. 그래서 당신에게 나의 충고는 새로운 직업을 찾기 시작하는 것입니다.

그러나 대기업에서 일하는 것이 반드시 근무 조건을 개선 할 것이라고는 생각하지 않습니다. 소프트웨어 개발자를위한 최고의 환경은 사람들이하는 일을 좋아하는 중소 기업입니다. 가장 좋은 방법은 결정을 내리기 전에 회사를 검색하고 체크 아웃하는 것입니다. 새로운 회사가 그만한 가치가 있는지 확인하십시오.


답변

첫 번째 : 큰 경고 : 만약 당신이 (나처럼) 10 년 동안 개발 해왔다면 당신이 개발하는 것보다 더 잘 할 수있는 일은 없습니다. 따라서 다른 일을하고 싶다면, 새로운 일을하고, 그렇지 않으면 너무 늦을 수 있으며 다른 일을 잘하지 못할 것입니다.

내 자신의 견해를 공유하기 위해서만 : 나는 자기 주도적 인 사람입니다. 내가 배운 혼자 순수 C는 C 번호는 아미 C가, 윈도우, COM, 델파이, PHP, Cinema4D 지금 블렌더와 파이썬을 개발하고 있습니다. 나는 거의 항상 혼자 일했습니다 . 지금까지 내가 겪었던 가장 큰 문제는 다음과 같습니다. 소기업은 생존하려고 노력하고 당신은 그것을 유지하는 사람 중 하나입니다. 매우 스트레스가 있지만 보람도 있습니다 : 더 많은 일을하고, 더 빨리 배우고, 많은 것들을 신속하게 제품을 더 빠르게 만듭니다 (종종 일을 제대로 수행 할 수는 없지만). 어쨌든 : 너무 많은 스트레스. 반대로 회사는 항상 살아남을 것이지만 문제는 사람들에 관한 것입니다 : 너무 많은 사람들. 정글이지만 훨씬 더 나빠요 : 아무것도 분명하지 않습니다 : 당신이 일하는 사람들이 당신보다 나아 졌다고 느끼면, 그들은 당신이 올라가도록 돕지 말고 두려워하기 때문에 당신을 쏠 수 있도록 최선을 다할 것 입니다. 자신의 경력. 그것은 프랑스에서 작동하는 방식입니다 (다른 나라에 대해서는 모르겠습니다).

요약하자면 : 자신이있는 곳이라고 생각하는 중간 규모의 회사를 찾으 십시오 . 프로그래밍을 얼마나 오래하든, 아무리 오래 일을하든, 차에 타서 일을하러 갔던 날은 “내 일에 가고 기쁘다”고 생각합니다. 하루 당신은 당신의 장소 를 발견 했다 .

4-5 년 또는 그 밖의 문제는 아닙니다.

NB : “내 일을하게되어 기쁘다”와 “내가 할 일을하고 있기 때문에 내 일을하게되어 기쁘다”사이에는 큰 차이가 있습니다. “이것과 저것을 배울 것이기 때문입니다.” 당신이 “내가 이걸하고 그렇게 할 것”이라고 생각한다면, 이것은 “이것과 저것”이 언젠가 끝나고 당신이 행복하지 않을 수도 있다는 것을 의미합니다. 이것은 12 년의 프로그래밍 경험입니다. 그리고 저는 선배이고 돈이 많이 들지만 20-25 명의 사람들이 나보다 더 빨리 생각한다는 것을 알고 있습니다. 그들은 단지 내 경험이 없기 때문에 내가 일을하는 데 도움을 줄 수 있다는 것을 인정했지만 더 빨리 할 수는 있지만 제대로 개발하도록 도와줍니다 (개발을 시작할 때 거의 해당되지 않습니다).

완벽하지 않은 내 영어에 대해 죄송합니다. 올바른 영어로 만들기 위해 게시물을 수정하는 것을 망설이지 마십시오.


답변

저는 21 년 동안 소프트웨어 개발자로 일해 왔습니다. 무엇보다도, 나는 술을 마실 수있을만큼 오랫동안이 일을 해왔습니다! 😉 그러나 진지하게, 나는 프로그래밍만큼이나 즐거운 일을 상상할 수 없습니다. 저는 이 일 을 정말 좋아 하는 희귀 조류 중 하나입니다 .

나는 최근에 이력서를 새로 고쳤으며, 지난 20 년 동안 대부분 계약이 많은 일자리가 많았습니다. 그러나 그 긴 목록을 살펴보면서 내가 깨달은 것은 내가 가장 사랑했던 직업 (그리고 내가 가장 오래 머물렀던 직업)은 소프트웨어 회사, 즉 비즈니스 모델이 고객에게 소프트웨어를 판매하는 회사와 관련이 있었다는 것입니다. 다음 이론은 보편적으로 적용되지는 않지만 제 경험을 설명하기 위해 멀리갑니다.

내가 본 것처럼 소프트웨어 상점과 일반적인 IT 상점의 차이점은 놀랍게도 분명합니다. 고위 경영진이 이해하는 것에 대한 질문 일뿐입니다. 회사가 소프트웨어를 통해 대부분의 수입을 얻는다면, 최고 황동은 실제로 소프트웨어와 그 제작 방식을 망치게 될 것입니다. 그러나 매출이 위젯 판매에서 발생하는 경우 소프트웨어 개발의 프로세스는 물론 IT 인프라를 계속 운영하는 데 필요한 결과를 얻을 수 없습니다. 더 나쁜 것은 업무를 IT 직원에게 위임하더라도 IT 프로세스를 자신이 알고있는 것에 매핑하려고 시도하는 것입니다. 결과는 일반적으로 실망에서 비참한 것까지 다양합니다.

그 이유 중 하나는 단지 유능한 것에서부터 소프트웨어의 장점에 이르기까지 광범위한 재능이 있기 때문입니다. 이것은 미숙련 및 반 숙련 직책에 잘 작동하는 쿠키 커터, 단일 크기의 모든 사고 방식과 완전히 반대됩니다. 한 개발자가 비슷한 “스킬 셋”을 가진 다른 개발자로 교체 될 수 있다는 기대는 우리에게 어리석은 것처럼 보일 수도 있지만 종종 원수에 중점을 둔 관리 구조에는 완벽하게 합리적입니다. 이것이 믿을 수없는 것처럼 보이면 폭포 모델을 작동시키려는 상점이 몇 개나 있는지 살펴보십시오.

팀의 모든 미덕이 반드시 필요한 것은 아니지만 적어도 1-2 개가 필요합니다. 그리고 그들의 역할의 일부는 후배를 멘토링하여 역할로 성장할 수 있도록해야합니다. 그렇지 않으면, 보조원의 잘못된 팩터링과 부풀림과 함께, 나쁜 건강 관리가 어려운 주니어 코드가 우선합니다. 일단 암이 발생하면 코드를 빠르게 유지할 수 없게되고 팀 전체의 생산성이 급격히 떨어지며 사람들이 타 버립니다.

이것은 결국 누군가가 말하기를, “우리는 더 이상이 일을 계속할 수 없다! 그것을 긁어 내고 다시 시작하자!” 레거시 코드베이스에 대한 투자가 창 밖으로 나오고 프로세스가 다시 시작됩니다. “하지만 이번에는 다를 것입니다.” 그리고 잠시 동안입니다. 그런 다음 누군가가 당신의 록 스타를 고용하고, 당신은 방향이없는 중학교 사람들이 당신의 반짝이는 새로운 코드베이스를 다시 버리고 떠나게됩니다.

비누 거품. 란트. 회개

그러나 나는 변론합니다 … 그래서, 당신의 원래 질문에 대답하기 위해서 : 아닙니다. 반년은 소프트웨어 경력의 중년이 아닙니다. 그것은 아마도 시대의 시대 일 것입니다-아마도 당신의 경력에서 비늘이 눈에서 떨어지고 그것이 무엇인지에 대한 사업을보기 시작하는 곳입니다. 실현은 모든 사람에게 다른 순서로 이루어지며 그 과정에서 도출 할 수있는 결론에 색을 입 힙니다. 그러나 다른 쪽에서 벗어나면 훨씬 더 건강하게 바라 볼 수 있으며 궁극적으로 우리가 그 어느 때보 다 더 큰 보상을 받고있는이 미친 사업을 발견하게 될 것입니다.


답변

5 년 이상의 경험이 필요하다고 생각합니다. 그러면 당신은 타협을 받아들이고 당신이 할 수있는 것을 고치게되어 행복해질 것입니다.

적어도 그것은 내 경험이었습니다. 약 5 년 (전문가가되는 데 걸리는 시간) 나는 실제로 “얻었다”고 생각합니다. 내 코드가 쓰레기라는 것을 깨달았습니다. 앱이 작동하는 반짝이는 해킹이 바로 해킹이라는 것을 깨달았습니다. 나는 상사를 기쁘게하고 월급을 계속 유지하기 위해 하위 파 코드를 작성하고 있음을 알게되었습니다.

동시에 나는 보스들의 욕구가 바뀌지 않을 것이라는 것을 깨달았습니다. 그들은 항상 좋은 도구에 돈을 쓰지 않고 어제 그것을 원할 것입니다. 내가 특정 디자인 패턴을 사용하면 신경 쓰지 않을 것입니다. 단일 책임 원칙을 신중하게 적용하여 유지 관리 성을 향상 시켰기 때문에 이들이 경외심을 느끼지 않을 것입니다.

또한 경험이 부족한 프로그래머가 구현 한 더 어린 자아와 싸울 것임을 깨달았습니다. 프로그램을 해킹 한 프로그래머가 빠르게 작동하도록합니다. 이해하기 위해 몇 년이 걸렸던 모든 바보 같은 것들에 저항 한 젊은 프로그래머. 5 개의 수업이 있다고 생각하는 젊은 프로그래머는 모든 것을 수행하는 하나의 거대한 수업보다 혼란 스럽습니다.

그러나 지금 저는 10 년이되었으므로 좌절은 처음 5 년 동안 겪었던 좌절과 같습니다. 새로운 기술을 배우는 것은 좌절입니다. 그러나 이번에는 그 기술이 대인 관계입니다. 이 기술은 프로그래머가 아닌 사람들이 카우보이 길을 따라가는 한계를 이해하도록 유도하고 있습니다. 그리고이 기술들은 내가 처음 5 년 동안 얻은 코더 기술보다 웅대 한 사물 체계에서 더 중요 할 것입니다.

그러나이 일에서 정말 놀라운 점은 기술적 인 기술을 개발하면서 경영진과 함께 계속해서 발전 할 수 있다는 것입니다.

그래서 나는 당신에게 그것을 계속 말한다! 기술에 익숙해 졌기 때문에 인간이라고하는 흐릿한 것들을 다루는 기술을 익힐 수 있습니다.


답변

나는 상대적인 행복의 두 가지 비밀이 있음을 발견했습니다.

  • 당신이 원하는 모든 것을 추구하지 말고 당신이 가진 모든 것을 원하는 것을 추구하십시오

  • 인생은 힘든 일입니다-얼마나 열심히 할 수 있는지는 중요하지 않습니다 (개인적이고 직업적으로 좋습니다). 항상 더 강하게 반격합니다. 당신이 타격을 입을 수 있고 여전히 움직일 수있는 정도가 중요합니다.

결국 그것은 모두 공원에서 산책하고 비트와 바이트, 연습과 물건보다 더 중요한 것들이 있습니다. 모든 경험을 그대로 즐기고 최대한 많이 싸우십시오.


답변

웹 페이지에서 인용하는 Chad Fowler의 The Passionate Programmer 를 살펴보십시오 .

대부분의 경우, 놀라운 경력은 우연히 오지 않습니다. 사고, 의도, 행동, 실수를했을 때 코스를 바꾸려는 의지가 필요합니다. 우리 대부분은 우리의 경력이 우리를 어디로 데려 갈 수 있는지 고민하고 있습니다. 제어 할 시간입니다.