プログラミングの技術を客観的に知るには?

 2018.07.10  株式会社システムインテグレータ

エンジニアのプログラミング技術を判断するためには、基準をどのように考え、またそれを測るために何が必要なのでしょうか?

人事担当者の方の多くは新しいエンジニアを採用する際に少なからず不安を感じたことがあるのではないでしょうか。履歴書に記載されていたキャリアは本当だろうか?期待している技術は持ち合わせているだろうか?即戦力になるだろうか?こうした不安をもつ理由はおそらく、エンジニアの採用にて期待と実際に差があるという経験があるからでしょう。

面接ではプログラミング技術に自信があると言っていた。履歴書に記載されているキャリアも申し分ない。参画したプロジェクトも多く期待できそう。履歴書審査や面接ではこうした印象を抱いても、入社してみるとプログラミング技術も不十分で即戦力にならなかったというケースが多くあります。

これは多くの人事担当者が同じような経験をしていることでもあり、だれもが課題に感じているポイントでもあるのです。だからと言ってあきらめてはいけません。これからエンジニア採用に関する基準を明確に設けて、自社が本当に求める人材を採用できるような体制を整えてゆく方法はあるのです。

そこで今回は、エンジニア採用活動においてプログラミング技術を客観的に判断するための方法についてご紹介します。ちなみにプログラミング技術の客観的判断は採用活動の場だけではなく、自社エンジニアの技術力向上とシステム品質の向上を継続的に目指す上でとても大切な取り組みにもなります。

適切なエンジニア採用で即戦力を確保したい、また社内エンジニアの成長とシステム品質の向上を実現したいという課題をお持ちであれば、きっと本稿がご参考になると思います。

技術力が高いプログラマーってどんな人?

米国でプロフェッショナルなプログラマーチームをプロジェクトごとに編成し、サービスを提供するTeamed.ioという会社があります。同社で働くYegor Bugayenko氏(多種多様な基準から見るプログラマの市場価値/原文)によると、優秀なプログラマーとは次のような人を指します。

オープンソースプロジェクトに参加している

プログラミングに情熱を持っている

自分のコードを積極的にシェアしている

自分のキャリアに対して投資している

特定の言語のスペシャリストである

ブログなどで積極的に情報発信している

他にも細かい要素はありますが、大まかに以上の条件に当てはまるのが優秀なプログラマー(である可能性が高い)としています。Yegor Bugayenko氏によると、職歴や学歴は関係ないとのこと。たとえTwitterのCTO(最高技術責任者)であっても採用するにあたってその職歴は何のプラス要素にもならず、マネジメントの経験などはむしろ長い期間現場から離れていたということでマイナス印象を受けることもあるようです。

これは同社が「プログラミングのプロフェッショナル集団」をサービスの売りにしているからと考えることもできます。しかし、日本の一般企業においても職歴や学歴はプログラミング技術とは無関係だと言えるでしょう。もちろん、東大など超難関校と言われている大学であれば、プログラミング技術に直接的な関係はないものの、その基礎学力の高さなどから「優秀なプログラマーである可能性が高い」と言えるかもしれません。しかし、それは必ずしも当たらないということは皆さんのご経験の中でもあるのではないでしょうか。

では、プログラマーの技術を判断するための具体的な基準はどのように設ければよいのでしょうか?

新規CTA

プログラマー採用にあたっての基準作り

多くの企業ではプログラマーの採用活動であっても人事担当者を中心として活動にあたるかと思います。社員としての適性を見極めるという意味では当然なのですが、さらに理想としては情報システムの開発責任者が積極的に採用活動に参加することが必要です。総務や営業などと違って情報システムには専門的な知識や技術が強く求められます。そうした知識や技術が無い人事担当者が採用活動の中心になっても、間違った採用をしてしまい現場から非難されるだけでしょう。

しかし現実問題として「採用活動は人事担当者がするもの」という考え方があり、情報システムの責任者が採用活動へ積極的になることは少なかったり、人事担当者が選考した後にシステムの責任者が面接するということも多いのではないでしょうか。そこで、人事担当者でもプログラマーの技術を判断できる基準作りが必要になってくるのです。

まずシンプルな基準として設定できるのは資格です。プログラミングには様々な言語(コンピューターに指令を出すためのテキスト)があって、それぞれに検定試験があります。Ruby技術者やPHP技術者など、これらの検定試験に合格しているということは一定の技術を持っているということです。なので、資格をまず基準に考えると人事担当者でもプログラミング技術を簡単に判断できます。

もう一つの基準はプログラミングテストです。採用活動に際しプログラミングテストを実施すれば、そのスコアによって当人の技術力を判断できます。資格を所持していても必ずしもその技術を深く理解し使いこなせているとは限りません。しかし、独自に実施するプログラミングテストのスコアによって技術力を判断することは簡単です。また、優秀なプログラマーが必ずしも資格を持っているとも限りません。そのため、プログラミングテストのほうがより適切なエンジニアを判断できると言えるでしょう。

まずは社内のエンジニアに対してプログラミングテストを実施し、その結果から社内の基準もわかるため、相対的な採用者のプログラミング技術を判断しやすくなるのです。 [RELATED_POSTS]

プログラミングテストを簡単に実施するには?

プログラミングテストによる技術力判断を実施するには問題があります。一つはテストを作成しなければならないこと。テストを実施するためには当然設問が必要なので、この作成をシステム開発の担当者に依頼する必要があります。設問を作ることも一苦労なので、積極的に協力してくれる人は少ないかもしれません。さらに、それらの問題は定期的に変更しなければなりません。

もう一つの問題はテストはあっても人事担当者で採点することが難しいことです。プログラミングに関する設問と回答が作成してあっても、それを確認しながらの採点ではかなりの時間を費やしてしまいます。かといって、いそがしい開発担当者に採点をしてもらうのも現実的ではないでしょう。

そこでプログラミングテストを簡単に実施できる方法をご紹介します。それはプログラミング技術を判定するためのサービスを利用することです。たとえばシステムインテグレーターが提供する「TOPSIC(トップシック)」というサービスは、オンラインでプログラミングテストを実施できかつ自動採点で素早くテスト結果を出すことができます。

テストの設問を作成しているのは世界的なプログラミングコンテストを運営しているAtCoder社です。JavaやC#、Ruby、Perl、PHP、Python、Scala、COBOLなど主流なプログラミング言語をすべて網羅しており、新しい問題が次々と出題されます。

TOPSICを利用すれば開発担当者に依頼せずとも、プログラミングテストを人事担当者だけで完結することができます。採点は自動なので効率よく行うことができます。これなら採用活動に際しエンジニアのプログラミング技術を客観的に判断できます。

さらに、社内エンジニアにも定期的なテストを実行することで課題意識を持たせ、モチベーションの向上によって技術力を向上するための支援ができます。ひいては自社システムの品質向上にも貢献するでしょう。

エンジニアのプログラミング技術を客観的に判断したい。そんな時はTOPSICをぜひご利用をご検討ください。

新規CTA

RELATED POST関連記事


RECENT POST「最新動向」の最新記事


この記事が気に入ったらいいねしよう!