"당신이 아는 모든 것의 18-24 개월 안에 쓸모 없게 될 것입니다"= (True 또는 False?) [닫힘]


33

이 문제를 극복하고 누군가 가이 진술을 입증하거나 반증 할 방법이 있는지 궁금합니다.

명심해야 할 것 ... 첨단 기술에 대한 지식의 반감기는 무엇입니까? 그것은 무어의 법칙으로 추적됩니다 : 당신이 알고있는 모든 것의 절반은 18-24 개월 안에 쓸모가 없습니다.

자료 제공 : 의해 답변을 내 크레이그 상인 이 질문에 " 당신은 당신의 프로그래밍 기술을 개선하기 위해했던 가장 효과적인 것은 무엇입니까? "


2
나는 이것이 어떻게 증명 될 수 있는지 알지 못한다.
Oded

50
Statement = (True or False)예.
glasnt

3
나는 그것이 당신이 아는 것에 달려 있다고 생각합니다.
LennyProgrammers

3
@glasnt :이 경우 항상 그렇습니다 : /
Simon

2
내가 아는 모든 것의 절반은 이제 쓸모가 없습니다.
JD Isaacks

답변:


131

이 진술은 임시 기술에만 적용되며, 필요한 경우에만 학습해야합니다. 즉, 당신은 당신의 경력을 통해 많은 것을 배울 것입니다.

기본 프로그래밍 원칙과 기술은 영원합니다.


5
유쾌하게 간결합니다. +1
Tim Post

27
@Steven A. Lowe +1 당신이 "일시적"을 찾았다는 것을 인정하여
Tim Post

2
7 년 동안 배우고 사용했던 기술이 Oracle (또는 Linux)을 잃어 버렸을 때 얼마나 임시적인 기술이 될 수 있는지는 놀랍습니다. 분명히, 응용 프로그램을 구축하고 배포하는 과정에서 배운 내용은 사라지지 않았지만 Pick, Ultrix 또는 수많은 기술 손실에 대해서는 신경 쓰지 않았습니다.
Craig Trader

71

무의미한 말

그런 말을하는 사람들은 단순히 감각 주의자가되거나 잘못된 것을 배우고 있습니다.


8
"그들은 잘못된 것을 배우고있다"+1
Martin

4
알다시피, 나는 당신이 그것을 완전히 버리고 .. 잠깐만 .. SQUIRREL!
Tim Post

이 업계에서 만연한 감각주의에 주목하여 +1.
Rei Miyasaka


17

내가 생각할 수있는 가장 좋은 (가장 나쁜?) 테스트는 1 년을 다시 생각하는 것입니다. 지난 18-24 개월 동안 매일 사용하는 프로그래밍 지식은 어느 정도입니까? 또한 지난 18-24 개월 동안 얼마나 발명 되었습니까? 내가 매일 사용하는 대부분의 프로그래밍 및 기술 지식이 5-10 년에 걸쳐 획득되었으므로이 원칙은 나에게 매우 의심스러워 보인다.

이제 휴대 전화 플랫폼과 같은 것을 개발하고 있다면 아마도 다른 게임 일 것입니다.


2
아니, 모바일은 다른 것과 다르지 않습니다. 매일 사용하는 모든 필수 기술은 몇 년 동안 지속됩니다. 나는 반자동이기 때문에 일상적인 기술을 잊어 버리는 것이 쉽다고 생각합니다.
Jim

1
기본 사항은 변경되지 않지만 API 및 기술은 변경됩니다. 데스크톱을 생각하면서 모바일 앱을 프로그래밍하면 사용할 수있는 것이 없을 것입니다.
jmort253

애플에 따르면, MacOS X와 ​​iOS의 85 %는 동일합니다.
gnasher729

15

내 경험상, 새로운 기술인 미디어 / 공개 이미지와 실제 세계에서 실제로 사용되는 이미지 사이에는 큰 차이가 있습니다.

데스크톱 응용 프로그램 공간에서 Visual C ++ / MFC와 같은 것을 사용하십시오. 오래되고 구식 인 것처럼 보이고 아마도 새로운 프로그래머가 데스크탑 개발을 위해 지금 배우고있는 것이 아닐 수도 있지만, 여전히 유지되고있는 실제 프로젝트와 작업이 많이 남아 있습니다. 아마 앞으로 수십 년 동안 유지 될 것입니다. COBOL을 예로 들어 설명했지만 이론적으로는 VC ++ / MFC 예제를 개인적으로 잘 알고 있습니다.

본질적으로,이 기술은 쓸모가 될 것이 아니라 사용하지 않는 그들이 더 이상 일을하고 새로운 프로젝트를 시작하는 가장 최신 방법으로 볼 것을 더하지, 그들은 "오래된"이 될 때. 그러나 파산되지 않고 고정이 필요없는 대형 실제 소프트웨어 시스템의 폐기는 훨씬 느리게 진행됩니다. 내가 작업 한 많은 Visual C ++ / MFC 프로젝트 (1990 년대 초에 시작된)는 여전히 살아 있으며 많은 프로그래머 (유지 보수 및 새로운 개발 모두)를 고용하고 있으며 아무데도 가지 않는 것처럼 보입니다. 언제든지. 사실, 나는 내가 생각하고있는 대부분의 것들이 2020 년에도 계속 될 것이라고 확신합니다.

물론 이것은 주요한 문제가 아닙니다. 가장 큰 문제는 많은 개념이 비슷하거나 관련이 있으며 새로운 기술을 배울 때 "처음부터 시작하지"않는다는 것입니다. 예를 들어 마크 업 언어와 그 내용을 이해하면 새로운 언어를 배우는 것이 매우 쉽습니다. 따라서 JSON이 새로운 새로운 것이고 중요하게 몇 년 동안 사용했던 것은 XML입니다. 마크 업 언어가 무엇인지, 또는 표현하는 데이터의 내부 개념 등에 대해 전혀 아는 프로그래머가 아닌 사람이 아닌 새로운 구문을 배우는 것만으로도 문제가됩니다.

TL; DR : 1) "사용되지 않는"기술이 많이 있지만, 새로운 기술이 아니기 때문에 많은 것을 듣지 못합니다. . 2) 프로그래밍 개념은 서로 위에 구축되고 발전합니다. 처음부터 완전히 배우고 오래된 것을 잊어 버려야 할 것은 거의 없습니다.


4
MFC-얼마나 아파요!
Job

@Job-네
바비 테이블

롤, 그것은 모두 아프지 않습니다 : P
crosenblum

안녕하세요, VC ++ / MFC도 작업 중입니다!
David Thornley

2
+1 주로 물건을 지적하기 위해 사용되는 것을 멈추지 말고, Zeitgeist의 일원이되는 것을 멈추십시오.
Orbling

12

그것은 모두 학습, 암기 및 일반적으로 두뇌를 채우는 데 중점을 둔 것에 달려 있습니다. 세부 사항은 더 이상 사용되지 않을 수 있지만 원칙은 훨씬 오래 지속됩니다.

최근에 깊이 관여 한 것들의 예 :

  • 자바 일반 문법과 타입 컨테이너
  • MySQL 데이터 유형, 스토리지 제한 등 vs. 데이터베이스 확장 성 원칙
  • 경량 데이터베이스 추상화 계층 vs. 데이터베이스 추상화 강성 / 유연성 원칙을 만들었습니다.

내가 굵게 배운 것들이 왼쪽에있는 것보다 훨씬 오래 지속될 것입니다. 프로그래밍에서 더 이상 사용되지 않는 함정을 피 하려면 원칙에 중점을 두십시오 .


11

로버트 하비 (Robert Harvey) 는이 문제 를 해결했지만 이에 대해 생각한 후에 바람에 간결함을 느끼고 대답해야합니다.

나는 면책 조항을 추가해야하며, 발표 된 순간 에 Perl On Rails를 파헤 치지 않았습니다 . 나는 그것이 현지화 된 용도로 잘 작동하고 나중에 참조 할 수 있도록 메모 해 놓았다는 느낌이 들었습니다.

또한 지난 20 년 동안 표준 C 라이브러리에 대한 50 개 이상의 순열에 굴복하지 않았으며, 이들에 연결할 수 있기를 희망하지만 현재는 실재적으로 도전적인 것으로 보입니다.

읽거나 듣는 모든 것을 믿는 것에 대해 긴 분노를 여기에 삽입하십시오.

새로운 무언가가 나오면 그것을 잡아보세요. 'ick'이라고 말하면 버립니다. 'wow'라고 말하면 개선하십시오. 그러한 결정을 생각할 수 없다면 할 수있는 사람들의 두뇌를 선택하십시오.

기술적 인 장점 만으로 모든 것을 판단하십시오 . 시간이 가치가 있다는 것은 대부분의 동료로부터 엄지 손가락을 올리는 동안 시간을 ​​절약 할 수 있음을 의미합니다.

이제 귀하의 질문을 직접 해결하겠습니다.

당신이 아는 모든 것의 반은 18 ~ 24 개월 안에 쓸모 없게 될 것입니까?

18-24 개월 안에 저희에게 알려 주셔야합니다. 회사는 사람들이 자신의 제품이 얼마나 훌륭한 지 이야기 할 수 있도록 상당한 금액을 지불합니다. 우리는 회사를 창업 할뿐만 아니라 다음과 같이 많은 양의 현금을 창출하는 거대 기업을 설립해야합니다.

  • 존경받는 블로거들에게 독자들에게 판매 피치를 되찾게하십시오
  • 자랑하거나 사용하여 눈에 띄는 브랜드 배치를 얻으려면 비싼 브랜드의 무료 장비를 보내십시오.
  • 문제를 조사 할 때 Google의 상위 10 개 항목에 '작업 솔루션'이 표시되도록 사람들에게 지불
  • '상위 10 개 디렉토리'사이트에서 '수상'을 지불하고 신뢰할 수있는 사이트
  • 사람들이 생각을 멈추고 군중을 따라 가도록 설득시키는 다른 많은 수단

물론 이전 경험과 새로운 것에 대한 시련을 바탕으로 자신의 결정을 내릴 수 있습니다. 그렇게하는 동안 RSS 리더를 기반으로 계명을 전달하는 관리자가있는 고용주를 피하십시오.

그러나 지역에 따라 브루클린과 런던 사이를 전환 할 수있을만큼 똑똑한이 놀라운 새 교량 건물 라이브러리가 있습니다. 그것은 거대해질 것입니다, 당신은 1 층에 들어가기를 원하십니까?

내 대답은 실제로 의도적으로 딱딱 하고 아마도 부울입니다. 예외 처리 목적으로 내 대답은 거짓 입니다.

기술적으로 건전하다고 생각되면 포용하십시오. 그렇지 않으면 평소와 같이 비즈니스입니다. C는 제 1 차 언어이며, 거의 20 년 전과 마찬가지로 작동하지만 거의 20 년 전에 비해 2 배나 많은 임금을받습니다.

간결한 형식과 인용문에 감탄하지만 이는 위반되는 실험 인 것 같습니다 .

잘 했어 :)


8

당신이 배우는 시간에 따라 다릅니다. 1980 년에 Bourne 쉘과 C 프로그래밍을 배웠습니다. 나는 여전히 매일 그것을 사용합니다. 반면에 Compuserve 메뉴 구조를 배우는 데 드는 시간은 완전히 사라졌으며 당시에도 실제로 유용하지 않았습니다. 그런 다음 RS-232 케이블 핀 배치 및 직렬 프로토콜과 같은 것들 사이에는 오늘날에는 쓸모가 없지만 약 10 년 동안 필수적입니다. 많은 시간을 할애 할 기술을 신중하게 선택하십시오.


시리얼 통신은 여전히 ​​우리와 함께 있습니다. 케이블이 아닙니다.

RS-232는 임베디드 공간에서 살아 있고 잘 살고 있습니다.
Tim Williscroft

7

원칙은 사실이다. 실제 가치는 내 지식으로는 훨씬 큽니다.

나는 그들이 약 7 년이라고 말한 Pragmatic Programmer 프리젠 테이션을 회상하지만, 지금 그것을 찾을 수 없기 때문에 그 가치는 약간 다를 수 있습니다.

기술이 어떻게 바뀌 었는지 생각해보십시오. 15 년 전 웹은 아주 새롭고 우리는 모두 웹 페이지를 작성하려고했습니다. 7 년 전에 AJAX가 시작되었습니다. 오늘날 일부 사람들은 휴대폰 용 Doom 같은 게임을 작성합니다.

최선의 방법은 "Bone! 나는 Visual Basic 알고 있습니다 !"라는 말 대신 나오는 다음 기술에 적용 할 수있는 일반적인 내용을 배우는 것입니다 . (또는 15 년 내에 해당).


VB에서 피즈 버즈를 시도했지만 실패했습니다 ... :(
Tim Post

@Tim, 10 년을 기다리면

5

나는 그것이 정확하다고 생각하지 않습니다.

그것은 한때 가까이 true로 - 오래 전에, 당신이 새로운 플랫폼에서 더 이상 관련이 있었다 세부 사항의 거대한 숫자를 알고 의미 추상화의 상대적으로 낮은 수준에서 선택의 여지하지만 프로그램에 있었다.

그러나 시간이 지남에 따라 점점 더 높은 수준의 추상화에서 더 많은 프로그래밍이 수행됩니다. 추상화 수준이 높을수록 변경되고 빠르게 폐기 될 수있는 세부 사항에 대한 관심이 줄어 듭니다.

장치 드라이버 나 작은 임베디드 시스템과 같은 작업을하는 사람들이 여전히 낮은 수준의 추상화에서 작동해야합니다. 그러나 그러한 영역 밖에서는 그러한 것들에 대한 변명이 거의 없습니다. 그렇습니다. 많은 사람들 필요하지 않은 많은 퀴즈를 배우지 만 코드에서 실제로 그러한 것들을 많이 사용한다면 아주 좋은 결정을 내리지 않을 가능성이 높습니다. 이러한 것들 대부분은 일반적으로 피할 수 있습니다 (더 중요하게는).


GNU가 부팅되어 실행 가능 해졌을 때를 기억하고 모든 '멋진 아이들'이 그것을 사용하고있었습니다. 그러나 그것은 '멋진 아이들'이 실제로 방법조차 없었지만 광기에 대한 어느 정도의 생각을했던 날로 돌아 왔습니다. 나는이 시대에 당신이 옳다고 말하는 것이 SAAD입니다.
Tim Post

4

아마도 사실이 아닐 수도 있습니다. 그러나 실제로 배운 것들이 학습 후 곧 쓸모 없어지더라도 배후의 개념과 아이디어는 훨씬 더 오래 사용될 수 있습니다.


맞습니다. 그것들은 참조의 틀이되거나 최악의 경우 반 패턴이됩니다. :)
ideasman42

4

이 경우 5.39x10 -6Mythical Man-Month 만 관련이 있습니다. 프레드 브룩스 (Fred Brooks)가 자세히 설명한 주요 원칙은 상당히 적거나 근본적으로 거짓 인 것으로 판명되었습니다.


1
난별로 확신이 들지 않아. 일부는 구식 (오늘날 누군가가 최고 프로그래머 팀을 실제로 사용하고 있습니까?)이며, 극소수의 잘못 (정보 숨기기에 대한 결론은 염두에 두어야 할 결론 임)이 있습니다. 대중 문화, 그리고 의심 할 여지없이 우리가 의식하지 못하는 우리의 마음의 일부가 있다는 Sigmund Freud의 주장보다 더 관련성이 없습니다. 그것은 여전히 ​​읽을만한 가치가 있으며, 물론 관련성이있는 백만 개 (2 글자?)의 5 개 이상의 부분이 있습니다.
David Thornley

좋은 의견, (+1), 나는 수석 프로그래머 팀이 원칙이 아니라 응답이라고 주장합니다. 그가 정보 숨기기에 대해 매우 잘못했다는 것은 사실입니다. 그러나 그는 또한 20th Anniversay 판에서 이것을 인정합니다. 브룩스가 말한 많은 부분이 소프트웨어 개발 문화에서 그 자체로 확립되지 않았거나 소프트웨어 개발에서 그렇게 큰 실패율을 갖지 못할 것이라고 주장합니다.
AlexC

나는 오늘 얼마나 많은 책이 관련이 있는지에 대한 질문에서 그것에 접근하고 있다고 생각합니다. 예를 들어 CPT 장은 관련이 없지만 일정에 관한 장은 현재 문화의 일부가 아니며 분명히 그 부분이 아닙니다. 20 주년 기념 에디션은 물론 그의 논문 인 "No Silver Bullet"때문에 구할 수 있습니다. (그는 16 년 전에 나왔으므로 제목의 원칙은 약 0.4 % 관련성이 있어야한다고 생각합니다. 그보다 더 관련이 있다고 생각할 수 있습니다.)
David Thornley

마지막으로, IBM은이 방법을 실패하는 것보다 수석 프로그래머가 될 수있는 인력이 부족하여 수석 프로그래머 팀을 사용하지 않았다고 들었습니다. 나는 그것이 잘 작동하는 수석 프로그래머였습니다.
Tim Williscroft

3

많은 지식이 시간 테스트 (시간이 지남에 따라 약간의 업데이트가 필요할 수 있음), 특히 데이터 구조와 같은 기본 사항과 관련이 있습니다.

물론 프로그래밍 언어 X와 Y를 알고 있다면 X 나 Y를 모르는 것보다 Z 언어를 배우는 것이 더 쉬울 것이므로 이전 지식을 사용하여 새로운 지식을 적용 할 수 있습니다.

또한 수십 년 전에 관련된 많은 기술은 오늘날에도 여전히 관련이 있으며 C와 같은 특정 기술 (1970 년대 초, 여전히 관련성이 있음)도 언급 할 가치가 있습니다.

당신이 아는 것의 절반이 시간이 지남에 따라 쓸모없고 아마도 절반 이상일 수도 있지만, 18-24 개월마다 약간 극단적 인 소리가 날 것입니다.


2

단일 사실은 큰 관련성이 없습니다. 당신은 그들을 가지고 이해하고 순간에만 적용하십시오.

그러나 그렇게하면 사실을 처리하거나 최소한 특정 사실을 처리하는 과정을 배울 수 있습니다. 나는 실제로 사용하지 않은 학교에서 많은 수학을 배웠습니다. 여전히 나는 수학적 사고를 배우고 훈련했습니다.

Ruby on Rails에서 웹 프로그래머로 일했습니다. 그리고 현재 웹 사이트를 작성하지는 않지만 내 생각 한판 코드에 큰 영향을 미치고 더 나은 C ++ 코더로 만들었습니다. (예를 들어 더 많은 STL을 사용해야 함).

라켓도 마찬가지입니다. 나는 큰 프로그램을 작성하지는 않았지만 문제가있는 공간에 적용 할 수있는 새로운 관점을 제시했다.

그것은 단지 당신의 마음을 훈련시키는 것입니다 ...


2

나는 당신이 '알고있는 모든 것의 절반'에있는 당신 의 물건 가지고 놀아서 진술을 쉽게 반증 할 수 있다고 생각합니다 .

주어진 지식의 분배가 있는데, 그중 일부는 쓸모 없게 될 것입니다 (비율에 관계없이). 만약 주어진 사람이 18-24 개월 후에 남아있을이 스펙트럼의 절반으로부터의 지식 만 포함한다면, 그들은 진술을 어 깁니다.


2

여기에 더 나은 문장이 있습니다 : 오늘 (또는 이번 주, 이번 달 또는 올해) 배운 모든 것의 절반은 1 년에서 2 년 후에 더 이상 사용되지 않습니다. 그것은 사실입니다-당신은 도구의 버전 5에서 무언가를하는 방법을 배우고, 6이 나올 때 그것을 자동으로 수행하거나, 따라 잡지 않는 언어로 무언가를하는 법을 배우므로, 다시는 사용하지 마십시오. 그러나 매일 배운 내용의 나머지 절반은 여러분과 함께 있고 성장하며, 20 년의 경험 개발자를 2 년의 경험자보다 더 잘 만드는 것입니다.


1

여기에는 진실이나 관련성이 있습니다. 그러나 그것이 부정확하게 제시된 것 같습니다.

이것을 제시하는 더 좋은 방법은

18-24 개월 전에 오늘 얼마나 많은 지식을 사용 했습니까?

또는

18-24 개월 후에 신청할 지식이 얼마나됩니까? 이러한 작업을 완료하려면 오늘부터 얼마를 배워야합니까?

그것은 당신이 일하고있는 분야에 따라 다를 수 있지만, 나는 끊임없이 새로운 기술을 연구하고 있음을 알고 있습니다. 모든 프로젝트에는 새로운 프레임 워크와 패턴, 약간 다양한 문제에 대한 새로운 접근 방식, 또는 이전에 사용했던 것보다 더 나은 새로운 도구 등 새로운 것들이 필요합니다.

6 개월마다 프로젝트에 12.5 %의 새로운 지식이 필요한 경우, 2 년에 걸쳐 사용 된 지식의 전체 50 %가 '신규'가됩니다.

그러나 이것은 의미가 없거나 정확하지 않습니다.

  • '오래된'물건은 더 이상 사용되지 않습니다.
  • '새로운'재료는 오래된 재료와 크게 겹칩니다.
  • 원칙은 일반적으로 양도 할 수 있습니다

1

오 하나님, 그처럼 상식적인 대답은 위의 것입니다. 잘 하셨어요.

간단히 말해서, 유행이나 유행이라면, 좋은 프로그래머라면 그것에 대해 읽은 다음 평소와 같이하거나 일하는 것으로 돌아가십시오.

귀하가하는 일에 중요한 것이 있거나 귀하에게 적합한 새로운 관행이 없다면.

무언가가 새롭거나 다소 새롭거나 오래되었다고해서 반드시 무언가를위한 솔루션을 사용해야하는 것은 아닙니다.

간단한 문구가 있습니다.

"작동하면 사용하십시오"

즉,이 새로운 기술이 놀랍도록 멋지지만 작업 생산성을 높이거나 품질을 높이거나 오류가 발생하기 쉬운 것이 아니라 모바일 또는 클라이언트 / 서버 솔루션과 같은 기술적 문제를 해결하는 것은 아닙니다. 그것을 읽는 것이 가장 좋은 것보다, 그것을 실제로 사용할 때까지 무시하십시오.

나는 더 많은 사람들이 시간을 낭비하고 읽고 새로운 것을 찾은 다음 뜨거운 것을 사용했습니다. 일반적으로 시간과 돈을 낭비하는 것입니다.

항상 기술과 기술을 배우고 연습하고 향상시키는 것이 중요합니다.

그러나 유용한 문제 또는 일반적으로 발생하는 문제를 해결하는 데 다른 관점을 제공하는 것을 배워야합니다.

그러나 그 외에는 멋진 프로그래머가되는 기본으로 돌아 가야합니다.

  1. http://www.joelonsoftware.com/articles/fog0000000043.html
  2. 계획
  3. 프로젝트 관리 프로세스-명확한 계획을 세우기 전에 코드가 시작되지 않도록하고 업무를 요청한 사람들이 승인합니다.
  4. 코드의 가독성 향상-우리 모두는 다른 사람들의 코드를 다루기 때문에
  5. 정리하고 효율적으로

저는 상식 모범 사례를 수행하며 모두 경험을 통해 배웁니다. 멋진 것들에 시간을 낭비하지 마십시오.

솔직히 시원함은 시원하지 않습니다.


0

이 문구는 프로그래밍이 아니라 엔지니어링 분야에 기인한다고 들었습니다. 더 구체적으로 말하면, "공학 학사 학위를받을 때 처음 2 년간의 연구는 오래된 기술을 기반으로합니다." (또는 그 효과에 무언가)

나는 그것이 프로그래밍에 전혀 적용되지 않는다고 생각합니다. 내가 볼 수있는 유일한 방법은 기능이 더 이상 사용되지 않거나 프로그래밍 언어 / 라이브러리 / 기타에서 제거되는 경우입니다.


0

일반적인 기술 플랫폼은 10 년에서 25 년 사이에 지속되므로 패턴 지식이 기술을 통해 유지된다는 사실을 완전히 할인하더라도 나에게는 거의 보이지 않습니다. 모든 주요 플랫폼을 사용하는 경우 5 년 또는 6 년 전에 AT LEAST에서 인기가있는 스택을보고 사라지기도합니다. 필자는 거의 identicle 하드웨어 및 소프트웨어 도구를 사용하여 30 년 동안 RPG로 코딩 해 온 프로그래머를 알고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.