エントリーレベル/ジュニア/シニア開発者の違いは何ですか?[閉まっている]


198

タイトルと支払い以外に、違いは何ですか?

  • 彼らにはどのような異なる責任がありますか。

  • 彼らはどの程度知識/経験がありますか?

  • 開発者がこの基本構造に適合する場所を決定するための基本的な尺度は何ですか?

回答:


341

これはさまざまですが、これはプログラマーのタイプを区別するのに十分な大きさの場所で見られる方法です。

エントリーレベルとジュニアは同じものだと思います。彼らは学校を出たばかりで、2年未満の実務経験があります。それらには最も複雑でないタスクが割り当てられており、かなり厳密に監視する必要があります。一般的に、彼らは自分が知っていると思うことの約10%を知っています。通常、開発サイクル全体を経ていないため、選択する機会が与えられた場合、非常に単純な選択を行うことがよくあります。悲しいことに、彼らの多くは実際に要件が何であるかを気にしておらず、自分たちのやり方で物事を作りたいと思っています。多くの場合、デバッグスキルが不十分です。

中級レベルは多くのプログラマーが落ちるところです。彼らは2年以上の経験があり、一般的には10歳未満ですが、一部の人はキャリア全体でこのレベルに留まることができます。比較的日常的なタスクに割り当てられている限り、監視の少ない作業コードを生成できます。通常、高度な設計や高度な知識を必要とする非常に複雑なタスクを担当していません。ただし、特にシニア開発者になるためのゾーンにいるため、アプリケーションの一部の設計を担当する場合があります。メンテナンスタスクやパズルの一部だけに集中できるタスクは得意ですが、通常、シニア開発者と連携したり、シニアへの昇進の準備をしている場合を除き、アプリケーション全体を考慮することは期待されていません。彼らは通常、トラブルシューティングとデバッグのまともな仕事をすることができますが、彼らは本当に難しいものを手に入れるために徹底的に努力しなければなりません。彼らは、発生している可能性のある場所を指摘する問題のパターンを見るのに十分な経験がまだありません。しかし、彼らはそれらのスキルを獲得しており、デバッグの助けを求める必要はほとんどありません。彼らはおそらく、少なくとも一度は開発サイクル全体を経験しており、設計上の問題の結果を見て、将来それらを回避する方法を学んでいます。通常、彼らは額面どおりに要件をとる傾向があり、明らかな問題やギャップがある場合にはそれを押し戻さない傾向があります。彼らは、自分が知らないことを知るのに十分なことを学び、その知識を獲得し始めています。彼らはプログラミングの世界の主役であり、

上級レベルの誰もこの質問をする必要はありません。彼らは、選ばれた技術スタックの専門家です。彼らは難しいタスク(誰も解決方法を知らないタスク)を与えられ、多くの場合、設計の責任を負います。商品を配達した実績があるため、多くの場合、独立して機能します。彼らは、ジュニアおよび中間開発者を指導することが期待されています。多くの場合、彼らは素晴らしいトラブルシューティングです。彼らは以前に同じ問題に遭遇し、どこから先を見るべきかについて非常に良い考えを持っています。高齢者も職場の外でメンターをすることがよくあります。彼らは一般に少なくとも10年の経験があり、ほぼ常に少なくとも1回の死の行進に参加しており、いくつかのことを避けるべき理由を正確に知っています。実用的な製品を提供し、期限を守る方法を知っています。彼らは、どのコーナーをカットできるか、どのコーナーを決してカットしてはならないかを知っています。彼らは専門家レベルで少なくとも1つ、多くの場合複数の言語を知っています。彼らは多くの「ホットな新技術」が職場を襲って消えていくのを見てきたので、彼らは次のエキサイティングな新しい開発ツールのために時流に乗ることについてもう少し保守的である傾向がありますシニアに飛躍することのない古い中級開発者)。彼らは自分の仕事は、楽しいツールで遊ぶのではなく、ユーザーが望むことを行う実用的なソフトウェアを提供することだと理解しています。彼らは仕事ができる場所について、またある場所がどれほど悪いかを直接見てきたので、彼らはどこで働くかについてより慎重になります。彼らは、最も面白い仕事をする場所を探します。多くの場合、彼らはほんの数ヶ月しかいなくても、彼らの会社の製品について他の誰よりもよく知っています。彼らはプログラミングの知識以上のものが必要であることを知っており、彼らがサポートするビジネスドメインについての知識を得るのも得意です。彼らはしばしば後輩が決して考慮しない問題に気づいており、中間体はしばしば彼らがサポートするビジネスドメインの規制や法的問題などについて考えません。彼らは、要件の問題が何であるかを知っており、素人に同じことを説明できるので、要件を押し戻すことができます。


2
Google翻訳者が「フル開発者」を使用する「中級レベル」のタイトル(英語)はありますか。しかし、それは貴重な情報源ではありません=)
ミシェルエアーズ

23
優れた、物語のような説明。私はそれを読んで楽しんだ。
サイードネアマティ14

1
この説明をありがとう。私はiOS開発者(コンプサイエンス教育なし)で独学し、重要な機能(CRUDのJSON、ソーシャルコンポーネント、優れたデザインなど)を備えた最初のアプリをリリースしました。私は素晴らしいプログラマーではないと思いますが、アプリを最初から最後まで書き、出荷に必要なものを理解しました。仮に私のような人をどこに配置しますか?
SamYoungNY

1
@NYCTechEngineer、よくスタックオーバーフローが思い浮かびます。また、ローカルユーザーグループ、ブログ、記事や本の執筆。
HLGEM

1
@BrianHaak Thx-あなたの言うことは面白い。昨年以来、私は以前よりもはるかに大きなプロジェクトに取り組んできました。ほんの数か月前に書いたコードを見て、「wtf?これはいいアイデアだと誰が思ったの?」と言った気分になりました。:)-このプロジェクトを小さなカーネルから簡単に拡張できるプロジェクトに始め、コンテンツを追加したい非開発者に対応できるようになったため、より高いレベルの構造について考えるようになりました。ペアリングは経験豊富なプログラマーから、多くのoppが欠落していることがわかりました。抽象化を使用します。名前空間にも問題があります。
-SamYoungNY

43

エントリーレベル-明示的な指示を与え、彼らが行うすべてをチェックしなければならない、設計の責任がほとんどまたはまったくない、分析の責任がない

ジュニア-明確な指示が少なく、チェックが少なく、設計と分析の小さな責任があります。エントリーレベルの人々がコンパイラを見つけてリポジトリを使用するのを助けます

シニア-主要な設計および分析の責任者であり、自分で監視を修正することを期待されています。ジュニアレベルの人々が分析と設計のスキルを習得/改善するのに役立ちます


20
いいですね、上級レベルの「チェック/指示なし」に完全に同意することを知りません。チームで作業していない場合やチームで作業している場合を除き、誰も完全に島になるべきではありません。
元気ウォンコ

@WonkotheSaneには、codeReviewやプルリクエストなしでコードをエラーとマージする人がいます。あらゆる場所で観測パターンを使用する以外、アプリのアーキテクチャについてはあまり議論しません。彼が新しいものに順応しないように、すべて自分ですべての決定をします。なぜなら彼自分自身島だからです。彼はそこにいません。彼島です:(
ハニー

16

本当に、それはあなたが仕事をしていた期間に帰着するだけだと思います。10年の経験がある場合は上級開発者であり、卒業生であればおそらく入門レベルです。私は、ほとんどコーディングできず、彼らが何をしているのかを実際に知らなかった多くの「シニア」開発者と、素晴らしかった多くのジュニア開発者を見てきました。


7
これは私の経験を反映しています。「シニア」とは、会社との時間を意味し、通常は他の何もありません。スキルは1つのイオタを考慮しません。私は多くの「シニア」開発者(およびその点でマネージャー)と仕事をしました。彼らは、試行錯誤の開発以外にソフトウェアについて何も知らなかったが、5年以上会社に在籍していました。場所が始まったので、任期のために昇進しました。
ウェインモリナ

8

見習い、旅人、マスターの古い学校の職人スロットは、入門レベル、ジュニア(またはプレフィックスなし)、シニアに適しています。

入門レベルの誰かには、重大な結果をもたらさない比較的単純なタスクが与えられ、その作業はジュニアまたはシニアによってチェックされます。時間が経つにつれて、彼らはより多くの責任を負い、より複雑なタスクを与えられ、途中でロープを学習します。

ジュニア(または単にタイトル/説明から「エントリーレベル」/「ジュニア」を削除)で、見習いを完了し、会社の主要な開発分野をカバーしました。それらのそれぞれに精通しています。これで、見習い相当の指導と入力を行うことができますが、あなた自身の仕事は、おそらくあなたが後輩だったときほどではありませんが、まだマスター/シニアによってレビューされています。

時間の経過と成功したプロジェクトの提供により、最終的にはシニアになります。上級レベルでは、開発プロセス全体、および関連するすべてのツールとテクノロジーを対象として、お住まいの地域でカバーされているすべてのものを習得しました。重要な技術的決定を下す権限があり、ソフトウェア開発プロセスの管理に対する洞察を提供することが期待されています。

そのため、これらのガイドラインを考慮して、人または役職を確認し、3つのビンのどれに着地するかを判断できる必要があります。


6

これは、プログラマーに対する会社の期待に要約されます。

私が雇用会社で、エントリーレベルのプログラマーを雇った場合、その人はほとんど何も知らないことを知っているので、すべてを学ぶ必要があると思います。理論的には、上級レベルの人を雇うと、技術的な観点からは彼らは自給自足になります。


4

これは厳密に会社に依存します。しかし、言葉はかなり明白です:エントリーレベルはフィールドにちょうど入っている人であり、ジュニアはエントリーレベルを超えており、いくつかの言語技術を知っている人です。最後にシニアは、プロジェクトをより担当し、より高いレベルに座っている人です。彼らは通常、コーディングした分だけ委任できます。


これはわかりますが、どの時点で「エントリーレベルを超えている」のか「ジュニアを超えている」のですか あなたが常に学んでいるなら、毎日あなたは前日だったものを超えています。
JD Isaacks

エントリーレベルは簡単ですが、ジュニアやシニアを示唆する経験/知識の例をもっと探しています。
JDアイザックス

私が言ったように、これは会社、問題のテクノロジー/言語のコンテキスト、より具体的には公式の役職について話さない限り意見の問題に依存します。私が自分でくそったれを書いたのでなければ、私は自分がどんな言語の専門家であるとは考えないと思います。
クリス

さらに、会社にいる場合は、jr、sr開発者を見て、彼らと比較/対照してください。これは、その会社に固有のコンテキストでの優れた尺度です。
クリス

4

ほとんどの人が言っているように、それは会社ごと、仕事ごとに異なります。

たとえば、私はかつて5年以上そこで働いた人を「シニアソフトウェアエンジニア」とみなす会社で働いていました。極端な場合、私が働いていた別の場所には非常に厳しい定義(および関連する賃金表)がありました。

一部の場所では、「エントリレベル」と「ジュニア」が同じことを意味する場合があります。

それは、長年の経験、一般的な知識、特定の知識(特定の言語の特徴を知っている)、管理経験および/またはリーダーシップ経験、それらのすべての組み合わせ、さらにもっと確かに基づいて変化します。


3

ここで本当に簡単な答えに行きます。上級開発者(一般的に)は、木の森を見ることができる人です。彼らは自分の顔の前にある当面の問題を超えて考え、直面している問題を修正した結果としてどのようなアーキテクチャの変更が発生する可能性があるかを理解しています。

私が見たほとんどのソフトウェア企業は、初心者レベルの開発者が新しい人々が何をしているかを監督し、本当に厄介で厄介な問題に取り組んでいる間、日々のコーディングを行うエントリーレベルの人々を抱えています。

これは明らかに私の意見であり、厳格な規則ではありません。YMMV。


2

簡単に言えば、求人サイトで見つけた個人的な観察から、そして経験レベルに関してのみ。

エントリー=おそらく最初の仕事。

ジュニア=あなたの良いが最高ではないはずです。また、通常 5年未満、2年以上の経験があります。

シニア=あなたは最高であり、5年以上の経験があるはずです。


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