고급 소프트웨어 개발의 동적 특성에 어떻게 대처하십니까? [닫은]

본인은 고급 소프트웨어 개발자라고 생각합니다. 나는 많은 것을 읽는 것을 즐깁니다. 그리고 그것은 저의 경력 과정에서 도움이되었습니다. 잘 지내고 있다고 생각합니다.

지금은 새로운 것을 배우는데 많은 시간을 보냅니다. 지금은 코드를 작성하는 데 어려움을 겪지 않지만 가족을 시작하려고합니다. 14-15 년의 경험을 가진 많은 노인들을 정기적으로보고 있습니다. 프로그래밍에서. 그들은 어떤 시점에서 영감을 얻은 인물이지만 더 이상은 아닙니다.

기본 사항은 절대 변하지 않는다고 주장 할 수도 있지만 10 년 동안 Delphi에서 코딩 할 때 갑자기 모든 사람이 .NET 프레임 워크를 사용하는 경우에는 차이가있는 것으로 보입니다. 숙련 된 개발자가 새로운 프레임 워크를 배울 때 시간이 덜 걸리지 만 여전히 시간과 노력 필요합니다.

소프트웨어 개발자는 가족의 시작과 같이 직장에서 반드시 필요한 일에 집중할 수있는 동시에 직업의 요구를 어떻게 관리합니까?



답변

“나는 14-15 년의 경험을 가진 많은 노인들을 정기적으로 본다. 그들은 지금 프로그래밍에 빠진다”고 말했다. 그것은 경험을 가진 사람들을 페인트하기 위해 사용하는 꽤 광범위한 브러시 스트로크입니다. 고려해야 할 몇 가지 사항을 지적하고 싶습니다.

  • 젊거나 경험이없는 실무자들은 선배들이 X 나 Y를 어떻게하지 못하는지를 지적하는데, 경험이 그 아이디어가 나쁜 것으로 나타났음을 이해하지 못하는 경우. 그러나 각 세대의 실무자들은 이러한 실수를 반복하고 싶어하는 것 같습니다. 이 현상은 프로그래밍뿐만 아니라 모든 직업에 공통입니다.
  • 수년 동안 일한 모든 사람들이 경험이 많고 성숙하거나 선한 것은 아닙니다. 더 나아지기 위해서는 노력이 필요합니다. 어릴 때 많은 노력을 기울이면 나중에 경험할 수있는 좋은 경험을 쌓을 수 있습니다.

아마도 당신이 말하는 사람들은 결코 좋지 않았습니다. 그들이 당신을 생각하고있는 것이 가능한 한, 왜 어려운 일을한다고 주장 하는가?

그러나 가족을 시작할 때 새로운 장난감을들이는 데 훨씬 적은 시간이 걸린다는 것은 사실입니다. 자녀가 어릴 때보 다 나이가 들수록 실제로 시간 이 줄어 듭니다 . 장난감은 더 나은 프로그래머가되지 않습니다. 도구도 마찬가지입니다. 좋은 점은 문제를 해결하고 효과적인 솔루션을 구축하는 능력입니다. 당신을 위대하게 만드는 것은 다른 사람들에게 선을 가르치는 능력입니다. 그곳에서 경험이 빛나기 시작합니다.


답변

미래를 예측하기는 어렵습니다. 그러나 기술에 관계없이 가장 중요한 것은 확실한 것입니다.

문제를 해결할 수 있는 개발자의 능력 입니다.

많은 개발자 품질은 기술에 독립적입니다. 예를 들어 분석 능력 은 내가 아는 가장 중요한 품질입니다. 수학을 배우는 것과 같습니다. 그것은 영원합니다.


답변

나는 긍정적이거나 구체적으로 생각하기를 원하지만 프로그래머가 최신 상태를 유지하고 일과 가정의 균형이 프로그래머마다 다르다는 것을 생각합니다.

임의의 생각 :

  • 모든 소프트웨어 프로젝트 나 회사가 소프트웨어에서도 절대적인 최신 기술을 필요로하는 것은 아닙니다. 변화의 최전선에서 가장 급격한 변화가 일어납니다. – 최첨단에 약간 뒤쳐져있는 회사는 종종 성장과 변화의 기회가 많지만 지속적인 변화에 대한 광범위한 긴급한 요구는 없습니다.
  • 프로그래머가 경험이 많을수록 최신 / 최고의 유행어 대신 경험을 활용할 수 있어야합니다. 업계에서 20 년 이상 가장 존경하는 사람들이 최신 C #이 80 년대 후반의 C에 대한 문제에 대한 완벽한 해답이되는 방법에 대해 많은 은유를 가지고 있음을 알게되었습니다. 이전 문제와 해결책을 활용함으로써 그들은 적은 연구로 테이블에 대한 이해를 높이십시오.
  • 팀에서 프로그래머를 평가해야 할 때마다 일을 끝내고 다른 사람들과 잘 어울리는 능력은 프로그래머가 일하게 된 다양한 기술을 능가했습니다. 업계가 경쟁하는 새로운 언어, API 및 도구를 많이 발전시킬지라도 프로젝트 는 한 번에 경쟁 업체 만 사용할 가능성이 높습니다 . 그러나 IM, 소셜 미디어, 스마트 폰 및 기타 디지털 시대의 모든 것이 프로그래밍의 측면을 바꾸지 않는 것이 아니라 일을 끝내고 다른 사람들이 똑같이 행동하도록 돕는 것은 결코 스타일에서 벗어나지 않고 어떻게 진행되는지 훨씬 느리게 발전합니다. .

답변

첫째, Microsoft는 해당 소프트웨어를 실행할 소프트웨어 개발 도구 및 플랫폼을 판매합니다. 이것은 그들이 필요하든 없든 변경하도록 장려합니다. 그것은 모든 변화가 쓸모 없다고 말하는 것이 아닙니다. 단지 우리의 직업에 훨씬 더 안정적인 영역이 많이 있다는 것입니다. 경험을 통해 어떤 밴드 왜건이 즉시 뛰어 올라야하는지, 그리고 어느 정도 성숙 할 때까지 기다릴 수 있는지 더 잘 알 수 있습니다.

둘째, 경험에는 시간이 필요합니다. 15 년의 경험이있는 대부분의 개발자는 15 년 전에는 나빴습니다. 무능에 의해 적절하게 설명 할 수있는 것을 노화에 오도하지 마십시오.

셋째, 구식 지식을 필요로 할 때 최신의 가장 큰 것을 사용할 수 없다는 것을 혼동하지 마십시오. 거기에 무엇이 있는지 아는 것만으로도 충분합니다. 예를 들어, 최근까지 내 웹 프로그래밍 지식은 90 년대 후반에 빈티지했지만 형제를위한 웹 사이트를 구축하고 싶을 때 CSS, jQuery 및 콘텐츠 관리 시스템과 같은 “새롭고 새로운”기술을 확인하기에 충분했으며 몇 주 안에 속도를 올릴 수 있습니다. 다시 말해서, 지난 10 년 동안 무언가가 필요하지 않았다면 지금 당장 속도를 높이고 싶은 비상 사태는 없을 것입니다.

마지막으로, 부모가되는 것은 정말로 큰 시간의 헌신이지만, 많은 어린이가없는 사람들보다 생각하는 것보다 적은 시간입니다. 부모는 여전히 책을 읽고, TV를보고, 게임을하고, 웹 서핑을하고, 때로는 수업을 듣습니다. 쇼커, 알아 당신은 그것을 작은 부분으로하고 우선 순위를 정합니다. 내가 완전히 포기한 것은 재실행을 보는 것뿐입니다.


답변

10 년에서 15 년 후에 프로그래밍 기술이 열악한 사람들은 실제로 소프트웨어 개발을 내면화하지 않았 음을 확신 할 수 있습니다. 도구 세트를 마스터하는 것은 소프트웨어 개발 기술을 마스터하는 것과 다릅니다.

저는 30 년 이상 코드를 작성해 왔습니다. 나는 외부 의무 및 / 또는 이익으로 인해 오토 파일럿에 경력을 쌓아야하는 여러시기를 겪었습니다. 나이가 들어감에 따라 배워야 할 것은 기술 악 대차에 일찍 뛰어 들지 않는 것입니다. 대부분의 기술은 과대 광고에 부응하지 못합니다. 직장 밖에서 의무가있는 고령의 실무자로서 자신의 시간에 인색해야합니다. 숙련 된 실무자는 소프트웨어 개발 기술을 이미 마스터했기 때문에 새로운 기술이 성숙하기까지 몇 년을 기다릴 여유가 있습니다.


답변

오랜 세월에 걸친 경험 :

  • 언어가 변경되었습니다 (보통 비교적 느리게).
  • 실제로 해결 될 수있는 문제의 범위가 커졌습니다 (약간 더 빠름).
  • 솔루션의 크기와 복잡성이 증가했습니다 (상대적으로 빠르게).
  • 무언가가 있습니다 flavor of the day(때로는 좋고 때로는 나쁩니다).

패턴에 대한 논의에서 언급했듯이, 4 명의 갱은 패턴을 발명하지 않았습니다. 그들은 이미 적용되는 솔루션에 대한 용어 및 템플릿을 생각해 냈습니다.

다른 많은 분야와 달리 여전히 일반적인 관행은 아닙니다. 나는 많은 최첨단 물건들이왔다 갔다하는 것을 보았다. 이것들 중 다수는 이미 실제로 사용 된 기술을 표현한 것이며 대개 어느 정도 성공했습니다. 다른 사람들은 어느 정도 사라졌으며 대부분 새로운 접근 방식이 있습니다. (최근에 5 세대 언어를 본 사람이 있습니까?)

내가 가장 효과적인 프로그래머는 검증 된 구성 요소를 선택하여 작동하는 솔루션으로 조립할 수 있습니다. 여기에는 일반적으로 프로젝트 위험을 증가시키는 첨단 기술이 거의 포함되지 않습니다. 이미 수행 된 작업을 기반으로하는 기능을 통해 가능한 범위를 확장 할 수 있습니다.

프로그래밍 언어는 상대적으로 적은 가족에 속합니다. 가족 중 한 언어를 잘 알고 있으면 비슷한 언어로 쉽게 작업 할 수 있습니다. 언어로 제공되는 라이브러리를 이해하고 활용하면 생산성과 신뢰성이 크게 향상 될 수 있습니다. 일반적으로 적절한 라이브러리가없는 새로운 언어보다 적절한 라이브러리가있는 오래된 언어를 선택합니다.

새로운 기술을 적용 할 때 Because We Can 증후군 . 올해의 맛이기 때문에 새로운 기술을 추가하면 해결하는 것보다 더 많은 문제가 발생하는 경향이 있습니다. 기술이 실제 문제를 해결할시기와 복잡성을 추가 할시기를 아는 것은 유용한 기술입니다.

정말 좋은 프로그래머는 새로운 문제를 해결하고 나머지는 기존 솔루션을 사용합니다. 최첨단 기술을 필요로하는 회사는 거의 없으며 모두 견고한 솔루션이 필요합니다.

나는 보통 면도날을 미끄러 져 내리는 것을 후회한다. 입증 된 기술을 사용하여 후회 한 적이 있습니다. 그러나, new기존의 무언가를 재 포장 하는 것으로 설명되는 많은 것들이 있습니다. 일반적으로이 리 패키징을 통해 상황을보다 쉽게 ​​이해하고 적용 할 수 있습니다.


답변

아무도 모든 것을 따라갈 수 없습니다. 아마도 Microsoft 제품을 사용하는 데 바빴을 것입니다. RAILS 및 Python 및 NoSQL 데이터베이스와 Hadoop 및 모바일 앱 작성, CSS 및 HTML5, jQuery 및 ExtJS 및 Ruby에서 Ruby를 살펴 보셨습니까?

나는 꽤 오랫동안 소프트웨어를 사용했습니다. 나는 대규모 병렬 데이터베이스에 대한 새로운 아이디어와 같은 정말 새로운 기술을 유지하려고 노력하고, 추악한 것 (예 : MFC, WinForms, SOAP, XML, EJB)과 가능한 사소한 것을 무시합니다. 대부분 우리는 단지 훌륭한 오래된 아이디어가 재 포장되고 마침내 채택되는 것을 본다. 기능적 프로그래밍? 1977 년에 INTERLISP를 사용하고있었습니다. 휴대폰 앱? 우리가 30 년 이상 해왔 던 것과 같은 이벤트 중심 UI 및 2D 그래픽입니다. 물론 작은 터치 스크린에 사용할 수있는 앱을 디자인하는 기술이 있지만 프로그래밍은 전혀 새로운 것이 아닙니다.