「あなたが知っているすべての半分は18-24か月で廃止される」=(TrueまたはFalse?)[クローズ]


33

ただこれに出くわし、誰かがこの声明を証明または反証する方法を持っているかどうか疑問に思いました:

心に留めておくべきこと...ハイテクの知識の半減期は?それはムーアの法則に従って追跡します:あなたが知っているすべての半分は18-24ヶ月で廃止されます。

SOURCE:によって答え以内クレイグトレーダーこの質問への「あなたがプログラミングのスキルを向上させるためにやった単一の最も効果的なものは何ですか?


2
これがどのように証明されるかわかりません。
-Oded

50
Statement = (True or False)はい。
グラスエント

3
それはあなたが知っていること次第だと思う。
レニープログラマー

3
@glasnt:その場合、それは常に真実です:/
サイモン

2
私が知っているすべての半分は今では時代遅れです。
JD Isaacks

回答:


131

この説明は、一時的な技術にのみ適用されます。とにかく必要な場合にのみ学習してください。そうは言っても、あなたはあなたのキャリアを通じてそれらの多くを学ぶでしょう。

基本的なプログラミングの原則と手法は永遠です。


5
とても簡潔。+1
ティムポスト

27
@Steven A. Lowe +1 "一時的"を検索したことを認めたため
ティムポスト

2
7年かけて学習と使用に費やしたテクノロジーがOracle(またはLinux)に負けてしまうと、どれほど短命になるかは驚くべきことです。確かに、アプリケーションの構築とデプロイについて学んだことは消えませんでしたが、Pick、Ultrix、または多くの失われたテクノロジーについて誰も気にしませんでした。
クレイグトレーダー

71

ナンセンス

そのようなことを言う人々は、単にセンセーショナルになろうとしている、あるいは間違ったことを学んでいます。


8
「彼らは間違ったことを学んでいる」ための+1
マーティン

4
あなたは知っている、私は本当にあなたがそれを完全に落とすべきだと本当に思う。
ティムポスト

+1この業界で流行しているセンセーショナル主義に注目してください。
宮坂

@ティムポスト:確かにそうではない?
-Piskvor

17

私が考えることができる最高の(最悪?)テストは、1年だけ考えることです。過去18〜24か月間に、毎日使用するプログラミング知識の量はどれくらいでしたか?さらに、過去18〜24か月でどのくらい発明されましたか?私が日常的に使用しているプログラミングおよび技術知識の大部分は5〜10年にわたって取得されたため、この原則は非常に疑わしいようです。

今、あなたが携帯電話プラットフォームのようなもののために開発しているなら、おそらくそれは別のボールゲームです。


2
いいえ、モバイルは他と何も変わりません。日常的に使用する重要なスキルはすべて、何年も続きます。日々のスキルは半自動であるため、忘れがちだと思います。
ジム

1
基本は変わりませんが、APIと技術は変わります。デスクトップについて考えながらモバイルアプリをプログラミングする場合、使用可能なものはおそらくないでしょう。
jmort253

Appleによると、MacOS XとiOSの85%は同一です。
gnasher729

15

私の経験では、どのテクノロジーが新しいものであるかというメディア/パブリックイメージと、現実の世界で実際に使用されているものとの間には大きな隔たりがあります。

デスクトップアプリケーションの分野では、Visual C ++ / MFCのようなものを使用してください。それは古くて時代遅れに見えるかもしれませんし、おそらく新しいプログラマーがデスクトップ開発のために今学ぶべきものではないかもしれませんが、そこに書かれている多くの現実世界のプロジェクトと仕事がまだ維持されています-そしておそらく今後数十年にわたって維持されます。例としてCOBOLを提供するつもりでしたが、それは理論的に言えば、VC ++ / MFCの例を個人的に非常によく知っています。

基本的に、テクノロジーが「時代遅れ」になったときに役に立たず、使用されなくなるということではなく、物事を行い、新しいプロジェクトを開始する最新の方法としてもはや見られないということです。しかし、壊れておらず、修正の必要がない大規模な実世界のソフトウェアシステムの廃止措置は、はるかにゆっくりと行われます。私が取り組んだ(1990年代初期に始まった)Visual C ++ / MFCプロジェクトの多くは、まだ非常に活発であり、多くのプログラマー(メンテナンスと新規開発の両方)を採用しており、どこにも行かないようです近いうちに。実際、私が考えているもののほとんどは、2020年以降も引き続き存在すると確信しています。

もちろん、これは主要な問題すらありません。主な問題は、多くの概念が類似または関連していることであり、いくつかの新しいテクノロジーを学習するときに「ゼロから始める」ことはできません。たとえば、マークアップ言語とその内容を理解すると、新しい言語を簡単に習得できます。そのため、JSONが新しいものであり、長年使用しているのはXMLだけです。それは新しい構文を学ぶだけの問題です-マークアップ言語が何であるか、またはそれらが表すデータの背後にある内部概念などについて何も知らないプログラマーではないということとは対照的に

TL; DR: 1)多くの「時代遅れの」技術が使用されていますが、それはセクシーな新しいものではないので、あまり聞いていません-しかし、それを使っている人にとっては価値がありません。2)プログラミングの概念は互いの上に構築され、進化します。ゼロから完全に学習し、古いものを忘れなければならないものはほとんどありません。


4
MFC-なんて痛い!
ジョブ

@ジョブ-そうそう。
ボビーテーブル

笑、それはすべての痛みではありません:P
crosenblum

こんにちは、VC ++ / MFCにも取り組んでいます!
デビッドソーン

2
+1主に物事を指摘するために使用されるのをやめるのではなく、単に精神主義者の一部であることをやめる。
11

12

それはすべて、あなたが学習、記憶、そして一般的にあなたの脳をいっぱいにすることに焦点を合わせることに依存しています。詳細はすぐに時代遅れになる可能性がありますが、原則はずっと長く続くはずです。

私が最近深く関わったことの例:

  • Java汎用構文と型付きコンテナー
  • MySQLデータ型、ストレージ制限などとデータベースのスケーラビリティの原則
  • 軽量データベース抽象化レイヤーの作成を支援し、データベース抽象化の剛性/柔軟性の原則を作成しました

私が太字で学んだことは、左側のものよりもずっと長く続きます。プログラミングの陳腐化の落とし穴を避けたい場合は、原則注目してください


11

ロバート・ハーベイはこれを打ちましたが、それについて考えた後、私は風に簡潔さを投げつけて答えざるを得ません。

免責条項を追加する必要があります。PerlOn Railsが発表された瞬間には掘り下げませんでした。私はそれが設計された非常にローカライズされた使用のためにうまく機能し、将来の参照のためにそれを書き留めたと感じました。

また、過去20年間で標準Cライブラリへの50を超える順列に屈したことはありませんでした。

あなたが読んだり聞いたりしたすべてを信じることについて、ここに長い暴言を挿入します。

何か新しいことが出てきたら、それをつかんで見てみましょう。'ick'と言ったらドロップしてください。「すごい」と言うなら、改善してください。このような決定を考えられない場合は、できる人の頭脳を選んでください。

技術的なメリットだけですべてを判断します。あなたの時間に値するということは、あなたの時間を節約しながら、大多数の仲間から賛辞を得ることができるということです。

次に、あなたの質問に直接お答えします。

あなたが知っているすべての半分は、18〜24か月で陳腐化するでしょうか、本当ですか、それとも偽ですか?

18〜24か月後にお知らせください。企業は、製品がどれほど素晴らしいかを人々に話させるために多額の金額を支払います。私たちは新興企業だけでなく、巨額の現金を次の目的に使い果たした巨人を乗り越えなければなりません。

  • [sic]尊敬されるブロガーに、読者への売り込みを逆流させる
  • 自慢したり使用したりすることで気付く可能性のあるブランドプレースメントを獲得するために、高価なブランドの無償ギアを送信する
  • 問題を調査する際に、Googleのトップ10に「有効なソリューション」が表示されるように人々に支払います
  • 「トップ10ディレクトリ」サイトからの「賞」に支払い、それらが権威あるふりをする
  • 人々に思考をやめ、群衆に従うだけであるように説得するための、真に多すぎる手段

もちろん、以前の経験と何か新しいことを試した結果に基づいて、独自の決定を下すこともできます。その間、RSSリーダーに基づいて戒めを配るマネージャーがいる雇用主を避けてください。

しかし、私はあなたのロケールに基づいてブルックリンとロンドンを切り替えるのに十分スマートなこの驚くべき新しい橋梁建設ライブラリを持っています。それは巨大になるだろう、あなたは1階に乗りたいですか?

私の答えは確かに意図的にサードニックであり、おそらく反ブール値ですが、実際には?例外処理のために、私の答えは圧倒的なfalseです。

何かが技術的に健全だと思うなら、それを受け入れてください。そうでなければ、いつものようにビジネスです。Cは私の主要な言語であり、ほぼ20年前と同じように機能しますが、20年前と同様に2回以上支払われます。

私はあなたの簡潔なフォームと引用を賞賛しますが、これは違反実験のようです。

よくやった :)


8

学習に費やす時間に依存します。1980年にBourneシェルとCプログラミングを学びました。今でも毎日使用しています。一方、Compuserveのメニュー構造の学習に費やした時間は完全に失われ、そのときでもそれほどひどく役に立ちませんでした。次に、RS-232ケーブルのピン配列やシリアルプロトコルなどがあります。今日は役に立たないが、私の人生の約10年には不可欠です。あなたが多くの時間を費やしたテクノロジーを注意深く選んでください。


シリアル通信は引き続き使用できます。ケーブルだけではありません。

RS-232は、埋め込まれた空間で生き続けています。
ティムウィリスクロフト

7

原則は真実です。実際の値は-私の知る限りでは-もっと大きいです。

私は彼らが約7年言ったPragmatic Programmerのプレゼンテーションを思い出しますが、私は今それを見つけることができないので、値はわずかに異なるかもしれません。

テクノロジーがどのように変化したかを考えてみてください。15年前、ウェブはまったく新しいものでした。私たちは皆、ウェブページ(おそらくテーブルを含む)とアニメーションGIFを書き込もうとしました。7年前、AJAXが始まりました。今日、一部の人々は携帯電話向けのDoomのようなゲームを書いています。

最善の策は、「Begone!I Visual only only Visual Basic!」と言う代わりに、付属の次のテクノロジーに適用できる一般的なことを学ぶことです。(または15年で同等)。


私はVBでフィズバズを試しましたが、..失敗しました... :(
ティムポスト

@ティム、10年待ち、うまくいけばあなたがする必要はありません...

5

私はそれがまったく正確だとは思わない。

それはかつて真実に近かった-昔、あなたは比較的低レベルの抽象化でプログラミングする以外に選択肢がなかったので、新しいプラットフォームにはもはや関係のない膨大な数の詳細を知る必要がありました。

しかし、時間の経過とともに、ますます多くのプログラミングがより高度な抽象化レベルで行われます。抽象化のレベルが高いほど、多かれ少なかれ直接的に変更され、変更されてすぐに陳腐化する可能性のある詳細に対する懸念が少なくなります。

明らかに、デバイスドライバーや小さな組み込みシステムのようなもので作業する人がいますが、それでも抽象度が低いままで作業する必要があります。ただし、そのような領域以外では、そのようなことの言い訳は比較的わずかです。はい、多くの人決して必要としないトリビアをたくさん学びますが、コードでそのようなものを実際に使用している場合、非常に良い決定を下していない可能性がかなり高くなります。このようなことのほとんどは、一般的に回避できます(さらに重要なことですが)。


GNUがいつ起動して実行可能になり、すべての「クールな子供たち」がそれを使用していたかを思い出すことができます。しかし、それは「クールな子供たち」が実際には方法さえ持っていなかったが、彼らの狂気へのある程度の考えを持っていた日に戻っていました。私はこの日と年齢で、あなたが正しいと言ってSAADです。
ティムポスト

4

おそらくそうではないかもしれません。ただし、実際に学んだことを学んだ後すぐに時代遅れになったとしても、その背後にある概念やアイデアははるかに長く使用できます。


確かに、それらは参照のフレーム、または最悪の場合はアンチパターンになります。:)
ideasman42

4

その場合、今日は、神話上のマン月の 5.39x10 -6のみが関連します。フレッドブルックスが詳細に述べた重要な原則や、根本的に間違っていることが判明した重要な原則はほとんどありません。


1
私はちょっと確信が持てません。時代遅れのものもありますが(最近では実際にチーフプログラマチームを使用している人はいますか?)、ごくわずかなものがまったく間違っています(情報隠蔽に関する結論が頭に浮かぶものです)。大衆文化、そして間違いなく私たちが意識していない私たちの心の部分があるというジグムント・フロイトの議論よりも関連性がありません。それはまだ読む価値があり、そしてもちろん、関連する百万(五文字?)の中に五つ以上の部分があります。
デヴィッドソーンリー

良いコメント、(+ 1)答えて、チーフプログラマーチームは原則ではなく、応答であると主張します。確かに、彼は情報の隠蔽について非常に間違っていました。しかし、彼はこれを20周年記念版でも認めています。ブルックスが言ったことの多くは、ソフトウェア開発文化に定着していないか、ソフトウェア開発においてそのような極端な失敗率はないと主張します。
AlexC

私は本のどれだけが今日関連しているかという質問からそれに近づいたと思います。たとえば、CPTの章は関連性がありませんが、スケジュールに関する章は完全ではなく、明らかに現在の文化の一部ではありません。20周年記念版は、もちろん、彼のエッセイ「No Silver Bullet」のおかげで入手できるものです。(それは16年前に出てきたので、タイトルの原則により約0.4%の関連性があるはずです。それよりも関連性が高いことに同意できると思います。)
デイヴィッドソーンリー

最後に聞いたところ、IBMはチーフプログラマーチームを使用しませんでした。これは、メソッドの失敗よりもチーフプログラマーになる可能性のある人々が不足しているためです。私は最高のプログラマーであり、非常にうまく機能しています。
ティムウィリスクロフト

3

あなたの知識の多くは、時間のテスト中(時間の経過とともに更新が必要になる場合があります)、データ構造などの特に基本的なことの間、関連性を保ちます。

もちろん、プログラミング言語XとYを知っていれば、XとYのどちらも知らない場合よりも言語Zの学習が容易になるため、以前の知識を使用して新しい知識を適応させることができます。

また、数十年前に関連していた多くのスキルが今日でも関連していること、Cなどの特定の技術でさえも関連していることにも言及する価値があります(1970年前半、今日でも関連)。

あなたが知っていることの半分は、しばらくすると陳腐化する可能性があり、おそらく半分以上ですが、18〜24か月ごとに極端に聞こえます。


2

単一のファクトには大きな関連性はありません。それらを取り、理解し、一瞬だけ適用します。

しかし、そうすることで、ファクトを処理するプロセス、または少なくともファクトの特定のサブセットを処理するプロセスがわかります。私は学校で多くの数学を学びましたが、実際に使ったことはありません。それでも私は数学的思考を学び、訓練しました。

私はRuby on RailsでWebプログラマーとして働いていました。現時点ではWebサイトを作成していませんが、思考コードに大きな影響を与え、より良い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年の間人気があるスタックを期待できます。私は、ほぼ同じハードウェアおよびソフトウェアツールを使用してRPGで30年間コーディングしているプログラマーを知っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.