誰も言及していないことの1つは、学校で解決するために与えられた問題は、あなたが教えられている特定のテクニックとして使用する方法を簡単に見られるようにするために意図的に馬鹿げていることです。あなたは通常、その特定の問題に使用することになっているテクニックを知っています。なぜなら、それはクラスで扱ったばかりのものだからです。学期全体のプロジェクトは少し賭けですが、実際の世界と比較して範囲と複雑さはまだ限られています。
実生活のプロジェクトは複雑で長年にわたって進化しており(当社のソフトウェアは10年以上も前から継続的に変化しています)、さまざまなスキルレベルの多くのさまざまな人々に触れられています。まだ10年前のデータベースバージョンに触れている可能性があり、新しいSQLテクニックをまったく使用できません。8年前は素晴らしいツールを使用していたかもしれませんが、他の何かに取って代わられたため、学校で学んだことはありません。しかし、同社はそれを完全に置き換えるために何ヶ月もの開発努力を払うことを望んでいません。
あなたは、クライアントが何を支払うか、そして時には(通常は)人工的な締め切りが何であるかによって、開発する時間が厳しく制限されている世界で立ち往生しています。
クライアントが特に要求したツールを使用するように制限される場合があります。あいまいな要件またはほとんど意味のない要件がある場合があります。あなたは何も知らない非常に複雑なビジネスドメインを扱っているかもしれないので、要件が理にかなっているかどうかさえ判断できません。
現実世界の問題は、彼らが学校であなたに与えるきれいな問題に決して匹敵するものではありません。最初の1年のほとんどの間、混乱せず、場違いに感じていないなら、私はあなたを心配します。