収益の基盤を見ながら業界を選ぶ

成瀬允宣氏:次は、業界分析。今の話を聞いて、どこの企業にしようかなってなんとなくイメージがつきました。次は、どこの業界の会社を選ぶかですね。

ゴールドラッシュで一番儲けた人たちをみなさんは知っていますか? (コメントを見て)お、よく知っていますね。「デニムを売った人」。そう、リーバイスが一番儲けたってよく言われていますね。

つまりどういうことかというと、今インターネット上、IT業界でこういういろいろなものが跋扈(ばっこ)してきています。それぞれチャンスはいっぱいあります。その時に、君たちはどうするか。例えば仮想通貨が儲かるぞ。じゃあ仮想通貨を掘るのかい? それはリーバイスと同じ戦略を取っているかい? 違いますよね。

翻ってちょっとうちの会社のグループを見てみましょう。例えばこういうインフラや仮想通貨事業、ホスティングなどがあります。言ってしまえば地味なんですけど(笑)、基盤はシステムを作る側、システムを支える側ですよね。どちらかというと、人の営みを支える基盤を作っているんですよ。このインフラを作っている会社のほうが安定した基盤になるんですよね。だから挑戦できる環境につながるんだよなと、いつも考えています。

別にうちの会社だけじゃなくてもいっぱいあるので、そういった収益の基盤があるところを選んでいくと、なかなかおもしろいんじゃないかなとは思います。

じゃあ、僕はどこを目指すのか。僕は、Webの自社開発でいいやと思うんですが、プラットフォームは選べたほうがいいですよね。なので、これまでの話を踏まえてこれなんですけど、結局はでかいところが僕はいいですね。でかくないとできないことがあるんですよ。

あとね、インフラ系もすごくでかくないとおもしろくないです。アプリも規模が大きければ大きいほどチームも増えて、アプリ自体もどんどん複雑になっていけるので、すごく楽しいです。難しいから楽しいですね。「あの山を越える」みたいな、登山みたいな話です。あとWebは外向き発信しやすいからけっこう向いていると思うので、やっぱり今回もWebの自社開発を目指そうと思っています。

提出されたコードのどこを見ているか

というわけで、企業分析をしました。面接の準備をしていきましょう。少なくとも面接に漕ぎ着けなければ始まりもしません。最初は、たぶんみなさんポートフォリオとかエントリーシートを作るんですよね。

ポートフォリオについてなんですけど。僕は、何度も見ています。ポートフォリオは何かというと、(コメントを見て)「制作物、作品集」、そうですね。最近は、ポートフォリオサイトをよく見ますが、だいたい似ているんですよ。作っておくといいとは思うんだけど、ポートフォリオサイトは要らないと思っています。

企業が求めているのは出さなきゃいけないんだけど、僕がいつも思うのは、「Show me the code!」 ということで、コードを見せろと。デザイン要らんねん。

どっちかというとGitHubでいいんだけど、GitHubはGitHubでまたもう1個問題があって、練習用コードとか書籍のコードが残っているパターンがあるねん。これを検索して、「あれ? 書籍のコードじゃん」ってわかった時にすごくガックリくるんだよね。なのでこのへんを消しといてほしいですね。

じゃあ何を見ているのか。コードを見る時に助かるもの、こういうことを書いておいてもらえるとうれしいなっていうのが、この3つ。なんなら上2個だけでいいかな。概要とエントリポイントだけあればなんとかいけるかなと思っています。

エントリポイントさえあればなんとかいける。でも概要もあるとうれしいな。構造のヒントもあるともうちょっとうれしいなって僕はいつも思っています。構造を少し読めば、その人の癖がなんとなく予想できるので、ここらへんがあるといいかな。

コードをどうやって読んでいるかというと、まず構造で全体を把握しています。エントリポイントからズラズラ読み始めて、疑問に思ったら「あ、これどこかな?」と構造を探しにいくという感じですね。どちらかというと、GitHubをパッと出すんじゃなくて、「どのコードを見てほしいぐらい」の、リポジトリを教えてくれるとうれしいです。

こんな感じで構造から把握しているので、ここらへんのヒントがあると読みやすかったりします。もちろんもうちょっと丁寧に書いたほうがいいかなと思うんですけど、なるべく読む側を考えてあげると「あ、この子は気を使ってるな」と思いますよね。

何を見ているかというと、レベル感。これは、このあとの面接の会話のためのレベルを見るために、コードのレベル感を見ています。あとは性格。コードを見ていると、なんとなくこの人が几帳面なのかとか、そういうことがけっこう把握できます。

あとは一貫しているかどうか。変数名がキャメルケースかと思ったらスネークケースからだとけっこうテンションが下がりますね。型推論を使ったり使わなかったりだとか、ここらへんはちょっと一貫してほしいなとか。

あと、面接のネタになりそうなところを探しています。DI使っているかなぁとか、知っているのかな、知らなければこれを振ってみようかなとか、そういうことをけっこう考えています。僕はコメント履歴を見ていないです。最終的な「見てくれ」というところだけを見ています。

あとはおもしろいコードか。「GitHubは読み物」っていう格言があるので、おもしろいコードかどうかってけっこう大事ですね。草の量とかあまり気にしないですよ。たぶん手元のコードを今回のためにアップした人もいるだろうしね。

その他、アピールできること

僕がコードを提出するならここらへんかなっていうのをちょっと用意してみました。DDDの実装パターン例とか、イベントソーシングのライブラリ。クリーンアーキテクチャの典型的な実装例を踏襲したフレームワーク。AkkaによるSagaパターンを使ったマイクロサービス。クラスファイルをいい感じに作るライブラリ。こういう感じのね、開発者を助けるものを使いますね。何かのサービスというよりもそっちが得意なので。

これ実際にコードがあるので、もしよかったら見てみてください。Akkaのマイクロサービスのコードとかね。楽しいですよ、これ。マジで。すごく構造化されているんですけど。マイクロサービスならではのつらみが出てきてね、なかなか楽しいんでね、ぜひとも読んでみるといいかなと思います。こういうコードを書いてきたらね、話の種になるのでおもしろいですよ。

その他のアピール要素。何をアピールするか。競プロとかもありますよね。これ、僕が受けている時で、コードとは別物なんだけど、けっこうレートが高いと「おっ!」って思いますね。ちょっと話を振ってみようかなとか。

あとはハッカソン。これは、開発者にとってすごく大事です。貴重なチーム開発の経験をしているんですよ。そこをやったうえで、まだ開発者を選ぼうって言っているのは、すごいよね。

(コメントを見て)「何色から『おっ!』って思いますか」、なんだっけ。2,000付近を超えているともうすごいなと思うよね。たまにこのイメージだけで開発者になって、結局「違いました」ってなるのがお互いに不幸なので、ハッカソンとかをやってチーム開発をしているとすごく安心感がありますね。

あとは外部登壇。もちろん「AtCoder」ではそれなりの基準があるので、僕はすごくいいと思いますよ。ただ、青(青レート帯)とかになってくると「おっ!」って思いますよね(笑)。外部登壇。これもね、すごくいいです。総数が少ないのですごく目立ちます。特にカンファレンスはハードルが高いので、実力の証明になるかなと思います。

勉強会は、ちょっとコミュニティの質によるので、発表資料を見て判断しますね。けっこう僕は見てきます。(コメントを見て)「メンター経験」、どうだろうね。メンター経験って、2年目から絶対に使うんだよね。面倒を見られる子は絶対いいと思うんだよね、僕はね。

710万円新卒採用では何を求められるか

高いハードルを越えるには。さっきちょっとハードルが高いと話しましたね。(コメントを見て)「Qiita」、学会発表いいじゃないですか。すばらしいですね。Qiitaもいいですよね。「いいね」数が多いと「おっ!」って思いますよね(笑)。

一概には言えませんが、ハードルが高いということは環境に影響するんですよね。何とは言えないけれど、なにかしらいい感じになることが多かったりする。

ここのハードルが高いやつあるじゃないですか、710万円っていう。これは具体的に何を求めている話かというと、こんな感じです。機械学習の論文や発表経験、ハッカソン、ビジネスコンテスト入賞とか。あと長期インターンで優秀な営業成績、学生団体とか勉強会での運営経験、起業経験。起業経験がある人は来ないんじゃないかなと思うんですが、こういうところを求めて、一応ラインを引いています。この中で、うーん、成瀬ができていることは何かなって今思ったら、ないじゃんって思いつつ、あれ? これあるじゃん。これは目指せるな。

もう1個。同じ710万円を提示している「次世代システム研究室」という部署があります。研究開発職の必須スキルなんですけど、だいたい博士号の方を求めているんですね。その中で、起業経験とかいろいろあります。OSSのコントリビューター、技術書の執筆経験、カンファレンスへの登壇実績。成瀬ができているところが実は3つもあって、これなんですよね。これはそりゃ今やっていますからね、これはいいや。執筆とかしているんですよね。

勉強会運営、技術書の執筆、カンファレンス登壇は意外とできる

成瀬ができているということは、みんなみたいなプログラマーなら達成できるんじゃない? 準博士号はどうだろうね。それに準ずるっていう話なんだ、たぶん。話の持っていき方次第かなとは思いますけど。

成瀬ができることは、プログラマーならできるんじゃないですか。ということで考えてみました。カンファレンスの発表・運営経験。これはどうやってやったかというと、たまたまドメイン駆動設計のコミュニティで知り合った友だちが「やりたいな」って言い出して、ズルズルとコアスタッフになったんですね。

これには運がありますが、勉強会レベルならいくらでもできません? 最近はオンライン完結なので、始められるじゃないですか。(コメントを見て)「成瀬にはなれない」、成瀬にはならなくていいですよ。成瀬は1人でいいんで(笑)。

勉強会を運営している人はいっぱいいるんですよ。今はオンラインでできるので、すごく始めやすいんですね。人を集めるのは難しいけれど、やるだけだったらすごく簡単なんですよね。それで人が集まったら自分も楽しいし。

技術書はどうなんだろう。実を言うと、出版社って著者をすごく求めているんですよ。自分が一番いい本が書けると思ったら、企画書を持ち込みましょう。自費出版も言い方次第じゃないですか。技術書典とか、普通に商売っ気が出ていますからね。

これは再現性があるんですよ。マーケティングの算段をしておくと、出版社にかなり持ち込みやすかったりします。ただ1個だけ言うと、本を書くのはすごくつらいです。

もう1個。PHP ConferenceとかJJUGとか、著名なカンファレンスにおける登壇実績。カンファレンスの登壇は再現性があるんですよ。これは、CfPを通せばいいだけなんですね。しゃべるだけなら、実はそんなに難しくなかったりします。だから意外にこれ、いけるんじゃないかなってちょっと思います。内緒だよ? GMOの人には。内緒内緒、いけるいける(笑)。

企業が使っている技術を面接前に知る方法

というわけで、面接に向けて情報収集をしましょう。面接を受けるなら、もちろんその企業が扱っているサービスをある程度知るのは、みなさんやりますよね。そのうえで何をするべきかというと、僕はその技術を知ることをおすすめします。

面接の前にどうやって技術を知るか。その企業のサイトを見てもわからないじゃないですか。どうするかっていうと、ここにWappalyzerというものがあります。例えばうちの会社のサービスをちょっと見てみましょうか。

例えば、僕が関わったやつで、ホスティング事業のレンタルサーバーをしているところのコンパネなんですけど。これを見ると、使っている技術がわかるんですよ。「あ、Vue使っているね」とかわかるんですよね。あとBabelとか。これは優秀ですよね。サーバー情報は一切出ていないですね。

ほかにも例えば、デスクトップクラウドっていう、Windowsのデスクトップのクラウド版ですかね。これはASP.NETで使っていますねとか。あとはバーチャルマシンのコンパネのKVM。これも見ると、例えばReactを使っているなとか、こういうのがわかります。これをネタに雑談を持ち込めば、かなり会話ができるんじゃないかなと思ったんですよね。

(コメントを見て)「PHPとかでWappalyzerで情報を隠蔽する」。そう、よくやりますね。けっこう隠しているのでサーバーサイドは見られないんですけど、フロントのVueとかは隠しようがないので見られます。その話を振ってみるとかね。事前に情報収集はできます。

あとは、その企業が出るイベントを見ておいて、「この人の話が参考になりました」とか言うと、やっぱり話は盛り上がりやすいですね。

面接での攻略対象は偉い人よりも現場の人

では実際に面接で何をするか。攻略対象を、僕はいつも面接で決めてます。偉い人と現場の人、どっちを攻略するか。うーん、「これは偉い人やな」って言う人もいれば、現場の人と言う人もいるし、けっこう割れますよね。

僕は、現場の人を選びます。この人を攻略しようと思います。もしも役職のある現場の人がいた場合には、僕は現場の人寄りに話をしようと思っています。そう、僕が選ぶような会社って、採用権が現場の人にあるパターンが多かったりするんですよ。

分岐前にセーブして、彼らがどういう話をするのかというと、「どうかな? チームでやっていけそうかな?」って偉い人が言うわけですね。で、現場の人が「はい、問題ないでしょう」って言ったら、「じゃあ次通そうか」となる。もしくは、例えば現場の人が「ぜひ迎えたい」って言ったら、偉い人が「じゃあ推そう」っていうパターンがあるんですね。

偉い人は、だいたいヒューマンスキルだとかカルチャーフィット、そしてちょっと視座高めに組織展望に照らし合わせた将来の姿、彼・彼女がどう輝いてくれるのかというのを見ています。そこさえクリアしてしまったら、あとは現場次第なんですね。

面接の場で現場の人が考えていること

現場の人がどういうことを考えているかというと、チームでやっていけるか。1年後に戦力になれるか。1年間はね、だいたい研修みたいなもんなので、1年後に強くなれるか、がんばれるか。そして、一緒に働きたいかだと思うんですよね。だから彼が一緒に働きたいと思わない限りは、絶対に無理なんですよ。

重役の面接に関しては、まぁうまくやるしかないですよね。うん、出たとこ勝負なところがありますね。とにかくここを越えないと始まらないと思うんですよね。ここさえ越えれば、あとはけっこうトントン拍子で決まることが多いんじゃないかなと思います。

現場寄りの面接官は、最初「会社の代表としてちゃんとしなきゃ! 人の一生を左右するからな、ちゃんとしなきゃな! 」っていう思いを持っているんですけど、これが、だんだん擦れてくるとどうなるかというとね。「あぁ忙しい、仕事したい、でも面接は、人の一生を左右するからがんばらなきゃなぁ」ってぐらいになってきちゃうわけなんですね。

忙しいし、仕事をしたい中で、時間を割いてやっているので、僕はもう決めました。うん、Twitterではこんなことを言っていますね。「自分は見る目がないから、雑談するわ」「30分間雑談するからな、震えて待て」というパターンにしました。そう言って、面接相手に背筋張って緊張されるのもつらいので、「普通に雑談しようぜ」というノリでいつも面接の場に来ています。

いつも思っているんですが、おべっかは要らないんですよね。あと、技術なんて学べば身に付くから、今がどれくらいのレベルなのかはどうでもいいかなって。重要なのは学ぶ姿勢なんですよ。でも学ぶ姿勢って別に言葉じゃないので、お互いに楽しんで会話できればチームでもやっていけるんじゃないかな、ぐらいのノリでいつもやっていました。

面接では技術的雑談ができるか、素直かどうかを見ている

けっこうありきたりなことを見ていますよね。僕の面接は、本当に1時間しゃべって終わったこともありますからね。その人は、雑談で終わって合格ですからね。「僕の面接合格」って言って。

見ていることは、会話ができるかということと、技術的雑談ができるか。そして素直かどうか。会話ができるかというのは、豪速球を投げないでね、玉は1個ずつだよという意味です。

技術的雑談はどういうことかというと、浅い話やディープな話をあえて相手の土俵でするんですね。知らなくても「何やってんの?」ってどんどん飛び込んでいく。そうすると、どこまでを理解して、どこで勘違いをしているかとか、けっこう見えてきておもしろいんですよね。僕の知らないことも教えてくれるし。これこそ雑談かなと。(コメントを見て)そう、「インタラクティブなコミュニケーション」、まさにそのとおり。僕もそれをやっていました。

一番大事なのは素直かどうかですね。知ったかぶりをしないし、理解したふりもしない。普通に「すみません。わからないですね」「今度勉強したいと思います」でいいと思います。研修でもやっぱり理解したふりはすごく厄介なので、わからないことはわからないと言ってくれたほうがぜんぜんいいし、その面接でおもしろくなるんだったら説明します。それに、おもしろくないんだったら、ちょっと違う話をしましょうということができるかなと思います。

このへんは、まぁよくある話ですよね。成瀬はけっこう頑固なんですよ。素直じゃないんですよ。僕の頑固エピソードは何かというと、例えば本を読まないんですよ。本は、絶対に最初に読まないんです。自分なりの答えを出してから読む。じゃないと、自分の考えができあがる前に人の話が入って悔しいから。頑固ですよね、やめたほうがいいですよ。みんな素直になりましょう。

面接を受ける中で覚えておくべき心構え

さて、面接を受ける時の経験として、これを知っておくとテンションが下がらないから、みんなに覚えておいてほしいんですけど。まず歓待ムードは合否に関係しないです。よく楽しく帰ってもらって不合格にするとかありますが、僕はどっちでも楽しく帰ってもらいたいです。なので、合否にはあまり関係しないと思ってください。

あと、面接の長さも合否に関係しないです。30分で終わって、合格を出したことがあります。「あ、もうOKだね」って思ったので、30分で切り上げたというパターンです。

そういうこともあるので、ここらへんでいちいちテンションを上げ下げしないようにしましょう。実際の合否が出てからテンションを変えましょう。それまではいったんね、「終わった終わった、楽しかった」で終わりましょう。(コメントを見て)「うまくいって通過した試しがない」、悲しいこと言うなよ(笑)。これは数ですからね。やっぱり面接を何度もこなしていくと雑談力も上がってきますし、こなれてくるんですよね。

合否に対する心構えなんですけど。「面接は楽しいものか」、僕はいつも楽しんでいますね。知らない人と話すのがけっこう好きなので。不採用の理由はかなり多岐に渡るんですよ。だからもし不採用だったとしても、落ち込むのは無駄かなと思っています。

どういうことかというと、例えば技術的志向が合わないとか、求めているものが会社にない、カルチャーフィットしそうにないだとか。おもしろいのは、実力が高すぎる(笑)。彼の数年後のポジションは、ないなぁとか。いや、うちより違うところのほうが絶対輝けるでしょうという人が不採用になるパターンもあります。

うちでVue.jsをやっていなかったら、「Vue.jsをやりたい」と言っている人はどうやっても合格させられないですからね。採用できないですよね。ここらへんのマッチングはしょうがないよね。

グループディスカッションや人事面接は、正直、僕はやったことがないのでみんなのほうが詳しいと思います。転生プログラマーの僕はどうするかというと、通り一遍のリハーサルだけして、嘘をつかない、目立とうとしない、あとはどう見られるかにだけ意識を向けておきます。Twitterを数年やって、炎上していなければ大丈夫だと思います(笑)。

難しいよねぇ、グループディスカッション。これこそ数をこなさないとね。(コメントを見て)「GMOは顔採用ありますか」、なんも言えないわ、僕。わかんないわ(笑)。

聞き上手は話し上手 面接では面接官に気持ちよく話してもらう

面接当日。とにかく僕はうまくやろうとしないですね。どっちかというと面接官に気持ちよくしゃべってもらおうとします(笑)。しゃべるよりしゃべってもらったほうが楽なんですよね。聞き上手は話し上手ですから。

そう、聞き上手は話し上手なんですよ。相槌を打つのは聞き上手だからいいですよ。相手の話を引き出すのは聞き上手であり、この奉仕精神は気配りなんです。気配りはすごく大事なんですね。開発者の基本素養なので。

だから僕はこの聞き上手に徹しようと思います。「それって何なんですか」「あぁ、そういうことですか」「これってこういうことなんですか」って聞く感じかな。

じゃあ実際に転生プログラマーが面接したらどうなるかいきましょう。僕のスペックは高くないですよ。もともと工事現場にいましたからね。転生プログラマーはどんな感じで面接をするのか。いきますよ。

「自己紹介をしてください」いきますね。「○○大学の○○学部4年、成瀬允宣です。大学ではナントカを専攻していて、ソフトウェア工学について研究しています。趣味はプログラミングで、最近はリアクティブシステムにはまっていて、クラウドサービスを使ったマイクロサービスをAkkaで作っています。SOLID原則で不人気なLを推しています。車輪の再開発がけっこう好きで、いろいろなライブラリを再開発しています。本日はこのような貴重なお時間いただき、ありがとうございます」

勝ったな!(笑)。これ、勝ったろ。これ採用だろう。

今のはちょっと長いんだけど、自己紹介で大事なことは、求められているであろう量を話すことかなと思っています。今のもしゃべってみてちょっと長いなとも思いました。だからもう少し短くコンパクトにしたほうがいいかなとか。

話したいことっていっぱいあると思うんですけど、興味があったら聞いてくれます。興味がなかったら深掘りしなくてよかったってことなので、聞かれるまでは深掘りをしないようにしましょう。

例えば「車輪の再開発ってどんなことをやっていますか」と聞かれたら、「マイクロサービスはイベントソーシングに使われますが、そのイベントソーシングをするためのライブラリを再開発して理解を深めています」と答えて、「イメージソーシングってどんなやつです?」と聞かれたら、「通常のデータベースの使い方じゃなくて、Gitみたいなものですね」みたいな、そんな感じで話をしていきます。

こんなふうにいろいろ雑談ができて、「AkkaがあればそれでOKだから、すごくいいですね」「マイクロサービスとかいろいろ越えなきゃいけないハードルはあるんですけど、Akkaがあればそれだけでその障害をすべてクリアしてくれます」と言えば、採用でしょう。

技術的雑談はこんな感じでやっていきましょう。Wappalyzerで調べたことを切り口にしましょう。

フローチャートを作りました。技術を聞きます、知ってる?、Yes、詳しい?、Yes、「あ、それ使ってます。〜がいいですよね」。Yes、詳しい?、No、類似技術を挙げて「〜みたいなやつですかね?」。知らなければ聞いてみる。理解できたらこっちね。できなかったら、「おもしろそうですね、今度触ってみます」。完璧じゃん! これ使ってきたやついたら笑うわ(笑)。でもこんなもんじゃん? 雑談なんて。こういう流れだと思うので、この言葉をちょっと変えながらしゃべるだけかなと思います。

そして伝説へ。採用されてもそれはスタートラインに立ったに過ぎません。というわけで、自己決定理論に気をつけて、自律性の強い会社を選びましょう。裁量を持てると楽しいですよ、こういうことができますからね。というわけで、今日のお話でした。