出版した本のインタビューを受けました。

blog-hero-img私の書いた「はじめてつくるReactアプリ」執筆のきっかけとなった挫折経験や苦労などを話しています。

pen-icon2021.10.06rewrite-icon2021.10.08

Profile Pic

この記事の筆者:三好アキ(エンジニア)


ウェブデザイナーから『エンジニア』『プログラマー』へ成長したい人、独学で進んでいきたい人を応援しています。 HTMLとCSSの知識だけでアプリ開発を始められる入門書を多数執筆中📕📗👇


ウェブ制作の教本『はじめてつくるReactアプリ』など複数冊を執筆。



React、Next.js、TypeScriptなどのお役立ち情報や実践的コンテンツを、ビギナー向けにかみ砕いて配信中。登録はこちらから → 無料メルマガ登録

本を書くに至った経緯

*私の書いたプログラミング教本のインタビューを先日受けました。その一部を私のサイトに掲載する許可をもらいましたので、ここで公開します。


三好さんはこれまで計8冊(2021年10月時点)のプログラミング教本を執筆されています。中にはAmazonのランキングで一位を何度か取っている本もありますが、三好さんの本業は教本の執筆ということしょうか?

book-ranking-page

三好:いえ、執筆活動は本業とは別でやっています。本業はウェブサイト制作とそのマーケティング支援です。

monoteinという事業名のフリーランスとして、ページの移動スピードが速く、サイト訪問者を離脱させないウェブサイトの制作を専門にしています。

ウェブ制作とマーケティング支援という本業のかたわらで本を執筆した理由はなにかあったのでしょうか? 執筆作業は、時間もエネルギーもかなりとられるものだと思いますが。

三好:そうですね、最初は本を書きたいという気持ちはありませんでした。

そもそも本というのは、誰かその業界の権威なり、その道を極めた人が書くものだという考えがありましたので。

それが本を書くに至った経緯というのは?

三好:私はプログラミングを学校で学んでIT企業に就職したとか、文系の大学を出て新卒でIT企業に入ってプログラミングを身につけたというような、日本の一般的なプログラマーの王道ルートを歩んできたわけではありませんでした。

ウェブ制作を始める前はこの業界とは全然別のところ、映像業界やメディア関係にいました。

そういう中で色々あってプログラミングに興味を持つようになるのですが、そこで私がした勉強法というのは自力で教材を見つけて、自分のペースで進める方法でした。

今ではプログラミング・スクールに行くというのもポピュラーですけど、学校に行ってカリキュラムに沿ってやっていくというのが、自分にはあまり合わないと感じたからです。

自分で色々と調べてみると、「ウェブサイトを作るにはまずHTMLとCSSを知る必要がある」というので、そのための教本を買ってきてやってみました。

そうすると、自分が思っていたよりも簡単にウェブサイトができてしまって。そこで「ウェブサイトって意外に簡単に作れるんだな」ということがわかったのですが、それ以上に「ものづくりをする楽しさ」みたいなものに気がつきました。

ウェブサイトというのは物理的に手でさわれるものではないですが、それでも何もないところから自分の手で組み上げていくという点では、まさに「ものづくり」であって、そういった「ものづくりの喜び」は、ウェブサイトを初めて作った時も、いま仕事ととして作る時も、変わらずありますね。

最初の挫折

そのように、ウェブ制作の一歩を順調に踏み出した先で、大きな挫折があったと伺いました。

三好:ウェブ制作ビギナー向けに書かれたどの本やサイトでも、学習の流れは「HTML → CSS → JavaScript」という流れなっています。

なので私もそれにならって、HTML/CSSの学習の後にJavaScriptの教本を買ってきて読み始めたのですが、まったく頭に入ってきませんでした。

これは後で知ったのですが、こういう風にJavaScriptでつまづく人は実はとても多いようで。

HTMLとCSSは結構直感的にわかるというか、HTMLとCSSはウェブサイトの見た目とダイレクトにつながっていて、コードとその結果表示されるものがある意味で1対1の関係にあるので、「このコードはこういう風な見た目になる」というのがビギナーでも簡単に推測できます。

しかし、JavaScriptというのは本格的なプログラミング言語で、そのような1対1にはないので、書いたコードが何をしているのかわかりづらいのです。

私はここで数ヶ月、勉強が止まりました。JavaScriptの本やネット記事などを色々見ても、まったく頭に入ってこないという状態。

一番最初につまづいたのは「オブジェクト」や「メソッド」「関数」といった専門用語です。

JavaScriptをビギナーにも使いやすくしたjQueryというのもありましたが、それすらも当時はよくわかりませんでした。

ただこの時期のことは、「はじめてつくるReactアプリ」をはじめとする教本の執筆に大きく役立っていると思います。

というのは?

三好:これまで出版した私の本のほぼすべてが、ReactというFacebookが開発したテクノロジーの使い方について書かれています。

Reactは近年のウェブ制作やウェブアプリケーション制作の現場で広く採用されており、私も普段の業務で欠かさず使うテクノロジーです。

このReactはJavaScriptをベースにしているので、当然学習の順序としては、「JavaScript → React」になります。

私は最終的にはReactをマスターしたかったのですが、先ほども言ったようにJavaScriptでつまづいていて、Reactへと進めなかったのです。

Reactの教本を買ってきたりネットの情報を見ても、「JavaScriptを理解してからReactに進むべし」と書かれていました。それでも時折り「とりあえずReactを始めてみよう」と思って勉強を開始しても、すぐに「関数」「定数」「オブジェクト」「配列」「連想配列」などのJavaScriptで使われる専門用語が出てきて、結局先に進めないという状況でした。

停滞を抜け出すきっかけとなった動画

その停滞の時期を抜け出すきっかけはなんだったのでしょうか?

三好:ある日YouTubeで、イギリス人のプログラマーがReactを使って小さなアプリの作り方を説明している動画を見たことです。

それは当時の私のようなビギナー向けに作られた動画ではなかったので、彼の説明や書いているコードなどで理解できないところがたくさんあったのですが、それでもとにかく説明に沿って作業を進めていると、アプリが一つ完成しました。

それは、JavaScriptで長い間つまづいていて忘れていたあの「ものづくりの喜び」をまた思い出した瞬間でした。

今でもあの日、どこでこの動画を見ていたのかや時間、周りの景色などが思い出せるので、自分の中では大きな出来事だったのだと思います。

そして実際、この日を境にそれまで失いかけていた意欲が戻ってきて、Reactの勉強を精力的に進められるようになって、それまでの停滞の数ヶ月がなんだったのかと思うほどでした。

この時の体験は、私の本の基本コンセプトになっています。

アプリなり、制作物なりをとにかく一つ完成させることが、どれだけ私たちの自信を高め、やる気を引き出すかがわかったので、私の本ではシンプルな説明と最短ルートで、アプリの完成へと到達できるようにしています。

実はビギナーには最適でない入門書

プログラミングの教本というと、全範囲をカバーしようとして網羅的な解説が続くものや、例外事項も漏れなく盛り込んだ教科書風のものがたくさんあります。そしてこういった本が往々にして「ビギナー向け」と大々的に宣伝されています。

しかし私としては、こういった本が実はビギナーに一番読ませていけないものだと思います。

私自身こういう本に一番最初に手を出して、そこに書かれていることに圧倒されてつまづいてしまったので。

ビギナーが一番最初にすべきことは、とにかく成功体験を作って、「自分でもできるんだ!」という小さな自信を得ることだと思います。

ウェブサイトの見た目(フロントエンド)は、プログラミング業界の中でも特に変化の速いところなので、自分から新しい技術を学んでいくという自習の姿勢が特に重要です。

そういう姿勢を養うには、何よりも「自分でもできるんだ」という自己肯定感を高めること、つまり小さな成功体験を積み重ねることが一番有効だと私は思っています。

なるほど。自身の挫折経験がこの本の執筆には活きているのですね。「網羅的な解説は目指さない」というのは意外に斬新なコンセプトのように思います。あまり日本的でないというか。

三好:そうかもしれませんね。

私は大学卒業後に海外に長期で住んでいたので、日本や日本人というものを客観視しているところがあります。

重要でない枝葉の事柄にいつまでもこだわったり、物事に軽重をつけず平等に扱おうとして結果的にうまくいかなかったりする様子、極度の傷つきやすさの裏返しとしての丁寧さと潔癖主義などは、実に日本人的であると感じます。

私も日本人なので、そういった側面が自分の中にも間違いなくあるのですが、そこはなるべく表に出さないようにしていますね。

工夫したことや苦労したこと

三好さんの本で工夫した点やユニークだと思う点はどこだと思いますか?

三好:書く上で気をつけたのは、専門用語をなるべく使わないようにすることです。

先ほども言ったように、自分がJavaScriptの勉強を始めた時につまずいたのが、「関数」「オブジェクト」「メソッド」などの言葉の意味や定義でした。

しかし別に専門用語を知らなくても、コードを書いていくことはできます。

例えば私たちが「助詞と助動詞の違い」といったことを知らなくても日本語を話せるように、「知っていること」と「できること」は違うからです。

私の本の最大の目的は読者に小さな成功体験を作ってもらうことなので、専門用語を使わずに済ませられるところはそうしました。

専門用語は、私の本の後に自分で学習を進めていく中で自然と理解していけることだと思います。

「用語の正しさ」よりも「読みやすさ」を優先させているので、スムーズに進むことの足かせとなる脚注やページ外での補足次項も書かないようにしました。

また、コードを示す時は省略をせずに、そのファイル全体のコードをなるべく載せるようにしています。

ネット上の記事などを読んでアプリを作っていると、突然新しいコードが出てきて一体どこの話をしているのか分からなくなることが多かったので、私の本ではコードは毎回しつこいくらいに載せて、本を単独で読んでも理解できるようにしました。

あとは、本編前の前書きを少なくすることですね。

だいたいこういう本では、VueやAngularといった他のJavaScriptフレームワークとの比較や、Reactがどのサイトで使われているか、将来性が云々、「仮想ドム」だとか「単方向データバインディング」だとかの話が本編に入るまでに延々と続くことが多いですが、私の本の優先事項はReactに慣れてもらうことなので、こういった前書きは書いていません。

この本を読む人はすでにReactの基本的な情報は知っているでしょうし、「仮想ドム」などの理屈は、自分で実際に使っていく中で理解していくのが一番だと思います。

執筆時に苦労したことや大変なことはありましたか?

三好:教本を書くときは毎回そうですが、本の中で制作する見本アプリを作るのに時間がかかります。

普通の教本で作るウェブサイト、特にアプリ系は、機能重視で見た目がイマイチというパターンが多いと思います。

私の本では冒頭で「この本ではこういうものを作ります」と示すことにしていて、そこでデザインやスタイルが中途半端なものを示すと、読者もやる気が出ないと思うで、なるべく見た目が悪くないもの、最近のデザインのトレンドを盛りこんだものを見本アプリとして作るようにしました。

weather-app

意外に時間がかかるのは、書き終わった後の読み直しのプロセスです。

そこで誤字脱字やコードのミスなどを直していきますが、読み直しは執筆作業と同じくらい疲れます。

また、書く作業をしている人は皆これを経験していると思いますが、何度か読み直して「もう誤字脱字はない!」と思っても、まだ抜けている文字があったりするのは、執筆作業の七不思議だと思いますね。

読者からの声に励まされる

そうやってこだわりを込めて完成した本ですが、出版後の反応はどうでしたか?

三好:読者からメッセージを頂いたり、Amazonでここまでポジティブなレビューを付けて頂けたりしたのは意外でした。

日本だと、ReactのライバルともいえるVueというテクノロジーの方がポピュラーなので、Reactにはそこまでニーズはないだろうと思っていましたので。

また私自身、別に大きな業績がある人間でないにも関わらず、「学習していて面白かった!」や「アプリを完成させた経験が前に進むモチベーションになります」といったような言葉を頂けて、私の本を純粋に楽しみながら役立てて頂いたようで嬉しく思いました。

読者からのリクエストなどはありましたか?

三好:一番最初に出版した「はじめてつくるReactアプリ」の発売後しばらくして、「TypeScript版を書いて欲しい」いう声を読者の人からいくつか頂きました。

たしかに最近の開発現場では、TypeScriptと一緒にReactを使うことが多いので、「はじめてつくるReactアプリ with TypeScript」を作りました。

この本は私の本の中で一番評価が高い本になりました。

book-single-page

これまで書いてきた各本の違いについては、次の記事を参考にしてください。

TypeScript以外では、Redux(Reactと一緒に使われるテクノロジー)の本も書いて欲しいというリクエストがいくつかありました。

しかしReduxは徐々に同じ機能を持った別のテクノロジーに置き換えられつつあることと、私自身Reduxのシステムをそこまで優れたものと思っていないので、書く予定は今のところないですね。

最後に、今後書きたい本などはありますか?

三好:HTMLとCSSの本を書きたいと思っています。

最近忙しいのでいつになるのかわかりませんが、ウェブサイトを今まで作ったことがない完璧なビギナー向けにHTMLとCSSを解説した本を書きたいと思っています。