フロントエンドエンジニアチェック

技術スキルチェックリスト

TypeScript

JavaScriptとの違いとTypeScriptのメリット
asについて説明できる
型ガードについて説明できる
ジェネリクスについて説明できる
型推論について説明できる
コールバック関数について説明できる
関数型の処理を3つ程度説明できる
型の不一致の解消方法を複数説明できる

Package.json

package.jsonについて説明できる
dependenciesとdevDependenciesの違い
scriptsセクションについて説明できる

ライブラリ管理

npmでライブラリの追加・削除ができる
node_modulesの削除と復元ができる
node_modulesをGit管理すべきか説明できる
pnpm, yarn, npm, bunの概要を把握
パッケージマネージャーについて説明できる

Git

RemoteとLocalリポジトリの違い
Gitを使う理由を説明できる
git revertコマンドについて説明できる
git cherry-pickコマンドについて説明できる
ブランチ戦略について説明できる

API

APIについて説明できる
requestとresponseの違いを説明できる
HTTPリクエストの種類を列挙して説明できる
Next.jsやExpressで簡易APIを作成できる
サーバーサイドバリデーションを説明できる
サーバーサイドバリデーションの重要性
サーバー/クライアントバリデーションの違い
HTTPステータスコード(200, 400, 401, 404, 500等)
CORSとエラーケースについて説明できる
APIキーのユースケースを説明できる
Bearerトークンのユースケースを説明できる
JWTのユースケースを説明できる
外部APIの利用経験と理由を解説できる

フロントエンド開発

ElementsタブでCSS編集ができる
ElementsタブでHTML編集ができる
ConsoleタブでJavaScriptを実行できる
APIリクエスト/レスポンスを遅延させられる
NetworkタブからcURLを取得できる
Networkタブでpayloadを確認できる
Networkタブでresponseを確認できる
Cookieのユースケースを説明できる
LocalStorageのユースケースを説明できる
Keyでキャッシュできるライブラリのメリット
SSR, CSR, SSGを具体的に説明できる

React

useStateを具体例と共に説明できる
useCallbackのメリットを説明できる
propsについて説明できる
再レンダリングのタイミングを説明できる
再レンダリングを抑える方法を説明できる
再レンダリングを抑える必要性を説明できる
グローバル/ローカルステートの違い
グローバルステートのユースケース

データベース

Table, Row, Columnについて説明できる
Migrationについて具体的に説明できる
indexのメリット・デメリット
Primary Keyについて説明できる
UUIDのメリット・デメリット
One To One Relationを事例と共に説明
One To Many Relationを事例と共に説明
Many To Many Relationを事例と共に説明
LEFT JOINとINNER JOINの違い
N+1問題と解決方法を説明できる
高頻度SQLのパフォーマンス改善方法
RDSとNoSQLの違いを具体例と共に説明
Subqueryを具体例と共に説明できる

Webアプリケーション

アクセスから表示までの流れを説明できる
YouTubeのUI実装を推測して解説できる

プログラミング全般

オブジェクト指向について説明できる
コンストラクタ、継承、インスタンス等を説明
オブジェクト指向と関数の違い
再帰関数について説明できる
再帰関数の使用例を説明できる
関数型処理を具体例と共に説明できる
デザインパターンについて説明できる
デザインパターンを1〜3個説明できる

CS基礎

コンパイルについて説明できる
Binaryについて説明できる
自然言語と機械語について説明できる
プログラミング言語について説明できる

データ構造とアルゴリズム

配列の特徴を説明できる
連想配列の特徴を説明できる
集合(Set)の特徴を説明できる
計算回数を減らす工夫を具体例と共に説明
Sortアルゴリズムのロジックを説明できる