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

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

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

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

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

  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個の データ構造にある方が良い” – アラン・パリス
  6. Clojureとは • Map {:a 1 :b 2 :c 3} を中心にデータを扱う

    • Ednファイル • Javaの機能をそのまま使うことが多い • Jettyとか JDBC とか • 便利機能が色々ある • Multimethod, 非同期処理, clojure.spec, etc
  7. なぜClojureを始めようと思ったか

  8. なぜClojureを始めようと思ったか • Common Lisp より使いやすそうだった • Ruby on Rails で

    MVC とか DDD とかに飽きていて、もっとシ ンプルにできる方法が欲しかった • 静的型付け言語が好きになれなくて
  9. Clojureを触った感想 • 思ったより素直に書ける • Lispに対する抵抗感は1時間くらいで消えた • RubyでもLambdaなどの関数型プログラミングの考えをよく使ってい たので、抵抗が少なかった • 小さなライブラリが多い

    • 1ファイル100行程度のものも多い • Leiningen, Ring などのエコシステムが統一されている • 思想が面白い
  10. None
  11. 今日の話 • Clojureと関わるようになって僕の生活がどのように変わったか

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

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

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

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

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

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

  18. なぜ書いたか • 日本語のClojureの本は2014年くらいから出版されてない • 英語では毎年数冊でてるっぽい • Ductに関するまとまったドキュメントは英語でもほぼない • 一番オフィシャルなドキュメント↓ •

    https://github.com/duct-framework/docs/blob/master/GUIDE.rst • (最近はちょっとずつブログポストなども増えてる) • 自分も初心者だし力不足だけど書くことにした
  19. はじめての技術書作り • Re:View + Vivliostyle (CSS組版) • PDFとepubの両方を作った • PDF→epubの順で作ったが、epub用のデータを作り直すはめになった

    ので、epub→PDFの順のほうがたぶん楽だった • 書いても書いても終わらない… • 結局100ページくらい書いた
  20. どのくらい売れたか • 技術書典ではQRコードを印刷した名刺サイズの紙を配布(電子 版のみで冊子は見本のみ) • 技術書典終了後、Kindleで販売 • 技術書典: 10冊~20冊くらい?(よく覚えてない) •

    Kindle: 約30冊 + Unlimitedで読まれた分 • 利益でいうと15,338円獲得
  21. Clojureをはじめてみて発生した変化 • 友達や他のエンジニアと話のネタができた • Lispエイリアングッツを作り始めた • 技術書典でClojureの本を書いた • 英語(と中国語)を勉強するようになった •

    Circle CI に就活した
  22. 英語(と中国語) • Clojureは英語の情報が豊富 • 毎年書籍が出ている • Clojure Slack のコミュニティが活発 (英語)

    • http://clojurians.net/ • 英語を読むだけでなく”書く”/”話す”もできるようになりたいと 思った
  23. 英語(と中国語)の勉強 • 2019/01/01 から本腰を入れてやってる • 中国語も気分転換にやってる • 漢字なので日本人には理解しやすい • 文法や文化が日本に近いので勉強しやすい

    • 単語の意味を覚えればOKという事が多い(英語では同じ言葉が状況に よって異なる意味を持つことが多い) • DMM英会話、busuu、ELSA SPEAK、Tandemを主に使う • 本は文法・構文のみ • 資格試験(英検やTOEICなど)の勉強はしてない
  24. Clojureをはじめてみて発生した変化 • 友達や他のエンジニアと話のネタができた • Lispエイリアングッツを作り始めた • 技術書典でClojureの本を書いた • 英語(と中国語)を勉強するようになった •

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

  26. Circle CI の求人 • Circle CI は Clojure を使っている •

    2018年に東京にオフィスができた (初の海外オフィス) • 東京オフィスで働くシニアフルスタックエンジニアの求人 • Webページから履歴書とカバーレター(自己推薦書)を送る
  27. 応募してみた • はじめて英語で履歴書とカバーレターを書いた • 「そもそもカバーレターって何…?」からスタートした • 一応日本語版も送った • 2週間後くらいに面接の案内メールが来た! •

    CTOとZoomで30分話した • 3日後くらいにお祈りメールが来た
  28. なぜ書類選考が通ったのか • Clojureの本を書いていたので興味を持ってくれたらしい!

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

    おわり