- 概念(なぜ?、何?、if?-セマンティクス)-ソフトウェアシステムの開発に対する概念、原則、関係、および基本的なアプローチの理解。 この種の知識は、アプリケーションアーキテクチャまたはアルゴリズムを特定の方法で記述する必要がある理由、代替案、および選択したオプションが論理的な観点から最適である理由を正当化します。 概念的知識は、このタスクの特定の問題の解決策の背後にあるものの幅広いビジョンと理解を提供します。
アプリケーション:複雑な問題のより良い解決策を見つける
獲得:コンピューターおよびコンピューターに近い科学の研究、設計およびプログラミングの概念。 実践と経験に基づいた独自の理論の作成。 - 実用的(方法?-手順)-プログラミングの特定の問題を解決する方法に関する知識。 これは、特定の実施形態の選択の背後にある概念および理論の深い理解を必要としない。
アプリケーション:「自転車」をゼロから開発することなく、定評のある実証済みのソリューションを使用して迅速に問題を解決します。
獲得:既存のソリューションの検索、例による学習、またはソリューションの再利用。
- 経験(直観を含む)-内部の個人の知識。これは開発プロセスの中で徐々に形成されます。 このタイプの知識を使用すると、以前の2種類の知識を統合して有機的に使用し、最適な意思決定を行い、結果として得られる概念的および実践的な知識を評価できます。 それのかなりの部分が潜在意識レベルにあるため、他の人にそれを転送することは困難です。
アプリケーション:経験と直感を使用して、より良い意思決定を行います。
獲得:プログラムを開発し、結果から結論を導きます
![](https://habrastorage.org/getpro/habr/olpictures/4b9/bd3/38e/4b9bd338e210776135e7caf5ea00c5ee.jpg)
たとえば、デザインパターンは、3種類すべての知識の組み合わせの興味深い例です。実用的な例、その背後にある概念、およびアプリケーションでの実際の経験です。 そのような有機的な組み合わせによってのみ、それらを正常に使用できます。
![](https://habrastorage.org/getpro/habr/olpictures/92a/f27/b29/92af27b299d001ac829784e5cc81ffa7.jpg)
あなたの頭の中の実践的知識の価値は、インターネット上の例の数が増えるにつれてますます減少します。 それらを覚えておく必要はありません。 日常的な問題の大部分の解決策は簡単に見つかります。 ただし、マスタープログラマーの知識は、単純な例やそれらを探す場所を超えている必要があります。 彼は自分の決断を提案し、最良の選択と、それを実現するための最良の方法を作らなければなりません。 さらに、複雑な、高度に専門化された、または非常に新しい問題に関する情報を見つけることは、しばしば不可能です。
これが、ソフトウェア開発の分野で概念的知識と経験豊富な知識が非常に価値がある理由です。 実用的な情報を見つけるプロセスでは、常にあらゆる種類の知識を拡大しようとする必要があります。 これにより、問題を解決する能力が強化され、より効果的になります。
![](https://habrastorage.org/getpro/habr/olpictures/9db/0f7/57d/9db0f757dc9c90cafbf1225c6b95d8d1.jpg)
だから:
A.検索
1.基準-問題が何であり、どのような用語でそれを定義するかを理解します。 インターネットは非常に巨大で興味深いため、不十分な検索条件で多くの時間を費やすことができます。
2.検索-特定の検索エンジンの機能を効果的に使用する方法を学びます。
3.結果を実行します-コンテンツの品質、ソースの信頼レベル、作成者の資格をすばやく決定することを学びます。
4.選択したものを読む
5.評価-このオプションに必要な条件、ツール、および時間を決定します。
B.使用
1.コードをコピーして、テスト方法を学習します(単体テストが特に役立ちます)。
2.クリーンなコード-最小限のクリーンで効率的なコードのみを残します。
3.アプリケーションにコードを追加します。
C.学ぶ
1.何を、なぜあなたがしたのかを理解する。 コードと実行中のプログラムから学ぶ。
2.知識を広げます:
*実践的:テクニック、例、あなたがしていることのベストプラクティス。
*概念:新しい概念を学び、すでによく知られている概念を考え、独自の概念を作成します。
*経験あり:最高のソリューションを見つけてそこから学ぶ努力をすれば、経験は時間とともに成長します。
3.収集(リンク、レビュー、リーディングリスト)-さらなる研究とトレーニングのための興味深い情報。
私から:多くの自明性がありますが、情報はより概念的になり、弱点を特定するのに役立つと思います。 :)元のテキストの著者に感謝します。