スーパープログラマのようなものはありますか?[閉まっている]


14

スーパープログラマに出会ったことがありますか?「通常の」経験豊富な/優れたプログラマーと比較して、彼または彼女をそのように識別するものは何ですか?

また。チームの中で彼がスーパープログラマーであると信じている人にどのように対処しますか?彼が実際にそうであるか、そうでない場合の両方?

編集:興味深い入力をすべてのラウンド、ありがとう。いくつかのことを収集できます。

いくつかの定義が現れました。ローカライズされた定義(著者またはその知り合いをスーパープログラマーとして識別した)を無視して、私はいくつかの定義が好きでした。

  1. Thorbjørnの定義:良いチームに相当することを長期間一貫して行う人。

  2. ヘンリーの答えからリンクされた自由電子。卓越した能力を備えた非常に生産的な人。説明は良い読み物です。

    自由電子は、コードに関しては何でもできます。完全なアプリケーションをゼロから作成し、週末に言語を習得できます。最も重要なことは、膨大なスパゲッティコードの山に飛び込んで理解し、実際に機能させることができることです。Free Electronを中心にビジネス全体を構築できます。彼らはとても良いです。

    最後の定義とは対照的に、天才プログラマーの神話についてジェームズがリンクしたポイントです(ビデオ)。同じアイデアは、rwongのコメントでエゴレスプログラミングとして表現されています。彼らは、そのようなユニークなプログラマー向けに最適化するか、チーム向けに最適化すべきかという反対意見を提示します。

これらの定義は間違いなく異なるので、どちらが良いかについての意見があれば感謝します。または、必要に応じて独自に追加することもできますが、なぜそれらと異なるのかを説明するのに役立ちます。


3
はい、彼の名前はジョン・カーマックです。
ゲイリーウィロビー

1
私は机のドローでロックされた小さな紙に4つの無料電子のリストを持っています。
ヘンリー

「スーパープログラマー」==「天才プログラマー」click_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
ジェームス

エゴレスプログラミングに関するジェフの回答を参照してください。
rwong

The Mythical Man-Monthの本en.wikipedia.org/wiki/The_Mythical_Man-Monthから、素晴らしいプログラマーが大丈夫なプログラマーよりも何倍も優れていることを示す研究論文が引用されました。すべての詳細を思い出すわけではありませんが、チームでプロデュースできる人には、他の人よりも桁違いに多くの価値があることは明らかです。
トラビス

回答:


17

「スーパープログラマー」という用語は、通常、優秀なプログラマーのチームを必要とする作業を行うことができ、長期間一貫して行うことができる人のみを対象としてます。

これは、高品質のコード(ドキュメント、テストなど)の作成と、多くの知識と才能を必要とする非常に難しい問題の解決の両方に当てはまります。

ただし、すべてのアカウントで長期間にわたって高いパフォーマンスが必要です。誰も理解も維持もできない大量のコードを書く人にとっては、この用語は当てはまりません。

対処方法?そのような人が本当にいるなら、その人が優れているために必要な足場を提供するためにできる限りのことをしてください。これは、無関係なものを邪魔にならない場所に移動し、その人が必要とするリソースを提供することを意味します。非常にパフォーマンスの高い人は謙虚になる傾向があることがわかりました。

残念ながら、彼がスーパープログラマーであると思っている人とそうでない人がいる可能性がはるかに高くなります。それらに対処する方法は、私の経験では、それらのパフォーマンスを測定可能にすることです。「FindBugsは問題を見つけられない可能性があります」、「すべてのコードにはユースケースに対応するテストが必要です」、「ピアレビュー」。

コードが本当に理解しにくい場合は、毎週の会議を検討してください。ここでは、スーパープログラマーは、誰もが説明を求めて匿名で要求できる最後の会議以降に自分が書いたコードを説明し、誰でも匿名で拒否して受け入れることができます維持できないコードベース。その後、少なくともあなたは考え方を共有し、将来のメンテナーがコードの一部を拒否できるようにしました。これはまた、プログラマーに余分な作業を行わせるコードの種類を強く示します。

(編集:匿名ビットの理由は、それほどスーパープログラマーが彼に反対する人々に報復するのを避けるためです)。


2
匿名の入力を除いて、優れた点。チームが真に統一し、「スーパープログラマ」が実際に定義まで測定するかどうかを理解する場合、チームとソフトウェアの成功のために協力するために、お互いの長所、短所を学ぶ必要があります。 、そして信頼を築きます。スーパープログラマーとしての短所を見つけて修正するために、他の人の批判(ここである程度行われているように)に自分自身を開放する問題です。
Huperniketes

@Huper、匿名性は、これが最初に個人的になることを避けることです。あなたが超人的だと信じているなら、批判にあまり上手くいかないかもしれません(あるいは、この質問はそもそも尋ねられなかっただろう)。

2
@Thor、誰かが自分について信じていることを扱っているとき、それはすでに個人的なものです。匿名性は、信頼の開発をはるかに困難にします。チームのメンバーは、正直であること、批判を歓迎すること、重要な意見が公開されていることを信頼する必要があります。
Huperniketes

スーパープログラマーは、ジュニアプログラマーにコードを説明するのが簡単ですか、それとも難しいでしょうか?ギャップが大きい場合、説明は難しいかもしれません。しませんか?
ムハンマドアルカウリ

1
@Muhammad、私の定義では、スーパープログラマーは優れたドキュメントでクリーンで保守可能なコードを記述し、ジュニアプログラマーでも理解できることを考えます(ランタイムで利用可能なもののためにJavaであまり必要とされない非常に複雑なアルゴリズムを除き、だから私はそれらを考慮しない)。ジュニアプログラマーに説明するのは簡単だと思うかもしれませんが、もっと時間がかかるかもしれません。

5

スーパープログラマーとは、高速化コンパイラーよりも高速にコードを生成でき、再帰関数よりも強力で、単一の境界でFIFOスタックを飛び越えることができる人のことです。

彼がスーパープログラマーであると信じているチームの人に対処する方法は、彼を彼の唯一の弱点-日光にさらすことです。


5
@Chetan:FIFOスタックとは何ですか?
rwong

3
@チェタン:これは役に立たない答えです。たぶん、あなたは非常に信じられないほどのプログラマーと仕事をしたことがないので、あなたはまったく価値があるのだろうかと思い始めます。
JBRウィルキンソン

スーパープログラマーはクラウドに住み、Mind Query LanguageのパブリックAPIを提供する必要があります。
rwong

@rwong先入れ先出しスタック。キューとも呼ばれます。
代替

1
@mathepic:キューをスタックと呼べるなら、LIFOとFIFOは同じものだということですか?(言い換えればリンカーン)
rwong

3

Coders at Workスタイル自分の章を書くように人に依頼します。出版社に提出してください。拒否された場合、その人はスーパープログラマではありません。


あなたの声明の逆は本当ですか?(受け入れられた場合、彼/彼女がスーパープログラマであると仮定できますか?)これは明確化を使用できると思います。
代替

彼がかつて「Javaベースのトランザクションメッセージングシステムのアーキテクト」であったことを読んだ直後に、その本の著者に対する敬意を失いました。ああ、まあ、少なくとも彼はその仕事をやめる気がした。
ダンモールディング

1
@Dan Moulding:彼が黙って、その本でインタビューしているプログラマーにすべての話をさせてくれる限り、私は彼が何を言っているか気にしません。(私はちょうどその本を買って、それを読むのを楽しみにしています。それが私がそれがそうであると思うのと同じくらい良いことを願っています)。=)
ギャブリン

アイデアは良いのですが、出版社はスーパープログラマーではなく有名なプログラマーを受け入れる傾向があります。正しい?
ムハンマドアルカウリ

@Alkarouri:supersuperstarと同じ意味を持っている場合、はい、スーパープログラマーであることは有名であることも意味します。
rwong

2

他よりも多くの出力を生成できる人がいます。

他よりも不良率が低い出力を生成できる人がいます。

一貫して、通常よりも低い不良率でより多くの出力を生成できる人は、スーパープログラマーと呼ばれる価値があるかもしれません。

そのように知られている、またはそのように考えられていることは、通常、後視の恩恵を受けた賢明なマネージャーにのみ明らかです。

彼らがスーパープログラマーである人は、おそらく大きな自我を持ち、彼らは良いと思います。それは彼らを良くしません。

態度<>能力。


1

スーパープログラマー:プログラミングに強い献身を持つ、平均以上の知能を持つ人。私は多くの時間をプログラミングに費やし、簡単に辞めず、特定の問題を解決しようと決心している人について話している。保留中の問題/バグがある場合、この人はめったにスリープ状態になりません。スーパープログラマは、効果的で高速かつ信頼性の高いコードを記述します。スーパープログラマーは、少なくとも1つのプログラミング言語(およびテクノロジ)の広範な深い知識を持ち、他のいくつかの言語に精通しており、必要なことはすぐに習得できます。


0

スーパープログラマに出会ったことがありますか?彼または彼女をそのように識別するもの

createのあるプログラム/プロジェクトから、そのソースコード、行った研究。

彼はスーパープログラマーだと信じている

あなたが彼がそれを信じていると言うように、これは彼にそれを信じさせないようにすることは非常に困難です。最悪の考えは、その人は優れたプログラマーになることをやめたということです。なぜなら、彼はすべて準備ができていると思い、彼は彼の進化を止めるからです。プログラミングでそれよりも悪いこと。とにかく、あなたはいつでも証拠を求めることができます...そして彼/彼女が彼と彼女がスーパーであるという仮定をするために彼/彼女が彼自身を比較する人と尋ねます。

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