偉大なソフトウェア開発者の8つの資質

公開されました。 最終更新日
超成功しているエンジニアの開発者の強み10選

7年前に初めて DevSkiller を設立したとき、私のチームの目標は、企業が優秀な開発者を見つける手助けをすることでした。それ以来、私はフォーチュン500の企業だけでなく、世界的に小規模な企業とも仕事をする機会に恵まれました。私はCTO、ITマネージャー、チームリーダー、チームメンバー、人事担当者などの技術者と話をしました。これらの人々は皆、優秀な技術系人材の発掘と採用に責任を持っていました。彼らは皆、普遍的な問題に直面していました。 プログラマーの採用方法.同じ開発者の強みを追いかけていた。

すべての始まりは 良い開発者を見極める ここで、重大な問題が発生します。 開発者の主な強みは何ですか? このテーマについては多くの議論がなされています。これを読むことをお勧めします。 クオラのスレッド。 業界の重鎮からの洞察が詰まっています。

私たち自身の経験、何百回もの講演、何十回ものピボットに基づいて、私たちはこの議論に参加すべきです。私たちが考えたのは ソフトウェアエンジニアとしての重要な資質のリストです。

ソフトウェア開発者の強みと弱み

1.好奇心

好奇心は、偉大で寛大な心を持つ人にとって、最初の情熱であり、最後の情熱でもある。"と、言われました。 サミュエル・ジョンソン.それは、優れたプログラマー(およびその偉大で寛大な心)の資質を考えるときにも言えることです。ジョンソンの視点を発展させた、より現代的な参考文献を探してみよう。 Dan Pupius は、「好奇心は、エンジニアの人生を通じて重要である」と言っています。それはあなたの背中を押してくれます。 新しい言語を学び、実験し、新しいソリューションを探します。 それこそが、エンジニアに求められるものだと思います。それはまた、あなたを 他者の建築的選択を調査すると同様に 質問の前提.プピウスは、優れた工学者の資質の多くは「豊かな好奇心に由来する」と主張している。

Etsyのチーフ・テクノロジー・オフィサーであるJohn Allspaw氏は、彼の投稿 "シニアエンジニアになって".と言っています。 一流の開発者は好奇心旺盛です。 彼らは仕事をしながら、自分自身や仲間に質問をする傾向があります。

  • "What could I be missing?"
  • "どうしたらうまくいかないのか?"
  • "私の考えにできるだけ多くの穴を開けてくれませんか?"
  • "技術的に優れていたとしても、組織の他のメンバーが操作、トラブルシューティング、拡張できるだけの理解度があるか?"

私もそう思います。一見すると、悲観主義者の質問のように見えるかもしれません。しかし、実際にはそうではありません。書きたいという情熱を持った好奇心旺盛な人の質問なのです。 エレガントで自己矛盾のないシステム.徹底しているからといって、「もうダメだ」と勘違いしてはいけません。

開発者の強み好奇心は、終わりは近いのサイン

ソースは キャンペーン概要

2.テクニカルスキル

Rahul Varshneyaは、「。ファインアートとプログラミングは似ている 優れた技術力があっても、優れたアーティストやプログラマーにはなれない」ということです。技術的なスキルだけでは、優れたものは生まれません。しかし、その仕事に適したスキルを持っていない人に、優れた結果を期待することはできません。スキルとは、パズルを構成する要素の一つであり、単独ではあまり役に立たないものと考えるべきでしょう。しかし、他の開発者の強みと一緒にあれば、素晴らしい効果を発揮します。幸いなことに、ソフトウェアエンジニアの主な強みや資質の存在は、以下の方法で非常に簡単に確認することができます。 コーディングテスト.

技術的な細かな知識は重要であることを忘れてはいけません。しかし......もし、開発者としての力をすべて発揮していながら、まだ学習中の有望な候補者に出会ったら、ジュニアポジションでの採用を検討してみてください。驚くほどの能力を発揮してくれるはずです。

スピードと生産性

A Sackman, Erikson, and Grantの研究 は、プログラマーの生産性に10倍の差があることを発見しました。しかし、この研究には欠点がないわけではありません。個人の能力の違いをコントロールしていない」こと。また、低レベルのプログラミング言語と高レベルのプログラミング言語で作業するユーザーの結果を組み合わせています。

開発者の強み研究 1960年代の生産性チャート

イメージソース。 Construx.com

スティーブ・マコーネルは、これまでに得られた研究結果について、次のように述べています。 をテーマにしたものは、制限がないわけではありません。それは ではなく 決定的ではありませんが、間違いなく示唆的です。 そして、それこそが、あなたが見るべき姿なのです。

給与に反映されないことが多い 一桁の違い 開発者間.開発者の生産性を測定する方法はあるのでしょうか、また、それを試みるべきなのでしょうか。

悲しいことに、開発者の生産性を測定することは、これまで困難でした。SLOC(Source Lines of Code)は、開発者の価値と同義ではないことがわかっています。実際のところ、コードの世界では(自己矛盾がなく完全に機能している限り)少ないほど良いのです。によると フィル・ハックを提供しています。 簡潔で保守性が高く、理解しやすいコード は、大量のコードを高速で打ち込むよりも優れています。なぜか?新しい機能を追加したり、アップデートしたりするときのことを考えてみてください。脆いコードを解読して、パッチを当てるのに何時間もかかるのが普通です。しかも、そのためには莫大な費用がかかります。言い換えれば、こういうことです。 速くても無頓着な開発者にかける費用を、結局はQAチームにかけることになります。.

dilbert cartoon with developer strengths joke

ソースは ディルバート

ITにおける生産性に興味のある方は、" Read "開発者の生産性の神話" by Dustin Barnes.

アウェアネス

Paul Haack氏は次のように述べています。 ベストデベロッパー コーディングするタイミングとしないタイミングがわかる.彼は、車輪の再発明はプロジェクトに不必要な負担をかけると主張しています。代わりに、既存のライブラリを使って時間を節約する。理にかなっていると思いませんか?しかし、すべてをゼロから始めることは、最も大きな時間泥棒のひとつです。

意識も リスク許容度の閾値を超えて顕在化する.これは非常に重要なことです。なぜならば、しばしばライブのシステムをリファクタリングする必要があるからです。そこでは、物事がうまくいかないことがあります。エゴに邪魔されることなく、リスクを現実的に評価できることは、ソフトウェアエンジニアの重要な強みであり、資質の一つであることは間違いありません。

3.直感

ヴァーシュネアが主張するように、解決策を考え出すのに苦労する開発者がいる一方で、それが自然にできる開発者もいます。それは、「プログラムを作ったり、問題を解決したりするために座った瞬間に、天啓を受けたかのように」です。

doge meme 非常に洞察力のある開発者の強みジョーク

優れたソフトウェア開発者 アルゴリズムやアーキテクチャーを直感的に理解することができます。 この能力により、学習速度が速くなり、次の品質につながります。

4.学ぶことへの愛

John Krystynak氏によると、"継続的な学習への真摯な取り組み"の一つです。 開発者の主な強み."知らない "から "知る "までの基本的な練習を、毎日好きにならないと、うまくいかない。

これは、ITの世界では特に顕著です。自分のやり方を持っていることは便利ですが、知っていることから抜け出すことが重要です。より速く物事を進める方法を探す。そのための方法のひとつが パターンに気づく そして 結論.

優秀な開発者になると、開発の方法は非常にたくさんあります(ダジャレですが)。

  • カンファレンスやハッカソンなどの業界イベントに参加する。AppLovin社のThomas So氏は、これらを次のように呼んでいます。 ジョブレディネス・トレーニング.
  • メンターを見つけること。
  • サイドプロジェクトに取り組んでいます。
  • ピア・フィードバックを求めること

5.適応性

ITの世界は急速に変化しており、優れた開発者としては、常に適応性を保つ必要があります。を常に持っている人を雇うのが安全策です。 新たなツールを求めて そして の方法があります。 彼らはしばしば 業界ニュースのフォロー と単に 工芸品へのこだわり.

自分の好きな技術以外にも多くの知識を持っていればいるほど、チームや組織全体にとってより大きな力となります。また Marius Mazilu 技術の多様性があまりにも広まっているため、ある特定の技術に特化することが必ずしも成功の道を保証するものではない」と主張する。Maziluは、より多機能であることが重要だと考えています。というのも、成熟したテクノロジーは安定性が高く、追いつけないからです。つまり、スキルセットがすぐに古くなってしまうのです。一方、斬新なフレームワークは不安定なため、一般的に膨大な時間を費やす必要があります。彼が主張するように、「ある日、彼らがあなたを愛していないことに気づいてショックを受けるかもしれません」。

マジルは 7つのシンプルなルール に従うべきだと思います。 技術を維持するために

  1. 直感を信じる。
  2. 常に基本に立ち返る。
  3. 銀の弾丸に注意してください。これらは、プロジェクトに適合しないにもかかわらず、広く利用されている市場性の高い技術を含みます。
  4. デバッグを学ぶ。
  5. スクリプトを学ぶ。
  6. コードの見た目にこだわる必要はありません。
  7. 群衆に合わせて

6.積極的な姿勢

前向きな姿勢は、優れたソフトウェア開発者の重要な資質の一つです。優れたプログラマーの資質の一つは、日々、問題を解決していることですが、だからといって 考える.タスクやチケットは山積みになりがちなので、「やり遂げる」という姿勢が必要です。十分な解決策を提示して、次の課題に移るタイミングを判断することが重要です。ここでの注意点は、開発者が処理できる以上のタスクを押し付けないことと、現実的に物事を進めることです。

ダミアン・フィリアトラウ は、優れた開発者に必要な資質として、「前向きな姿勢」を挙げています。試しに、一見簡単な「世間話」のような質問をしてみて、その回答がポジティブなものかネガティブなものかを確認してみるといいそうです。このような質問には次のようなものがあります。

  • "Do you think yourself lucky?生意気なのか、謙虚なのか)。
  • 面接までの通勤時間はどうでしたか?不満があるか、悩みがないか)」。

7.メンターシップを受け入れる

John Krystynakは、「偉大なプログラマーは、孤立していては偉大になれない」と言っています。私は彼のその言葉に敬意を表します。IT業界でメンターシップモデルがうまく機能している理由の1つは 優れた開発者は、見習いとして最も効率的に学ぶことができる。.経験豊富な同僚の仕事ぶりを見ることができれば、物事を理解するのにかかる時間が短くなります。一流の技術者がメンターシップを推奨するもう一つの理由は、自分の長所と短所の両方をさらけ出す必要があるからです。このことは、あなたに 自分のエゴを抑える.

そのような姿勢を組織の中で育むために、雇用者としてできる最善のことの一つは、次のようなことです。 熟練したプログラマーと新入社員のペア.と思われるかもしれませんが、すでに多忙を極めているメンターに負担をかけることになるでしょう。と思うかもしれませんが、そのようなことはありません。 メンティーとメンターは、その配置から学びます。.もし、あなたがメンティーに何かを説明できないとしたら、それはあなたがそれを十分に理解していないということです。あるいは十分に伝えられないということです。これは、この関係において、双方に学習の機会があるということです。

8.コミュニケーション・スキル

Damien Filiatraultは次のように述べています。コミュニケーション能力の高さは、開発能力の高さに直結します。."その理由は..:

  • わからないことや再確認したいことがあったときに、どのような質問をすればよいかを知っておく必要があります。
  • 同僚とのコミュニケーションをベースに物事を考えていくことが可能です。ということは 書き込まれた仕様書に頼る必要はありません。
  • コンセプトが理解され、迅速に伝達される 成功した開発者のチームで
  • 優れたプログラマーの資質の一つに、「次のことができる」というものがあります。 技術者、非技術者を問わず、説得力のあるコミュニケーションができる。.

開発者の強み:結論

優秀なプログラマーを見つけるのは難しくなっています。テック業界は人材不足の状況にあります。つまり、見つけられるだけの数の開発者を必要としており、企業は 技術系の優秀な人材を獲得するために、様々な工夫を凝らしています。

開発者の強みを活かしたGoogle広告

ビジネスを成長させるためには、開発者の強みを見極める必要があります。しかし、それには早さが必要です。有望な候補者を見つけたら、すぐに行動しましょう。希少価値のある候補者は、採用担当者が同じ候補者を奪い合います。

開発者の強みは何ですか?皆さんのご意見をお待ちしています。

編集部注:この記事は2017年4月に掲載されたものですが、正確性と網羅性を高めるために更新しました。

シェアポスト

技術者の採用についてはこちら

ラーニングハブに登録すると、有益な情報をメールで受け取ることができます。

シームレスにコーディングスキルを検証&開発

DevSkillerの製品をご覧ください。

セキュリティ認証とコンプライアンス。お客様のデータの安全性を確認します。

DevSkillerのロゴ タレントブーストのロゴ タレントスコアのロゴ