1つのことを極めておけば、転用して新しいキャリアを築ける

藤井創氏(以下、藤井):この話を受けて、今後エンジニアとしてキャリアを積んでいくとなった時に、どういうスキルを身につけていけばいいのかというところはどうでしょうかね? そのあたりは若手のエンジニア教育をされている竹迫さんから聞きたいんですが。

竹迫良範氏(以下、竹迫):そうですね。職業のエンジニアとしてやっていくためには、好きなことではなくて、得意なことを見つけていくのがやはり大事かなと思っています。

これはなにかというと、例えば、「漫画家になりたいです。漫画が好きです。でも絵はそんなにうまくないです」という人で、何年も何年も描いていても絵がうまくならない人っているんですよね。そういう人は、漫画は好きなんだけど、職業にするには向いていないと思うんですよ。

元任天堂の岩田社長さんが言っていたことなんですが、「短い時間で自分がやって他人が喜んでくれたもの。それが自分の得意なものだ」と。

例えば、プログラムを短時間で作って、そのプログラムを使ってくれた人が喜んでくれるとか、そういった経験とかを早く、複数見つけておくのが、やはり今後のエンジニアのキャリアを積んでいく上では非常に大事かなと思います。

例えば、前にJavaをやっていた人が、「お前はJavaができるから、Androidもできないか?」と言われたみたいな、そこから(サーバサイドエンジニアのキャリアから)アプリにも関わっていったみたいな話もあるんですが、それはJavaっていう経験、得意なことから、新しい分野にそのまま転用できたということなので。

こういったところを若いうちに何個か見つけておくと、時代の変化があっても、そこを転用して新しくキャリアを築くことができるんじゃないかなと思っていますね。

藤井:なるほど。ということは、「新しい言語を常に学びましょう」みたいなところでもなくて、ということなんですかね?

竹迫:そうです。例えば「勉強しながら1年かければ技術を習得できます。だから1年後からこの仕事ができます」というスタイルだと、やはり時間がかかってしまうと思うんですよね。

僕であればPerlというプログラミング言語は言語仕様とかを見なくても普通に書けるんですが、そういったところまで1つを極めておくと、新しいものが来ても、「Perlと照らし合わせるとこうなんだね」ということで、非常にスムーズに新しいものも理解できていくので、そういったところはけっこう大事かなと思います。

「喜ばれるものを1人で作る」「巷にないものを1人で作る」は難しくなった

藤井:ちなみに、今竹迫さんは若手エンジニアを育てていると思うんですが、若手エンジニアの中で身につけている人が多い言語はあったりするんですか?

竹迫:(言語ではなくツールだと)「Git」は僕らの時代にはありませんでしたが、今はもう「GitHub」を使ってプルリク、マージ、レビューしたりとか、そういった開発プロセスみたいなところは今の時代では当たり前になってきていて。

昔、ファミコンゲームの時代では、1人のプログラマーが趣味で作ったプログラムでちょっとお金を儲けるということがあったんですが、今はそういったサービスを1人で作ることがけっこう難しくなっているので。やはりチームでコミュニケーションをしながら成果を出していくとかが、今はわりと必須になっているのかなと思っています。

藤井:なるほど。「ポロっとゲームを作ってみんなで遊んで」という時代もあったと思うんですが、今はなかなかそれが難しいというか……。アプリもゲームも巨大化しているところもあるとは思うんですが、みんなで作っていかなきゃいけないところは、確かに昔と違うのかなという気はします。

今でもポロっと作ったゲームがおもしろかったりする時もあるとは思うんですが、なかなかそういうチャンスがないのかな。どうなんでしょうね?

竹迫:インディーズゲームとかは今でもありますよね。地下鉄の8番出口を探していくとか(笑)。ファミコン時代では、『ドアドア』というホビープログラムを作った1人がそれで売れて儲かったという時代だったんですが、そういうことが難しくなってきているんですね。年々、グラフィックスとかアセットとか、そういったものが1人で作るには大変になってきた。

藤井:『8番出口』はアイデアだなと思いながら(笑)。あれはおもしろいなと思いました。

江草陽太氏(以下、江草):1人で作ることは技術的には簡単になったんだけど、みんなに喜ばれる、あるいは巷にないものを1人で作るのは難しくなったなって感じがしますね。

藤井:確かに。いろいろなものがもうすでに出てきているというものもあるし、アイデアも同じものが出て、二番煎じになっちゃうものもあったりするので。

あと、作ることはできても、先ほど江草さんが言われたように、「それがゲームとしておもしろいのか」みたいなところは意外と見落としがちというか。「ゲームはできるんだけど、なんかあんまりおもしろくないな」みたいな(笑)。そういったものがけっこうできることがあるなと聞いていて思いました。ありがとうございます。

自分の意思で触って手触りを確認することは重要

藤井:質問に戻りますが、今後エンジニアとしてキャリアを積んでいくために必要なスキルみたいなものってあったりしますか?

江草:新しいものも学習しないといけないです。でも、世の中どんどんいろいろなことが出てくるので、全部を学習するわけにはいかないんですよね。

先ほど竹迫さんがいい言葉を言われていたんですが、「とりあえず見たらちょっと触ってみて、手触り感を確認する」みたいな。ちょっと触って、「あぁ、なるほど、こんな感じね」と思えるような能力を早く身につけることは重要な気がしますね。

これがわからないと、なんでもかんでも、半年後には廃れる、デファクトにならないようなものまでがんばって勉強しちゃって……。良いと言われたからやっているけど、もう周りはみんなそれを使っていないとか。

それは流行っただけ、バズワードだっただけで、「別にあんまりいいもんじゃないで」みたいにみんなが思っているものもあったりするし、「みんな『商用環境では使えへん』って言っているけど、実はちゃんと活用すれば今後伸びるぞ」みたいなものとか、そういったものを知る必要があって。

その感覚を基に「ちゃんと自分のものにしよう」とか、あるいは、そういう考え方を理解した上で、「自分がなにか作る時に応用するためには、『流行っているから』という感覚ではなく、自分でちゃんと触って何が良いのか理解しなければならない」と意識的に思うことが大事かなって思います。

人によっては「今、これ流行っているから」とか「誰々さんがこれいいって言っているから」とか、ついそういう思考でスタートしがちなので。そうなると、いつまで経ってもこういう考えにはなれません。

「言われたからやっていないか?」「流行っているからやっていないか?」「なんでこれはいいんだ?」ということを意識的に考えて、「あぁ、なるほどね」と思うサイクルを回すようにすることが、学習の一歩かなとは思っています。

藤井:なるほど。「AIだからPython学んでおけばいいよね」みたいな話ではないということですよね。

江草:そうです。でも実際にそうなら別にそれでいいんですけどね。

藤井:なるほど。つい流行っている言語のほうに行きがちというのは確かにあるのかなと思っていて。でも(一方で)触ってみるというルール、働きながら新しいものを触るのは難しい人たちもいるのかなと思いつつ、そういうことができる会社があるといいなとは思いました。

竹迫:昔はクラウドエンジニアという職業がなくて。サーバーにLinuxをインストールして……。しかもフロッピーディスクでキックスタートとかをしてインストールしたのが始まりなんですけど。

でも今なら「AWS」とか「GCP」とか「Azure」とかいろいろあるじゃないですか。今、それって無料で使えるんですよ。だから、会社の仕事でそういったことを任せられれば一番いいんでしょうけど、(個人で)無料で試せるのに試さないっていうのは、ちょっともったいないなと思いますね。

藤井:昔のLinuxでは無料で配られているLinuxをCDに焼いて、マシンに入れて、壊れて、またOS入れて直したりみたいなこともあったんですよね。

確かに、無料で使える環境がいろいろ整っているっていうのは、すごく強いですよね。やはり“試す”という好奇心が必要なのかなという気も、聞いていて思いました。

レガシーなものも知りつつ、新しいものを触る

江草:あとは、レガシーなのもちゃんと触ってほしいというのはありますね。新しいやつが出て、「なんかこれいいかも」って思って何かに使おうと思うんだけど、「その用途は、昔からあるツールでベストなのがあるで」みたいなものとかってあるわけですよね。

最近のツールじゃなくても、今でも一線で使える一番ベストな方法みたいものはレガシーなものでもあったりするので。後から(ITの世界に)入ってくるとレガシーなものがどんどん増えていくので大変なんですが、レガシーなものも知りつつ、新しいものを触るのはすごく重要だなと思います。

竹迫:レガシーで残っているものは十何年前から変わっていないということなので、時代の変化に強いんですよね。だから、そういったものもちゃんと知っておくのは、お話しされたとおり大事かなと思います。

藤井:確かに。ついつい新しいもののほうがいいと思いがちですが、残っているということはそれなりの理由があるんだというところは考えたほうが良いのかなという気がします。

竹迫:シェルスクリプトとかは今でもCI/CDとかで使うし、30年前の古い言語で書かれているので非常に使いにくいですが、今でも残っているし。やはりレガシーの中でも大事なものは生き残っていくのかなと思います。

藤井:確かに。そこを無理やり新しいものにリプレイスする必要はないということですよね。

江草:「それシェルスクリプトでええやん」って言われてしまう場合があるので(笑)。理由を聞くと「そうだな」となりがちなので、そこはちゃんと自分で見極められるようになったほうがいいですね。

竹迫:前職の会社のインフラエンジニアも、シェルスクリプトを書くのが嫌だからPythonでインフラの管理ツールをいろいろ作ることをやっていたんですが、Pythonで書くとバージョンアップがね……。Pythonって2から3になって非互換になったりとか。

あと、ライブラリも依存するものが……。コンマのバージョンで変わったりもするので、けっこう大変ですね。変化にどんどん追随していかないといけなくなるとか、選択もしていかなきゃいけなくなる。けっこう大変ですね。

藤井:なるほど。ありがとうございます。

(次回に続く)