「最高の人材を雇う」ことは、通常のデスクトップアプリケーションプログラミングにとって本当に実用的なアドバイスですか?[閉まっている]


61

背景として、etabsに似たUIのようなAutoCADを使用して、デスクトップエンジニアリングアプリケーションを実行しています。

本当に私を悩ませているのは、最高の開発者を雇う必要があるかどうかです。まず第一に、私たちは採用に大きな困難を経験しています。私たちが見ているほとんどの履歴書は、単純なCRUDアプリか、実際には多くの筋金入りのプログラミングを伴うとは思わないSharePointのカスタマイズのいずれかです。面接を求める人でさえ、ほとんどがフィボナッチ数列と単純なバイナリ検索を行うことができません。また、候補者がチェックするために辞書を検索する必要がないようにヒントを出し、問題を明示的に説明するのに十分です。 「フィボナッチ数列」とはどういう意味ですか。

これは私に考えさせられました:はい、計算幾何学/線形プログラミングを行うときはある程度のプログラミング適性が必要であり、ソフトウェアアーキテクチャを設計するとき/または使用するソフトウェアパターンを決定するときはある程度のプログラミング適性が必要ですが、それ以上、私たちのコードの多くは単なる配管コード(私が思うに)であり、プログラミングにある程度精通している人が行うことができます。

今、プログラミングの才能が本当に必要であり、スーパースターの開発者を雇うのが非常に難しいことを考えると、Joelが説いていることとは直接矛盾して、標準を下げてまあまあの人だけを雇いたいです。

どう思いますか?

編集:計算ジオメトリ/線形プログラミングライブラリ全体を書き換える必要はありません。私のアプリケーションに関する限り、あなたがする必要があるのは、手元の問題を適切な計算幾何学/線形プログラミング用語にキャストする方法を知り、既存のライブラリをいつ/どのように使用するかを知ることです。したがって、見かけほど難しくはありません。


53
標準的な答え:多分あなたは低すぎる給料を提供していて、より良い開発者はあなたのために働くことに興味がないのですか?とにかく、もしあなたがバイナリ検索ができない人々に問題があるなら、それはスーパースターの不足による問題ではなく、普通の普通のコーダーがそれをすることができるはずです。
quant_dev

15
あなたのタイトルの大文字は私にそれをPANDAとして読ませる:)
cthom06

13
彼らはフィボナッチ数列を書くことができませんか?それは決して難しいことではありません...これらの人々は実際にはプログラマーになることはできません。
ベンB.

6
グラビトン、それはすべて給与に帰着します。(たとえば)給与の3倍の市場価値を提供した場合、仕事のために仕事を辞めたいと思う人がいるでしょう。私はあなたがそんなに多くを提供することを提案していませんが、それはポイントを例証します。良い履歴書が必要な場合は、支払いが必要です。
リウォーク

7
@ user1525それは些細なことなので、開発者は通常それを実装するのに問題がないはずです(再帰または再帰なし)
ダークナイト

回答:


110

ジョエルの読みすぎをやめることをお勧めします。彼が彼のブログに書いたことは、このサイトでの彼の反応と矛盾しているので、私は彼の言葉をあまり受け入れません。

スーパースターを作るものと、なぜそれが必要なのかは、長くてどこにも行かない議論を開きます。それはエリート主義であり、実用的ではありません。

必要なのは、次の人です。

  1. あなたがやっていることをやってみたい
  2. 情熱的な熱狂的なプログラマーになるでしょう
  3. あなたの仕事を正しく行うために必要なことを学ぶ可能性があるでしょう

残りは重要ではありません。

この種のCSに強いプロジェクトに飛び込み、CRUDアプリケーションのコーディングを見ないこと以外に何も望んでいない若い卒業生がどれだけいるのか信じられないでしょう。しばらく前、私は彼らの一人でしたが、コンパイラ開発に関するプロジェクトに参加することを実際に夢見ていましたが、見つけることができませんでした。それらの1つにチャンスを与えませんか

AutoCADはスーパーマンによって書かれたとは思わない。成功したプロジェクトのほとんどは、単に物事を成し遂げたいと思った人々によって行われ、彼らはそれを本当に望んでいました。


私たちが見ているほとんどの履歴書は、シンプルなCRUDアプリか、SharePointのカスタマイズを行っています。

ほとんどのジョブがそれだけを必要とする場合、何を期待しますか?人々は大学でCSを勉強していても、それが本当に上手だったかもしれませんが、実際のプログラミングで10年も使用したことがない場合、CSを思い出すことは期待できません。明らかに、この知識がどこでも使用されない場合、新鮮さを保つためだけに、毎年古いCSの本を読む人はいないでしょう。


11
すばらしい答えです!

33
ええ、しかし私は手がかりを持っていない情熱的な熱狂的な人々と仕事をしました。彼らは重荷であり、あなたはあなたの組織でそれらを望んでいません。だから、本当に馬鹿げたシュムックを取り除くためのいくつかのBASIC適性テストは非常に良いことです。
すぐに

3
最後の段落は私をティーに説明します。
ozz

20
まったく役に立たず、目立ったエラーさえある多くの「適性テスト」を見ました(そして、エラーを見つけて指摘することは、開発者としての仕事の一部です...)
11

2
@Developer Art、おそらくあなたにとって幸運でしたか?面接の質問の間違いを彼らに納得させることができなかったなら、あなたが仕事でどんな問題を抱えているか想像してみてください。
マークランサム

41

私が本当に好きな本は、最初にすべての規則を破ることです。平均的なマネージャーと良いマネージャーの違いに関する多くの情報があります。優秀なマネージャーが何度も何度も言った重要な洞察の1つは、文章の中で彼らの1人によって要約されました。 はい、採用に長い時間がかかるのはイライラしますが、それだけの価値はあります。

2つ目の留意点は、プロジェクトのスループットを測定すると、5〜8人のチームの生産性のピークがあることです。20人以上のチームを編成するまで、同じ生産性に戻ることはできません。小さなチームダイナミクスが機能する規模を超えてチームを成長させることには、非常に慎重になります。そして、もしあなたがその閾値を下回ろうとしているなら、あなたは本当に5-8人の人々が良いことを望んでいます。

どちらの点も、適切な雇用を差し控える方向に強く語っています。


2
その引用に対して+1。これは、ここ数年で私が気づいたことを完全に反映しています。
クリス

何、5-8ピークが面白いのは、あなたが10人を取得するや否や、あなただけもちろん、仕事のニーズがあまりにも分割され:)分割し、できることです好ましくはランダムに...
マシューM.

@ mattieu-m:多くの人がその理論を持っています。2つのグループが実際に頻繁にやり取りする必要がある場合、それは機能しません。彼らに本当に別々の懸念を与えることができれば、それはうまくいきます。
-btilly

26

誰もが「上位1パーセンタイルのみを雇う」と主張しています。それが本当なら、雇用された人々の100%はすべての人々の「トップ1パーセンタイル」にあるので、すべての人々の99%は失業します(どの分野でも)。これは明らかにそうではなく、明らかにそのグループに属さない経験豊富な人たちがいるので(他にこの質問をするのはなぜか...)、これは真実ではないことがわかります。

実際、そのような人々だけで構成された組織は非常に不安定です。あまりにも多くの自我、あまりにも多くの矛盾するアイデア。誰もが自分のことをするにつれてバラバラになり、すべての相対的なメリットについての理論的な議論を終わらせないか、決定が行われるたびに感情が燃え上がると絶え間ない叫びの試合に進化します。


13
問題は、応募者の上位1%だけを採用したからといって、開発者の上位1%を採用しているという意味ではありません8 ')*スーパーヒーローが行く限り、彼らはチームの他のチームにとって頻繁に問題と見なされています。200%で働いているのに5人を50%に減らした人は、純益ではありません。
マークブース

2
+1:統計的に、ほとんどの人は平均の数パーセント以内です。それに感謝しない人は誰でも夢の世界に住んでいます。そして、あなたは絶対的に正しいです:あまりにも遠く、平均からの人々は、彼らが上だかどうか、破壊されたり能力で平均以下。
悪魔の子犬

5
@Satanicpuppy:統計的に、人々の約3分の2が平均から1標準偏差以内にあり、98%のようなものが2標準偏差以内にある正規分布を考えます。これは、標準偏差が何であるか、または実際に任意の分布が正規である場合には何も言いません。プログラマー間のプログラミング能力は間違いなく歪んでおり、正規分布の右尾部にさえなる可能性があります。
デビッドソーンリー

11
主な理由はなぜ間のプログラミングの才能プログラマが歪められる可能性がある、および/またはプログラミングの才能場合、正規分布の右の尾のようになり、人間が正常に配布されました。プログラマーになる人間のサブサンプルは、その分布の偏ったサンプルです。つまり、プログラミングが平均的または悪い人がプログラマーになることはめったにありません。これにより、「平均的な」プログラマーは一般的な人口に比べて平均以上の才能を持つことができ、またプログラマーの配布才能を正規分布の右尾のように見せることもできます。
マイケルマク

2
@david:「だれも平均をはるかに下回ることはできません」私はあなたが働いている場所で働きたいと思います。
悪魔のような子犬

25

最初に確認する必要があるのは、希望する基準に達していない履歴書を取得する理由です。私は多くの優秀な人々と仕事をしてきたので、彼らはそこにいます。そして、このアプリケーションは私にとって非常に興味深く聞こえます。フィボナッチ数列とバイナリ検索を実行できる人を獲得できない場合(見た目よりも困難です。Knuthによると、最初の公開から最初の正しい公開までは数年でした)、あなたは良いものは離れています。

あなたが支払うよりも多くのスキルを求めていますか?間違った場所に広告を掲載していますか?あなたの会社は場所や評判によって魅力的ではありませんか?これが最初で最も基本的な問題であり、緊急に解決する必要がある問題です。あなたとあなたの同僚は、あなたのために働いていない善良な人々を知っています。あなたが持っているものを見せて、彼らが誘惑されるかどうか、そしてそうでないならなぜそうではないかを彼らに尋ねてください。あなたはそれを手伝って理解するのに問題に近すぎるかもしれません。

人を雇わないでください。彼らがあなたがしたいことをすることができるので、人々を雇ってください。それが当てはまるので平凡な人を雇うと、あなたはゆっくりと良い人を失い、代数が不安定な計算幾何学で物事をしようとしている人と一緒になってしまいます。(数人の平凡なプログラマーのために仕事をしているので平凡な人を雇うことは別のことですが、あなたが必要とする質の高い人を雇うことができなければなりません。)


7
人事部門は、ソフトウェア候補者のスクリーニングが非常に無能だからです。要件:コーヒースクリプトで10年、PHPで40年のプログラミング、教育:BS /
BA-シークレット

1
@ user1525:HRの不適格かもしれませんが、重要なポイントは、それを修正する理由と方法を見つけることです(または修正不可能であることがわかったので、すぐに出荷する時間であることは明らかです)。結論に飛びつきません。あなたの答えは別のアプローチを示唆しています:良い人に履歴書を提出してもらい、人事が彼らに何をするかを見てもらいます。
デビッドソーンリー

18

「ほとんどはフィボナッチ数列と単純なバイナリ検索を実行できません」

あなたの基準は確かに間違っています。私のグループでは、すべて物理学者またはエンジニアです。私たちはCSコースに参加しなかったため、バイナリ検索を行うことができなかったに違いない。私も言うだろう:自分でbinsearchを書いている人は、重要なことに集中する方法を知らない。

候補者が賢く、グループに適合する場合、それは非常に重要です。彼のプログラミングの才能をチェックしたいなら、彼/彼女に家でやるべき仕事を与えてください。それが彼/彼女にかかった時間に注意し、候補者が本物の仕事であるかどうかを調べるために結果を議論してください。


3
申請者がバイナリ検索を正確に取得することは期待できないかもしれませんが、申請者にいくつかのヒントを与えることができれば、彼または彼女は近づくことができるはずです。IMO、人々が百科事典を自分の頭に持つよりも、提示された課題をどのように解決しようとするかを見るのは興味深いです。
dpk

11
私は訓練を受けた物理学者であり、目隠しをして片手で背中を縛ってバイナリ検索を行うことができます。申し訳ありませんが、単純なバイナリ検索実装の作成方法がわからない...貧しい人々それを説明する他の言葉はありません、ただ悪いです。
quant_dev

はい、あなたは正しいです。少なくとも基本的な考え方であるバイナリ検索は、実際に行うことができます。私もできます。
マイケル

...少なくとも基本的なアイデア(最初にフィボナッチを調べないと、フィボナッチはできませんでした)。しかし、このようなテストでは、csクラスに参加したばかりの人や、誤って質問を用意してしまった人が有利になります。候補者に実際のプログラミング例を提供する方が便利です。すぐにプレッシャーをかけることなく、より複雑な問題をどのように解決するかを示します。また、候補者、あなたがどのような仕事を期待しているかも示します(良い例を選びます)。教科書の質問よりもはるかに便利です。
マイケル

2
フィボナッチ数列の定義が頭上からわからなくても心配する必要はありません。しかし、説明された後、それを計算するプログラムを書くことができないのは心配です(たとえ単純なCRUDアプリで小計を計算するだけだとしても)。
スティーブンC.スチール

13

「最高の人材を雇用する」ことはカルトになりすぎていると思います。

ほとんどのプログラミング作業は日常的であり、創造的ではありません。本当に創造的な新しいプロジェクトに取り組んでいるときでさえ。そのほとんどは平凡であり、多くの場合パターンに基づいています。これは特にUIに当てはまります。

最新のシステムのほとんどは、非常に多くの人々がそれらを書くことを必要とするため、本質的に、すべてが最高のものになることはできません。ほとんどの人は平均的です。たとえそうでなくても、多くの「平均的な」人の仕事をしなければなりません。

そうは言っても、基本的な能力と賢明な最低限の要件を要求することは不合理ではなく、妥協すべきものではありません。

定期的な手術について考えてみましょう:リスク許容度によっては、医学部長がそれを行う時間をとるまで10年待たずに、平均的な医師にそれを実行してもらうことをお勧めします。だからと言って、整然とした手術をさせるべきではありません。


屁理屈する...しかし、手術の種類の数百または数千を行った「平均」医師は、より多くの知識ではなく、ほとんどの経験を有していてもよく医学部の学部長に望ましいかもしれない
JoelFan

8

「最高の人材を採用する」とは、「現在の大まかに現在利用できる最高の人材を採用する」ことを意味する傾向があり、企業によって異なることを意味します。ロックスターコーダーを求めている人もいれば、細心の注意を払うソフトウェアエンジニアを求めている人もいれば、将来のソフトウェアエンジニアを求めている人もいます。「万能」というものはないので、そのことを念頭に置いてください。おそらく、仕事の仕様から、あるタイプのプログラマーを探していることが示唆されており、インタビューでは別のタイプのプログラマーを探していると書かれています。突然、あなたはマッチを得ません。

そうは言っても、私はまあまあのプログラマーと働くのは好きではありません。まあまあ経験とは何の関係もない(彼らは20年もプログラミングをしているかもしれないし、それでもまだあまり得意ではない)が、すべては適性と熱意に関係している。これら2つのうちのいずれかに影響がある場合、問題があります。また、コードが十分ではないため、チームの他のメンバーが貢献をやり直す必要がある人を雇うことも意味がありません。座席の火傷が常に解決するわけではありません。残念なことに、座席の火傷が増えると、チームの優秀なメンバーが仕事して、まともなプログラマーがもたらした混乱一掃しようとするので、チームのより良いメンバーのためにより多くの仕事を意味する可能性があります。

ロックスターとして出会わない人もいますが、堅実な中堅レベルのプログラマーです。彼らはチームに所属していて、それは私が「まあまあのプログラマー」と言っていることではありません。後者は、パフォーマンスレビュー時に毎年解雇されることをほとんど避けない人です。


1
うん、「ロックスタープログラマー」という言葉でさえ、私は嫌がらせをしたくなる。
オズ

6

マネージャーのタイプとして、「トップ1%」を採用することは実用的ではなく、必要ではないことに同意します。私のアドバイスは、適切なチームを雇用して製品を構築および保守することです(ビルドと保守はニーズが大きく異なるため、2つの非常に異なるチームである可能性があります)

現在チームに所属している「重要人物」である人々(例:物事を成し遂げる、良い態度をとる、不確実性/高レベルの要件にうまく対応できるなど)を特定し、彼らを雇用することを強くお勧めします。過去に働いていました(そして、もちろん尊敬しています)。これにより、面接プロセスに関する不確実性が大幅に排除され、チームのゲル化が促進されます。

また、より「長期」-インターンプログラムに多額の投資をします。プログラミングチームが20人の場合、1年に5人のインターンを獲得し、実際に仕事をさせます。毎年好きな1つまたは2つを取り戻し、さらに5つのランダム変数を取り込みます。これはおそらく、チームを優秀なプログラマで満たすための最良の方法です。その後、日和見的に外で採用し、それらの候補者の水準を上げることができます。

すでに述べたように、面接プロセスに注意を払ってください。候補者にコードを記述させる(または、1時間で家に持ち帰る)問題の解決策を説明し、チームで昼食を食べさせます。彼らの技術的スキルと対人スキルを知りましょう。そして、来週から始まる大規模なプロジェクトのためにさらに20人の人々が必死になっているときでも、「ノー」と言うことを恐れないでください。


6

私の経験では、Paretto Principleはプログラミングにも適用されます。作業の80%は開発者の20%によって達成され、その逆も同様です。数字は誇張されているかもしれません。実際には、従業員の20%が作業の50%を行っているようになります(仕事とは、単にコード行ではなく、良い仕事を意味します)。実際にはベル曲線に似ています。したがって、10人のチームでは、1人のヒーロー、2人の偉人、4人の平均、2〜3人の哀れな人がいます。

多くの企業がベルカーブを使用して評価を評価しています。候補者がどれほど明るくても、彼らはレベルに落ちます。全員が同じレベルにいるチームを作ることはできません。起こらない。


2
+1、同意します。しかし、私は問題があると思います:「哀れなもの」(例えば、チームの士気など)が必要ですか、それともチームは彼らなしでも同じように良いでしょうか?また、就職の面接でそれらを認識できますか?
ニキーー

10
哀れな定義。彼らが退屈なうなり声の仕事をするが、驚異の跳躍を上げることができない良いプロッダーであれば、あなたはまだ彼らです。しかし、彼らが絶望的で、何もできない場合、それらはスペースの無駄です。
すぐに

哀れなものを保持する唯一の理由は、それらを置き換えるために誰かをより良くすることができないからです。彼らは、私たちが「ロバの仕事」と呼んでいることをします:あまり考えを必要としない小さなまたは大規模な変更。
DPD

1
インタビューでそれらを見つけることは可能ですか?はい、面接官のスキルによって異なります。私は彼らにいくつかのtexbookプログラムと問題をハンドランさせました。彼らがこのレベルに合格した場合、彼らが考えることができるかどうかを判断するために、いくつかのより複雑な問題を与えます。哀れなものは構文が得意かもしれませんが、それを実際に理解せずに暗記するだけです。彼らは問題解決に失敗します。自分で考えることはできず、Ctrl + C、Ctrl + V言語でしか動作できないと言う人もいます
DPD

4
ロバの仕事用ドローンは、少なくとも仕事をします。Haskellで開発された10年間の開発内容をOCamlへのリンクを2週間で3週間で書き直そうとすると、他のすべてがcr * pに変わります。その後、本当にそれらをしたくない!
すぐに

4

ここにはたくさんの答えがありますが、議論する必要がある点はまだあると思います。まあまあの人を雇うことがあなたのソフトウェア品質に与える影響と、それがマネージャーとしての生活をどれほど難しくするか。

「最高の開発者を雇う必要がある」という答え 常に大きな脂肪ですはい。もちろん、実際には、これは常に可能とは限りません。この質問を検討してもあなたがしていると思う危険な間違いは、「私たちのソフトウェアはとても簡単で、だれでもできる」と考えることです。これは間違っています。

ソフトウェアは完成しますが、疑いはありませんが、優秀なチームとまあまあのチームとではまったく異なる結果を期待しています。バグ、パフォーマンスの問題、保守性とスケーラビリティの問題などが増えます。もっと複雑な問題を通して、まあまあの人をベビーシッターする必要があります。適切なアーキテクチャを決定するのに、まあまあの人をベビーシッターする必要があります。

これを受け入れ、これを管理する準備ができている場合、それは大丈夫です。プロセスと結果に備えてください。


+1。はい。あなたが助けを借りてバイナリ検索書くことさえできない人を雇うことができるという考えは、彼らを純粋なデッドウェイト以外のものにすることができます-おそらくネットネガティブプロデューサー-まったくばかげています。
トムアンダーソン

3

優秀な開発者を雇うことは本当に問題ではないと思います。本当の課題は、彼らがあなたのために働きたい思うようにすることです。

最高のものを雇う必要はありますか?
私はそう信じています。優れた開発者は、すべてを時間通りに完了させるだけではありません。そのような個人だけが他の人よりも生産的であるだけではありません。優れた開発者も例でリードしており、単に他のチームメンバーに刺激を与えています。他の人は彼らと一緒に働いている間、非常に進歩することができました。

OK、だからあなたはあなたの基準を下げるつもりです。それはクールです。恐ろしい人を雇った後、おそらくあなたは気が変わるでしょう。CSのすべての質問に完璧に答えますが、実際に1行の量産コードを書くことはできません。それで幸運:)


3

一歩後退しましょう。

私たちは何をしようとしていますか?ソフトウェアを書く。

最高の人材を採用する必要があると思うのはなぜですか?その奇妙なアーノルドの子供は濡れた紙袋から彼の方法をハックすることができず、今ではSQLがすべて台無しになり、ログインできません。

さて、何が最高ですか?私は知りません、彼は多分多額のお金を望んでいて、素晴らしいポートフォリオで6フィートの履歴書を持ち、グーグルか何かで働いた人です。彼は学位を持っている必要があり、おそらく彼の名前の最後にいくつかの文字があります。ええ、それは私にとって最高のように聞こえます、そして最高のことでは、私はその異常なアーノルドの子供ではない誰かを意味します。ああ、彼は学校で聞いた、「バブルソートを書く」などと呼ばれる、本当に難しいくだらないことをする方法を知っている必要があります。ええ、学校でやらなければならなかったトリッキーなことをいくつか挙げてください。

アーノルドの子供のように思わない?しますか?バグのあるコードにうんざりしているので、何かを成し遂げるには永遠に時間がかかります。インタビューするこれらの新しい人は、すべてを書き直す必要があると言っています。

そうですね、アーノルドの子供に何をするように頼みますか?PHP Webサイトを作成し、jQueryを記述し、MSSQLでPHPに基本的なCRUDを実行させ、背景色を変更します。

それは非常に最高にのみ適したタスクのように聞こえますか?最善を尽くすことができると確信していますが、おそらくこれに合った適切なスキルセットを持っている人なら誰でもこれを行うことができます。

だから、あなたは最高を必要としませんか?そうです、私は自分の目標を達成するスキルセットを持つ人が必要です。

ああ。うん。


@ user1525、それはCRUDアプリではありません。それはエンジニアリングソフトウェアです。
グラビトン

常にではない。世の中の多くの仕事は、データ構造、アルゴリズム、または計算の複雑さに関する知識を必要としません。確かに、彼らはグーグル検索の仕事ではありませんが、それに対する大きな需要があります。求人掲示板のほとんどの投稿、「jqueryプラグインが必要」または「これらのpsdのようなiphoneアプリをください」を見てください。人々は最高か安いかを望んでいます。
シークレット

3

あなたの質問のタイトルは「通常のデスクトップアプリケーション」に言及していますが、あなたのテキストは計算幾何学と線形計画法の知識を適用する必要があることについて語っています。これらは、あらゆる進歩の大きな社会的影響を伴う、巨大で数十年にわたる研究プログラムを生み出した応用分野です(思い出してください、線形計画法は資源配分を抽象化します)。その結果、これらの分野の問題を解決するための非常にうまく機能する多くの洗練されたアプローチがあります。

悪い雇用

  • これらのクラスの問題を聞いたこともないかもしれませんが、
  • 一般的なソリューションに慣れていない可能性がありますが、
  • おそらく、そこにあるより良いものについては知らないでしょう(ヒント:ほとんどの学部生は、問題についてまったく聞いていても、派手なものについては聞いていません)。
  • そのようなことを実装するには、ほぼ確実に長い時間がかかります(教授の一部を含めて、データ構造に適合する大学院セミナー全体を提供するものを見たと考えています)。

言い換えれば、あなたが本当に歩行者に取り組んでいるかどうかを考えてください。もしあなたが素晴らしいなら、雇用はもっと簡単になるはずです。そうでない場合は、必要なことを実行できる人を待ってください。


計算幾何学/線形プログラミングライブラリ全体を書き直す必要はありません。私のアプリケーションに関する限り、あなたがする必要があるのは、手元の問題を適切な計算幾何学/線形プログラミング用語にキャストする方法を知ることができ、既存のライブラリをいつ/どのように使用するかを知ることです。
グラビトン

2

確かに私はジョエルの標準ではスーパースターのプログラマーではありません。それにもかかわらず、私は開発者としての20年間のキャリアでかなり成功したプロジェクトをいくつか書いてきました。あなたの質問を解決できたかもしれません。しかし、実際には、データベースまたはライブラリ関数に実行を依頼することにより、より複雑な作業の多くが行われる職場での私の経験からは少なめです。

ただし、経験の浅い人を採用する場合は、扱いやすいテクノロジーの使用を検討する必要があります。たとえば、プロジェクト全体でC ++を使用する場合は、C ++の部分を最高の人々が作成したライブラリに限定し、他のユーザーがVisual Basicでユーザーインターフェイスを実装できるようにします。


2

ランクに参加する従業員で検索する値を書き留めます。

唯一の価値がプログラミング能力である場合、それだけを大切にする人々にすぐに囲まれることに気付くでしょう。真に有能なプログラマーのほとんどは、より精巧なバリューシステムを持っているため、チームへの参加を控えます。

ただし、革新的、創造的、信頼できる、博学、好奇心、自己学習、社交的、有能で献身的な人材を探している可能性が高くなります。あなたの会社がこれらの価値を理解し尊重し、従業員がさらに価値を開発するのを喜んで支援することを示してください。

現在の従業員の価値を理解して受け入れ、求人応募でそれらを伝えます。持続可能な価値システムを持つ優れた企業は、優秀な従業員を引き付けます。


-1:もちろん、お金を言った(そしてOPが話した)場合、それは理にかなっているでしょう。しかし、この答えが彼にどのように役立つかはわかりません。あなたが基本的に言っているのは、私が正しく理解していれば、彼はアプリケーションに十分なマーケティングを入れていないと言っているのですか?まあ、それは少し助けになるかもしれませんが、私は通常、多くの優秀な人が少なくとも合理的な価値を価値に置いていないのを目にしません。..先ほど言ったように、「プログラミング能力」をお金に置き換えてください。あなたの答えはかなり理にかなっていますが、申し訳ありません。
n1ckp

あなたが私のコメントを理解していないなら、おそらくあなたはそれを修正すべきではありません。とにかく、私が意味することは非常に簡単です。時間が経つにつれて、私はかなりの優秀なプログラマーに出会いました。彼らは彼らの言語、アルゴリズム、数学、物理学を知っています...しかし、そもそも彼らを素晴らしかったのは、単なる工芸品以上のものへの関心でした。彼らはしばしば自分自身と他人の好奇心を大切にします。彼らは独立した博学を重要な特質(または価値)と見なしているか、または創造的な周囲の人々からインスピレーションを受けています。多くの場合、これらの値は収入よりも重要です。
-Dibbeke

@Dibbeke:まあ、これが質問にどのように関係しているかわからないので、部分的に修正しました。しかし、あなたの最後のコメントには同意しませんが(あなたの答えは別のものです)、それがOPにどのように役立つか、実際の質問に答えるのかまだわかりません。
n1ckp

@ n1ckマーケティングと言ったとき、基本的な価値に基づいて採用プロセスを決めるのは本当に同じだろうかと思い始めました。知りませんが、信頼と尊敬の社会的ネットワークを構築することはそれによって大きな影響を受けることを認識しています。これは、企業の評判に影響を与え、一流のソフトウェア開発者を引き付けるのに役立ちます。
ディベケ

@Dibbeke:最後のコメントを受け取ったかどうかはわかりませんが、少なくとも少しは同意します。しかし、繰り返しますが、私はそれがOPに役立つかどうかはわかりません(ただし、それが質問にどのように関連しているかは今ではわかりますが)。何私はそうはい、それは彼が彼の会社については何も話したことがないと言うなり、多分彼の会社は悪い評判を持っていることを原因である可能性がありますが、私はあなたが結論にジャンプしていると思います...
n1ckp

1

どの組織にも、経験の多い人と少ない人がいます。それだけでなく、ある分野の専門家が別の分野の初心者になることもあります。熱狂的なアマチュアは、コードベースに良いことよりも害を及ぼすことはありますが、間違いを修正し、経験を積んだ同僚と自分の経験を話し合うことから学ぶ方法です。

私の提案は、スーパースターを雇うのではなく、適度に明るく、あなたの会社の文化に適合し、学び、自分の限界を高く評価する人を雇おうとすることです。


1

確かにあなたは最高のものだけを雇うことを熱望すべきです。それは自動的にあなたがそれに成功するということではありません-周りに「最高」のものが非常に多くあり、勝者と敗者が彼らを引き付けるための戦いにあります。その多くは、問題に取り組むための適性と意欲、そして利用可能なリソースからもたらされます。

あなたが始める前にあきらめることは、失うための最も確実な方法です。


1

バイナリ検索は興味深い問題です。なぜなら、ほとんどのプログラマーは実際にそれを正しく書くのに苦労することはよく知られているからです(Programming Pearlsでそれについて書かれています)。おそらく、解決に失敗したことに基づいて候補者を除外しない限り、テストするのはそれほど悪くないでしょう。彼らがそれを迅速かつ正確に解決するなら、少なくともそれは彼らがどのタイプのプログラマーであるかを示唆しているので、その特定の場合により多くの情報を持っています。


1

最高の人材を採用する必要があります。しかし、この用語は文脈から何度も引用されています。全体的な意味で最高のプログラマーではなく、そのポジションに必要なスキルを持つ最高の候補者を見つける必要があります。ソフトウェア開発は幅広く、すべての職種が同じ技術知識を必要とするわけではありません。

この質問を自問してみてください(あなたはもうやったことがあります。):5年間同じポジションに他のエンジニアがいる場合、fibonanciシリーズとバイナリ検索を覚えていると思いますか?

答えがいいえの場合は、インタビューパターンを変更します。GoogleやBingなどの検索アプリケーションで作業する場合は、十数個の検索アルゴリズムを知る必要があるかもしれません。他の人はすべてmap.get( "");を使用します。

教科書全般の優れたプログラマーではなく、ポジションが必要とするものにインタビューをターゲットします。


1

本当に品質に関心がない場合は、アウトソーシングWebサイトの1つを使用し、小さなプロジェクトから始めることをお勧めします。その後、彼らが仕事をすることができれば彼らに支払い、彼らができないなら保釈する簡単な方法があります。

しかし、デスクトップエンジニアリングアプリケーションには本当に多くのルーチンコーディングが存在するのか疑問です。それらは非常に複雑になる可能性があり、ほとんどのプログラマーは複雑さの管理がそれほど得意ではありません。チームを今後何年も拘束するような、多くのインスタントレガシコードを簡単に作成できます。一般に、新しいプロジェクトの最初の雇用は最も重要であり、プロジェクト全体の雰囲気を整えます。


0

私は、人を問題に適合させることに関する上記のコメントのほとんどに完全に同意します。これは通常、定期的な問題に取り組むためにスーパースターを雇うのではなく、長期的な関係をもたらします。
そうは言っても、特定のポジションではなく、常にあなたの会社に雇おうとするべきです。この同じ男が遅かれ早かれ、個人的な連絡先などでチームを切り替え、彼はどこかでデッドウェイトになることがあるためです。あなたの会社が非常に厳格な内部異動ガイドラインを持っていることを確認し、あなたが会社のバーに合わないかもしれないと思う人を雇う前に、今後数年間あなたがチームで何をするかを明確に把握してください(しかし、現在の問題を解決します) )。私は、開発者の平凡さがチームを彼らの周りに合わせるために余分に一生懸命にしているあまりにも多くのケースを見てきました。

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