ソフトウェアエンジニアとプログラマーの主な違いは何ですか?[閉まっている]


回答:


80

採用時には、システムの設計、プロセスの定義、技術仕様の作成、高度なリファクタリングの実装などを支援できる人と、チェックリストからプログラミングタスクを完了するのを支援する人との違いを探します。前者をソフトウェアエンジニア、後者をプログラマーと呼ぶことができると思います。


10
明確にしていただけますか、両方(異なる仕事のために)雇うのですか、それともソフトウェアエンジニアだけですか?
ヤープ

2
前者をソフトウェアエンジニアと呼ぶことはできますが、私はそうしません。ブレンダンが理解できないように、それは通常ソフトウェアアーキテクトの仕事です。
JᴀʏMᴇᴇ

131

宗派などを執行する法的枠組みはないと思うので、実際には会社次第です。少なくとも私が知っていることではなく、これは国によって異なります(たとえば、用語の使用「エンジニア」は実際にはフランスでかなり規制されていますが、「虐待」の場合に許可されるバリアントがあります)。

一般的な傾向は次のようになります。

  • プログラマの位置は、通常の1であるコンピュータ・プログラムのコードを生成するために雇わプロコードの書き方知っていて、アルゴリズム理解し、仕様に従うことができることを意味します。ただし、通常は責任の面で停止します。

  • 開発者の位置は、通常考えられているプログラマ位置のスーパータイプ。それは同じ責任包含するプラスデザインと建築家のソフトウェア・コンポーネントをする能力、およびする技術文書を書く(仕様書を含む)それのために。あなたは-少なくとも技術的に-他の人(つまりプログラマー)を導くことができますが、必ずしもチームではありません(ファズが来ます...)

  • エンジニアの位置は、通常、あなたが開発者であることを暗示する程度の特定のタイプがある、いくつかの工学の知識を、とあるシステムを設計できる(:ソフトウェアコンポーネント/一緒に全体のソフトウェアエンティティを構成するモジュールの組み合わせのように) 。基本的には、全体像見え、それを設計して説明し、より小さなモジュールに分けることできます

しかし、これはすべて議論の余地があり、私が言ったように、米国/英国の国では私が知っている法的要件ありません。そうは言っても、フランスでは、工学学校から来た場合にのみ、自分を「エンジニア」と呼ぶことができます(Titles d'Ingenieurs委員会などによって認識されます)。「エンジニアの学位」を持っていると言うことはできませんが、エンジニアリングとテクノロジーの前兆に該当する分野を研究した場合、「エンジニアリングの学位」を持っていると言うことができます。

いくつかの国には似たような区別があるかもしれませんが、私は本当に知りません。

ソフトウェアエンジニアのタイトルに戻ります...かつて、私の教師の1人がクラスに、そして当然のことながら、いわゆる「ソフトウェアエンジニアリング」のようなものは存在しないと言いました。何かを設計する(建物、車両、ハードウェアなど)ことは、その設計と生産のすべての段階を想定し、必要なリソースを正確に予測できることを意味するため、生産コスト。

これは、ほとんどの「真の」エンジニアリング分野に当てはまります。もちろん変動はあります(たとえば、材料の価格は時間とともに変化します)が、非常に有限の理論モデル(設計および計画用)と経験モデル(前者をアクセス可能な制約内にほぼ維持するため)がありますこれにより、プロジェクトの終了日とそのリソース使用量を予測できます。

ソフトウェアの主な問題は、まだ存在していないことです。私たちはソフトウェアエンジニアリングを目指していますが、まだそこにはいません。非常に流動的で動的な環境、プロジェクトに対する非常に多様な制約、およびプロセスの振り返りにおける成熟度の欠如があるためです。確かに私たちはそれをうまくやると言うことはできますが(ハードデータについては非常に議論の余地があります)、60年代からそれまでしかありませんでした(以前のプロジェクトは実際にはハードウェアのみのコンピューターに近かったため、皮肉なことに実際のエンジニアリングに近くなりました) )。私たちは1世紀以上にわたって自動車、一般的には数千年、さらに数千年にわたって自動車を製造してきましたが、実際に世界のどこかでかなり上手く行って、私たちのように感じます'

我々は体系的に正確な期限を予測することができない私たちは、体系的に正確なコストを予測することができない私たちは、体系的、効率的かつ確定的に内在すると外部のリスクを特定し、軽減するために失敗します。私たちができることは、サイクルとオーバーヘッドを削減するためにプロセスを最適化するために最善を尽くしながら、十分な推測値を生成し、ある程度のバッファーに対応することです。

しかし、参照してください、多分それはエンジニアリングです。そしてそれが、誰かが「ソフトウェアエンジニア」について話すとき、彼らが考え、目指すべきことです。

そのため、プログラミングルーチンの単純な行為、またはアプリケーション開発のより高度な行為とはほとんど交換できないようです。

それでも、すべてはトレンドの問題です。最近、チームの全員がシニアソフトウェア開発者である水平開発チームを持つことはかなり一般的です(そう、資本、それは私たちを特別な気分にさせるからです)意見)そしてスキル(ええと...)と責任(それほどPRの話題のためだけに良いことはできません)の区別はあまりありません。

また、それは時々習慣の力であり、業界の文化と専門用語に固有のものです。組み込みソフトウェアの生産のためのより多くのポジションは、ソフトウェアエンジニアのタイトルを使用します。これはおそらく、この分野のハードウェアにもある程度ある程度対応しなければならないことを意味するため、生産および生産する「システム」全体の他の側面を明らかに扱うからです。ビットだけが中に入っているわけではありません。その一方で、金融ソフトウェアの生産職でエンジニアという用語が使用されているのを実際に目にすることはありません。それは、この業界の前身からの模倣の進化であるため(たとえば、組み込みエンジニアリングは、たとえば自動車工学にそのルーツを見出している)、またはポジションに多少なりとも信用/重みを与えたいだけなのです。

そして、霧の中で皆を確実に失うためにあなたは両方を混ぜた他のタイトルを見つけるでしょう(「ソフトウェア開発エンジニア」や「テスト中のソフトウェアエンジニア」!) 「ソフトウェアアーキテクト」と「ソフトウェアアーキテクチャ」がボキャブラリーの恥知らずな窃盗である可能性について考えてください)。そして、リリースエンジニア、変更開発マネージャー、ビルドエンジニア(それらも同様に公開されます)。また、単に「エンジニア」と呼ばれることもあります。

それが助けになったことを願っていますが、実際には答えではありません。

ああ、それはあなたの新しい会社があなたを新しいタイトルで誘い込もうとしているのか、彼らがタイトルを本当に気に掛けていないのか、あなたが本当により高いレベルのポジションを持っているのかを意味します。知る唯一の方法は、あなたの仕事の仕様を読んで、彼らと話をして、最終的にそれを試して、自分で判断することです。私はそれが後者のオプションであり、あなたがそれに満足していることを願っています(そして、潜在的にそれにより多くの利益をもたらします)。;)


12
「実用的なプログラマー」という本は、ソフトウェアはエンジニアリングのようなものではないと言っています。家や高層ビルを計画することはできますが、ソフトウェアエンジニアリングの例えはほとんど使用できません。彼らは次のように述べています。ソフトウェアはガーデニングのようなものです。庭を計画し、植物を植えます。次に、成長しているものを確認し、雑草を取り除き、新しい植物を植えます。
ファルコン

6
「私の先生はクラスに、今日のように、いわゆる「ソフトウェアエンジニアリング」というものがないと言った。何かをエンジニアリングするということは、そのデザインとその生産のすべての段階を想像し、正確に予測することができるからだ必要なリソース」。それが書かれた時点では、それはおそらく真実ではありませんでした。アーキテクチャと同様に、要件を知らずにコストを予測することはできません(スカイスクレイパーのコストはいくらですか?しかし、我々はできる成熟したソフトウェア開発グループ与えられ、その後のコストを予測します。
MSalters

1
@MSalters:確かに、これを好転させることができます。アーキテクチャのように、要件なしにコストを予測することはできません。ただし、アーキテクチャとは異なり、要件が明確に定義されていても(予測が困難であるか、変更を許可する傾向があるため、多くの場合より流動的ですが)、コストを予測することはできません。これは通常のエンジニアリングで非常に正確なレベルの精度で行うことができます。また、現在、特殊な状況でのコストをSEよりも特定できます。(かなり荒い)推測値のみを行います。私たちはそれらを作ることで良くなっていますが、彼らはまだかなり推測しています。
ヘイレム

3
@haylem:それはソフトウェア開発の標準です。しかし、CMMレベル4/5の会社で働いていた場合、コスト予測でき、多くの場合、95%の信頼レベルを付加できることに気付くでしょう。ソフトウェアベースを十分に理解しており、要件が十分にあるため、障害はまれです。ロードブロッキングのコストは、それらに対処するための経験があれば低くなります。
–MSalters

1
@pcurry:これが「私の分類法」であると主張していないことに注意してください。リクルーターや企業の給与計算ではこのように一般的に見なされているだけでなく、CS ot ITコースでも頻繁に見なされています。彼らはお互いにショットを撮る傾向があります。それで、私は(自称)プログラマよりも(いわゆる)ソフトウェアエンジニアによって採用されている見解をリストしたと思います。あなたがあなた自身を何と呼ぶか​​は本当に重要ではありません、それは人々があなたを重要だと考えるものです。そして、それはあなたがそのようなことを気にする場合にのみ重要です。正直なところ、個人的に私はどちらかであることに気にしません、私を変えません。
ヘイレム

81

ソフトウェアエンジニアとは、企業で働いており、ソフトウェアを作成する人を「ソフトウェアエンジニア」と呼ぶ人です。

プログラマーは、彼らのためにソフトウェアを書く人々を「プログラマー」と呼ぶ企業で働く人々です。

あり、開発者、またはソフトウェア開発者は。彼らは彼らのためにソフトウェアを書く人々をそれぞれ「開発者」または「ソフトウェア開発者」と呼ぶ会社で働く人々です。


26
この答えは本当におもしろいものではないことに注意してください。
Jer

15

「ソフトウェアエンジニア」、「プログラマー」、「開発者」、「コーダー」がいますが、「SOAエキスパート」は決して忘れられません

これらは、以前の役職での実際の役割(役職だけでなく)など、履歴書で意味のあることを言えない人のためのマーケティング用語です。

求人広告では、違いは人事担当者にかかっています。

ボトムライン:すべての人は、「コードで仕事をする優れた従業員を作るもの」について独自の見解を持ち、そのようなスキルをそのようなタイトルに関連付けることが好きです。

するべきこと?求人広告は必要なスキルを説明し、履歴書は候補者の経験の詳細を説明する必要があります。


10

違いはありません。それらは同じものです。ただし、企業は用語を使用した正式な職務記述書を持っている場合があり、その用語には企業固有の意味があるかもしれません。


8

プログラミングはコードに関するものです。ソフトウェアエンジニアリングは最終製品に関するものです。


3

それは会社がどのようにポジションを定義するかに本当に依存します。開発者としてUMLダイアグラムを提供し、プログラムを作成するのに対し、ソフトウェアエンジニアとして設計上の決定の機会が増える可能性があります。

しかし、実際のセットの定義はないため、タイトルに基づいて、人々はあなたが何をしているか、またはあなたがどれだけ経験したかを知ることができます。

私が建築家/開発者だったとき、私の肩書きはコンピューター科学者でしたが、最初の2つは簡単に定義できないので、私はプログラマーであると人々に伝えるだけです。

あなたにとってタイトルが重要な場合、エンジニアは開発者よりも高く聞こえるので、新しいタイトルを受け入れます。


3

私の経験では、「公式の違い」はないと思います。

  • 一部の企業は、ソフトウェアエンジニアとソフトウェア開発者を使用して同じものを参照しています。彼らは自分の好きな言葉を使うだけです。
  • その他は、異なる内部ポジションに両方の用語を使用しますが、役割は会社によって異なります!機能の違い(ソフトエンジニアがシステムの保守と改善に取り組む一方で、開発者が会社の製品に取り組む)や、階層的(エンジニアが開発者より上にいる)、あるいはエンジニアは本当にQ&Aに依存しています!

また、変化するファッション用語もあります...最初の用語は「プログラマー」、次に「ソフトウェアエンジニア」でしたが、現在は「開発者」に見えます...

仕事の説明を読むか、特定の会社の誰かに読む方が良い


3

一部の管轄区域では、「エンジニア」はプロのエンジニアであるという要件を持ちます。資格情報の中での署名。しかし、他の分野では、私が数年前にワシントン州で働いていた「ソフトウェア設計エンジニア」だったので、そのような違いはないかもしれません。


2

ソフトウェアエンジニアは、たとえば5〜16年の開発に多くの人年を要する非常に大きなシステムで作業する傾向があります。プログラマは、コーディングだけで他に何もないというこのステレオタイプを持つ傾向があります。しかし、それは本当にあなたが働いている組織と、上で説明したようにHRが役割をどのようにマーケティングしているかに依存します。それらは本質的に同じものです。タイトルと同義語であるため、タイトルにあまり執着しないでください。

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