ソフトウェアエンジニアの役割は、必ずしもコンピュータサイエンスの学位を必要としない。しかし、Yahooの最高責任者であるScott Thompson氏が最近、辞めたのは、偽のコンピュータサイエンスのカレッジ学位のためだっだ。もし誰かが大学の学位を必要としているなら、それは議論の核心であった。例えば、 Dr. Dobbの記事“Software Engineers All!” の中で、 Andrew Binstock氏はソフトウェアエンジニアが素晴らしい仕事をするのに、コンピュータサイエンスの学位が本当に要るのかを議論している。
氏によれば、
「ソフトウェアエンジニア」はそれが意味する現実から妙に離れてしまった、最近の用語に過ぎない。以前の世代では、「アナリスト」の称号が好まれていた。昔のデータ処理の世界では、初心者レベルがプログラマーだった。在職を反映するために称号の変更が必要だった時に、プログラマーは「プログラマー/アナリスト」に昇格された。それから結局、「アナリスト」になった。この変化が意味してきたのは、プログラミングは従業員が最後に残した活動だった、ということである。しかし実際は、大抵のアナリストはもっとレベルの低い仲間よりもずっとプログラミングしていた。アナリストはしばしば、仕事の大きな部分ではなく、ただしいくつかのポジションではプログラミングに付随するものとして分析が必要だった、という場合はあった。
記事では、 Mark Zuckerberg とBill Gatesをコンピュータサイエンスの学位を持たずに成功したソフトウェアエンジニアとして挙げている。こうして氏の結論は、
曖昧な「相当語句」によって、規範的な能力をもつが学術的な形態を欠いている候補が多く出てくることになった。つまり、皆仲間として問題ない。それを念頭に置いて、私はあなた方に書く。読者諸氏-ソフトウェアエンジニアの皆さん。
コメントした読者の全員が氏の結論に同意しているわけではない。例えば、ユーザーの pjmlpが言うには、
あらゆる専門職には、問題の人が必要とするスキルセットを持ち、それが仕事の上でそれなりの品質を提供することを証明する、学習パスがある。私の経験では、独学プログラマーは、大抵のソフトウエア開発会社が期待する品質を提供できない、それは彼らのスキルセットは暇なときに勉強できるものに限られてしまうからである。
RussG氏は違った考えである。
悲しいことに、コンピュータサイエンスの学位は確実に良いプログラマーを保証しているわけではない。コンピュータサイエンスとコンピュータプログラミングは一般的に非常に違うもので、ほとんどの卒業生は、アカデミアで働くことを希望しており、大きなチームで何百万ラインのアプリケーションを作ることを希望していない。
この文脈でもう一つ重要な論点は、ソフトウェアアーキテクトのようなソフトウェアエンジニアリングでもっと専門的な役割についてだ。システムの屋台骨に責任を負うソフトウェアアーキテクトは、コンピュータサイエンスの学位が要るのか、独学のエンジニアでもいいのか?あるいはエンジニアには、学校教育と相当な実戦経験の両方が必要なのか?アインシュタインはかつて、「理論的には、理論と実践は同じである。実際は、それらは違う」と、言った。