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
tork09igaiga
Search
Kuniaki IGARASHI
September 12, 2020
Programming
2
270
tork09igaiga
https://regional.rubykaigi.org/tochigi09/
Kuniaki IGARASHI
September 12, 2020
Tweet
Share
More Decks by Kuniaki IGARASHI
See All by Kuniaki IGARASHI
RuboSensei
igaiga
0
210
Shibuya.rb-2023-04-27-igaiga
igaiga
1
450
Ginza Rails27 igaiga
igaiga
9
12k
Road to white mages
igaiga
1
610
Road to white mages
igaiga
8
3.8k
dive_into_code_rails_ruby_books
igaiga
0
190
ginza_rails_vol3_igaiga
igaiga
0
4.8k
rgt2016
igaiga
0
130
my-everyday-life-with-ruby
igaiga
1
200
Other Decks in Programming
See All in Programming
Swiftコードバトル必勝法
toshi0383
0
150
全部見せます! クラシルリワードのSwiftTesting移行プロジェクト
uetyo
0
210
Shinjuku.rb#95:心の技術書紹介
free_world21
1
110
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
意外とフォントが大事だった話 / Font Issues on Internationalization
fumi23
0
110
unique パッケージから学ぶ interning と weak reference @ Asakusa.go#3
karamaru
2
810
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
200
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
540
Scala におけるコンパイラエラーとの付き合い方
chencmd
2
420
What you can do with Ruby on WebAssembly
kateinoigakukun
0
160
Some more adventure of Happy Eyeballs
coe401_
2
180
Kotlin 2.0 and Beyond
antonarhipov
2
150
Featured
See All Featured
Faster Mobile Websites
deanohume
304
30k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
8.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The World Runs on Bad Software
bkeepers
PRO
64
11k
Optimizing for Happiness
mojombo
375
69k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
Code Reviewing Like a Champion
maltzj
517
39k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Six Lessons from altMBA
skipperchong
26
3.3k
How GitHub Uses GitHub to Build GitHub
holman
472
290k
Transcript
「考えるのはたのしい」 とちぎRuby会議09 基調講演 2020年9⽉12⽇ 五⼗嵐邦明 / igaiga
⾃⼰紹介 五⼗嵐邦明 / igaiga / twitter: igaiga555 Rubyist歴 = tDiary
ユーザー 2003年9⽉〜 Rails業務歴 = 万葉⼊社 2010年4⽉〜 2019年7⽉ ガーネットテック373株式会社設⽴ (1⼈会社) フリーランスRailsエンジニア お仕事中8社 経歴: https://bit.ly/igaigaesa 書籍: Railsの教科書, Ruby超⼊⾨, Rails学習ガイド, パーフェクトRails 書籍⼀覧: https://bit.ly/igabooks
とちぎRuby会議02 2009/10/24 (初参加) https://regional.rubykaigi.org/tochigi02/ LT: 五⼗嵐 邦明(igaiga)(⾼専カンファレンス) 「Rindaのタプルスペースでタイマ ー"TwYM"をバージョンアップ」
2005/09/03 関さんと(⼀⽅的に)会う XP祭で関さんからdRuby本(初刷)にサインをもらう 初めて技術書に著者サインをもらってめっちゃ嬉しかった
とちぎRuby会議08 2019/06/29 (⽋席)
「考えるのはたのしい」 とちぎ たのしいところ かんがえてるところ 考えるのはたのしい 今⽇は私が考えてることをいろいろ話します
ひとやすみ とちぎのよさで話したいことを語り尽くせたか? ここから本題 いのちのかがやきオブジェクトさん
本を書くときに考えてること 分解できるとたのしい 特に、初出の概念を1つずつにするように分解したい
繰り返し処理を説明したい Array#each だとブロック( do end )とブロック変数( |x| )が同時に登場 [1,2,3].each do
|x| # x をここではブロック変数と呼びます puts x end 3.times だとブロックだけが登場 3.times do puts "hi" end
つまり Array#each を最初に説明する ブロックとブロック変数が同時に初出になる 3.timesを説明してからArray#eachを説明する 3.timesでブロックが登場 つづいてArray#eachを説明するときにブロック変数が登場 初出のものが1つになるように分解できた ついでにループの回数が毎回同じ 可変と順序を踏む
ラッキー(たまたま)
if if 条件式 else end if x == 1 puts
"1" else puts "not 1" end if 条件式 end else節はあとから説明すれば良い if x == 1 puts "1" end もっと分解できるか?
条件式 puts x == 1 #=> true または false しかもtrueやfalseの概念も独⽴に説明できて便利
こういう順序で初出の概念を順番に出せた 条件式 if 条件式 end if 条件式 else end
メソッドの引数と戻り値 どっち?が良いかあんまりよくわからなかった例(苦労話) メソッドの引数と戻り値はどっちを先に説明するのがいい? 3つに場合分け 1: 引数を渡さない、戻り値を返さない 2: 引数を渡さない、戻り値を返す 3: 引数を渡す、戻り値を返さない
1を最初に説明するとして 2と3はどちらを先に説明しますか?
引数を渡さない、戻り値を返さない
引数を渡さない、戻り値を返す
引数を渡す、戻り値を返す 引数を受け取る変数の説明が必要 前⼿順の戻り値の説明は、変数がない⽅がシンプル
わかりやすい説明は順番が重要 ⽂章⼒、国語⼒はある⼀定レベルで成果物への分かりやすさ寄与が飽和する感じがする 順番の⽅が分かりやすさ寄与が⼤きいのでは仮説 いろんな⼊⾨書の流れを読んでなぜその順になっているかを考えるのはたのしかった 「Java⾔語プログラミングレッスン」: 結城浩 「たのしいRuby」: ⾼橋征義, 後藤裕蔵 「かんたんRuby」:
すがわらまさのり 「初めてのプログラミング」: Chris Pine 「_whyの(感動的)Rubyガイド」: _why http://www.aoky.net/articles/why_poignant_guide_to_ruby/
Ruby超⼊⾨とパーフェクトRailsは時間をつかっているところが違う 超⼊⾨はプロットを書き上げたあとに⽂章書きながら順番を⼊れ替えてサンプルコード を変えてという書き直し作業が⼤部分 パRailsはプロットを書くためにRailsのコードを読んで書いて動かす時間が⼤部分 提供する価値が違う
ひとやすみ ここで半分 本の話で話したいことは全部話せたか?
最近お気に⼊りの考え 「インセンティブ設計」 incentive: 報酬、動機 良いインセンティブ設計をしとけばあとは放っておけばいい感じになるやろ この分野でおもしろかった本 「市場を創る - バザールからネット取引まで」 https://www.nttpub.co.jp/search/books/detail/100001751
市場経済の仕組みの解説本 「その問題、経済学で解決できます。」 https://www.amazon.co.jp/dp/B00NF9PB20/ ⾏動経済学の本 ⼈がインセンティブにどう応答したかの多数の実験結果
教材づくりはたいへんだ問題 「プログラマーはプログラムを書いた⽅が儲かる問題」 教材作成(書籍執筆ほか)よりもプログラムを書いた⽅が儲かる問題 もしも逆転させられたら教材を爆発的に増やせる(かもしれない) しかしできていない
事例: 執筆スポンサー制度 私が2019年にやってみた取り組み 20万円1⼝で私の執筆を⽀援するスポンサーを募集 返礼品「1⽇稼働券」 1⽇稼働して、1⽇執筆⽇に充てさせてもらう 5社さんからお声かけいただいた フィヨルドさん、gifteeさんがスポンサーになってくれた スポンサーよりも仕事の形の⽅がよかろうということで仕事になった会社さんも 私としては総じてプラスだった
ただ拡⼤するための次の⼿が思いつかない 世の中の教材を増やせる仕組みを作れたらいいと思う
ポエム ⾃分で書いてBOOTHで売るといい(宣伝) BOOTH ⼿数料5.6%+22円 組版システムReVIEWありがたや twitterなどで宣伝しまくる ⼩さく書いて⼩さく売ろう 2年間書き続けるとつらい 技術書典が素晴らしい お祭りインセンティブ
技術書典があると本が増える RubyKaigiがあるとコードが増える withコロナ時代のソリューションの模索
教育はたいへんだ問題 「プログラマーはプログラムを書いた⽅が儲かる問題」 教育よりもプログラムを書いた⽅が儲かる問題 もしも逆転させられたらRubyコミュニティへ迎え⼊れる⼈を爆発的に増やせる(かもし れない) しかしできていない
事例: フィヨルドブートキャンプ https://bootcamp.fjord.jp 私は顧問ですが、今⽇の話は中の⼈の公式な意⾒ではないです 現役エンジニアたちがメンターとして提出物などをレビューする 就職先企業のエンジニアたちもslackなどに登場する 企業研修としても利⽤する企業もある(別契約) ペパボさんのDAIMYO Engineer Collegeとも教材交換や留学制度などでコラボしている
受講⽣と留学⽣と関連エンジニアたちのコミュニティができている
事例: フィヨルドブートキャンプ 受講⽣が増えてきている(最近100⼈超えました) 事業継続可能なプログラミングスクールになれるかもしれない とても良い事業なので応援したい応援している 受講⽣が持続可能である状態をどう設計するか(後述) 事業継続可能な収益をどう設計するか(後述)
受講⽣の経済的な持続可能化 受講⽣は仕事をやめてきている⼈もいる 学習時間800時間ほどやってアルバイトができるようになれば持続可能になる アルバイトが潤沢にあるのか問題 受講⽣へ向けたアルバイトを提供できる企業お待ちしています アルバイトできるようになるまでどうするのか問題 フィヨルド紹介企業就職で6ヶ⽉分キャッシュバック 後払い奨学⾦みたいな感じか これを受講⽣収益にしているモデルは興味深い 他の奨学⾦制度が作れるとより良いインセンティブ設計ができる
フィヨルドブートキャンプ事業としての持続可能化 受講⽣からの収益 ⽉額: 29,800円 受講⽣が増えていけば収益も増えて経営が軌道に乗る リモートメインなのでオフィスは広くなくても⼤丈夫 (withコロナ時代になりその傾向が加速した) メンターがいれば受講⽣を増やせる(たぶん) その他の⽅法の収益をインセンティブ設計できるか?
フィヨルドブートキャンプでは副業メンターを募集するときがあります (宣伝) メンター(⽇報と提出物レビュー係)募集中(現在は推薦制) 副業アルバイトメンター制度、⽉10時間から 「プログラマーはプログラムを書いた⽅が儲かる問題」を回避する⼀時的な策 現在のところまだフルタイムで⼈を雇える経営システムが作れてない ⼀⽅でフルタイムでメンターの仕事をしてもらうと、その⼈の現場⼒が失われてメンタ ー価値が下がる問題もある フルタイム雇⽤で週2フリーランス、週3メンターとかがいいのかも?
ポエム 教材、教育による受益者群は? Rubyをはじめた⼈たち(受講⽣)? 教育側の⼈たち(スクール、執筆者)? Rubyで開発している企業たち? コミュニティの⼈たち? そのほかの⼈たち(Webサービス利⽤者たち、⾏政の就業⽀援をする⼈たち)? 各者の利益は何か? 今の世界ははどんなインセンティブ設計になっているのか? それよりも良いインセンティブ設計はあるのか?
局所的でも、今よりも良い設計ができたら、世界を良くできるはず
フィヨルドブートキャンプ = 『おーい、磯野、野球やろうぜ』 「僕らはプログラミングとプログラミングをする⼈が好きなのであって教えること⾃体が好 きなわけじゃない。 もちろんプログラミングをする⼈とプログラミングを通じたコミュニケーションである『教 えること』も嫌いじゃないが、とにかくやりたいのはプログラミングなのだ。 野球が好きで『おーい、磯野、野球やろうぜ』と誘うのだが、野球のルールもバットの振り ⽅も知らないというのではメンツにならない。 だから教えるという感じだ。」
komagataのブログより https://docs.komagata.org/5588
RubyistとRubyを書くとたのしい 現在の私の気持ちをまとめると次のような感じになるようだ Rubyを書くとたのしい Rubyistと会うとたのしい 私の⽇常や旅にRubyistがいない機会の⽅が少ない Rubyコミュニティが⻑くつづいていて嬉しい Rubyコミュニティでこれからも多くの⼈とたのしい時間を過ごしたい そのためにコードや本や場所をつくっていきたい 「持続可能なたのしさ」のインセンティブ設計を作っていきたい
おわり フィヨルドブートキャンプについてもっと知りたい⽅は ⼤江⼾Ruby会議08 町⽥さんの発表資料 https://speakerdeck.com/machida/puroguramingusukuruwoshi-metajing-wei- tokorekarafalsehua ⾓⾕さんのフィヨルドブートキャンプでの講演資料 https://speakerdeck.com/kakutani/fjorb-boot-camp-as-a-gate