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

2016年11月29日に投稿 → に更新


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

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

1は社員の採用面接や、プロジェクトの追加要員のスキルをチェックするシチュエーションです。

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

それぞれくわしく紹介します。

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

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

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

かんたんなコードも書けない「えせエンジニア」は多い

難易度的にはFizzBuzzとかでいいと思います。私が実際に問題として出したのはFizzBuzzよりももっとかんたんで、

「配列aに5個の数字が入っています。この配列の中で4という数字が入っている要素のインデックス番号を出力するプログラムを書いてください。」

みたいな内容です。かんたんですよね。

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

「こんなかんたんなコード書けないやついるわけないじゃん?」と思われたかもしれませんが、書けない人がけっこういたんです。

その要員を連れてきた上司は

こんな難しい問題解けるやつうちの会社にはいないよ、会社を潰す気か?!」

と言い出したんです。コントみたいな話ですが実際にあった話なんですよ。

こんなかんたんなコードさえ書けない人をプログラマーとして現場に送り込んで報酬を請求しようとしていたわけですから、知性やモラルが疑われます。

コードを書いてもらうと、たとえ短いコードでもいろいろなことがわかります。例えば、

  • ロジックの組み方
  • 変数名の付け方
  • インデントの入れ方
  • 空行の入れ方

など、けっこう個性が出ます。

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

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

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

話した感じだと、もっともらしいことを言っているんだけど、コード書かせてみたら、全く書けなかったなんて人もよくいます。

ですから、コードを書いてもらうのが一番なのですが、会話の中で相手のスキルを見極める方法もあります。

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

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

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

  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ソケットやComet(ロングポーリング)などの技術が見つかるはずです。

さらに、

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

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

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

おまけ: 給料で損した経験談

私と同じ失敗をされないよう経験をシェアしてます。

私が新卒で入った会社は社員数80名の零細ベンダーでした。

基本給は17万円で手取りは14万円くらいでした。仕事は客先常駐の業務システム開発(言語はJava)でした。

会社の先輩に「うちの会社って給料安すぎませんか?」って聞いてみたところ、

「どこもそんなもんだよ、ふつうふつう」

と言われて、「そうなのかなぁ…」と半信半疑ながら4年半勤めて年収は320万円でした…。

「やっぱ安すぎだろ!?」と思って試しに転職してみたら、

仕事内容はほぼ同じで年収が120万円もアップしたんです!

「こんなことがあっていいのか…」って感じですが、現実はどんな仕事をするかより、どの会社で働くかで給料が決まる面が大きいんですよね。

給料の高さが全てではありませんが、年収相場より大幅に安いという方は一度転職を検討してみると良いと思います。

相場がどれくらいか分からないという方はこちらの記事も、ぜひ読んでみて下さい!

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

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

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

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

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

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

エンジニア未経験の方や地方在住の方には『ワークポート』

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

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

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

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

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

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 仕事術 ,