エンジニアのレベル感について
2018年08月21日
目次
エンジニアレベルの表現方法
こんにちは!ウェブエンジニアのジワタネホです!
先日個人のポートフォリオ的な記事を書いたんですが、
ふと思ったのがエンジニアのレベル感ってどう表現すれば分かりやすいんだろうと。
本日はそんな考察を書きたいと思います。
エンジニアを新規に雇ったり案件を委託する事業担当者の方、
新しいプロジェクトを探していて、自分の何を伝えるべきなのか迷っている方。
そんな人達の参考になれば!!
レベル感が必要な理由
まあ言わずもがなですが、案件の依頼主からしたら依頼内容を本当に任せられるのかが焦点となります。
その上で依頼主が開発に近い人であればあるほど細かい部分を知りたくなるのは当然です。
例えば、css3でコーディングできます。と一概に言っても、SMACSSは理解していますか?sassは?BEMでいけますか?とレベル感が大事になってきます。
静的なコーディングだけでも掘ればどこまでも深くレベル感を表せます。
で、僕としては、ポートフォリオを作る時にそのレベル感を入れたほうが、読む人にとってうれしいのではないかと。
で、どういった観点でのレベル感が伝わりやすいかの考察をしていきたいと思います。
使用技術別の観点
今回は私の専門であるフロントエンド関連の技術に限定しようと思います。
まあサーバーサイドもやりますが、専門ではないということでレベル感を細かく考察はできないかなと。
HTML/CSS
初歩
まあ初歩はSEO観点でのコーディングなのかな。
h1〜ちゃんと出来ているかとか。
中級
slim、sass等でのコーディングやBEM等のコーディングルールの理解ですかね。
上級
上記のsass等をgulpやgrantでビルドまでするところですかね。
正確にはビルドする環境を作るところからかな。。
railsなんかだとビルドする必要なかったりしますが。。
あと中級に入れるかどうか迷ったけどmixinの作成もここに入れておきます。
上級から動的コーディングも含める的な感覚で。
JavaScript
初歩
jQueryでのコーディングですかね。
中級
Chart.jsやCropper.jsなどデザイン系のライブラリの実装かと
上級
react.js、vue.js、angular.jsなどのフレームワーク系の実装かな。
正直ここら辺は意見分かれるでしょうねwww
私自身もこの観点だけでは微妙な気がする。
まずフレームワークは知っている種類が多ければ良い訳ではないという話ですね。
重要なのは質ですよね。質。
実際のプロダクトでは、vue.jsとreact.jsとangularを全て使っているアプリなんてないだろうし、どれか1つでも極めていてくれた方がプロダクトへの貢献度が高いのは自明でしょうと。
ただエンジニアとしてのリテラシーのようなものを測る上では、複数理解しているというのはポイントかもしれませんね。
単純にreactとangularを理解しているならvueも実践の中で理解できるはずという仮説は十分妥当なものとなるはずです。
まあ各フレームワークの特殊性とかはとりあえず置いておいても、理解しているものが複数あるに越したことはないのかなと思います。
プロダクトベースでの観点
知っているとできるは違うものです。
上記の使用技術的観点だけではこの違いはどうしても見えないと思います。
なので、上記の技術を使ってどんなプロダクトのどんな開発をしたかというのが分かれば、力量は測りやすいかと。
上記のフレームワークは知っている数が多ければよいってもんじゃないよ問題もここで解決できるかと。
なので、この観点では実質上記の技術の中のjavascriptの部分のみに該当します。
もちろん実際にプロダクトの実績がない場合には、デモ開発などでも十分伝えることはできると思います。
なのでここでは、デモ開発も含めたプロダクトベースでのjavascriptの技術力という観点をば。
初級
デモページでTo doリストですかね。やっぱり。。
中級
デモページでチャットですかね。もうドットインストールじゃんとwww
上級
実際にローンチされているアプリでの開発ですね。
本番に優る実績はないですよね。
ここで始めて納期という概念も生まれますしね。
ただし、実際にローンチされているアプリでの経験だと、つまりはそのフレームや言語で仕事をしたことがあるということになってくると思います。
実際にエンジニアが仕事をするとなると技術力以外の要素(コミュ力や請け負う単価等)が強く影響してしまう可能性が高いです。
この場合をどう捉えるか。。。
フレームワークやライブラリに限った観点
エンジニアの言語や技術習得に対する成長曲線的な観点で見てみたいと思います。
かなり個人的な観点ではありますが、エンジニアの採用決裁者の方なんかは割と参考になるかと思います。
この観点があることで業務上の実績だけでは技術力は計れないよ問題もある程度は解決できるかと。
初級
他人のコードを流用して使うことができる。
つまりはコードは書けないけど読めるというレベル。
初級は初級ですが、案件によってはそれで十分という場合もあるかと。
中級
編集ができる。
上記流用より少しレベルアップ。
書かれているコードのロジックを理解して、実際の要件に合わせてロジックを修正・加筆できるところまで。
おそらく実際の案件の場合はここまででほとんどのタスクをこなせるはず。
上級
0から実装できるレベル。
この場合は、フレームワークやライブラリの選定からスタートしてアプリへのインストールも含まれます。
0から実装という経験は、実際の開発の実務の中ではさほど多いわけではありません。
なので0からの実装は貴重な経験かと。
最後に
いかがだったでしょうか?
「こんな観点で見るのも大事だよ」的な意見があったらコメントいただければと思います。