ITエンジニアのスキルチェックをする方法

   


スキルチェックする方法って2つあります。

1. 他人のスキルをチェックする
2. 自分のスキルをチェックする

1はプロジェクトリーダーの人が追加メンバーのスキルをチェックする場合や、社員の採用面接をするような場合にも必要です。
2は、「自分が入りたい会社に入るスキルがあるか?」とか、次やる仕事が自分に出来るか確認したい場合などに使います。

これらについてそれぞれ紹介します。

1. 他人のスキルをチェックする方法

私は以前チームリーダーをやっていた頃に、追加メンバーのスキルチェックの方法をいろいろと試行錯誤しました。

いろいろ試した中で一番良かったのは、「コードを書いてもらうこと」です。書いてもらうコードは簡単なものでOKです。

簡単なコードも書けない「えせエンジニア」は多い

難易度的にはFizzBuzzとかでいいと思います。私が実際に問題として出したのはFizzBuzzよりももっと簡単で、例えば、「配列aに5個の数字が入っています。この配列の中で4という数字が入っている要素のインデックス番号を出力するプログラムを書いてください。」みたいな内容です。簡単ですよね。

JavaScriptで書くとこんな感じです。

「解けないわけないじゃーん!?」なんですけど、解けない人はけっこういます。

その要員を連れてきた上司は「こんな難しい問題解けるやつうちの会社にはいないよ、会社を潰す気か?!」と言い出したんです。「いい加減にしてくれ(笑)」ですよね。

プログラマーとして現場に送り込んで報酬を請求しようとしていたわけですから、こんな簡単なコードすら書けない人を連れてきたら、それだけで信用問題だと思うんですが、案外SIerのレベルというのは信用できないレベルのようですね。

コードを書いてもらうとそれが短いものであったとしてもいろいろなことがわかります。例えば、変数名の付け方はどんなものを使っているか?インデントの付け方、空行の入れ方など、結構個性が出ます。

短いコードから読み取れる意識の高さ

変数名にわかりやすい名前をつける人は、可読性についての問題意識がある人だということがわかります。というような、プログラマーとしての意識の高さが短いコードからも分かるんです。美は細部に宿るって言葉がありますが、プログラムのコードも同じです。きれいなコードを書く人は、ちょっとした短いコードでも美しいコードになるんです。

話すだけではわからない場合ってけっこう多いものです。あります。もっともらしいこと言ってるんだけど、コード書かせてみたら、全く書けなかったなんて人よくいます。

とはいえ、会話の中で相手のレベルを見極める方法もあります。

わかる人にしかわからない質問をしてみる

私がよく聞く内容はオブジェクト指向の質問です。

オブジェクト指向には3大要素があります。
1. カプセル化 … private, publicなど、内部の要素の後悔レベルを変えることによって、モジュールの結合度を下げる
2. 継承 … 親クラスの機能を受け継ぐ
3. ポリモーフィズム … オブジェクトの中身によって、実行されるメソッドが変わること

これらについて説明をしてもらうのでもいいですし、特にいいのはポリモーフィズムについて質問することです。ポリモーフィズムを利用することによってフレームワークは作られているので、「そのプロジェクトで使われてるフレームワークのどの部分にポリモーフィズムが使われていますか?」と聞いてみるといいでしょう。

実力のある人は即答できます。

私は業務システム開発を長くやっていたのですが、当時のプロジェクトではStruts1というフレームワークが使われていました。

「Strutsでポリモーフィズムを使っている部分ってどこかわかりますか?」

と聞いてみた所、出来る人は

「Actionクラスのexecuteメソッドを呼び出す所です。」
「ActionFormのvalidateメソッドを呼び出すところです」

などと答えてくれました。抽出メソッドを呼び出す部分がポリモーフィズムなわけですが、抽象メソッドを理解してる人ってけっこう少ないんです(動的型言語の場合は抽象メソッドじゃなくてもOK)。ですから、この質問は、出来るエンジニアかのしきい値として使えます。

ということで、他人のスキルをチェックするには、
1. 簡単なコードを書いてもらう
2. 分かる人にしかわからない質問をしてみる
というのが良いと思います。

2. 自分のスキルをチェックする方法

自分のスキルをチェックするのって難しいものです。評価するのって基本的にレベルが上の人が下の人に対してじゃないと出来ないものですからね。とはいえ、自分よりレベルの低い上司に評価されるという会社はよくあると思いますが(笑)

それに自分のことって客観的に評価できないですよね。どうしてもひいき目にみてしまったり、自信のない人だったら、実際よりも低くみてしまいがちです。

資格試験を取れば客観的なスキルが評価できそうですが、評価できるのは知識だけです。実際の仕事のスキルの評価とは少し違います。

では、どうするかというと、入りたい会社でやる仕事や、次入るプロジェクトの仕事を自分一人でできるかどうかを考えてみるといいと思います。

自分一人でそのシステムを作れるか?

例えば、Twitterに入社したいとします。あるいは次のプロジェクトでTwitterのようなシステムを作るとします。

「自分一人でTwitter作れるかなぁ?」と考えてみるんです。

「つぶやくボタンを押したら、AjaxでフォームをサブミットしてDBに書き込めばいいんだろうな」
「フォローはどう実装するんだろう?フォローボタンを押したら、ユーザーIDとフォローしたユーザーIDとの対照表テーブルに関連を保存すればいいんだろうな」
「フォローしてるユーザーがつぶやいたら、画面に新しいつぶやきが1件ありますって表示されるけど、あれはどうやって実装するんだろう?わからないなぁ」

などのように考えていくと自分がその仕事に必要なスキルを持っているのかチェックすることが出来ます。具体的に考えていくことがポイントです。

ちなみにわからないことがあったら、まだ実力不足だと諦めるんじゃなく、調べれば分かることはあります。

新しいつぶやきの通知機能であれば、「Web 通知」のようなキーワードで検索すれば、Webソケットやコメット、ポーリングなどの技術が見つかるとはずです。

さらに、

「アプリケーションの機能は実装できそうだけど、あれだけの大規模なトラフィックをさばくのはどうやっているんだろう?」

などのように考えていくと、自分に足りない部分、これから学ぶべき部分も見えてきます。なので、目標を立てる方法としても使えますね。

ぜひ、参考にしてみてください。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはDODAというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『DODA』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、DODAは未経験者を支援し転職を成功させています。未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

フリーランスになりたい人には『ギークスジョブ』

フリーランスエンジニアになるには人脈が必要と思われがちですが、ギークスジョブに登録して希望条件を伝えれば、自分に合った案件を紹介してもらえるんですよ!思ってるより全然簡単にフリーランスってなれるもんなんです。

東京・大阪・名古屋・福岡の案件を紹介してもらえます。

 - 仕事術 ,