Asya-kawai / coding-interview-supporter

A service that supports coding interviews.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Coding-interview-supporter

A service that supports coding interviews.

本サービスが目指すところ

  • 考え方の可視化

既存サービスの課題

既存サービスが提供する機能は大まかに以下の2点。

  • 基本的知識のチェック
  • 問題に対して答えを算出するコードとそのチェック

コーディング面接は、以下の点をチェックするべき。

  • 考え方・・・★
  • 経験・・・★
  • 組織文化との相性・・・★
  • コーディングスキル
  • 基本知識

なお、コーディングスキルと基本知識については既存サービスとの同質化すべき点であることに留意。

回答フロー

問題の提示がされたあとに、以下のフローで双方向のコミュニケーションができると良い。

  1. 問題に対する例を記述したり図で問題への理解を示す
  2. 単純な解法(ブルートフォースな解法)を書いてみる
  3. 上記の解法を最適化する
  4. 擬似言語または自身の得意な言語で表現してみる(※ 最初から詳細な実装に入らなくても良い)
  5. テストを書く(※ ただし、テストは単純な解法のときから書いていても良い)

面接官としてアドバイスする点

  • コードのボトルネックの有無(存在すればその箇所を指摘)
  • 不要な操作の有無(存在すればその箇所を指摘)
  • 重複している処理の有無(存在すればその箇所を指摘)
  • BCR(Best Conceivable Runtime)の考察

きれいな良いコードの定義

  • 正しい入力とそうでない入力に対して適切な解を示せること
  • 実行時間とメモリ消費に対して効率的であること
  • シンプルであること
  • 可読性が高いこと
  • 保守しやすいこと(責務の分離や変更時の影響範囲を最小限にしていること)

備考

About

A service that supports coding interviews.


Languages

Language:OCaml 66.7%Language:TypeScript 14.5%Language:HTML 12.2%Language:CSS 6.6%