Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScriptアルゴリズム本を 技術書典7で頒布しました

pco2699
September 30, 2019

JavaScriptアルゴリズム本を 技術書典7で頒布しました

pco2699

September 30, 2019
Tweet

More Decks by pco2699

Other Decks in Programming

Transcript

  1. JavaScriptアルゴリズム本を
    技術書典7で頒布しました
    We Are JavaScripters! vol.36 at SmartHR
    @pco2699

    View Slide

  2. 自己紹介
    ● 高山 和幸

    ● @pco2699

    ● アルゴリズムとTypeScriptがすき


    View Slide

  3. 今日 お話しすること/しないこと
    ● 今日 お話しすること

    ○ 技術書典7で出した「JavaScriptアルゴリズム本」の内容の話

    ○ 感想・結果などの振り返り

    ● 今日 お話しないこと

    ○ JavaScript/TypeScriptなどの技術的に突っ込んだ話


    View Slide

  4. 技術書典7に参加しました!
    ● 技術書典とは

    a. 技術同人誌の即売会!

    b. たくさんサークルが一斉に本を売ります

    c. 買いに来る人もたくさん


    View Slide

  5. Nuxt.jsとFirebaseでつくるアルゴリズムミニアプリ
    ● アルゴリズムを知りたい

    Webエンジニアのための入門書

    ● アルゴリズムをWebアプリを

    作りながら学べる!

    ● 冊子+DLカード ¥1,000


    View Slide

  6. 本書を書くきっかけ


    View Slide

  7. 本書を書くきっかけ
    ● 本屋に並んでいるアルゴリズムの本

    a. 言語がC++, C(たまにPython)

    b. 作るものが何に役立つのかわからない

    c. 説明がわかりづらい


    View Slide

  8. 本書を書くきっかけ
    ● 本屋に並んでいるアルゴリズムの本

    a. 言語がC++, C(たまにPython)

    b. 作るものが何に役立つのかわからない

    c. 説明がわかりづらい

    これを解決した本がほしかった

    View Slide

  9. a. 言語がC++, C
    ● C++のイメージ: なんだかとっつきづらそう...

    (注) C++をディスる意図は全くありません。 C++は偉大な言語です。

    View Slide

  10. b. 作るものが何に役立つのかわからない
    ● 実際のアルゴリズムの問題

    i番目の配列がi日目の株の値段を表す配列があります。
    最大で1回のトランザクション(例: 1個の株を買い、1個の株を売る)が
    許されている場合、最大の利益を探すアルゴリズムを設計しなさい。
    株を買う前に売ることが出来ない。

    View Slide

  11. b. 作るものが何に役立つのかわからない
    ● 実際のアルゴリズムの問題

    i番目の配列がi日目の株の値段を表す配列があります。
    最大で1回のトランザクション(例: 1個の株を買い、1個の株を売る)が
    許されている場合、最大の利益を探すアルゴリズムを設計しなさい。
    株を買う前に売ることが出来ない。
    こんなの実際に書くことある!!?

    View Slide

  12. c. 説明がわかりづらい
    ● アルゴリズム独特の用語がたくさんある

    ビッグオー表記
    幅/深さ 優先探索
    二分探索
    時間計算量
    空間計算量
    動的計画法
    ダイクストラ法
    空間計算量

    View Slide

  13. c. 説明がわかりづらい
    ● アルゴリズム独特の用語がたくさんある

    ビッグオー表記
    幅/深さ 優先探索
    二分探索
    時間計算量
    空間計算量
    動的計画法
    ダイクストラ法
    空間計算量
    概念を理解すれば実はそんなに難しくない

    View Slide

  14. c. 説明がわかりづらい
    ● 最近は「アルゴリズムをわかりやすく」という

    コンセプトの本が出てきている


    View Slide

  15. 本書はどう解決したか


    View Slide

  16. 本書はどう解決したか
    ● 言語がC++, C(たまにPython)


    ● 作るものが何に役立つのかわからない


    ● 説明がわかりづらい

    言語はJavaScript
    Webアプリを作る
    なにかに例えて説明

    View Slide

  17. 言語はJavaScript
    ● (おそらく)初学者が学ぶことが一番多い言語

    ● ES2015以降であれば、キツくない。

    ● Jestを使えばテストも簡単


    View Slide

  18. Webアプリを作る
    ● 次を組み合わせれば、Webページを作って公開できる時代!

    a. フロントエンドフレームワーク(React/Vue/Nuxt)

    b. 静的ファイルホスティング(Firebase/Netlify)


    View Slide

  19. なにかに例えて説明
    ● 難しい概念は なにかに例えて説明するとわかりやすい

    ● リスト探索は「数字当てゲーム」に例えて説明


    View Slide

  20. 絶対に売れると確信した


    View Slide

  21. 技術書典当日...


    View Slide

  22. 売上部数
    48/100部

    View Slide

  23. 割と爆死


    View Slide

  24. 振り返り・要因分析
    ● 技術書典7のユーザ

    a. 商業誌にないような最新の技術を求めてる人が多い

    b. 初学者はあまり来ない

    ● 内容・タイトル

    a. タイトルから「Nuxt.jsとFirebase」の深堀り本だと思われた

    b. 今回はリスト探索のみのため、内容が簡単すぎた


    View Slide

  25. 振り返り・要因分析
    ● 実際に聞かれたこと

    a. 「これって競プロで使えますか?」 

    => 使えません

    b. 「Firebaseどのくらい使ってますか?」

    => Hostingのみです。すいません。

    c. 「動的計画法とか今後やりますか?」

    =>期待しててください


    View Slide

  26. 技術書典に参加した感想
    ● 自分が書いた本をユーザが目の前で読んで買うか判断する

    ダイナミックで面白い

    ● 本が売れると嬉しいけど、売れないと苦笑いが止まらない

    ● 売れなくて赤字でも、悔しくて次回も出たい...! ってなる


    View Slide

  27. 見本誌もってきました

    よければ見てみてください

    View Slide