$30 off During Our Annual Pro Sale. View Details »

How did Clojure change my life

How did Clojure change my life

kbaba1001

May 27, 2019
Tweet

More Decks by kbaba1001

Other Decks in Programming

Transcript

  1. @kbaba1001
    馬場一樹
    2019/05/27

    View Slide

  2. 自己紹介
    • 馬場一樹 (@kbaba1001)
    • フリーランス
    • 仕事は主にRuby
    • Clojureを触り始めて1年くらい

    View Slide

  3. 今日の話
    • Clojureと関わるようになって僕の生活がどのように変わったか
    • マイナー言語を習得するメリットとか楽しさとか
    • 技術的な話はほぼしません

    View Slide

  4. 本編に入る前に
    • Clojureの紹介
    • なぜClojureを始めようと思ったか
    • Clojureを触った感想

    View Slide

  5. Clojureとは
    • JVMで動く言語(ScalaやKotlinの仲間)
    • Node.jsや.NETの処理系も同じOrganizationで開発されている
    • LISP
    • Rich Hickey
    • "It is better to have 100 functions operate on one data
    structure than to have 10 functions operate on 10 data
    structures." - Alan J. Perlis
    • “10個の関数が10個のデータ構造にあるよりも、100個の関数が1個の
    データ構造にある方が良い” – アラン・パリス

    View Slide

  6. Clojureとは
    • Map {:a 1 :b 2 :c 3} を中心にデータを扱う
    • Ednファイル
    • Javaの機能をそのまま使うことが多い
    • Jettyとか JDBC とか
    • 便利機能が色々ある
    • Multimethod, 非同期処理, clojure.spec, etc

    View Slide

  7. なぜClojureを始めようと思ったか

    View Slide

  8. なぜClojureを始めようと思ったか
    • Common Lisp より使いやすそうだった
    • Ruby on Rails で MVC とか DDD とかに飽きていて、もっとシ
    ンプルにできる方法が欲しかった
    • 静的型付け言語が好きになれなくて

    View Slide

  9. Clojureを触った感想
    • 思ったより素直に書ける
    • Lispに対する抵抗感は1時間くらいで消えた
    • RubyでもLambdaなどの関数型プログラミングの考えをよく使ってい
    たので、抵抗が少なかった
    • 小さなライブラリが多い
    • 1ファイル100行程度のものも多い
    • Leiningen, Ring などのエコシステムが統一されている
    • 思想が面白い

    View Slide

  10. View Slide

  11. 今日の話
    • Clojureと関わるようになって僕の生活がどのように変わったか

    View Slide

  12. Clojureをはじめてみて発生した変化
    • 友達や他のエンジニアと話のネタができた
    • Lispエイリアングッツを作り始めた
    • 技術書典でClojureの本を書いた
    • 英語(と中国語)を勉強するようになった
    • Circle CI に就活した

    View Slide

  13. 話のネタができた
    • Clojureをやってる人が珍しい
    • 静的型付け言語との対比で話すことが多い
    • Lispきもいみたいな話になりがち

    View Slide

  14. Lispエイリアングッツ
    ※非売品です

    View Slide

  15. 技術書典でClojureの本を書いた
    • 技術書典
    • 技術書の同人誌即売会
    • https://techbookfest.org/
    • 技術書典5に参加
    • 2018/10/08

    View Slide

  16. 書いた本(Kindleで買えます)
    • https://www.amazon.co.jp/dp/B07J3KJZYS/

    View Slide

  17. 書いた本
    • Duct (Clojureの Web Framework) の入門書
    • Clojure初心者向けでもあるので、Clojureの解説も少しある

    View Slide

  18. なぜ書いたか
    • 日本語のClojureの本は2014年くらいから出版されてない
    • 英語では毎年数冊でてるっぽい
    • Ductに関するまとまったドキュメントは英語でもほぼない
    • 一番オフィシャルなドキュメント↓
    • https://github.com/duct-framework/docs/blob/master/GUIDE.rst
    • (最近はちょっとずつブログポストなども増えてる)
    • 自分も初心者だし力不足だけど書くことにした

    View Slide

  19. はじめての技術書作り
    • Re:View + Vivliostyle (CSS組版)
    • PDFとepubの両方を作った
    • PDF→epubの順で作ったが、epub用のデータを作り直すはめになった
    ので、epub→PDFの順のほうがたぶん楽だった
    • 書いても書いても終わらない…
    • 結局100ページくらい書いた

    View Slide

  20. どのくらい売れたか
    • 技術書典ではQRコードを印刷した名刺サイズの紙を配布(電子
    版のみで冊子は見本のみ)
    • 技術書典終了後、Kindleで販売
    • 技術書典: 10冊~20冊くらい?(よく覚えてない)
    • Kindle: 約30冊 + Unlimitedで読まれた分
    • 利益でいうと15,338円獲得

    View Slide

  21. Clojureをはじめてみて発生した変化
    • 友達や他のエンジニアと話のネタができた
    • Lispエイリアングッツを作り始めた
    • 技術書典でClojureの本を書いた
    • 英語(と中国語)を勉強するようになった
    • Circle CI に就活した

    View Slide

  22. 英語(と中国語)
    • Clojureは英語の情報が豊富
    • 毎年書籍が出ている
    • Clojure Slack のコミュニティが活発 (英語)
    • http://clojurians.net/
    • 英語を読むだけでなく”書く”/”話す”もできるようになりたいと
    思った

    View Slide

  23. 英語(と中国語)の勉強
    • 2019/01/01 から本腰を入れてやってる
    • 中国語も気分転換にやってる
    • 漢字なので日本人には理解しやすい
    • 文法や文化が日本に近いので勉強しやすい
    • 単語の意味を覚えればOKという事が多い(英語では同じ言葉が状況に
    よって異なる意味を持つことが多い)
    • DMM英会話、busuu、ELSA SPEAK、Tandemを主に使う
    • 本は文法・構文のみ
    • 資格試験(英検やTOEICなど)の勉強はしてない

    View Slide

  24. Clojureをはじめてみて発生した変化
    • 友達や他のエンジニアと話のネタができた
    • Lispエイリアングッツを作り始めた
    • 技術書典でClojureの本を書いた
    • 英語(と中国語)を勉強するようになった
    • Circle CI に就活した

    View Slide

  25. Circle CI に就活した
    https://boards.greenhouse.io/circleci/jobs/4243017002

    View Slide

  26. Circle CI の求人
    • Circle CI は Clojure を使っている
    • 2018年に東京にオフィスができた (初の海外オフィス)
    • 東京オフィスで働くシニアフルスタックエンジニアの求人
    • Webページから履歴書とカバーレター(自己推薦書)を送る

    View Slide

  27. 応募してみた
    • はじめて英語で履歴書とカバーレターを書いた
    • 「そもそもカバーレターって何…?」からスタートした
    • 一応日本語版も送った
    • 2週間後くらいに面接の案内メールが来た!
    • CTOとZoomで30分話した
    • 3日後くらいにお祈りメールが来た

    View Slide

  28. なぜ書類選考が通ったのか
    • Clojureの本を書いていたので興味を持ってくれたらしい!

    View Slide

  29. まとめ
    • Clojureをはじめたら、友達と話題ができて裁縫のスキルが上
    がった
    • 本がないので自分で書いた
    • 英語から逃げられなくなった
    • やってる人が少ないので目立てるので、就活で役立った
    おわり

    View Slide