インタビュー日:

「AI開発では、今までのソフトウェアエンジニアの知識が活用できない。」高良さん 広野さんインタビュー 後編

プロフィール

高良さん(アプリケーションエンジニア 33歳)
フリーランス歴::1年半 メインスキル:React Native, Swift など
 
広野さん(アプリケーションエンジニア 34歳)
フリーランス歴:8年 メインスキル:Typescript, Golang など

フリーランスになった経緯や作曲とプログラミングの意外な共通点を語っていただいた前編に続き、後編でもフリーエンジニアを目指す方必見の内容となっております。
前編はこちら

インタビューを音声配信中
Spotify / Google / Anchor

これからエンジニアを目指す方へのアドバイス

大切なのは「ググり力」

──これからエンジニア目指す方へアドバイスや、これからのことについてお伺いします。 エンジニアを目指して勉強されている方も多いですが、スキルの上げ方や勉強の仕方でなにかアドバイスをお願いできますか?

広野:僕は、未経験で特に勉強もしていない状況からエンジニアとして採用されたので、レアケースかもしれません。最初に採用してくれたベンチャー企業のCTOが変わった方でして。面接で「僕、プログラミングできないんですよ」と言いましたが、「広野くん面白いね」と、その流れでそのままエンジニアになりました。ただ、そこからは猛勉強の日々で、最初の半年くらいは受験生みたいでしたね。

だから、「飛びこんじゃえばなんとかなるな」とも思います。僕の場合はただの奇跡ですが、最初のフックをどうするかが一番大事かなとは思います。

高良:これ作ってみたいに頼まれました?その時って。最初入ってから。

広野:頼まれましたね。

高良:言語はこれでやってとか?

広野:そうです、そうです。これ実現したいことだけをバクっと伝えられて、ひたすらそれで学んでみたいな。調べて。

高良:調べて。そういう意味で大事なのは、「ググり力」ですね。

広野:重要ですよね。とにかく初めは聞いたことない単語しかない。ひたすらググるというのが出来るか否かは重要かなと思います。

高良:ググり力、重要ですね。「実現したいことをいかに早く調べられるか」ってエンジニアにとって一番重要なスキルな気がしますね。調べ方のコツとかもあるので、それが最初のうちはわからないと思います。でも、だんだんやっていくと勘所というか、こういう風に調べるとうまくたどり着けるとかがわかる気がします。

広野:質問の仕方とか。

あとこのブログに載っている情報は信憑性に不安があるというようなフィルターがかかってきたりとか。逆にこのブログだったら大丈夫というか。

──見分けのポイントはあるんですか?

広野: 日本語で書かれているブログは避けた方がいいですね。出来るだけ英語のものを探すのがおすすめです。やっぱりワンテンポ遅れて日本に情報が入ってくる印象です。向こうのエンジニア達のスキルには全然届いてないなっていうのはどれ見ても思います。

変化の激しい業界でのスキルアップ術

──いわゆる勉強みたいなことはされますか?

広野: やらないです。

高良: 同じくですかね。

広野:特にWEBはそうだと思うんですけど、ソフトウェア界隈は変化が激し過ぎる業界ですよね。だから、正確に頭に情報を入れておくことにあんまり価値がないなって思っています。大事なのは「あっ、この名前聞いたことある」みたいな、そこからすぐググって辿り着けるかどうかかなと。教科書みたいに丁寧になぞって全部頭に入れても、すぐ使い物にならなくなっちゃう気がします。

言語にしてもフレームワークにしても、まあ大体人間が使うものなので、いくつかのパターンに落とせる。新しい言語に取り組むときに、今までやってきたものとの差分だけが把握できれば良いかなと思います。ちょっと書いてみて、「あっ、これは動かないのね」みたいなことを掘り下げて把握していくという手順ですね。2・3言語やれば、もうあとは何も怖くないと思います。大体僕の周りでいろんな言語をやってきたっていう人は、2つ3つ取り組めれば、そこから先新しい言語何出てきても大体対応できると、みんな大体言っていますね。

高良:どの言語でもある意味やれること一緒なので。2・3言語やれば、大体まあコツが掴めるというか。

──では、新しいものが出てきたときにスキルをアップデートしていくことに関しての苦労は少ないですか?

広野:そこも気質とか向き不向きの問題もあるかなと思います。新しいことをやることに抵抗があるかどうか。

やっぱり現場とか立場によっては、1つのものを熟知している人がほしいっていうところも当然あります。ただ、ベンチャーで働きたいイメージを持っているのであれば、やっぱり汎用的にいろんなことができた方がいいはずです。新しいことに抵抗なく取り組めるというか。

僕はベンチャー企業のキャリアが長いので、新しいことやることには特にストレスはなくて、向いているなと思っています。いろんな現場へ行くっていうフリーランス的なやり方は向いていると感じます。

現場ごとの「ローカルルール」

高良:新しい言語ではないですが、現場によって書き方や設計といった部分を把握するのに苦労することはありますね。その会社独自の書き方というか、設計思想・方法とかもあって、実現をするにしても、実現方法が微妙に変わってくるというところもあるんですよね。

──運用ルールやローカルルール、カルチャーなどは、本当に会社ごとに違ったりしますよね。

広野:これがなんで困るかというと、「ググっても出てこない」からですよね。わかんないときの対処法が、古参のエンジニアがいてその人に聞けばわかるみたいな、でもその人が誰なのかも、もうわからないみたいになちゃってる現場もいっぱいありますし。

──意外と属人的な部分もあるのでしょうか。

高良:僕が行く現場は結構ありますね、属人化。どこにいっても何かしら属人化しているような感じはしますね。この人に聞かないと答えられないとか、結構ありました。

──属人化していくことは良いことなのでしょうか、それとも悪いことなのでしょうか。

高良:僕としては、どちらかというと悪いことかなって思いますね。誰でも触れるシステムとかプログラムの方が本来はベストだろうなあとは思うんですけれども、出来る人のところにどうしても仕事って負担が行きがちなので、そうするとその人だけにしか情報がないというか、その人の考えでつくったものになっているようなイメージはしますかね。

注目している技術は、「AI開発」

──今後重要になりそうな技術や注目されてる分野はありますか?

高良:それでいくと、広野さんがやられてるAI開発に関する技術は間違いなく来るだろうなと。個人的には(広野さんのことが)羨ましいですね。

広野:僕は、結局AIあんまりやってないですけど、AIは学んでおくべきだと感じます。今までのプログラミングと作り方が、発想が根底から全然違います。新しい言語を覚えるみたいなレベルの話では対応できないので、今のうちに慣れておかないと将来危ないかなとは思ってはいます。

──どういうところが大きく違いますか?

広野:基本的に、機械学習でつくられたモジュールに何かを入れて返ってくる答えが「確率的」なんですね。ある一定の確率で正しいっぽいみたいな答えしか返ってこないんです。プログラミングの場合は、動かなかったら自分のせいですよね。そういう訓練を僕らはしていて。でも、確率的に決まっちゃうものだと、もっと実験的というか。科学、学校でやっていた実験みたいな考え方がたぶん必要なんですね。だから、今のソフトウェアエンジニアの知識が全然活きなくなっちゃうかなと思います。

す。例えば、Googleが写真の自動判定を入れて、自動カテゴライズを入れたときに、黒人の方の写真を動物(ゴリラ)ってラベル付けしちゃいました、みたいなことですね※1。そういうことが起きちゃうのも仕方ないかなと思います。 

※1 黒人カップルを「ゴリラ」とタグ付け 顔認識はどこまで「使える」のか:朝日新聞GLOBE+ 

今までのプログラミングでつくられたものだったら、それは明確にバグで、絶対に起きちゃいけないことです。だからバグに対して「テストが不十分だった」とか「仕様がちゃんと伝わってなかった」とか、そういうボトルネックをつぶすっていうアクションになっています。

機械学習の場合は、仕組み上そのようなことが絶対起きてしまうんですよね。だから、お金を出すユーザーがどこまで許容しながらサービス提供できるかみたいな考え方になるかなと。そこのリスク判断が、今の方法論だと対応できなくなってしまうんですよね。だから、すべてのレイヤーで考え方をまるっと入れ替えないといけなくなっていくだろうと思います。

高良:簡単に補足をすると、その「ゴリラ」っていうラベルをつけるのが、今までは人間がプログラムをしてラベル付けされる。AIになると、その「ゴリラ」っていうラベルをつけるのを機械がつくってくれるみたいな処理になります。機械が勝手にラベルをつけちゃう。人に対して動物のラベルをつけてしまうところがあります。お金をかければかけるほど、いいプログラムを機械がつくってくれる感じですかね。

広野:そうです、そうです。ただ、お金のかけどころがわかんない

──難しいですよね。データの量を増やせばいいのか。それともなんかひたすら精度を上げるようなプログラミングの世界でなんとか頑張るのか。

広野:例えばなんですけど、オオカミを99.9%の確率で判定できるっていう判定機があったんですね。ところが、オオカミってどうやって判定しているかを解釈してみたら、背景に雪があるかどうかで判定していたらしいんですよ。オオカミの写真ってほぼ雪が入っているから99.9%の確率だったんです。

家にいるオオカミの写真を判定機にかけたら、もう全然違うものとして見えているはずです。だから99.9%の成果を既に出しているのに、既存のプログラムで見たらバグなんですよね。わけわかんないとこ見てるみたいな。でも、それに気づく方法を僕らはまだ持っていないところが難しいですね。僕もAI開発やったわけではないのでちょっとイメージでしゃべってますけど。

開発の現場から見たAI業界

──世の中でもAIエンジニア不足と言われていますが、開発の現場からの目線としてはいかがでしょう?

広野:やりたいと思っている企業さんは、たぶんたくさんあると思います。まあ「今からそこに投資しておかないと、取り残されちゃうぞ」みたいな危機感だけはあるみたいな感じですかね。やっぱり具体的な方法論が今のところ日本は大きく出遅れているのは間違いないですね。ほぼGoogleとFacebookとみたいな世界だと思うので。まあだからAIエンジニア募集ってみんな言っていますけど、具体的に何出来る人がいいかについてはあんまり全体としてわかっていないんじゃないかなというのが、エンジニア目線で見て思うことではあります。

──AIエンジニアというと機械学習やディープラーニングが挙げられますが、実際に何かを作る部分やサービス化といった周辺の領域の人材は足りているんでしょうか?

広野:なるほど、アプリケーションに落とし込んでいくっていうところですよね?

要するに、どういうところにコストをかけていけば、サービスとしていいものになっていくかみたいなノウハウがたぶん必要なんですけど、そこですね。Python書けて、TensorFlow使えますみたいなところって、そこだけ出来てもしょうがないというか。データサイエンティストの方からみたらPython・TensorFlowはただのツールに過ぎない

あと、僕らWEBなりからやってきたアプリケーション書くエンジニアとしては、モジュールをいじれるより、そのモジュールのアウトプットの特性を理解して、「どうすればアプリケーションとしてうまくこのフローに載せていけるか」というところの知見がたぶん求められているんだとは思うんですよね。それがうまくマッチすれば全体としてちゃんとまわってくと思います。ただ、いかんせん僕らは積み上げ型のプログラミングしかやってきていないので、これからノウハウを育てていきましょうという段階です。すぐさま、いいアウトプットにはちょっとなりづらい。まだまだ時間かかるんだろうなと思います。

──今現在エンジニアとして働いている人にとっても注目しておいた方がいいところですかね。

広野:そうですね。だから自分でサービスつくってみるのが一番いいんだとは思います。ただ、データを集めたりみたいなところは一人でやるのがなかなか難しい領域だったりもするので、ちょっと手付けづらくはありますよね。

高良:そうですね。データ量がたくさんないと機械学習とかディープラーニングって正確なアウトプットをしてくれないっていうところもあって、個人でやるには敷居が高いところがありますよね。だから、WEBサービスつくるとか、アプリつくるとかっていうよりかはハードルが高いなあとは思います。学習のしづらさはどうしてもありますが、それでも学習しておくのはいいことだと思います。

今後のキャリアについて

──今後お二人がどんなキャリアを目指していきたいか、どんなことをやっていきたいか教えてください。

高良:僕はマネジメントというか、そういうレイヤーも好きなので、ゆくゆくはプレイングマネージャーのようなこともやりたいなという風には思いますね。プログラムも書くし、マネジメントもするし。割と飽き性なところもあるので、いろんなプロジェクト関わったりできるといいなっていうのは思ったりします。

広野:そうですね。たぶん似たような話ではあると思うんですけど、稼がせてあげられる人になりたいなと思っています。やっぱりエンジニアリングってツールに過ぎないはずと思っていて。僕らはエンジニアリングをすることの楽しさみたいなものもモチベーションとして取り組んではいるんですけど、結局それによって誰かが儲かるから僕らにお金を払うという構造は、間違いはないです。だから「なんでエンジニアリングなんだっけ?」みたいなことから、一緒にやれる人になれるとよいなあというイメージはあります。

エージェントの活用方法

──これまでも何度か言及していただいているのですが、あらためて【エミリーエンジニア】のようなエージェントサービスをエンジニアの皆様がうまく使うアドバイスをいただけますでしょうか。

広野:出来るだけたくさんのエージェントと会ってお話ししたほうが良いなとは思ってはいます。

僕は、見かけたら全部登録するみたいなことやっています。今回エミリーさん経由で紹介していただいた時も14社くらい登録して、面談ばっかりやってた感じです。

エージェントさんが提供してくれる一番大事な部分であるマッチングにも、やっぱり得意領域みたいなのはあるなと感じています。ベンチャー企業ばかり持っているエージェントであるとか、Sierっぽい案件ばっかりもっているエージェントであるとか。だから、Sierが得意なエージェントに行って、「ベンチャーで働きたい」とか言っても、あまり出てくる確率は低いものの、大企業なのに新規案件でフルスクラッチですみたいな案件が、たまにころがってたりするんですね。だからもう本当確率の問題。「出来るだけ面を広げて」っていうのは、マッチングという意味合いではやった方がいいかな。

高良:広野さんと同意見ですね。

それ以外でいくと、エージェント経由で紹介していただくと、3か月とか割と短いスパンで受けられるんですね。正社員として雇われて、3か月でもしも仮に正社員で次の会社次の会社っていくと、転職転職みたいな感じで割と経歴というか履歴書的によろしくないっていうふうに言われているところがありますよね。それがフリーランスとしてエージェントさん経由でいろんなプロジェクト関われると、いろんなプロジェクトに関わっている、でいろんな言語を触っているとか、いろんな物の見方というか、視点を持てるというところで、割とプラス評価していただける事とかがあって、そういうところはいいのかなっていう。「いろんなプロジェクトに関わりたい」みたいな方だと特にって思ったりします。

フリーエンジニアを目指す人へ

──フリーエンジニアにこれからなりたい、目指しているという人に向けてアドバイスを。

広野:さっき高良さんもおっしゃってましたけど、なるなら今、ですね。

高良:ああ、そうですね。なるなら本当今ならすごく。

広野:ここ3年みたいなこと考えるとちょっと不透明というか、どう盛り上がっていくかはちょっと予想もつかないんですけど、今は安心してフリーランスやれる環境は整ってるので。

高良:未経験の方でも今は取ってくれる環境だなっていうふうに思いますね。

広野:そうですね。どこに行っても人が足りていないので。まあ「自頭よければ」「ググり力さえあれば」一旦取るみたいな。

──すごく大事な能力ですね。

高良:あとやる気さえあればもういい感じですかね。

広野:あとなんか勉強する

これからエンジニアを目指されている方は、勉強するのもある程度大事なんですけど、最初の引きというか、「未経験だけど取ってみたい」って思うかどうかのラインでいうと、自分でつくりきったかどうかってすごく大事。なので、自分でアプリなり、サービスなりをクオリティ低くてもいいので、「ワンストップでつくりきる」をまずは目指すのがいいかなって思います。

高良:そうですね。まずつくってみてほしいですかね。やってみて、それで向いている人だったらいくらでも自分で作っていけると思います。向いていない人だと、どうもそこで挫折しちゃったりすると聞くので、まず触ってみてほしいかなと。


現在稼働中のお二人に、働く中でのやりがいの見つけ方や今後のキャリアについてお話いただきました。 また、フリーエンジニアとして経験を積んだお二人だからこそのアドバイスも、とても参考になりました。 

フリーエンジニアとして独立するには、ある程度のスキルが必要です。 独学で勉強しているという方も多いかもしれません。 しかし、お二人の話を聞いていると、「いまどれだけスキルがあるか」よりも、「自分で調べながら進められる力」や「作り切った経験」、「チャレンジする前向きな気持ち」が重要だと思い知らされました。 今後、フリーエンジニアを目指す方々の参考になれば幸いです。 

フリーランスエンジニアの案件をお探しします!
非公開案件も多数あります