見出し画像

Ruby on Railsコミッター松田明氏×RIZAP若手エンジニア座談会〈1/3〉

日本唯一のRuby on Rails コミッター 兼 Rubyコミッターである松田明さんが、このたびRIZAPテクノロジーズ社の技術顧問として就任しました。今後、プロダクトの開発支援や若手育成に携わっていただくことになります。そこで今回は、RIZAPの若手エンジニアと対話をしていただきました。

盛りだくさんの内容となったため、インタビューの模様は3回に分けてお届けします。

PART1のテーマは「これからのエンジニアに求められるものとは」。

若手エンジニアに松田さんが送るメッセージとは? RIZAPへの就職や転職を考えている人はもちろん、プログラミングに興味がある人は必読です!

>>>PART2(→「Rubyの魅力について」)はこちら
>>>PART3(→「RIZAPがメインスタックとしてRubyとRailsを採択した理由」)はこちら


■プロフィール
松田明/国内唯一のRuby on Railsコミッター 兼 Rubyコミッター。
Asakusa.rb主催、RubyKaigiチーフオーガナイザー。kaminari、active_decoratorなど数多くのOSS作品を手がける。
梅田智大/’20新卒。プロダクト開発統括1部メンバー
大塚和哉/’24卒予定。学生インターンとしてプロダクト開発統括1部に参加中


RIZAPでプログラミングを
やろうと思った理由とは


――まずは自己紹介からお願いします。

梅田:今年の春で入社4年目になる梅田と申します。 よろしくお願いいたします。
入社当時は通販の部署にいたのですが、今の上長である佐藤部長に「エンジニアになってみない?」と声をかけられたことがきっかけで、エンジニアに社内ジョブチェンジしました。
そこから社内の育成プログラムを受けて、半年ほど前から実務に入っています。なので、本当に初心者です(笑)。(→RIZAPテクノロジーズが実施する新人育成プログラムについてはこちら

松田:おお、すごいですね。それは梅田さんの適性みたいなものを、佐藤さんが見抜いたとか?

梅田:会社でUdemy for Businessというe-learningツールを契約していて、社員はそこの動画が見放題なんです。自分はプログラミングに興味があったので、いろいろな動画を視聴していたところ、人事と佐藤さんの中でプログラミング適性がありそうな社員をピックアップしており、それでお声をいただいて……という感じです。

松田:なるほど〜。それは素晴らしい制度ですね。

大塚:大塚和哉です。
学生インターンとしてRIZAPに参加しています。
学校ではWebに限らずSQLやデータベースに触ってみたり、Javaでちょっとシステムを作ってみたりとITに関する知識を浅く広く学んでいます。
RubyやRuby on Rails(以下、Rails)は独学で学んでいたのですが、それをアウトプットする場としてインターン先を探していたときにRIZAPに出合いました。よろしくお願いします。

松田:自分はあんまり詳しくないんですけど、そういうインターンの応募って他社ではあまりないものなんですか? 何が言いたいかというと、なんでプログラミングをやろうとしてRIZAPに入ったのかな、と(笑)。

大塚:確かに、RIZAPには「プログラミング」というイメージはありませんでした(笑)。自分の場合は逆にそこに興味を引かれました。というのも、普段から筋トレも好きでヘルスケアに関心があったので、そういった自分の趣味とアウトプットの場が一致するのであれば楽しくできるかな、と思ったんです。

松田:学校ではコンピューターサイエンス的な学部にいるのですか?

大塚:一応「ITスペシャリスト科」という学科なのですが、スペシャリストというわけではなく……。本当に広く浅くという感じです。

松田:なんかすごそう(笑)。エリートですね。


エンジニアとして成長したいなら
「1次情報」をキャッチする


――いきなり本題ですが、松田さんから若手2人に向けて「エンジニアやプログラマーとして市場価値を高めていくためにはどうしたらいいか」について伺えますでしょうか。

松田:これ、めちゃめちゃ難しい質問ですよね。
でも、世の中がものすごいスピードで変わり続けているので、5年前、10年前に成功した人のマネをしても、もう時代に合っていないとは思います。
良くも悪くも習ったことがどんどん腐っていくので、常に勉強し続けなきゃいけない。そこが楽しめる人にとっては毎日が新しい出合いや発見の連続だけれど、後ろ向きにとらえてしまう人には、たぶん向いていないんじゃないかな。

とはいえ我流でがむしゃらに勉強しても、方向性ややり方をだいたい間違えるんですよ(笑)。それこそ筋トレと一緒ですよね。適当にダンベル買ってきて、なんかよくわからないけれどとりあえず持ち上げてみました、だとどこか痛めてしまうじゃないですか。正しい方法で正しく学ぶのは意外と難しいかもしれないです。

大塚:独学の難しさは感じています…!

松田:そう。なんでかっていうとインターネットでキーワード検索して出てくるやつって、9割9分ウソなんです。だから、正しい情報に自分でたどり着く方法、鼻のきかせ方が大事なのではないかなと思います。

自分はオープンソース技術者なので、具体的にそれが何かというと、1次情報。
たとえばRubyならソースコードがすべて公開されているので、これが1次情報です。そして、Rubyについて誰が一番詳しいかというと、Rubyを作っている人たちです。なので、その人たちが言っていることは聞くべき価値のある情報です。
いっぽう、検索して適当に引っかかった情報というのは2次情報、3次情報という場合がほとんどなので、間違っている場合が多いですね。

梅田:確かに独学だとそれっぽいことを聞いてそれっぽいものはできるのですが、その先に進めない感じがありました。検索しても「What」とか「How」の情報はたくさん落ちているのですが、「Why」の情報が見つけられなくて……。

松田:そう。だから、僕はオープンソースというやつがすごく好きなんです。誰がどうして何を作ったか、全て公開されてるじゃないですか。おまけにRubyは日本で作られているっていうのがすごく大きくて、こんなことプログラミングの歴史上始めてなんですよね。

プログラミング言語というのはそれまでずっと、アメリカの有名な大学とか大企業だとか、軍の研究施設だとかっていうところで開発されたもので、海の向こうのありがたいものをダウンロードして使わせていただくという関係だったのが、まつもとさん(※Rubyの開発者・まつもとゆきひろ氏。通称Matz)1人でそこの流れを変えた。

そしてまつもとさんが生きているこのリアルタイムに、僕らはRubyを使っている。おまけに自分の母国語で会話できるっていうのはすごい時代で。 今プログラマーをしていて、Rubyやっていて本当によかったな、メッチャ楽しいなあっていうところです。


技術的にわからないことは
本家のドキュメンテーションを


大塚:ちなみになんですけど、エンジニアを目指すにあたって誰しも最初は1人で触ってみるところから始まると思うんです。そういうときは、どのように学習を進めていけばいいでしょうか?

松田:これもやっぱり、どうやって1次情報にたどり着くかですね。
技術的にわからないことがあったときに真っ先に読まなきゃいけないテキストは、OSS(オープンソースソフトウエア)ならリポジトリに入っている「Readme」だったり、ドキュメンテーションなんですよね。それ以外のものは見ちゃダメです。
でも、もしそこの情報が足りないとか、間違いが記述されているようであれば、気づいた人がそこにパッチを送って直せばいいんです。

大塚:やっぱりそういった1次情報を読めるようにするというのが大事なのですね。

松田:そうです。だから、そのソフトウエアは誰が作っているのか、なんでこの人はこんなものを作ったのかというところに興味を持つことがすごく大切かな。
あとは当たり前なんですけど、基本的にソフトウエアのデベロップコミュニティというのはインターネット共用語の中でコミュニケーションがなされていて、すなわち英語なんです。なので、プログラミングの勉強以前に道具として英語が使えなかったら話になりません。

大塚:なるほどですね…! ありがとうございます。


リアルプロダクト作りは
総合格闘技である


梅田:
自分ももう少しお聞きしてもいいですか?
大塚くんはたまたま大学でプログラミングを履修していましたけれど、弊社ではまったくの初心者もウエルカムで受け入れています。自分も、もともとITリテラシーがゼロの状態からジョブチェンジしていますし。

松田:うんうん。

梅田:それを踏まえて、どんなことをするとエンジニアとして成長できるかについても、本日お伺いできればと思ったのですが…。

松田:Rubyを勉強するだけだったらそんな難しくないと思うんですけど、Webアプリケーションをリアルプロダクトとして作り上げて、サービスとして使い物になるものを提供する、となるともう総合格闘技なんですよね。
裏側にあるデータベースから、表側のブラウザーとしゃべるHTTPとかまですべてわかってようやく一人前というか、そういう世界なので、
正直、勉強しなきゃいけないことが多すぎるんですね、本当に。

梅田:そうですよね。

松田:自分語りになっちゃうんですけど、すごくよかったなって思っているのは、僕は日本でインターネットが始まったころぐらいからずっとリアルタイムだったんですよ。
HTMLをペロっと手書きしてホームページを作ればお金を稼げた時代から、1個1個ステップ・バイ・ステップでここまで勉強してこれたというのがあるんですね。
でも今この2023年に、さあWebアプリ開発の勉強をするぞって言ったら、非常に高度に発達した難しい技術を一気に押し付けられて「全部覚えろ」って言われるじゃないですか。これはやっぱり、すごく辛くて。

梅田:はい…(苦笑)。


コンピューター技術書を読むことが
エンジニアの基礎力を養う


松田:だから、単に今あるものを触って覚えるだけじゃなくて、それなりに理由があって今こうなっているんだよ、という流れを理解していけるといいのかなというのもあります。
だから学問でいうなら歴史ですね、大事なのは。最近はそんな気がしています。

梅田:それってどういうところで勉強できるでしょうか。

松田:手っ取り早いのは読書ですかね。
コンピューター技術書といわれるものの中の古典・名著を、今からでもちゃんと読んで勉強することが、しっかりした土台になるんじゃないかという気がしています。
世界史を勉強するとなると、何万年とかってスパンでいっぱい覚えることがあるんですけど、コンピューターの歴史を勉強する場合はせいぜい戦後ぐらいからなので、全然大した量じゃないんですよ。なので、今からでも追いつけるのじゃないかな? という気がする。
とはいえ古いものばかり知っていてもしょうがないので、現場で使い物になる新しい技術も毎日ちゃんと取り入れてキャッチアップしていくというバランスが大切です。

梅田:自分はすごく本を読むのが好きなので、オススメの書籍がありましたら、ぜひ教えていただきたいです。

松田:おー、それは絶対伸びます。

梅田:技術書って選ぶのがすごく難しくて、何買ったらいいんだろうって。

松田:ソースコードがもりもり載っている本よりも、読みもの的なものをいろいろオススメしたいです。今思いつくところで言うと、『達人プログラマー』(デイヴ・トーマス著)は絶対読んだほうがいいです。あと『ハッカーと画家』(ポール・グレアム著)という本を読んでほしい。これでなんか心に火がつくと思うので。

梅田:すぐポチります。ありがとうございます。

大塚:私もポチります…!

・・・・・・

PART2では誕生して30年が経過したRubyが「楽しい言語」と言われるゆえんやこれからについて、当社若手エンジニアと松田さんが、それぞれの立ち位置で語り合った模様をお届けします!

>>>PART2はこちら

この記事が気に入ったらサポートをしてみませんか?