「初心者、中堅、シニア開発者の見分け方?」
How do you spot the differences between a junior, mid-level, and senior developer? - Quora
という Quora の質問回答および感想、与太話のポエムです。
名回答
回答1 (要約)
- 初心者の第一の特徴は、コーディングができないこと。文字通りの意味。
- if/then/else文は大丈夫なのだが、それ以上になると、本当に理解できるようになるまで、匙を投げてコードを書かなければならない。
- データ構造、イテレーション、型定義の扱い方を知らない。
- シニア開発者はソフトウェアの自動販売機のようなもの。何を作って欲しいかを伝えれば、プログラムができあがる。
- 違いを見分ける唯一の方法は、数ヶ月間、若手とベテランとで次第に困難になっていくプロジェクトに取り組むのを見ること。もちろん、言葉や性格、生まれつきの相性にもより、結果はわからない。結局は、結果が物を言う。
回答2 (要約)
- 初心者は、ある言語が大好きで、何でもかんでもその言語を使いたがる。
- 全体像が見えない。
- AGILEが大好き。
- 全体像を気にすることなく、小さなユーザーストーリーを解決する。
- 中堅は、システム/アプリケーションがエコシステムの中において存在していることを理解している。
- 全体を理解していないかもしれないし、ツールが好きでさえないかもしれないが、エコシステムに適合していれば、それらを使用するべきだと知っている。
- アジャイルを理解している。
- システムを統合テストチームに渡すと、その間に追加のドキュメントを作成してくれる。
- シニアレベルは、コーディングの際にエコシステム全体を見られる。
- 直感的に正しいツールを使える。その多くはアーキテクト。
- 自動車部品の注文システムを書けと言えば、彼らは直感的にコアチャージ、複数通貨、一回の購入で複数の支払い方法、出荷制限を処理する機能を追加できる。
- なんちゃってアジャイルを許さない。
- 経営陣が気づいていない問題を解決する方法を見出す人たちである。
回答3
新しいプロジェクトに対する反応
- 初心者:"さーどんな技術を使うんだ?"
- 中堅:"やべえ少なくともあと2週間はブロックされる!"
- シニア:"それはステークホルダーによる要求なのか?それとも関係者が想像したものなのか?"
要件変更時の反応
- 初心者:"大変だ!大変だ!大変だ! 一週間の仕事が無駄になった! どうしたらいいんだ?"
- 中堅:"これではプロジェクトが遅れてしまう。でも、来週はこの別のプロジェクトが予定されているんだ!"
- シニア:"時間と予算の制約は調整された?"
締め切りが近づいた時の反応
- 初心者: "えーと、Xを修正する必要があって、Yはリファクタリングする必要があって、誰か僕のコードをチェックしてくれない?"
- 中堅:"これは、かなりタイトになりそうですね!"
- シニア: "受け入れテストは合格しているか?マージのコンフリクトはないか?"
プロジェクトが終了するときの反応
- 初心者:"もしかしたら、何か忘れているかも?"
- 中堅:"全部できたはずなのに!?次はタイムマネジメントを改善できるかな?"
- シニア:"全部できたよ。さあ、次回はどう改善しようか?"
回答4
初心者は「私のコードは問題ない、コンパイラやOSにバグがあるに違いない」と言う
中堅は「私のコードにバグがあるに違いない」と言う。
シニア開発者は「私のコードは問題ない。コンパイラやOSにバグがあるに違いない」と言う。しかし、彼らがそう言うときは、たいてい本当にそれが正しい。
シンプル、かつ、読んでいて何かを思い出したがこれは「完全に理解した」そのものですね…。
参考:
「完全に理解した」は海外で通じるのか
The Dunning Kruger Effect - DEV Community 👩💻👨💻
感想
引用: https://qr.ae/pGQLOQ
初心者はともかく「自分が」学ぶこと、上級者は「人を」助けること、かな~などと最初は考えていた。だが
- 初心者: 何がわからないのかわからない。
- 中堅: わからないことがわかる。
- シニア: わからないことがわかったうえで、「わかりません」と言ってステークホルダーとの調整、交渉ができる。
というのが実際のところ、分かりやすいかもしれないですね。謙虚になろう...
以上楽しんでいただければさいわいです。