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

      2016/12/23


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

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

1はプロジェクトリーダーの人が追加メンバーのスキルをチェックする場合や、社員の採用面接をするような場合にも必要です。

2は、「自分が入りたい会社に入るスキルがあるか?」とか、次やる仕事が自分に出来るか確認したい場合などに使います。

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

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

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

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

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

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

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

「こんな簡単なコード書けないやついるわけないじゃーん!?」なんですけど、書けない人はけっこういました。

その要員を連れてきた上司は「こんな難しい問題解けるやつうちの会社にはいないよ、会社を潰す気か?!」と言い出したんです。コントみたいな話ですが実際にあった話なんです。

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

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

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

変数名にわかりやすい名前をつける人は、可読性についての問題意識がある人だということがわかります。というような、プログラマーとしての意識の高さが短いコードからも分かるんです。

「美は細部に宿る」って言葉がありますが、プログラムのコードも同じです。きれいなコードを書く人は、ちょっとした短いコードでも美しいコードになるんです。

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

そんな時、コードを書いてもらうと実力がよく分かるのですが、会話の中で相手のレベルを見極める方法もあります。

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

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

オブジェクト指向には3大要素があります。

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

これらについて説明をしてもらうのでもいいですし、特にいいのはポリモーフィズムについて質問することです。

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

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

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

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

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

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

などと即答しました。

抽出メソッドを呼び出す部分がポリモーフィズムなわけですが、抽象メソッドの実践レベルの使い方を理解してる人ってけっこう少ないんです(動的型言語の場合は抽象メソッドじゃなくてもOK)。

ですから、この質問は出来るエンジニアのしきい値として使えます。

ということで、他人のスキルをチェックするには、

  1. 簡単なコードを書いてもらう
  2. 分かる人にしかわからない質問をしてみる

というのが良いと思います。

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

自分のスキルをチェックするのって難しいものです。

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

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

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

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

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

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

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

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

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

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

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

さらに、

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

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

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

プログラミング初心者におすすめのサービス
1. 講師から対面で学びたい派には

プログラマカレッジをおすすめします。ProEngineerという転職エージェントが運営しているプログラミングスクールです。なんと無料で受講できて、修了後、就職支援もしてくれるそうです。最高過ぎですよ、これ!!就職の紹介料を企業からもらえるのでスクールを無料にできるんでしょうね。すばらしいシステムだと思います!

2. 自宅で学びたい派には

侍エンジニア塾の無料体験レッスンをおすすめします。カリキュラムを自由に選択できるので、自分が教わりたい内容をピンポイントで学ぶことが出来ます。このスクールから33歳でITエンジニアに就職出来た人がいるそうなので、30代の方にもおすすめです。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!

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

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

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

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

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

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

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

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

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

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるので、実はとてもいい選択なんです。

 - 仕事術 ,