Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How did Clojure change my life
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kbaba1001
May 27, 2019
Programming
3
1.9k
How did Clojure change my life
kbaba1001
May 27, 2019
Tweet
Share
More Decks by kbaba1001
See All by kbaba1001
How to build a video conferencing system that no one has ever told you about
kbaba1001
0
52
Build React system with ClojureScript (Squint)
kbaba1001
0
140
talk-with-local-llm-with-web-streams-api
kbaba1001
0
470
Lume: Static Site Generator
kbaba1001
0
660
React_2023
kbaba1001
0
190
Word Penne
kbaba1001
0
220
I live by using a minor language
kbaba1001
1
190
fast optical line
kbaba1001
0
390
ArtPosePro and Procreate
kbaba1001
1
230
Other Decks in Programming
See All in Programming
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
860
CSC307 Lecture 14
javiergs
PRO
0
470
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
170
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
230
CSC307 Lecture 15
javiergs
PRO
0
240
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
200
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
980
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
250
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
560
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.5k
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
170
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
330
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
940
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
WCS-LA-2024
lcolladotor
0
480
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Building Adaptive Systems
keathley
44
2.9k
Speed Design
sergeychernyshev
33
1.6k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
630
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
260
Transcript
@kbaba1001 馬場一樹 2019/05/27
自己紹介 • 馬場一樹 (@kbaba1001) • フリーランス • 仕事は主にRuby • Clojureを触り始めて1年くらい
今日の話 • Clojureと関わるようになって僕の生活がどのように変わったか • マイナー言語を習得するメリットとか楽しさとか • 技術的な話はほぼしません
本編に入る前に • Clojureの紹介 • なぜClojureを始めようと思ったか • Clojureを触った感想
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個の データ構造にある方が良い” – アラン・パリス
Clojureとは • Map {:a 1 :b 2 :c 3} を中心にデータを扱う
• Ednファイル • Javaの機能をそのまま使うことが多い • Jettyとか JDBC とか • 便利機能が色々ある • Multimethod, 非同期処理, clojure.spec, etc
なぜClojureを始めようと思ったか
なぜClojureを始めようと思ったか • Common Lisp より使いやすそうだった • Ruby on Rails で
MVC とか DDD とかに飽きていて、もっとシ ンプルにできる方法が欲しかった • 静的型付け言語が好きになれなくて
Clojureを触った感想 • 思ったより素直に書ける • Lispに対する抵抗感は1時間くらいで消えた • RubyでもLambdaなどの関数型プログラミングの考えをよく使ってい たので、抵抗が少なかった • 小さなライブラリが多い
• 1ファイル100行程度のものも多い • Leiningen, Ring などのエコシステムが統一されている • 思想が面白い
None
今日の話 • Clojureと関わるようになって僕の生活がどのように変わったか
Clojureをはじめてみて発生した変化 • 友達や他のエンジニアと話のネタができた • Lispエイリアングッツを作り始めた • 技術書典でClojureの本を書いた • 英語(と中国語)を勉強するようになった •
Circle CI に就活した
話のネタができた • Clojureをやってる人が珍しい • 静的型付け言語との対比で話すことが多い • Lispきもいみたいな話になりがち
Lispエイリアングッツ ※非売品です
技術書典でClojureの本を書いた • 技術書典 • 技術書の同人誌即売会 • https://techbookfest.org/ • 技術書典5に参加 •
2018/10/08
書いた本(Kindleで買えます) • https://www.amazon.co.jp/dp/B07J3KJZYS/
書いた本 • Duct (Clojureの Web Framework) の入門書 • Clojure初心者向けでもあるので、Clojureの解説も少しある
なぜ書いたか • 日本語のClojureの本は2014年くらいから出版されてない • 英語では毎年数冊でてるっぽい • Ductに関するまとまったドキュメントは英語でもほぼない • 一番オフィシャルなドキュメント↓ •
https://github.com/duct-framework/docs/blob/master/GUIDE.rst • (最近はちょっとずつブログポストなども増えてる) • 自分も初心者だし力不足だけど書くことにした
はじめての技術書作り • Re:View + Vivliostyle (CSS組版) • PDFとepubの両方を作った • PDF→epubの順で作ったが、epub用のデータを作り直すはめになった
ので、epub→PDFの順のほうがたぶん楽だった • 書いても書いても終わらない… • 結局100ページくらい書いた
どのくらい売れたか • 技術書典ではQRコードを印刷した名刺サイズの紙を配布(電子 版のみで冊子は見本のみ) • 技術書典終了後、Kindleで販売 • 技術書典: 10冊~20冊くらい?(よく覚えてない) •
Kindle: 約30冊 + Unlimitedで読まれた分 • 利益でいうと15,338円獲得
Clojureをはじめてみて発生した変化 • 友達や他のエンジニアと話のネタができた • Lispエイリアングッツを作り始めた • 技術書典でClojureの本を書いた • 英語(と中国語)を勉強するようになった •
Circle CI に就活した
英語(と中国語) • Clojureは英語の情報が豊富 • 毎年書籍が出ている • Clojure Slack のコミュニティが活発 (英語)
• http://clojurians.net/ • 英語を読むだけでなく”書く”/”話す”もできるようになりたいと 思った
英語(と中国語)の勉強 • 2019/01/01 から本腰を入れてやってる • 中国語も気分転換にやってる • 漢字なので日本人には理解しやすい • 文法や文化が日本に近いので勉強しやすい
• 単語の意味を覚えればOKという事が多い(英語では同じ言葉が状況に よって異なる意味を持つことが多い) • DMM英会話、busuu、ELSA SPEAK、Tandemを主に使う • 本は文法・構文のみ • 資格試験(英検やTOEICなど)の勉強はしてない
Clojureをはじめてみて発生した変化 • 友達や他のエンジニアと話のネタができた • Lispエイリアングッツを作り始めた • 技術書典でClojureの本を書いた • 英語(と中国語)を勉強するようになった •
Circle CI に就活した
Circle CI に就活した https://boards.greenhouse.io/circleci/jobs/4243017002
Circle CI の求人 • Circle CI は Clojure を使っている •
2018年に東京にオフィスができた (初の海外オフィス) • 東京オフィスで働くシニアフルスタックエンジニアの求人 • Webページから履歴書とカバーレター(自己推薦書)を送る
応募してみた • はじめて英語で履歴書とカバーレターを書いた • 「そもそもカバーレターって何…?」からスタートした • 一応日本語版も送った • 2週間後くらいに面接の案内メールが来た! •
CTOとZoomで30分話した • 3日後くらいにお祈りメールが来た
なぜ書類選考が通ったのか • Clojureの本を書いていたので興味を持ってくれたらしい!
まとめ • Clojureをはじめたら、友達と話題ができて裁縫のスキルが上 がった • 本がないので自分で書いた • 英語から逃げられなくなった • やってる人が少ないので目立てるので、就活で役立った
おわり