アルゴリズム、データ構造、数学、その他のほとんどのプログラマが知っていることはほとんどありませんが、あまり使われていないことについての知識があります。実際には、この素晴らしいものはあまりにも複雑で一般的には不要です。ほとんどの時間が非効率的なデータベース呼び出しを行うのに費やされたときには、アルゴリズムの改善には何の意味もありません。プログラミングの不幸な量は、システムがお互いに話をしたり、非常に単純なデータ構造を使ってすばらしいユーザーインターフェイスを構築することから成ります。
高度な技術はいつ適切な技術ですか?あなたは、本物のアルゴリズム以外の何かを得るためにいつ本を解読すべきですか?これを行うのが便利なこともありますが、慎重に評価する必要があります。
潜在的なコンピュータサイエンス技術の3つの最も重要な考慮事項は次のとおりです。
- 他のシステムに対するリスクが低く、複雑さと保守コストの全体的な増加が少ないように、十分にカプセル化されていますか?
- 利益は驚異的です(例えば、成熟したシステムでは2倍、新しいシステムでは10倍)。
- それを効果的にテストし評価することができますか?
わずかに複雑なアルゴリズムを使用する孤立したアルゴリズムでは、システム全体でハードウェアのコストを削減したり、パフォーマンスを2倍に高めることができれば、犯罪者はそれを考慮しないことになります。そのようなアプローチを主張する鍵の1つは、提案された技術がおそらく十分に研究されているので、リスクが実際にはかなり低いことを示すことです。唯一の問題は統合のリスクです。ここでプログラマの経験と判断は、統合を容易にするための派手な技術と相乗効果があります。