ソフトウェアエンジニアとプログラマの主な違いは何ですか?
採用時には、システムの構築、プロセスの定義、技術仕様の作成、高度なリファクタリングの実装などを支援してくれる人と、チェックリストからプログラミングタスクを完了するのを助けてくれる人との違いを探します。前者をSoftware Engineerと呼び、後者をProgrammerと呼ぶことができると思います。
宗派やその他を強制するための法的枠組みがないと思うので、それは実際に会社次第です。少なくとも、私が認識していることではなく、これは国ごとに異なる可能性があります(たとえば、用語の使用「エンジニア」は実際にはフランスでかなり規制されていますが、「乱用」の場合に許可されているバリアントがあります)。
とはいえ、一般的な傾向は次のようになります。
programmerの位置は、通常、-コンピュータプログラムのコードを生成するために雇われた専門家のいずれかです。これは、あなたがコードの書き方を知っているであり、-アルゴリズムを理解するおよび仕様に従うであることを意味します。しかし、それは通常、責任の面でそこで停止します。
A developer position is usually considered a super-type of the programmer position. It encompasses the same responsibilities, plus the ability to design and architect a software component, and to write the technical documentation for it (including specifications). You are able to - at least technically - lead others (so, programmers), but not necessarily a team (there comes the fuzz...)
engineerの職位は、通常、あなたが開発者であることを示唆します特定のタイプの学位を持っている、ある程度エンジニアリングの知識、そしてシステムの設計が可能(全体としてソフトウェアエンティティを形成するソフトウェアコンポーネント/モジュールの組み合わせのように)。基本的に、あなたはより広い図を見るであり、あなたは設計および説明が可能および小さなモジュールに分割するです。
ただし、これはすべて議論の余地があります。そして先ほど述べたように、米国/英国諸国で知っている法的要件はありません。そうは言っても、フランスでは、エンジニアリングスクール出身の場合にのみ、自分を「エンジニア」と呼ぶことができます(委員会des Titres d'Ingenieursなどで認められています)。 「工学の学位」を持っているとは言えませんが、工学と技術のポルテマントに該当する分野を研究していれば、「工学の学位」を持っていると言えます。
国によっては似たような違いがあるのかもしれませんが、よくわかりません。
ソフトウェアエンジニアの称号に戻ります...かつて、私の教師の1人がクラスに言ったことがあります-確かにそうです-今日のように、いわゆる「ソフトウェアエンジニアリング」のようなものはありません。何かを設計すること(それが建物、車両、ハードウェアの一部など)は、その設計とその生産のすべてのフェーズを想定し、必要なリソースを正確に予測できることを意味します。生産コスト。
これは、ほとんどの「真の」エンジニアリング分野に当てはまります。もちろん変動があります(たとえば、材料の価格は時間とともに変化します)が、非常に有限な理論モデル(設計および計画用)と経験モデル(前者のいずれかをアクセス可能な制約内にほぼ維持するため)があります。これにより、プロジェクトの終了日とそのリソース使用量を予測できます。
ソフトウェアの主な問題は、まだ存在しないことです。ソフトウェアエンジニアリングを目指したいのですが、実際にはまだありません。私たちには非常に流動的で動的な環境があり、プロジェクトには非常に変化しやすい制約があり、それでもプロセスを振り返ってみると成熟度が不足しています。確かに上手くいくとは言えます(ただし、ハードデータについては非常に議論の余地があります)が、それは60年代以降になってからです(以前のプロジェクトは実際にはハードウェアのみのコンピューターに近いため、皮肉にも実際のエンジニアリングに近くなっていました) )。私たちは1世紀以上にわたって自動車を製造してきましたが、一般的には数千年の自動車を製造し、さらに数千年の製造を行っています(実際、世界の一部の地域ではかなり優れています。比較すると、私たちの新しい派手なソフトウェアのおもちゃで遊んでいるとんでもない子供たちです)。
計画的に正確に期限を予測できない、計画的に正確にコストを予測できない、我々は固有および外部のリスクを効率的かつ決定論的に体系的に特定して軽減できない =。私たちができる最善の方法は、十分なguesstimatesを生成し、いくつかのバッファーに対応しながら、プロセスを最適化してサイクルとオーバーヘッドを削減することです。
しかし、おそらく、それがエンジニアリングです。そして、それが誰かが「ソフトウェアエンジニア」について話すとき、彼らは考え、目指すべきことです。
したがって、プログラミングルーチンの単純な動作、またはアプリケーション開発のより高度な動作とはほとんど互換性がないようです。
それでも、すべてがトレンドの問題です。最近では、チームの全員がシニアソフトウェア開発者であるという水平型の開発チームがいるのはごく一般的です(そうですね、それは私たちを特別に感じさせるからです)。意見)そしてスキル(ええと...)と責任(それほど今ではそれは良いことではありません、純粋にPRの話題から離れている)のそれほど多くの区別ではありません。
また、時には、単なる習慣の力であり、業界の文化や専門用語に固有のものです。組込みソフトウェアの生産のためのより多くのポジションは、ソフトウェアエンジニアのための肩書きを使用しています。ほとんどの場合、この分野ではハードウェアも常にある程度は処理する必要があることを意味するため、生産および生産する「システム」全体の他の側面を明らかに扱うことになります。中にはビットだけが入り込んでいるのではありません。一方で、金融ソフトウェアの生産現場でエンジニアという用語が実際に使用されているのを見ることはできません。それは、前者の1つからこの業界が模倣された進化である(たとえば、組み込みエンジニアリングが自動車エンジニアリングにルーツを見つけるなど)か、ポジションにクレジット/ウェイトを多かれ少なかれ付与したいためです。
そして、霧の中のすべての人を失うことを確実にするために、次に、両方を混合している他のタイトルを見つけます(「ソフトウェア開発エンジニア」または「テスト中のソフトウェアエンジニア」など)!次に、他のドメインとのさらにクレイジーなブリッジを強調する他のもの(「ソフトウェアアーキテクト」や、「ソフトウェアアーキテクチャ」が語彙の恥知らずな盗難である可能性があると考えてください)。そして、リリースエンジニア、チェンジデベロップメントマネージャー、ビルドエンジニア(これも同様にffaaarrrrrrです)。そして、時には単に「エンジニア」となることもあります。
それが本当に答えではないけれども、それが役に立ったと思います。
ああ、それはあなたの新しい会社が新しいタイトルであなたを誘惑しようとしている、または彼らが本当にタイトルを気にしていない、またはあなたが本当により高いレベルのポジションを持つことになるということを意味します。知る唯一の方法は、あなたの仕事の仕様を読み、彼らと話し、最終的にそれを試して、自分で判断することです。私はそれが後者のオプションであり、あなたがそれで満足している(そしてそれを潜在的にもっと稼いでいる)ことを願っています。 ;)
ソフトウェアエンジニアは、ソフトウェアを開発する人々を「ソフトウェアエンジニア」と呼ぶ企業で働いている人々です。
Programmersは、ソフトウェアを開発する人々を「プログラマ」と呼ぶ企業で働いている人々です。
開発者、またはソフトウェア開発者もあります。彼らは彼らのためにソフトウェアを書く人々をそれぞれ「開発者」または「ソフトウェア開発者」と呼ぶ企業で働く人々です。
つまり、「ソフトウェアエンジニア」、「プログラマ」、「開発者」、「コーダー」がいて、「SOAエキスパート」を忘れることはありません。
これらはすべて、以前の役職での実際の役割(役職だけでなく)など、履歴書で意味のあることを言えない人々のためのマーケティング用語です。
求人広告では、違いは人事担当者にあります。
結論:すべての人が「コードで機能する優れた従業員を作るもの」について自分自身の見解を持っています。
するべきこと?求人広告は必要なスキルについて説明し、履歴書は候補者の経験の詳細を説明する必要があります。
違いはありません。彼らは同じものです。ただし、企業は用語を使用して正式な職務記述を持っている場合があり、その場合、その用語には会社固有の意味がある場合があります。
プログラミングはコードについてです。ソフトウェアエンジニアリングは最終製品です。
一部の管轄区域では、「エンジニア」はプロのエンジニア、つまりP. Eng。自分の資格情報の間の設計。しかし、私が数年前にワシントン州で働いていた「Softwere Design Engineer」だったので、他の領域ではそのような違いはないかもしれません。
それは、会社がどのようにポジションを定義するかによります。ソフトウェアエンジニアとしては、より多くの設計上の決定の機会が得られるかもしれませんが、開発者としては、UML図を提供し、プログラムを作成することになるかもしれません。
しかし、実際のセットの定義はないので、タイトルに基づいて、人々はあなたが何をしているか、またはあなたがどの程度経験を積んでいるかを知ることができます。
私が建築家/開発者だったとき、私の肩書きはコンピューターサイエンティストでしたが、最初の2つは簡単に定義できないので、プログラマーであるとほとんどの人は知っています。
タイトルがあなたにとって重要である場合、エンジニアは開発者よりも高いように聞こえるので、新しいタイトルを受け入れます。
私の経験が意味する可能性があるため、「公式の違い」はないと思います。
また、ファッション用語も変わります...最初は「プログラマー」、次に「ソフトウェアエンジニア」でしたが、現在は「開発者」のようです...
仕事の説明を読むか、特定の会社の誰かに読むことをお勧めします
ソフトウェアエンジニアは、非常に大規模なシステムで作業する傾向があります。たとえば5〜16年。プログラマーは、コーディングだけのステレオタイプを持っている傾向があります。しかし、それは実際にあなたが働いている組織と上で説明したように人事がどのように役割を売り込んでいるかに依存します。それらは本質的に同じものです。同義語なので、あまりタイトルに執着しないでください。