## ターゲットユーザーを決める 誰に向けての文章かを決める。 `例` - [[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] 違和感を感じたら... > 実際に文章を書き始めた後に、[[アウトライン]]構成に違和感を感じることがある。というかほぼ確実にある。そのような場合は、[[アウトライン]]の再構成を検討する。コーディングを始めたら設計を変更したくなるのと同じ理論だ。複数のフェーズを行き来することで最終的な成果物のクオリティも上がる。 ## 清書する 公開前に、誤字脱字や表現などを修正する。一度声に出して記事を読んでみることにより、構成の違和感や誤字脱字に気づきやすくなる。