面接のコーディングに失敗した場合に答えを出すべきですか?[閉まっている]


14

上級レベルの面接候補者に、FizzBu​​zzの質問のニュアンスに失敗させました1 2
私は、本当に、まったく、完全に、質問に失敗したことを意味します。
私も彼をコーチループを使用する方法について、その考え方に通過3して5いた本当に特別な例として検討する価値。

彼はそれを吹いた。

QAのためだけに、3人のチームメイトにまったく同じ質問をしました。彼らに5分を与えました。そして、彼らの擬似コードを収集するために戻ってきました。 それらのすべてがそれを釘付けし、前に質問を見ていませんでした。2人はトリックが何であるか尋ねました...

別の論理演習で、候補者は、使用することを選択した言語(C#)内で使用可能な機能のいくつかについて理解を示しました。そのため、彼がコード行を一度も書いたことないというわけではありません。しかし、彼の論理はいまだに悪臭を放ちます。

私の質問は、論理的な質問に対する答えを彼に与えるべきだったかどうかです。

彼はそれらを吹き飛ばすことを知っており、インタビューの後半でそれを認めた。
一方、彼は答えや私が何を期待しているのかを決して尋ねなかった。

コーディング演習を使用して、障害の候補を設定できることを知っています(もう一度、上記の2番目のリンクを参照)。そして、私は本当に質問の核心に答える上で彼を家に助けようとしました。しかし、これは上級レベルの候補者であり、Fizz-Buzzは、面接のジッターを考慮した後でも、率直に言って途方もなく簡単です。

彼が少なくとも経験から学ぶことができるように、彼に問題を解決する方法を示すべきだと感じました。しかし、再び、彼は尋ねませんでした。

その状況に対処する正しい方法は何ですか?


1 さて、それは実際のFizzBu​​zzの質問へのリンクではありませんが、FizzBu​​zzについてのP.SEの良い議論であり、さまざまな側面へのリンクです。

2 明確にするために、これは私が尋ねたFizz-Buzzのニュアンスであり、Project Eulerの最初の問題からのものです。代替印刷フィズ| 数字を合計するためのバズと同じ基本的な質問があります。
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Write a function that finds the sum of all the multiples of 3 or 5 below 1000.

3 この質問は私が予想していた以上に注目を集め、すべての回答に感謝します。後の回答のいくつかは本当に私の質問の核心になったので、「the」回答を割り当てる前に、コミュニティがレビューして投票できるようにします。

4 その時点でのコミュニティの投票に基づいて「the」回答を選択しました。ヤニスの答えは、新しい開発者とのインタビューに適していると思います。答えを求めていないことに焦点を合わせた集団的対応もまた、スポットオンだと思います。


34
ゆったりと一日を過ごしましょう。私の知る限り、「上級レベル」でFizzBu​​zzに失敗すると、故意に悪意を持って私の時間を無駄にします。
スティーブンエバーズ

6
私は最近、私の地域のいくつかのポジションについてインタビューを行いました。コードが必要なポジションは、自分の「FizzBu​​zz」に似たテストに合格できる上級レベルの候補者を見つけるのに苦労していることを示しました。いずれの場合も、私の反応は「真面目になれない」というものでした。上級レベルを装ったひどいプログラマーがたくさんいるようです。
ジョエルイーサートン

6
@JoelEtherton-ここも同じです。私はどこへ行っても電話の画面をプッシュしました。C#を使用してシニアに応募しようとしていて、値の型と参照型の違いがわからない場合は、インタビューを受けていません。
Telastyn

3
@ 0A0D、チームをリードすることは、優れた開発者であることとは異なる種類のスキルです。悪い開発者でもあるチームリードを見てきました。
キラレッサ

4
@JoelEtherton、驚かないでください。「候補者200人のうち199人はコーディングできない」とは、候補者の選別と面接を実際に手伝い始めるまで、単なる誇大広告だと思いました。長年の(疑いのある)経験は問題ではありません。役職は関係ありません。知っているかどうかにかかわらず、ほとんどの応募者は実に信じられないほど後輩です。
アンソニーペグラム

回答:


15

私のインタビューのほとんどは、インターンシップのポジションを探している学生を対象にしており、多くの場合、単純な(?)演習を台無しにしました。私は彼らのエラーを伝えるための簡単で友好的な方法を望んでいました、そして私が思いついたのは非常に簡単でした。

同じ問題を解決するためのさまざまなアプローチを比較することから始まった、候補者との非常に興味深い非常に興味深い議論がいくつかありました。しばらくして、候補者が通っている学校をチェックするだけで、いくつかのエラーを予想することさえできました(一部の「教授」は...馬鹿です)。そして、まあ、候補者が解決策を思い付かなかったいくつかの例で、私はすでにそれらを次回に与えました。


理にかなっています。私は最近新しい仕事を探していましたが、ほとんどのインタビュアーが質問に対して間違った答え(または少し「オフポイントの答え」)をしたとき、これと同じことをしたことがわかりました。これは本当に良い習慣です。ほとんどの場合、候補者(私など)が開かれ、インタビュー自体が両側からより魅力的になるためです。ただし、もちろん、テンプレート、RAII、およびC ++のマルチスレッドについて説明していました。問題は、fizzbuzzを解決できない人に何を言うかです。
チャニ

11
@RitwikG正直なところ、候補者がプログラミングのポジションのためにインタビューしていて、fizzbuzzに対処できない場合は、おそらく...笑うでしょう(私は良いインタビュアーだとは決して言いませんでした;)。とは言っても、数か月前、私はコードで非常に些細なOBOEになったものと戦った数日を失いました。私たちは皆、オフの瞬間があり、私は候補者が1つのエクササイズを台無しにすることに本当に固執することはありません。おそらく、次のエクササイズにすぐに進むでしょう。彼らも次の1つに失敗した場合、私はおそらく彼らの時間に感謝し、先に進みます。
ヤニス

1
@YannisRizosそれはおそらく良いアプローチです。その人がインタビューの状況でうまくいかない可能性が常にあるか、彼らの仕事でモジュロ演算をどうにかして回避している可能性があります(控えめに言ってもうまくいきません)。私の経験では、上級職であっても、簡単なループ(選択した任意の言語)を書くように求められると、かなりの数の応募者が困惑します。今ことを、私は正当化するのに完全に不可能見つけます。
ダニエルB

それはプロセスについての良い洞察でもあります。候補者は当然のことながら緊張していたので、私はそれに対していくらか手当を与えたいと思っていました。彼が最終的に解決策を試みて話し始めたとき、それはちょうど複雑であり、彼が逃した境界条件を作成しました。

15

答えを出す

候補者が質問するほど興味を持っていなければ、息を無駄にしないと言いましたが、@ Yannis_Rizosの答えははるかに優れています。

インタビューのペースはかなり速い。面接後何日間もよく調べていることを知っています。

FizzBu​​zz Classicをコーディングできない人

大きなこだわりが%演算子を認識していると思います。誰かが比較したいと思う(myInt / 3) == (myDouble / 3.0)かもしれないが、おそらくインタビューのストレスと... ヒントとして、半分クレジットの「Fizz」をコーディングし、後で拡張機能として「Buzz」を追加するように人々に頼んでみましたか?

あなたの質問に対する究極の答えは、良い候補者を見つけるのは本当に難しいということだと思います。

一般的なインタビューの質問

候補者に最後に興奮したプログラミングプロジェクトについて説明するよう依頼する方が簡単で生産性が高いことがよくわかりました。私はこの質問で100%成功しました。つまり、プログラミングプロジェクトについてアニメーションで話し、それについて技術的な質問に答えることができた人は、優秀な人材であり、できなかった人はそうではありませんでした。これには、候補者を安心させ、自由な議論を促すという素晴らしい副作用があります。この質問で、候補者は実際に、彼らが最も適しているものを教えてくれます。

シンクタンクアルゴリズムの質問も必要かもしれませんが、私は「お気に入りのプロジェクト」の質問に賛成してそれらを放棄しました。

FizzBu​​zzの合計(息子)

あなたのインタビューの質問はFizzBu​​zzと同等ではありません:

3または5の倍数である10未満のすべての自然数をリストすると、3、5、6、および9が得られます。これらの倍数の合計は23です。3または5のすべての倍数の合計を見つける関数を記述します1000未満。

FizzBu​​zz Classicでは、n回の反復(すべての数値またはFizz / Buzzを印刷する)を強制的に実行しますが、n / 5 + n / 3 + n / 15の反復で、または反復なしでも問題を解決できます。ポイント計算が可能です。次のプログラムは、これら3つの方法を比較します。

public static void main(String[] args) {
  long n = Long.valueOf(args[0]).longValue();
  long sum = 0;
  long ms = System.currentTimeMillis();
  // Brute force method  Performance: cn
  for (long i = 1; i <= n; i++) {
    if ((i % 3) == 0) { sum += i;
    } else if ((i % 5) == 0) { sum += i; }
  }
  System.out.print("Brute force sum:    " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Second solution: iterate through only numbers we are
  // interested in.  Performance: c * (n/3 + n/5 + n/15)
  // We counted multiples of 15 twice, so subtract one of them
  sum = countSum(n, 3) + countSum(n, 5) - countSum(n, 15);
  System.out.print("Only multiples sum: " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Third solution: Use high school algebra.  Performance: c
  sum = sumSeries(n, 3) + sumSeries(n, 5) - sumSeries(n, 15);
  System.out.print("Sum of series:      " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
}

// Iteravely sum all multiples of skip
private static long countSum(long n, long skip) {
  long skipTotal = skip;
  long grandTotal = 0;
  while (skipTotal <= n) {
    grandTotal += skipTotal; skipTotal += skip;
  }
  return grandTotal;
}

// Thanks to @Caleb for pointing this out!  High school algebra
// tells us that the sum of a series is: (n * (a1 + an)) / 2
// where a1 is the first term and an is the nth term.  E.g. The
// sum of a series of 3 is: (n/3 * (3 + n - (n % 3))) / 2
// Since we are thinking about performance here, we'll shift
// right one instead of dividing by 2 for style points.  ;-D
private static long sumSeries(long n, long skip) {
  return (n/skip * (skip + n - (n % skip))) >> 1;
}

出力(FizzBu​​zzの合計<1000):

$JDK_HOME/bin/java FizzBuzzNot 999
Brute force sum:    233168 time: 0
Only multiples sum: 233168 time: 0
Sum of series:      233168 time: 0

パフォーマンス比較のためにnを大きくすると:

$JDK_HOME/bin/java FizzBuzzNot 1000000000
Brute force sum:    233333334166666668 time: 4744
Only multiples sum: 233333334166666668 time: 818
Sum of series:      233333334166666668 time: 0

これをトピック外としてダウン投票した人への注意

この質問の解決策を提示するポイントは、FizzBu​​zzのSumに対するブルートフォースソリューションはFizzBu​​zz Classicに似ていますが、Sum問題に対するより良い解決策が利用可能であり、根本的に異なる問題であることを示すことです。FizzBu​​zzの合計は、系列の合計の適切な式を覚えていない場合、または3または5ずつステップするときに適用されることに気付かない場合、非常に注意が必要です。

シリーズを半分に分割し、半分を逆にしてペアにすることでシリーズの合計の式を導出すると、(n + 1)(n / 2)が得られ、非常に厄介なパスをたどることができます整数除算と切り捨てられた剰余に関する限り。この式の(n(a1 + an))/ 2バージョンは、nのすべての値の単純な答えにとって絶対に重要です。


3
これは直接計算できます(Ruby): t = { |i| (i * (i+1)) / 2 }; fizzbuzz = { |n| 3 * t((n-1)/3) + 5 * t((n-1)/5) }
ケビンcline


1
@ GlenH7うん、バズキルだからコメントを削除した。グレンは、それが全く質問に答えていない場合であっても、彼の分析のための小道具に値する:D(また、私は完全にコード化されたが、私の独自のソリューションの瞬間前に試してみました)
アンドレスF.

2
このシリーズがモジュロ= 0である場合、n / 2 *(m + nm)の式を使用して、シリーズの合計を探します。ここで、m =モジュロ数、n =シリーズの要素数(floor(x / m)。その後は簡単です。S(3)+ S(5)-S(3 * 5)[ 2回カウントされない]
-jmoreno

3
問題が発生する可能性のある理由の1つは、一部の数値を2回(15で割り切れる数)カウントしていることです。プログラム例については、ideone.com
clone /

8

彼が少なくとも経験から学ぶことができるように、彼に問題を解決する方法を示すべきだと感じました。しかし、再び、彼は尋ねませんでした。その状況に対処する正しい方法は何ですか?

インタビューがどのレベルであるかは気にしませんし、「FizzBu​​zz」レベルの質問や高度な質問であっても、実際には気にしません。候補者に質問を解いてもらい、それができない場合でも、正しい答えを求めることさえしなければ、彼らはあなたの時間の価値がありません。一体どうしてこんなに知的に怠け者になれるの?!?

そして、プログラマーとして完全に悪臭を放ち、仕事への道をバッファローしようとしている場合でも、次のインタビューでそれを知っているように、少なくとも今すぐ正しい答えを得るために実用的ではないのはなぜですか?

ですから、答えを「与える」べきではありませんが、候補者が失敗した後に正しい答えを聞くことを主張すること期待する必要があります。そうでない場合、私の本の中で大きな赤い旗です。

モジュラス演算子を思い出せず、それなしでは先に進むことができなかったために、誰かがジュニアレベルのDevインタビューでFizzBu​​zzを吹き飛ばしたが、正しい答えを説明すると、それをやり直すことに熱心になったまたは、少なくとも適切なコードを使用してあなたと話していれば、それはそれを正しく答えることとほぼ同じくらい良いことです。


1
どうして?後で答えをグーグルで検索できます。FizzBu​​zzはかなり人気があります。誰かがモジュラスの除算を知らない場合、正直に心配します。
ブライアン

私は彼にモジュラス演算子の代わりに何かを考え出そうとしたことを称賛したでしょうが、彼はその点にさえ到達しませんでした。彼が答えを求められなかったことに焦点を当てることには良い点があると思います。あなたの観察は、インタビュー中に出た他の課題のいくつかと一致しています。

私はFizzBu​​zzについて本当に意見がありますが、これは正しい答えです。候補者が回答を求めない場合は、回答しないでください。
ジェームズP.ライト

@ JamesP.Wright-ある程度同意しますが、インタビューに入ると、それをコーディングの主な質問として使用することに少し恥ずかしかったです。それはとんでもなく簡単であるはずでした、そして私は質問を読み過ぎないように警告でそれを前書きさえしました。私もフォローアップが簡単だったはずでしたが、その後、彼がより高いレベルの開発/設計スキルを発揮できるようにするための3つ目がありました。3番目の質問に答えることはできませんでした

1
@ 0A0D、FizzBu​​zzに関係する「数学」は、与えられた変数が3および/または5で割り切れるかどうかを単にチェックすることです。そのレベルの数学は、あなたが書くほぼすべてのアプリに存在します。同じ種類のプロジェクトを繰り返し実装する私のような「ビジネス開発者」でさえ、このレベルの数学を使用します。GlenH7、私はFizzBu​​zzで再帰を使用することで私に感銘を与えたり、怖がらせたりするかどうかさえわかりません。
グラハム

4

プレスクリーン中にインタビュアーと電話をしながらfizzbuzzを入力しました。これは、誰も聞いたことがないとしても、学期を終えた後でも間違いなく「シニア」ステータスを取得した後は一緒にすり減ることができるはずです。

それができないことからの回復は本当にありません。念のために邪魔にならないようにする必要があるのは、これらの必要な迷惑の1つです。

プレスクリーンとして配信するのは理にかなっていると思います。そうすれば、面接のために現場に連れて行ってみんなの時間を無駄にすることはありません。


事前選別のために、提供されたサンプルコードを要求していました。このコードには中級から上級のC#言語機能があったため、わずか1〜2分で論理的な質問に答えることができると期待していました。

7
提供されたサンプルコードがインタビューで実証された知識と一致しない場合、私の脳はすぐにサンプルコードを疑います。
グラハム

@Graham:彼を6か月間一時雇用します。–
ブライアン

@ 0A0D残念ながら、そのような柔軟性を可能にする場所で働いたことはありません。広告されたポジションがフルタイムのギグだった場合、それは私たちがその人に提供できるすべてです。
グラハム

3
そのシナリオにはフェンスはありません。彼の「サンプルコード」が強力な知識を示しており、fizzbuzzをコーディングできない場合は、サンプルを取り出して詳細を尋ねてください。彼がそれをバックアップできない場合、私のお気に入りの行の時間です。「まだレビューする候補がいくつかあります。折り返し連絡します。」
マイケルブラウン

4

ループを使用することを考えるまで彼を指導し、3と5は特別なケースとして検討する価値がありました。

FizzBu​​zzらしい質問に対する「正しい」答えが何である思うかを知ることは興味深いでしょう。私が座っている場所から、あなたの質問の手紙に書かれた良いもの(Cで)は:

int f(void) {
    // sum the multiples of 3 and of 5 and subtract multiples of 15 so we don't count them twice
    return ((1000/3)/2)*(999+3) + ((1000/5)/2)*(995+5) - ((1000/15)/2)*(990+15);
}

より良いものは次のとおりです。

直接計算できるのに、なぜそれを行うプログラムを書くのでしょうか?

要点は、猫の皮を剥ぐ方法が複数あるということです。そして、問題の候補者がすぐにforループとmod演算子を書き始めなかったという事実は、彼が愚かであることを意味しません。候補者が知っていることを知りたい場合は、問題について話し合ってください-彼が考えていることを見つけてください。彼が立ち往生している、または混乱している場合は、どこで、なぜを見つけてください。彼は、あなたが決して考えなかったアプローチにあなたを導くかもしれません。

私の質問は、論理的な質問に対する答えを彼に与えるべきだったかどうかです。

面接官として、候補者にレッスンを教えるのはあなたの場所ではありません。彼らが本当にコードの書き方を知らないのであれば、彼らがどれだけ知らないかを熟考することによって彼らを困らせる必要は全くありません。彼らが質問するのに十分興味があるなら、ぜひとも共有してください。それ以外の場合は、インタビューを終了し、彼らの時間に感謝し、次の候補者に進みます。


あなたの最後のパラグラフの確実な答えのために+1。そして、あなたは私が「その」答えの代わりに「ある」答えを言うべきだったという点で良い点を挙げます。その特定の問題を解決する方法はいくつかあります。に関してdiscuss the problem、その要素はインタビューの間に他の質問を思いついた。残念なことに、候補者は...返事を控えていました。「良い主観」のためのP.SEガイドライン内に実際に維持しようとしていたので、元の質問にその側面を追加しませんでした。

1
「候補者にレッスンを教えるのはあなたの場所ではありません」-私は同意しません。優秀なプログラマーは常に学んでいます。彼らがあなたのレッスンに新しいことを学んだことに感謝して行動するなら、それは彼らが良いプログラマーであるというサインです。彼らがあなたのレッスンをすくめるなら、彼らはたぶんくだらないプログラマーだろう。
nbv4

私があなたのインタビュアーであり、あなたがそのような答えをくれたなら、代数教師を必要としている学区を紹介したいと思います。FizzBu​​zzは、インタビュアーが他の基本的にきちんとしたプログラマーとあなたを区別する質問に進むことができるように、プログラミングの基本的な知識を示すことです。あなたの答えは賢いですが、ループ、モジュラー算術などを理解していることを確立していないので、代数を知っている人もプログラミングを知っている(間違っている)という仮定の下でインタビューを進めるか、単に手を振るだけです次に進みます(可能性が高い)。
user1172763 14

@ user1172763それがポイントです-FizzBu​​zzとは異なり、OPのインタビューの質問は1回の計算で答えることができます。したがって、候補者がループを書くことができるかどうかを確認することがポイントである場合、それは悪い選択です。候補者が質問を特定の(そして明言されていない)理由で尋ねているという仮定のもとで、より遅く、はるかに冗長なソリューションを選択することは期待できません。実際、インタビュアーは、ループが完全に不要であることに候補者が気付いているかどうかを確認するための「トリック」質問になりやすいでしょう。あなたの心を読むことは候補者の責任ではありません。
カレブ14

2

あなたの「問題」は、あなたが共感的な人間であるということです。だから誰かがあなたが答えを知っている問題に苦しんでいるのを見るのは難しいです(これはユーザビリティ調査を実行する場合も問題です)。インタビュアーとしての義務の観点からは、面接対象者にプログラムや問題解決の方法、またはあなたが尋ねる問題の解決方法を教える義務は一切ありません。

面接を受ける人をコーチするとき、それは彼らが正しい答えを得られるようにするためではありません。それは、彼らが本当に問題を解決できないのか、あるいは1つまたは2つの間違いや誤解にとらわれたのかを確認できるようにするためです。

そのため、事実の後にインタビュー対象者に解決策を提供したい場合は、純粋にあなた自身のためにそれを行っています。一般的には、その時間を使用して、インタビュー対象者が別の問題を試みられるようにします。しかし、FizzBu​​zzに答えられない「シニア」プログラマーは、おそらくリストから外れています。解決策を講じることを決めた場合、インタビューがうまく行ったと思うように自分をだましてはいけません(「問題を解決できなかったが、私がそれを説明したとき、彼はそれをよく理解した」と考えたら)あなたは危険な道を歩いています)。

そして、はい、私は彼の頭の上にいたインタビュー対象者であり、インタビューの問題を解決する最初の試みさえすることができませんでした。それは単にその分野で仕事をするためにもっと多くを学ぶ必要があることを意味していました。


2

正しい答えを得ることは、このテストの重要な部分ではありません。あなたが測定しているのは、問題解決への誰かのアプローチ、彼らが質問にどのように関与しているか、途中で出てくる創造的または興味深いものです。そのようなもの。間違った答えを受け取ったとしても、これらの基準によって実行可能である可能性があります。

わかりました、mod演算子が許されないことを知らず、この候補者に与えた指標からは、まだ候補者とみなされているように見えますが、この候補者に正しい答えを与えるだけでは意味がないと思います利益。

これは、ここからあなた自身の個人的な意見に帰着します。将来の面接で候補者がより良くなるよう支援するために、面接のフィードバックを提供しますか(そして、将来の面接官があなたが今経験したことを苦しむ必要がないように)。もしそうなら、上で概説した用語であなたのフィードバックを寝かせてください。それは正しい答えだけではなく、彼らが答えに到達するためにどのように働くかが重要な要素であることを伝えてください。


コメントを+1 how they work to arrive at the answer is a critical factor. それはどのようだという理由だけだ、私は、使用するモジュラス演算子を期待している間、私はそれを解決しているだろう。明白な境界条件エラーを作成せずに問題を解決した他のアプローチに非常にオープンでした(再帰を使用したアプローチに関する私のさまざまなコメントを参照してください...)。

2

彼が少なくとも経験から学ぶことができるように、彼に問題を解決する方法を示すべきだと感じました。しかし、再び、彼は尋ねませんでした。その状況に対処する正しい方法は何ですか?

私の見方では、対処する状況はありません。あなたが彼の申請を拒否したと仮定すると、候補者の(見かけの)関心の欠如は、あなたが心配する必要のあるものではありません。

確かに、たとえ彼尋ねたとしても、あなた彼に説明を借りていない。また、人事担当者と話をした場合、候補者とのさらなる議論は法律上の理由からお勧めできないとアドバイスするかもしれません。


また、FizzBu​​zzの問題には、質問方法に応じてさまざまな「ベスト」回答があることに注意してください。「最も簡単な」ソリューションと「最も効率的な」ソリューションを求めた場合、最良の答えは根本的に異なります。そして、これはあなたの判断を不当に着色する可能性があります ...あなたが質問をした方法が不明確だった場合。(一方で、優れた経験豊富な候補者は、コーディングを開始する前にそれを明確にする先見性を持っているでしょう...)


2

あなたの質問に答えるために、いいえ私は答えを出さないでしょう。その人がより良いソフトウェアエンジニアになりたい場合は、答えが見つかります。あなたが彼らに答えを与えるならば、あなたは彼らにこの機会を奪っています。

より関連性のある質問は、いつ自分をシニア開発者と呼ぶことができますか?これは組織や国によって異なります。たとえば、私が働いた会社は、シニアとして5年の経験を持つソフトウェアエンジニアとみなされていました。体験の質は重視されず、長さだけが重視されました。

言語に関係なく、すべてのソフトウェアエンジニアを分類する標準を策定するまで、スキルレベルを決定するのは個人です。そして、最も初歩的なスキルテストに失敗した「シニアエンジニア」の話を聞き続けます。

数週間前に「いつ自分をシニア開発者と呼ぶべきか」という質問がありました。また、このトピックに関するブログ記事を書きました。


ブログのリンクを親切に修正しますか?
アンドレ

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