## ターゲットユーザーを決める
誰に向けての文章かを決める。
`例`
- [[Python]]開発はできるが、[[Rust]]の開発をしたことがないエンジニア
- プログラミングをやりたいと思っているが、何度も挫折している社会人
- [[Vim]]は効率の悪いエディタだと思っている人
## ゴールを決める
執筆を終えた時点での以下を決める。
- 書き手(自分)がどうなっていたいか?
- 読み手がどうなっていてほしいか?
`例`
- 書き手
- [[Rust]]を人に勧めるための材料が整理できている
- 読み手
- [[Rust]]を勉強したいと思える (習得できるかは別)
## [[アウトライン]]を決める
記事のおおまかな構成を決める。既に構成イメージが固まっている場合はそのまま書けばいいが、後のフェーズで変更が加わることも多い。
> [!attention]
> [[アウトライン]]は目次ではない。目次+αの内容。
> [!hint]
> [[アウトライン]]を決められるほど情報がない/整理されていない場合は、[[フリーライティング]]で題材を出してから、それを組み立てていった方がいい。
`例`
- はじめに
- [[Python]]の辛い話
- [[Rust]]が良さそうに見えた
- 習得は大変だったが得られるものも多かった
- 是非学んで欲しい
- [[Rust]]を学ぶと嬉しいこと
- プログラミングに関する体系的な知識が広がり深まる
- [[C++]]のようなローレイヤー
- モダン言語のような関数型
- [[所有権]]のような新たな概念
- 実行環境の運用が楽になる
- シングルバイナリ
- 高速、[[ガベージコレクション]]なし!
- 今後、価値あるスキルとなる可能性が高い
- [[Amazon]]や[[Google]]などの巨大企業で採用実績がある
- [[Rust]]できる人はできる人が多いというイメージ
- [[Rust]]の学習で躓きやすいポイント
- [[所有権]]
- [[Python]]や[[TypeScript]]の気分でやるとまずコンパイルが通らない
- 時間はかかるが概念を理解すれば徐々に躓きにくくなる
- コンパイラが頭いいからなんとかなる
- [[ライフタイム]]
- 意味をしっかり理解すれば、見た目ほど怖くない
- [[参照]]を複数受けて[[参照]]を返すとき、どの生存期間にあわせるかってだけの話
- ちゃんと読めば簡単な[[Rust]]
- エラーメッセージが丁寧
- 具体例
- 充実した公式ドキュメント
- [[📚The Rust Programming Language]]
- [[📚The Rust Cookbook]]
- などなど
- まとめ
- [[Rust]]の習得は楽ではないが、その分得られるものも大きい
- 時間をかければ徐々に理解できるお膳立てが整っている
- 1日でも早く初めてライバルに差をつけよう
## 下書きする
[[アウトライン]]の内容に従って、セクションを切りながら下書きする。先の例だと、インデントなしの項目がH1、インデントレベル1の項目がH2、その他が本文といった構成になる。
> [!hint] 違和感を感じたら...
> 実際に文章を書き始めた後に、[[アウトライン]]構成に違和感を感じることがある。というかほぼ確実にある。そのような場合は、[[アウトライン]]の再構成を検討する。コーディングを始めたら設計を変更したくなるのと同じ理論だ。複数のフェーズを行き来することで最終的な成果物のクオリティも上がる。
## 清書する
公開前に、誤字脱字や表現などを修正する。一度声に出して記事を読んでみることにより、構成の違和感や誤字脱字に気づきやすくなる。