プログラミングが“好き”だと思えることは「採りたいエンジニア」の大前提
※本記事は、2015/6/29に投稿されたTechAcademyマガジンからの転載記事である。
本記事は、非エンジニアサミット「プログラミングをシゴトにする」の第3回イベントレポートである。このイベントは、これからプログラミングの学習を始める人を対象に開かれたものだ。ゲストは、クラウドワークスCTOの大場氏、Fablicの堀井氏。(お二人の講演の様子はこちらから)今回は、大場氏と堀井氏によるパネルディスカッションを第2回に引き続きお伝えする。小テーマは、「エンジニアとして働く段階」のとき、エンジニアに求められるものについて。
「これからのエンジニアに必要なスキル」とは
続いて、大場氏、堀井氏によるパネルディスカッションです。モデレーターはTechAcademyを運営するキラメックス株式会社の代表取締役社長の村田がつとめました。
パネルディスカッションでは、事前に参加者から募集した質問をもとに回答いただきました。質問はこれからエンジニアになっていくことを想定して、下記のセクションに分けて進めています。
- エンジニアになる前の段階
- エンジニアとして働く段階
- エンジニアとしてさらにスキルアップする段階
本記事は、2つ目のセクション「エンジニアとして働く段階」についてのディスカッションの様子をお伝えします。
2. エンジニアとして働く段階
村田:では、次の項目に入っていきますね。「採用したいと思うエンジニアの特徴」について聞いてみたいと思います。具体的にこんな人がいいな、というものがあれば教えていただけますか?
堀井:大前提として、「プログラミングが好き」であるということが当てはまるのかなと思っています。やっぱり好きな人って勝手に自分でどんどん技術習得して、自分自身でスキルアップしていくので根本的にプログラミングが好き、ものづくりが好きという“素養”はまず見てますね。
あとは、Githubとかを使って自分が書いたコードを他の人に見てもらう、シェアするみたいな文化があると思うんですけど、自分の恥をさらすことができる、自分の持っていることをシェアするとか「オープンさ」みたいなものを持っている人は素晴らしいなと思いますね。
大場:堀井さんのお話の中でもサービス志向のエンジニア、みたいな話題がありましたけども、スキルはすごい優秀だけどうちの事業にそんなに興味ない、みたいな人は、今のステージでは採用が難しいです。なにかしら共感をもってるところのプラスアルファでエンジニアリングを見て採用しています。
村田:会社の規模とかフェーズによっても変わってくるかなと思うんですけれども、やはりそもそものエンジニアとしてのプログラミングが好きであったりとか、サービスが好きみたいなところは、基本的に重要ですよっていうことですね。
村田:では、次です。「優秀なエンジニアはどうやって見極めているんですか」という質問です。大場さん、いかがでしょうか?
大場:正直に言って僕も「これだ」というものはないですけど、一番確実なのは一緒に働いたことがある人ですよね。やっぱりいろんな会社にいると、こいつは本当にすごいみたいな人が何人かいたりします。
堀井:優秀の定義にもよるかなと思うんですが、見極めるとしたら今はGitHubとかあるので、どういうコードをその人が書いているのか、アプリなど個人でプロダクトを出しているのかとか見たりしますね。
村田:結局その人がどういう人かとか、どれくらいできるのかっていうのが見えるかどうか、というのは結構重要なのかもしれませんね。ポートフォリオなりGitHubなり、いまだとそういうのが結構アピールしやすい時代かなと思います。
村田:次にいきますね。「プログラミングスキル以外でエンジニアに求めることはありますか」という質問です。堀井さん、どうでしょうか?
堀井:これはもうたくさんあります。まず弊社もベンチャーなので、プログラミングだけできる人は結構厳しいのかなと。具体的に言うと、やはりコミュニケーション能力が高い人がいたら嬉しいです。実際、弊社はユーザにヒアリングすることがあるので、ちゃんとそのユーザさんとコミュニケーションが取れるかとか、仕様が上から降ってくるのを待つのではなくて自分で考えたものをデザイナーやディレクターに発表して巻き込んでいく力、みたいなのが問われるシーンが多いです。
大場:エンジニアに求めるコミュニケーション能力でいうと、そもそも人と話すのが苦手だからコンピュータを扱う仕事を選んだみたいなところもあると思うんですよね。
立ち上げ初期のベンチャーだと、とにかく作るというところがメインになっていて、そんなにコミュニケーションする必要がなかったりします。でも組織がちょっと大きくなってサービスが伸びてくると、ある時点からチーム開発みたいなものが求められて個人技だけでは限界がきたりします。そういうとき、ちゃんと自分に求められている役割の変化を感じて、それについて来れるかは考えてほしいなと思ったりします。
具体的にはさっきの仕様の話だと、ゆるふわで落ちてきた仕様に対して「こんな仕様でできるか」と思うか、「僕が決めてもいいんだ」というように受け止めるかで大きな違いがあると思うんですよ。それってエンジニアリングのバックグラウンドがあって、そういう幅のある仕様のなかで可能性として見られるかどうかっていうのは大きな違いじゃないかなと。
村田:自分から能動的に動いて、与えられたものだけじゃなくてしっかりそれ以外も自分で発信できるっていうことを理解した上でスキルを上げていけるような方が優秀になってくるし、それが求められるかもしれないですね。
村田:次の質問ですが、「エンジニアとして働き始めてからどんな勉強が必要ですか」とのことです。基本的に、エンジニアは日々勉強みたいなところがあると思うんですけど、そういったこと以外に何か具体的にあれば教えていただけますか?
大場:最近だとエンジニアの向かう方向性としてフルスタックみたいに、いろんな層の技術をまたがって自分一人でもサービス立ち上げができるみたいなところを目指したりもしますけど、実際本当に伸びてくサービス開発のなかでフルスタックになっていくのはめちゃくちゃ難しいと思っています。
他に得意な人がいればなかなか手を出すのも難しい、どこをやってもいいよと言われても躊躇してしまうというところがあったりします。
そんななかでできることは、ひとつひとつ極めていくところだと思っています。ただ、1つの技術だけで戦っているとリスクも高いので、次はこの専門家になろうみたいな2つ掛け合わせるものが何かあるといいんじゃないかと思います。
堀井:私はどういう勉強をしていたかなと思い返してみると、やっぱり学んでいくには段階的になると思うんですよね。
1つの言語を学んで、データベースのことも学んで、今度はその言語の上に動いているフレームワークのことを学んだりと、段階的に自分が学んだことに派生して勉強してきました。なので、最終的に自分が得意であると言えるくらいのところまで行けるように深掘りして、1つの技術を学んでいくのがいいのかなと思いますね。
エンジニアにもスペシャリストを目指すのか、ジェネラリストを目指すのか、さまざまな方向性があると思うんですが、ひとつ「自分はこういうエンジニアだ」とか、「自分の代表するプロダクトはこれだ」とか、そういうものを作れるようになるまでは深掘りすることがいいかなと思いますね。
村田:やはりエンジニアとしてどこか1つでもいいので、ある程度極めるというか、「できた」と思えるところまでやって、そこからは「スキルの掛け算」みたいな取り組みが重要になってくるということですよね。
次回も引き続きパネルディスカッションの様子をお伝えしたい。テーマは、3つ目のセクション「エンジニアとしてさらにスキルアップする段階」について。さらなるスキルアップのために「身を置くべき環境」とはどういったものか、についての自身の経験をふまえた指針は必見だ。
TechAcademyマガジン 編集部
[原文4]