エンジニアストーリー by Qiita
日本最大級のエンジニアコミュニティ、Qiita プロダクトマネージャーの清野俊文です。
この番組では、日本で活躍するエンジニアをゲストに迎え、
キャリアやモチベーションの話を深掘りしながら、
エンジニアの皆さんに役立つヒントを発信していきます。
はい、今回のテーマは、TypeScriptとエンジニアキャリアになります。
はい、僕自身もですね、TypeScriptを書いているので、今日は色々お話できるとありがたいなと思って
ます。
ゲストにはですね、TypeScript入門書サバイバルTypeScript執筆者の一人で、
株式会社クラフトマンソフトウェア取締役CTOのsuinさんにお越しいただいています。
はい、普段ですね、あのQiitaの方で記事とても拝見させていただいているので、今日とってもワクワクしています。
よろしくお願いします。
はい、それではですね、早速本日のゲストをご紹介させていただきます。
読者3万人のTypeScript入門書サバイバルTypeScriptを公開中のsuinさんです。
suinさんよろしくお願いします。
皆さんこんにちは、TypeScript入門書サバイバルTypeScriptを書いているsuinです。
よろしくお願いします。
はい、よろしくお願いします。
今日はですね、もうTypeScriptからsuinさんのキャリアまで色々お話をお伺いできるととてもありがたいなと思ってます。
はい、ではですね、早速なんですが、もうTypeScriptについて色々suinさんからお話をお伺いできるとありがたいなと思ってます。
suinさん、入門書も執筆されていたりとか、あとQiitaの方のオーガナイゼーションでもYYTypeScriptみたいなオーガナイゼーションでコミュニティ活動とかもやっていらっしゃったりすると思うんですが、
そもそもそういう活動をしたくなっちゃうまで、TypeScriptっていうところに対して多分suinさん今魅力を感じていらっしゃると思うんですよね。
ぜひそこのsuinさんがなんでTypeScriptにそこまで魅了されているのかみたいなところの魅力をぜひお伺いしたいです。
そうですね、TypeScriptの魅力というと、やっぱりJavaScriptとQiitaは切り離せない関係にあるから、そのJavaScriptについてまず話していくのがいいかなと思うんですけど、
そもそもなんでJavaScriptなんて後ろ者でアプリを開発しないとならないのかっていうそもそも論があると思うんですよね。
例えば、WindowsのアプリだったらCシャープとか、iPhoneだったらSuitといった専用の開発言語ってものがあると思うんですけども、
これらの言語と比べるとJavaScriptってちょっと言語的に物足りないなっていう部分が正直あるんじゃないかなっていうふうに思っています。
僕自身の経験で言うと、2010年頃に業務システムの住宅開発のとある現場で働いてたんですけども、
Windowsアプリとかそういったデスクトップアプリっていうのはインストールして使うタイプのものだと思うんですよね。
そういったものって結構顧客からアプリの導入の抵抗感があったりとかして、
その導入の抵抗感っていうのは、例えば新しいアプリケーションを導入しようとすると倫理を経て許可を得て入れないといけないといったところとか、
主にそういった倫理面ですかね、があって、なかなか開発しても導入するまでの手間っていうのがあるっていうような課題があって、
ウェブアプリケーションっていうのはある意味抜け道だったんですよね。
なるほど。
はい。
で、ブラウザがあればとりあえず他のアプリケーションを入れる必要がないということで、そういった倫理を取る必要もないですし、
アップデートとかもウェブを経由してすぐにできるので、例えば社員さんに更新してくださいといった手間がなかったりとか、そういったメリットもあったと。
これは業務システムの話なんですけども、例えば2C向けのウェブサービスだったりすると、
やっぱりブラウザ一つで使えるっていうのは結構利用ハードルが下がってくるっていう特徴があって、
うんうんうん。
そういった背景があってウェブアプリっていうのは急速に広まってきたと思うんですよね。
うんうんうんうんうん。
で、ウェブアプリを作る以上、やっぱり切っては切り離せないのがJavaScriptだったというところに話が戻ってくるんですけども、
JavaScriptとは付き合わざるを得ないっていう状況に今なっていますよね。
やっぱりいろいろ正直な感想をプログラマーの皆さんに聞いてみると、
JavaScriptって必ずしも評判の良い言語ではなかったのかなと、思いますね。
うんうんうんうん。
確かにJavaScriptってこう、何ですかね、使う場面はすごい多い。
まさにブラウザでも使いますし、最近だとなんだったらブラウザ以外のところのアプリ作るのによく使われると思うんですけど、
それってなんか、JavaScriptがめちゃくちゃ便利とかめっちゃ使いやすいとか洗練されてるから使われているってよりも、
どっちかっていうとそういう歴史的な経緯の方が、結果としてそこが広がっているから使われているみたいな感じなのかなというのは僕も感じているところです。
そうですね。まさにその通りで、いくつも画面があるようなシステム、特に大きいシステムを作ろうとすると、
そういった辛さがいろいろ出てくる言語であるのはまだ変わりないのかなというふうに思っていますね。
もちろんJavaScript自体もできてから20数年の間にちょっとずつ良くなってきてはいるんですけれども、
まだまだ辛さがないというか、他のモダンな言語と比べて言語機能が充実しているって言われると、まだまだちょっと足りない部分があるのかなっていうのが正直なところですね。
ウェブアプリケーションで作りたいものがどんどん大型化してき始めたのが、たぶん2010年代だと思うんですよね。
はい。
なぜそういうふうなターゲット設定にしたかというと、入門書を書くにあたってタイプスクリプトの入門者の方にいろいろヒアリングしてみまして、
タイプスクリプトが全く最初の言語だったという方が結構少なかったんですね。
それで最初にタイプスクリプトをやる前に主に使っていた言語は何ですかというふうな質問をしていったら、
PHPだったりとかRuby、Java、Python、そういった言語でバックエンドを主にやられていて、
ついでにフロントエンドもやってくださいという形でフロントエンドの方も引き受けることになってしまったみたいな、
そういったストーリーの入門者の方が多くて、そういった方たちを常に念頭に置きながら書いています。
なるほど、ありがとうございます。
じゃあタイプスクリプト、そもそもプログラミングがまだやったことない人がタイプスクリプトを学ぶ人向けってよりも、
そもそもプログラミングがやったことあるけどタイプスクリプトってそのもののパラダイムみたいなものを知らない人向けみたいなところもあったりするって感じですかね。
そうですね。もともとやっていた言語がPHPだったりRubyだったりするんで、
JavaScript自体もやったことあるんだけどそこまで得意じゃないとかあまりよくわかっていないっていう方も多くて、
サバイバルタイプスクリプトを書き始めたのは2019年の年末でもうすぐ3年になるんですけども、
その当時はタイプスクリプトについての入門書っていうのはあったんですけども、
JavaScriptを一緒に学べる入門書っていうのがあまりなくて、
なるほど。
サバイバルタイプスクリプトではJavaScriptも一緒に学べるっていうところを押し出して書いています。
ありがとうございます。確かにタイプスクリプトの技術書とか読むと、
そもそもJavaScriptの拡張しているものですというか、そこをベースにした言語ですっていうところから話が始まっているので、
みんなJavaScriptを知っている前提で書かれているような確かに読んでいて、僕も確かにって今感じました。
そうですよね。みなさんJavaScript知っているでしょうっていう形で。
そうですね。なので、ぜひリスナーの方もプログラミング経験あるけどまだタイプスクリプトやってない方は、
ぜひこちらのサバイバルタイプスクリプト手に取っていただけるといいんじゃないかなというふうに今思いました。
ありがとうございます。
And now, a short commercial break.
IT、インターネット業界に強い転職アプリGreenは、
今話題のテック企業、プロダクト開発、DX案件などGreenだけの良質な求人を数多く揃えています。
正式応募前に企業の中の人とカジュアル面談ができるので、
仕事内容やメンバーのことをしっかり理解した後に先行に進めます。
カジュアルに始める転職活動にGreenをご活用ください。
And now, a short commercial break.
今サバイバルタイプスクリプトについていろいろお話をお伺いしたと思うんですけど、
そもそもっていうところで、
どうしてこういう活動というか、この本、執筆活動みたいなのが始まったのかっていうところの経緯みたいな、
きっかけだったら経緯みたいなところをお伺いできると嬉しいです。
きっかけとしては、もともとYYタイプスクリプトっていうオフラインイベントを開催してたんですね。
YYタイプスクリプトっていうのはどういうイベントかっていうと、
タイプスクリプトプログラムが集まって情報交換をしたりだとか、雑談を通して交流を深めるっていう会でして、
勉強会というよりかは座談会に近い形でイベントをやっていました。
YYタイプスクリプトを十数回やってみて、気づいたことが一つあって、
来る、いらっしゃる方が固定化されてきて、あまり新しい方がお見えになることがないなってことに気づきまして、
東京を中心に開催してたんですけども、意外とタイプスクリプト使ってる人ってまだまだ少ないのかなっていうような感想を持ちまして、
まだまだそのタイプスクリプトを普及させる余地があるのかなというふうに考えて、
であれば今その座談会をやるのではなくて、入門書を書くことで、
これからタイプスクリプトを学んできた人たちを増やしていけたらなというふうな思いで、
その座談会から本を執筆する会、執筆会っていうような形にシフトしていったっていうのが経緯になります。
なるほど、ありがとうございます。
スインさん、本当に今の初心者向けにそういうものを出していきたいとかもそうですし、
普段聞いたでも記事たくさん書いてらっしゃると思うんですけど、
そこら辺のそもそもコミュニティ運営をしたりとか、いろいろアウトプットをするモチベーションってどういうところにあるんだろうって今お話し聞いてて、
本当にいろんな人たちのためにってスインさんいろんなことをやってらっしゃるような印象を持ったんですけど、
何をモチベーションにっていうところで原動力みたいなところをお伺いできるとありがたいです。
もともとYYTypeScriptを始めたのは、会社でTypeScriptプログラマーを採用したいっていうところが出発点でして、
そうなんですね。
TypeScriptプログラマーを採用しようと思ったら、プログラマーとの接点が必要だなっていうことで座談会を始めたんですね。
いろいろな経緯があって、座談会は一旦やめて執筆会になったんですけども、
それも一つは採用の目的があってやったんですけども、
やってるうちにやっぱり読んでもらってフィードバックを得られたりだとか、
読んですごいわかりやすかったとか反応を得られたりして、そういった部分もやっぱり楽しくなってきて、
採用目的もありつつ、誰かのインプットの役に立つっていうところもモチベーションに織り混ぜながらずっとやってるような形ですね。
やっぱり反応があると嬉しいっていうところも正直なところあるので、
読んでいただいた反応とかも見ながら、それを執筆のチームとかにも共有しながら、
執筆の方を進めてるっていうような形ですね。
ありがとうございます。今採用のお話あったと思うんですけど、やっぱり最近の採用というか、
やっぱり繋がりみたいなすごい大事だと思ってて、それを作るために、いろんな会社さん技術ブログとかやってたりすると思うんですよね。
やっぱりそこって、ひろきさんのどこかのコラムで書いてあった採用目的にそういうのやるなみたいな、そういう話があった気がして、
でもまさにそもそものアウトプットとか、そういう誰かの人のためにっていうところを一個モチベーションにやっていった方が結果として、
そういうやっぱ採用みたいなところに繋がっていくのかなっていうのは改めて今お話聞いてて感じたので、
やっぱ誰かのためにやるっていう活動している人のところにやっぱこう人が集まってくるみたいなのもちょっとあるのかなみたいなお話聞いてて今感じました。
採用目的で初めては見たものの、あまりその採用目的としては役に立ってなくて、どちらかというとその誰かの役に立っているっていうところが今一番大きい感じですね。
ありがとうございます。
続いてはですね、スインさんの今までのキャリアについてお伺いしてみたいなと思います。
本当に今いろんな運営活動とかタイプスクリプトのところの発信やってらっしゃると思うんですけど、
そもそもスインさんがタイプスクリプト好きになっていったきっかけもそうですし、そもそもそこまでに至るところでスインさんがどういうエンジニアとしてのキャリアを築いてきたのかみたいなところをお伺いしてみたいです。
僕がプログラミングを始めたのは中学生の頃なんですよね。14歳で独学でプログラミングを始めたんですけども、
そのきっかけとなったことがすごいとっても些細なことなので、ちょっと恥ずかしいんですけども、2000年頃ですかね、ちょうど。
その頃のインターネットって今のインターネットとは景色が全然違くて、LINEとかもないですし、iPhoneとかもないですし、もちろん動画なんてない時代で、
ネット上のコンテンツで楽しいのって言ったらテキストコンテンツがメインだったと思うんですよね。
はいはいはい。いわゆるチャットみたいなやつってことですね。チャットというか掲示板みたいな感じですか?
そうですね。掲示板とかチャットとか。チャットもCGIチャット、ちょっとインターネット老人化みたいになっちゃって恐縮ですけども、
CGIチャットっていうものが、CGIチャットって技術ですかね、がありまして、パールというプログラミング言語で書かれたウェブ上のチャットがあって、
趣味でそのCGIチャットの方に入って、知らない人と雑談するっていうのが、中学生の頃のちょっとした趣味で、
なるほど、ありがとうございます。
テストまさにテスト周りってまだまだ今も結構テスト書く文化とか広がったりはしてますけど、
やっぱまだ大変なところはあるかなというふうに思っているので、
そこに対して取り組んでいらっしゃるところは、僕一エンジニアとしてもすごい嬉しいというかすごいことに取り組んでいらっしゃるなというふうに感じています。
そうですね、結構テストの自動化って単体テスト、ユニットテストと呼ばれる部分って結構自動化が進んでいるのかなというふうに思うんですけども、
例えばブラウザを使って画面をポチポチしたりとかキーボードを入力して、画面がどういうふうに変化していくかとか、
画面上にバリデーションエラーのメッセージがちゃんと表示されているかとかそういったものをチェックするので、
結構まだ人手でやられている現場が多いのかなというふうに思います。
そうですね、実はKiitaとかもいわゆるちょっとA to Eテストみたいなのを回していたりはするんですけど、
細かい体験のところのチェックとか、そういうのはやっぱりちょっと人手でやってしまっているようなところもあったりするので、
そこら辺がもっと自動化されるといいなというのは僕は思っていたりします。
そうですね、統計によると高数の半分がテストを締めているというふうに言われてまして、
この半分といっても全部がA to Eテストにかけているとかではないと思うんですけども、
いろいろテスト設計とかそういうのを含めて半分だと思うんですけども、
それにしてもテストを手作業でやるってあんまり楽しくない仕事なのかなというふうに思ってまして、
ロボットのような単純作業が多いというか、そうした現状をどうにか打破したいなという気持ちがあって、
テスト作業を限りなくゼロにしたいなというふうな思いで、
日本語でテストを書いたらその通りにテストが実行されていくというふうなプロダクトを作って、
それでそのテストのサービスを提供していこうというふうな流れで会社を始めました。
ありがとうございます。もう多分エンジニアを聞いているリスナーの方たちもそういうの欲しいみたいに思っている方たちもいっぱいいらっしゃる気がします。
クラフトマンソフトウェアさんの今取り組んでいらっしゃることを今お伺いできたなと思うんですけど、
その中でスウィンさんご自身がどういうお仕事をされているのかみたいなところもぜひお伺いしたいです。
先ほどお伝えしたテストの自動化サービスというのはやってみたんですけども、やっぱり顧客がつかなくて、
途中でそのビジネス自体をちょっと一旦止めようと思って、今はやってないんですね。
そうなんですね。
その代わりに、うちの会社の強みは何だろうっていうところを考え直してみて、
自社の強みとしてはアプリ開発もよく分かっているし、インフラの構築運用も精通しているっていうところが自社の強みだなっていうところと、