Slide 1

Slide 1 text

〜1度は真剣に考えてみたい再発明の意義〜 "ぼくのかんがえたさいきょうの"勉強法 2022.8.16 勉強法Tips

Slide 2

Slide 2 text

自己紹介 1 結論(「●●」型勉強法) 2 「●●」のメリット 4 「●●は無駄だ」の落とし穴 3 注意点 5 目次 おまけ(Rackについて) 6

Slide 3

Slide 3 text

1 自己紹介

Slide 4

Slide 4 text

・稲井友亮 ・25歳 ・RUNTEQ34期生 ・医者目指してた ・低レイヤ大好き

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

2 結論

Slide 7

Slide 7 text

「車輪再発明」型    勉強法

Slide 8

Slide 8 text

is 何?

Slide 9

Slide 9 text

車輪の再発明(しゃりんのさいはつめい)とは、「広く受け入れら れ確立されている技術や解決法を(知らずに、または意図的に無視 して)再び一から作ること」を指すための慣用句。誰でも直観的に その意味が分かるように、車輪という誰でも知っていて古くから広 く使われている既存の技術を比喩の題材として使った慣用表現で、 世界中で使われている。 引用元:Wikipedia

Slide 10

Slide 10 text

引用元:Why it’s Okay to Reinvent the Wheel

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

評判悪い

Slide 13

Slide 13 text

これホンマなん?

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

3 「車輪の再発明は無駄だ」 の落とし穴

Slide 16

Slide 16 text

「開発」と「学習」の差 開発 学習 1からライブラリやパッケージ作るのは アホ。時間の無駄。 1から作ってみるの本当に無駄?

Slide 17

Slide 17 text

※時と場合による

Slide 18

Slide 18 text

4 「車輪の再発明」 メリット

Slide 19

Slide 19 text

自作CPU ブレッドボード上 1からパーツ集め る 自作コンパイラ 独自コンパイラ Cコンパイラ  (挫折) 自作OS HariboteOS めちゃむずい 自作フレーム ワーク Rack仕様 GETリクエストの み対応 VCのみ ぼくのさいはつめいしたもの

Slide 20

Slide 20 text

得た知識を横展開で きる 作ったものに対する 理解が深まる ⒈ ⒉ メリット

Slide 21

Slide 21 text

得た知識を横展開で きる 作ったものに対する 理解が深まる ⒈ ⒉ メリット

Slide 22

Slide 22 text

(M)VC ルーティング レンダリング DSL Rack Rubyフレームワークの場合... ⒈理解深まる

Slide 23

Slide 23 text

得た知識を横展開で きる 作ったものに対する 理解が深まる ⒈ ⒉ メリット

Slide 24

Slide 24 text

オブジェクトが何なのか? 値渡し、参照の値渡し インスタンス 変数(ローカル変数、インスタンス変数) JavaScriptのthisという概念 ⒉横展開できる

Slide 25

Slide 25 text

5 注意点

Slide 26

Slide 26 text

今やる必要ある? 時間がかかる ⒈ ⒉ デメリット(問題点)

Slide 27

Slide 27 text

今やる必要ある? 時間がかかる ⒈ ⒉ デメリット(問題点)

Slide 28

Slide 28 text

Rubyプログラムをサーバ上でどう動かせ るのか調べる(CGI) RubyでHTTP通信する方法 (Net::HTTP) WebサーバをRubyで作ってみる (WEBrick、Socketライブラリ) Rackについて調べる Rubyフレームワークの自作の場合... ⒈時間かかる...

Slide 29

Slide 29 text

今やる必要ある? 時間がかかる ⒈ ⒉ デメリット(問題点)

Slide 30

Slide 30 text

カリキュラムでほとんど役に立たない! フェッチ→デコード→実行...いらん! NANDゲート、ANDゲート...いらん! 機械語、アセンブリ言語...いら(略) CPU自作の場合... ⒉今やる必要ある?

Slide 31

Slide 31 text

アプリケーション Rails/Sinatra... Rack アプリケーションサーバ (Unicorn、Puma...) OS コンピュータ CPU/メモリ etc... IC/LSI トランジスタ Webブラウザ OS コンピュータ CPU/メモリ etc... IC/LSI トランジスタ HTTP Webサーバ HTTP通信 クライアント TCP IP イーサネット

Slide 32

Slide 32 text

目的から逆算した上で、再発明すべきもの なのか考える。興味本位で再発明すると時 間が無駄になることもある。 再発明すべきか 考える

Slide 33

Slide 33 text

ありがとうございます times_34期生_inai_yusuke

Slide 34

Slide 34 text

6 おまけ (Rackについて)