#🗣プレゼン/2023
```dataview
LIST
FROM #🗣プレゼン
WHERE file.day <= this.file.day - dur(1 d)
SORT file.day DESC
LIMIT 1
```
```dataview
LIST
FROM #🗣プレゼン
WHERE file.day >= this.file.day + dur(1 d)
SORT file.day ASC
LIMIT 1
```
---
# 次回のためのメモ
- Obsidianを左に寄せる(カメラ被りを防ぐ)
- マイクをSHUREにする
- カメラはiPhone
- キーボード操作 ShowKeys.app
- デモ用のブランチに切り替える
- 文字サイズを大きくする()
---
![[atomic_thinking.jpeg]]
---
# 事前案内
- Obsidianを見せながら話をします
- キー操作も表示します
- Zoomのリアクションや気楽なコメント推奨(うれしい)
- 質問は忘れないうちに!
- カメラオンが嬉しいです
- 顔が見えると話しやすい
- →よりよい喋りができる!
---
# 本日の流れ
- 21:00~
- 目標とChatGPTの基本
- 21:10~
- 最初に知っておきたいこと
- Obsidianでも役立ちそうなことをChatGPTで実現する
- 21:30~
- 3パターンの実践例
- より具体的なデモ
- 21:50~
- まとめ
---
ChatGPTでうまくできること、できないことを肌感覚として覚えること。
その第一歩は「ChatGPT使ってみよう」と思えるようになること。
「ググればいい」と思えるようになるのは、検索が肌感覚として染みついているからできる
自分の父や母は、まだ「検索すればいい」という感覚に至れない
それと同じことが「チャット」でも起こるようになる
---
# 大目標
- ChatGPTの「コツ」を理解する
- 肌感覚を身に付けるために「慣れ親しむ」
- 目的を作る→プログラミング
- ついでにプログラミングにも慣れ親しむ
---
# 中目標
- プログラミング本を買って読もうと思えること
- なにを学んだらいいかわからない
- なにを買ったらいいかわからない
- なにを知れば「できるようになるか」イメージできるようにする
---
# 今日の目標
- ChatGPTに「いい感じ」のプログラミングの質問ができるようになること
- ChatGPTでプログラミングとはなにを意味するのか
- 「こういうことできるかも」と思えるようになること
- どんな聞き方をすればいいのかイメージできるようにする
- 最初に「どんな準備」が必要か
5min
---
# ChatGPTとは?
ChatGPTとは?
GPT-3ベースの対話型UI(現在はGPT-4が出ている)
チャットで質問すると、答えを返してくれる
「知らないことを教えてくれる」「調べもの」
間違いではないが、それはあくまでも一要素
超有能だが言われたことしかしない「秘書」
言われたことに対して「もっともありそうな答え」を答える
---
### 特徴
やっていることは統計処理を踏まえた**確率計算**
前の文章に続いて「一番それっぽいもの」を表示する
- 雑な質問には、ありがちでどうでもいい答え(もっとも確率が高い=もっとも「普通」)
- 条件を絞り込んで「確率操作」していく
- 情報が足りないと「物足りない」「間違える」
- もっとも確からしいものがわからない→間違える
- ウェブに少ない情報は「間違える」→[[ChatGPTに仏教の話を聞いた]]
- きちんと条件を付けて質問すると、きちんと条件に合う答えを返す
---
## プログラミングとChatGPT
- プログラミングはウェブに情報が多い
- プログラミングの本質は「用件定義」
- 〜というときには〜をする
- ChatGPTと素晴らしい相性!!
10min
---
10min~30min
# 最初に済ませる環境設定
## VS Codeをインストールする
まずは「VS code」インストール。入門なら迷わずこれ一択。
これがあればとりあえず「環境」は整う。
Win,Mac,Linuxで使えて、利用者が多い→情報が多い
chatGPTでも「VS codeではどうやればいい?(確率を絞り込む)」でやり方がわかる
[Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)
---
## キーワードを3つ覚える
- ターミナル(shell,bash,zsh)
- 正規表現
- javascript
日曜大工レベルなら、このキーワードが使えるとまずはなんとかなる。
今すぐ使う可能性がありそうな事例で考える。
---
### ターミナル
ファイル名を変えたりしたい
例:デイリーノートの命名規則を変えたい
>ターミナルでファイルの拡張子を一気に変えるにはどうしたらいい?
>ファイル名の先頭に、ファイルの作成日をYYYYMMDD形式で追加したい
>VS codeのターミナルを使って、YYYY-MM-DD形式のファイル名をYYYY年MM月DD日に変更する方法を教えて欲しい
---
### 正規表現
文章やデータを一気にどうにかしたい
[[BC001 『ダーウィン・エコノミー』]]
> テキストファイルの中から、00:00:00.000 --> 00:00:09.800のような並びの数字だけを取り除く正規表現を教えて欲しい
>あるフォルダのマークダウンファイルを開いて、2連続以上の空行を一つに減らす正規表現を教えて欲しい
---
### javascript
インターネット(ブラウザ)関連の便利なことしたい時は、だいたいjavascript
> ブラウザで、今見ているページのタイトルとURLをマークダウン形式でコピーして、ブラウザ上で選択した文字も同時にコピーできるようになるブックマークレットを作りたい
🐷この例だとjavascriptっていうキーワード使ってなかった……
改行があるとブックマークレットにコピーできないので、改行なしの一行のスクリプトに変換して欲しい
---
### 余裕があれば「Python」
現在のChatGPTはPythonのデータを多く学習しており、コードの精度も高いらしい。Pythonでのやり方を教えて、でいい。
---
(話してるキーワードの粒度が揃っていないので注意。あくまでもChatGPTに質問するためのキーワードとしてこの表現をしている。構造の理解を目指すものではない)
重要なのは、こういうことが「プログラミング」で簡単にできる、と知ること。出来そうだと想像できれば、実現方法を調べることが出来る。
→ウェブは「知っていること」しか調べられない
→結局「知っていること」を増やすことは重要
ブックマークレットという用語。正規表現、というキーワード。こういうキーワードを知っていると「早さ」が圧倒的に変わる。
30min
---
# 3つのはじめかた(デモ)
- コードを貼り付けて解説してもらう
- 例:[[Obsidian Advanced URI]]
- 作りたいプログラムを「日本語でコーディング」する
- 何回も繰り返す
- 例:[[マークダウンで指定されている画像をDLしてくるプログラム]]
- 全然わからないときは「相談」する
- windowsでjavascriptのプログラミングをするにはどうしたらいい?
- pythonとjavascript、それぞれの特徴、メリットやデメリット、用途として向いているシーンを教えて
- 〜みたいなことをするならどういうプログラミング言語がいいと思う?
- 今から、WindowsマシンでChatGPTを使いながらプログラミングの独学を始めたいと思っている。そのためには、まずどういったことを知っておくといいだろうか?
50min
---
## 再帰的ChatGPTで問題解決
エラーが出たらエラーを貼り付ける
教えてもらったコードを貼り付けて「デバッグして」
---
# まとめ
## きちんと構造化された文章が書ければプログラミングできる
非プログラマ、非理系、みたいな感覚がある人に特に有効なマインドセット。
## 何十回でもトライできる
人間と違い、どれだけ「アホな質問」をしても答えてくれる。
何回も同じことを聞いても答えてくれる。
質問して、条件が足りなければ付け足せばいい。
## 実践する
時間があれば実践する。見てるだけでは出来るようにならない。
---
# 知識ゼロからでも「学べる」のが重要
結局、学ばなくてもいいわけではない
「学びやすい環境」が手に入るだけ
だが、それは継続のために超重要
## 興味がでたら本を読む
結局、全体と構造理解した方が早い
「実感できる段階」まではChatGPTでいい
60min
---
幅広い知識の重要性は、むしろこれから増していくと言える。
なにもわからないところに解決の糸口が見いだせる→Obsidianのプラグインを作りたいと思っている
行き詰まりを助けてくれる
入門したくなるようにしてくれる
---
## 時間が余れば
あなたは、優秀なソフトウェアエンジニアです。
私は、〜を作りたいと思っています。
その内容は、以下のようなものです。
〜〜〜
これを実現するためにより多くの情報が必要であれば、私に積極的に質問してください。
あなたは優秀なソフトウェアエンジニアです。
以下のコードについて段階的にかつ論理的に考えて、実装の内容を説明してください。
- コンピュータが得意そうな処理を任せる
- 「サンプル」
- セミナー用のサンプルデータ
- Webサイトに載せるサンプル文
- 「要約」
- この文章を要約して
- 「変換」
- このデータをcsvにして
- 「校正」
- この文章を校正して
- 文体を柔らかくして
- 「翻訳」
- ビジネス文書っぽい翻訳
- フランクな文体で書いて
- 『アトミック・シンキング』を英語化できないかな?
- 今後、ここに音や画像、映像の処理までできるようになってくる
- たのしい
---
忖度の例
〜ってバンドの代表曲教えて
↓
〜からの影響ってある?
↓
この曲〜に似てる?違うんじゃない
↓
間違えました
↓
いや、それ違うんじゃない?
↓
間違えました
確率計算であるという意識
あってるあってないじゃない。ChatGTPがこれまで学習したもので、質問の条件を満たす「一番それっぽい」ものを選ぶ。クリエイティビティとは違う感覚。
ある意味で「めちゃくちゃなことはしない」
できるのは「ウェブに書かれてた意見をまとめること」
沢山あるウェブ情報を上手に絞り込む「質問」をする