『いきなりプログラミングJavaScript』という本を書きました!
1月24日に発売予定です。もう予約できます。ぜひ!
どんな本か
コンセプト
いわゆるJavaScriptの入門書です。
...なのですが、この本の特徴的なところはプログラミングの文法やお作法の説明にはあまり重きを置かず、『まずは手を動かして作ってみよう!』と実践を通じてプログラミングの楽しさを知り、その過程でついでにプログラミングの知識を身につける...「プログラミングの楽しさを知ろう」という点に比重を置いたコンセプトとなっております。
書籍を通じて作成するアプリケーションも「学びましょう」より「作ってみたい」を重視した内容になっています。
-
AIが必ず負けてくれる!「接待○×ゲーム」
わざと負けてくれる優しいコンピュータと〇×ゲームを対戦できるアプリケーションを作ります -
面白いダジャレを3段階で判定!「ダジャレ審議会」
文章を入力すると3匹の審査員(猫)が、その文章がダジャレとして成立しているかどうか、ひねりがあるかどうかを判定してくれるアプリケーションです -
誰でも教科書に載れる!「偉人なりきりメーカー」
一見すると偉人を紹介する歴史の教科書のようなページですが、プロフィールを改ざんしたり偉人の顔に落書きできるアプリケーションです -
声だけでキャラクターを簡単操作!「スイカ割り応援上映」
音声認識でキャラクターを誘導してスイカ割りをするアプリケーションです
いわゆるQiitaでも恒例のクソアプリカレンダーにありそうなちょっとひねったアプリケーションを作ることができます。
まだ校正作業中なので暫定版ですがこんな雰囲気の書面となっています。
この本はJavaScriptをこれから学ぶ人をメインターゲットにしていますが、サブターゲットとして「if文やfor文など基礎文法は習得したものの、これをどう組み合わせたら世にあるようなアプリケーションになるのか分からん!」という人も想定読者としています。
著者について
GMOペパボにてAlive StudioというVtuber向けの配信環境支援ツールを開発しているWebアプリケーションエンジニアです。
趣味でもプログラムを書いていて、こんな感じのいわゆる『クソアプリ』を作ってきました。
実用性のない面白プログラムを作り続けていたら、書籍執筆の話が飛び込んできました。こういうこともあるんですね。
工夫したこと・気を付けたこと
執筆するうえで以下の点を工夫しました。
純粋なプログラミング体験にフォーカスする
一般的に、現代のJavaScriptでの開発はコードを書き始めるまでにいくつもの準備を踏みます。
ライブラリを使うためにはnpmが必要で、npmを使うにはnodeが必要で、そのnodeをお行儀よく使うにはnvmやnodebrewが必要で~...と、慣れてる人には当たり前ですが、画面にHello Worldを表示するまでに長い長い工程を踏みたらい回しにされます。
この書籍では、読者がプログラミングの下準備だけで疲弊してしまわないようにフレームワーク無しのプレーンなJavaScriptだけでアプリケーションを開発する内容に意図的に割り切っています。ファイルを保存してリロードすれば即反映される、バンドルやトランスパイルなしの環境です。
最短でビジュアル的に見えるものを作る
JavaScriptが他の言語と比べて優れているのは、GUIアプリケーションを構築するハードルが圧倒的に低いところです。
この書籍ではどの章でも最初の数ページで画面に何かを表示するところから書き始め、具体的なロジックは後から付け足していく構成を取っています。
『書いた!なんか動いてる!うれしい!』というプログラミングのプリミティブな成功体験を最短経路で味わえるよう心掛けました。
書いて、実行して、説明はあと
タイトルの『いきなりプログラミング』の書名の通り、この本ではまず書いて実行して動きを見て、その後で知識をつけようという構成にしています。
章の最初に「これからこういうものを作りましょう」という全体像は示しますが、あくまで『学ぶ内容主導』ではなく『やりたいこと主導』で進めます。
どこで諦めても『完成』と言い張れる構成にする
この書籍では、最初に素朴なアプリケーションを作ってそこに少しずつ機能を足していく形で完成形のアプリケーションを作る流れにしています。
例えば『AIが必ず負けてくれる!「接待○×ゲーム」』の場合、最初に自分で〇と×の両方を置いて自分で勝敗判定するセルフサービスの〇×ゲームを作ります。次に勝敗判定のロジック、さらにその次に普通に価値を狙うCOMの実装、最後に意図的に負けてくれる接待モードを実装します。
こうすることで、どこで諦めても「いや、このアプリはこれで完成だから」と言い張れる、挫折者に優しい構成にしています。自分自身意識の低い人間なので、この考え方は日ごろから重視しています。けっこう大事です。
おわりに
まだまだ校正作業中ですが、順調にいけば1月24日に発売予定です!
プログラミングをこれから始める人、言語の基礎文法を習得したもののアプリケーションとして完成させた経験がない人、何か面白いものを作ってみたい人、ぜひお手に取ってもらえればと思います