フロントエンドエンジニアのスキルセットが曖昧すぎて採用基準等で困るので、何となく個人的なフロントエンドエンジニア像を書いておくことにしました。
僕がフロントエンドエンジニアではないので全く参考にならないかもしれませんが、アメリカのフロントエンドエンジニア達と同じチームで仕事した時を思い出して、彼らとまともに対話しつつ一緒に仕事できるレベルはどれくらいか考えてみました。単純にプログラマとして考えるとこのくらいは軽く超えてくる人達が多かった印象です。畑違いなのでやるなーと思いつつ、知らなかったテクニックをいくつか盗めた気がします。
コメント頂いても反応することはありませんので悪しからず。
必須スキル
-
入門書程度の基礎的なプログラミングスキル(制御文、関数、オブジェクト、データ構造、他)を正確に理解した上で、Webアプリケーションフレームワークやライブラリを利用したプログラミングについて理解している。
-
リファレンス等を参照して不具合の調査ができる。(英語のドキュメントを含む)
-
(単体)テストやデバッグに関して、考え方や手法を理解して活用できる。
-
HTML5 (4.01+) の仕様に精通している。
または、文書構造とセマンティクスを意識したマークアップに関する深い知識があり、それを十分活用できる。 -
CSS3 (2+) の仕様に精通している。
または、クロスブラウザ対応に関する深い知識があり、それを十分活用できる。 -
JavaScript の仕様に精通している。
または、JavaScript を利用したプログラミングに関する高度な知識があり、それを十分活用できる。
例) -
this について正しく理解してコーディングできる。
-
apply や call, bind メソッドについて正しく理解して利用できる。
-
bubbling について正しく理解してコーディングできる。
-
イベントとイベントリスナについて正しく理解してコーディングできる。
-
変数等のスコープについて正しく理解してコーディングできる。
-
無名関数について正しく理解してコーディングできる。
-
ECMAScript 6 (2015) 以降の構文を理解して活用できる。
-
Ajax について十分理解して、コーディングできる。
-
HTTP 通信の概要を理解して Web API を活用したプログラミングができる。
-
React.js や Vue.js にについて基礎的な知識に関して十分理解しており、周辺技術と組み合わせて不自由なくアプリケーションの開発ができる。
-
レスポンシブ対応のアプリケーション開発経験がある。
または、レスポンシブ対応に関する十分な知識があり、それを十分活用できる。
望ましいスキルや経験
-
JavaScript の単体テストの知識や経験があり、イベント処理の単体テストの知見がある。
-
Sass の知識や経験があり、適切なクラス設計ができる。
-
JavaScript の linter を適切に設定できる。
-
CSS の linter を適切に設定できる。
-
git の仕組みを理解して適切に利用できる。
-
NPM の概要を理解した上でオプション等含め適切に利用できる。
-
WebPack の概要を理解した上でオプション等含め適切に利用できる。
-
Babel の概要を理解した上でオプション等含め適切に利用できる。
-
シンプルで他人が読みやすく理解しやすいコーディングができる。
-
応答性能を意識した正確で効率の良いプログラミングができる。
-
応答性能の課題に関する知見があり、パフォーマンスの課題を解決できる。