JavaScript / TypeScript 対応
そのコードの読み、
年収に反映されていますか。
選択式のコード問題15問と、経歴5問。
同じ条件のエンジニアの年収レンジと、いまの年収との差を出します。
登録不要/全20問に解説つき/入力はブラウザ内で完結します
- 15実技問題
- 5経歴の質問
- 20全問に解説
「自分の市場価値」は、
たいてい人づてでしか分からない。
転職サイトの平均年収は、経験年数と職種でしか区切られていない。 同じ「3年目のフロントエンド」でも、非同期処理の順序を説明できる人と そうでない人が同じ枠に入っている。
かといって、いまの実力を確かめるために選考を受けるのは重い。 落ちても理由は返ってこないし、通っても「たまたま相性がよかった」で終わる。
だから、コードを読ませて測るところから始めます。
What we measure
出るのは、実務で事故る箇所だけ。
引っかけは出しません。判断を誤ると本番で落ちる、 レビューで指摘される、あとから直すのが高くつく—— そういう箇所を15問に絞っています。
重複リクエストを防ぐキャッシュだが、一度通信に失敗するとその id だけ以後ずっと失敗し続ける。原因はどれ?
const cache = new Map();
function getUser(id) {
if (!cache.has(id)) {
const p = fetch(`/api/users/${id}`)
.then((r) => r.json());
cache.set(id, p);
}
return cache.get(id);
}- fetch のレスポンスは一度しか読めないため、2回目以降の json() が失敗する
- Map はキーに数値を使えないため、2回目以降 has が false になる
- cache.set が if ブロックの中にあるため、2回目以降に値が更新されない
- 拒否された Promise もそのまま残り続けるため、以後の呼び出しは通信せず同じ拒否を返している
答え合わせと解説は、診断の結果画面でまとめて出ます。
出力予測
5問コードを読んで結果を正確に追えるか
バグ特定
4問壊れているコードの原因を切り分けられるか
計算量・性能
3問件数が増えたときに何が支配的になるか判断できるか
言語仕様
3問非同期・スコープ・型・参照といった言語の土台の理解
難易度は初級 5問/中級 6問/上級 4問。上級ほど配点が高く、全問正解でなくても上位帯になります。
How it works
計算式は、隠しません。
スコアだけで年収は決まりません。経験年数・企業タイプ・勤務地の 統計値を土台に、スキルスコアで係数をかけています。
- 1ベース年収
経験年数の統計値 × 企業タイプ係数 × 勤務地係数
- 2スキル係数(0.85〜1.25)
15問の重み付き正答率をそのまま係数に変換
- 3適正年収レンジ
ベース年収 × スキル係数 を中心に ±8% の幅で提示
係数の根拠:厚生労働省「令和6年賃金構造基本統計調査」/doda「平均年収ランキング2025」(パーソルキャリア)/エン株式会社『フリーランススタート』定点調査(2025年12月度)/経済産業省「IT人材需給に関する調査」。 結果画面では、あなたの回答にどの係数がかかったかを1つずつ開示します。
診断する言語を選ぶ
Articles
年収を、数字で読む
体感と伝聞ではなく、公開統計と同じ係数で書いた記事です。 記事中の推定レンジは診断ツールと同じ計算から出しているため、 読んだ数字と診断結果が食い違うことはありません。
よくある質問
入力した年収は送信されますか?
送信していません。回答も年収の入力値も、この端末のブラウザ内 (localStorage)だけで処理しています。診断ツールにはデータベースがなく、 サーバー側にはそもそも保存する先がありません。
結果の年収は保証されますか?
されません。公開統計をもとにした目安で、実際の年収は選考・交渉・ 企業の事業状況で決まります。断定ではなく「同条件のエンジニアの 年収レンジ」として読んでください。
途中でブラウザを閉じたらやり直しですか?
続きから再開できます。1問ごとに端末内へ保存しているので、 リロードしても回答は消えません。
問題はどこかからの引用ですか?
すべて書き下ろしです。競技プログラミングのサイト、学習サービス、 書籍からの転載・翻案は行っていません。
結果画面のリンクは広告ですか?
結果の下部にあるサービス紹介にはアフィリエイトリンクを含みます。 表示するサービスは診断結果から機械的に選んでおり、 紹介料の多寡で並び順を変えていません。該当がなければ表示しません。