エンジニアをどう評価し、どう育てるか。自分自身そんな偉そうなことを言える実力を持ってるわけでもないんですが、最近考えざるを得ない機会が増えてきたので、自分の考えをまとめてみました。

エンジニアスキルの3つのレイヤー

エンジニアのスキルは、大きく分けると3つのレイヤーがあると思っています。

1つ目は「業務スキル」。特定のプロダクトや会社に特有のスキルで、プロダクトや会社が変わると役に立たなくなるもの。

2つ目は「言語・フレームワークスキル」。いわゆる「rubyできます」「railsできます」みたいなやつですね。

そして3つ目は「汎用スキル」。会社や言語が変わっても使えるスキルです。

この3つはそれぞれオーバーラップする部分もありますが、汎用スキルが土台になって、その上に言語・フレームワークのスキルを構築し、一番上に業務スキルが乗っかってるイメージです。

じゃあその汎用スキルって何よ?っていうのをざっくり挙げると、

  • コンピューターの知識
  • 要件を設計に落としこむ力
  • オブジェクト指向、関数型プログラミングなどのパラダイムの理解
  • ネットワークやOSなどのインフラの知識
  • コードを深追いする力
  • ググる力(必要な答えを出すための最適なワードを考える力)

などなど、10人に聞いたら10通りの答えが出そうなぐらい色々あると思いますが、凄い人の凄い人たる所以ってこういうところじゃないかなあと思ってます。

SPONSERD LINK

エンジニアの評価

エンジニア採用の時に「求められるスキル」というのをほとんどの会社は書いてると思います。

社外の人が「業務スキル」を持っていることは基本的に(出戻り以外は)ないので、多くの場合は2つ目の「言語・フレームワークスキル」の話になります。

「rubyの実務経験3年以上」「iOSアプリの開発1年以上」などですよね。

もちろんそのプロダクトで使われている言語で実装してもらうので、その言語がどれだけできるかというのは重要なのですが、実際にどれだけのパフォーマンスを出せるかという観点で言うと、一番下の汎用スキルは言語・フレームワークの経験以上に重要になってくると思ってます。

ぶっちゃけめっちゃできる人って、初めて触る言語でも1日ぐらいドキュメント見るなりチュートリアルやるなりで感覚つかめばそこそこ書けちゃったりするんですよね。

「rubyの経験はないですがphpは3年ぐらい書いてます」っていう人が二人いた時に、WordPressの簡単なカスタマイズばっかりやってきた人と、cakePHPのコミッターですみたいな人では、それぞれゼロからruby勉強した時のパフォーマンスに雲泥の差が出ることは想像に難くないと思います。

なので自分がエンジニアのジャッジをする時は、「言語・フレームワークスキル」はわりと話半分で、どっちかというと「汎用スキル」をどれだけ持ってそうかという部分に終始している気がします。

事前にgithubのアカウントがわかっていてそこそこアクティブだと特に安心できます。少し前にメルカリさんがメールアドレスとgithubアカウントしかない応募フォームを作って話題になってましたが(参考記事)、実に理に適ってると思います。

エンジニアの育成

じゃあ今度は育成する側、もしくは自分がどう「汎用スキル」をつけていけばいいかというところですが、これがぼくの中で全然定まってないです。

もちろん経験を積むことでしか得られないこともいっぱいあるのですが、よりよい経験にしていくために特に意識したいこと(意識して欲しいこと)は今のところこの2点かと思います。1ヶ月後にはまた違うこと言ってるかもですが。

1. 気になったことはどんどんググって勉強する。本も読む。

「あーこの辺ちゃんとわかってないとこういう時つらいな」みたいなのが見つかったら人に聞くなりググるなり本読むなりして知識を増やしていくのは非常に重要だと思ってます。1回で理解できなくても、書いてるうちにだんだんつながってきてイメージができてくることもよくあります。(「オブジェクト指向」とか「OSI参照モデル」とか「データベースの正規化」とかは何十回ググったことか・・・) そうやって勉強したことと手を動かして経験したことが相互に影響し合って徐々に「汎用スキル」になっていくイメージです。

2. 下のレイヤーをこわがらない。

使ってるフレームワークやライブラリのソースはどんどん読む。スキあらば直してプルリクエスト送る。

今は言語もOSもオープンソースが主役なので、今作ってるシステムのコードは上から下までほとんど全部読んだり直したりできるっていう意識高い感じで取り組むと、問題解決の幅が広がります。

ググってなかなか解決しないことでも、ちょっと気合入れてソース読んだらなんとかする方法が見つかったりするもんです。

まとめ

前回の初心者向けの記事のきっかけになった人達にも、このあたりを意識していただけるともっと楽しくなってくるんちゃうかなーと思いつつ、もっと他にも色々やりようはあるんちゃうかなーとも思いつつ。はてぶ・twitter・facebookなどで他の人の意見も色々見れたら嬉しいです。