アドベントカレンダー2024ことはじめ

## はじめに

研究者として傍らでプログラミングを始めてはや数年。
傍ら、というのも、私はもともと生物物理の実験を専門にしていて、プログラミングは解析のための補助的なものでした。
しかしここ2-3年で解析のために機械学習のコード開発を行うようになり、プログラミングの割合が増えてきたという状況にあります。

さて、今更ながら、ぜんぜんしてこなかったアウトプットというやつをやってみようと思い立ちました。
研究テーマ、開発テーマのためにインプットはしてきているのですが、特にプログラミング方向のことについて、頭の中が整理できていないと感じたのがきっかけです。
上述した機械学習コードの開発が幸いにも[NeurIPSに採択された](https://neurips.cc/virtual/2024/poster/93465)というのもあり、せっかくならQiitaに投稿してみようかなと思いました。

ちょうどよく[アドベントカレンダー](https://qiita.com/advent-calendar/2024)の季節ということで、せっかくなら[自分用に作ってしまえ](https://qiita.com/advent-calendar/2024/calendars/new)と。
決して[Qiitanのぬいぐるみ](https://qiita.com/advent-calendar/2024/present-calendar#qiita_award)が欲しかったわけではないです。決して。

https://qiita.com/advent-calendar/2024/newbie2024


## 関連記事

#### 前の記事 なし

#### 次の記事「[NeurIPS著者がGithub Skillsのチュートリアルをやってみた話](https://qiita.com/yotabouya/private/5d4b67949b15ea621805)」



# Qiitaへの投稿のやり方を学んでみた

最初は自己紹介でも書こうかと思っていたのですが、[ガイドライン](https://help.qiita.com/ja/articles/qiita-community-guideline)的にあまり歓迎されないようです。

ならばということで、今まさにやろうとしているところの、Qiitaへの投稿というのを題材にしてしまおうと思います。

- ## 記事の作成～投稿
    - ### 記事の作成
        - タイトルを記入
        - タグを1-5個記入
    - ### 内容の記入
        - [Markdown形式](https://ja.wikipedia.org/wiki/Markdown)で記入していきます。
        - [github skills](https://github.com/skills/communicate-using-markdown)にMarkdown入門用のものがあるので、はじめて書く方は参考にどうぞ。私もやりました。これもいずれ記事にしようかな。
        - [Qiita公式の記事](https://qiita.com/Qiita/items/c686397e4a0f4f11683d)にも記法のまとめがありました。私自身もあまり慣れていないので、参考にさせていただきます。
        - 記事内で、@ を使ってQiitaユーザーにメンションできるようです。
        - コードを記入する際には、ハイライト表示を利用できます。[こちらの記事](https://qiita.com/Qiita/items/e84f5aad7757afce82ba)に対応する言語のリストがあります。実際に下で```:emoji:```というハイライト表示を利用しました。
        - [スライドモード](https://help.qiita.com/ja/articles/qiita-slide)があります。これはMarkdownをスライドとして表示するモードです。編集画面のタグのすぐ下にスイッチがあり、onにすることで利用可能です。
        - [絵文字](https://help.qiita.com/ja/articles/qiita-emoji)も利用可能です。:v: ``` :emoji: ``` と入力することで候補を選ぶことができます。
        - 限定共有の状態と公開の状態とでURLが変わるようです。ほかの限定共有記事へのリンクを貼った場合に、その後公開されるとリンク切れが発生するのではないかと心配になりました。結論だけ言うと、リダイレクトされるので[問題ない](https://qiita.com/flyaway2525/items/05c7df35ca7fdfc14884)とのことです。
    - ### 投稿
        - 公開設定というボタンをクリックすると、限定公開記事にするか、公開記事にするか選ぶことができます。限定公開記事というのはURLを知っている人だけがアクセスできる記事、公開記事は誰でもアクセスできる記事です。
        - その他、下書きとして保存しておくことももちろんできます。
- ## アドベントカレンダーとの紐づけ
    - アドベントカレンダーのページで、紐づけたい日付をクリックする。
    - タイトルとURLを入れて登録。
    - 全体公開済みはもちろん、限定公開のqiita記事や、他のサイトの記事でもOK。
- ## 投稿済み記事の編集
    - 自己紹介など、のセクション名まで入れて一度公開したのですが、その後編集のやり方が分からず焦りました(調べておけ)
    - 結局、[ヘルプページ](https://help.qiita.com/ja/articles/qiita-edit)にやり方が載っていました。運営さんありがとうございます。

- ## 外部環境との接続
    - ### Qiita CLI
        - 外部環境からQiitaの記事を投稿するためのCLIです。
        - 以下では、これを使ってローカルのVSCodeで記事を書く環境をセットアップします。
        - 私はローカルでGithub Copilotによる文章補完などをよくやるので、これをQiita投稿にも使って効率よく記事作成するのが目的です。
        - Node.js がインストールされている必要があります。私は[この記事](https://qiita.com/ryome/items/8f73d4d93c366a6d4b3e)を参照しました。
        - Qiita CLI自体のインストールは[こちらの記事を参照](https://qiita.com/ryome/items/8f73d4d93c366a6d4b3e)。
        - ```npx qiita preview```が通りませんでした。
            - 実際にあるディレクトリはAppDataなのに、Application Dataというディレクトリを読みに行ってしまったのが原因のようです（Windows11）。
            - 環境変数のほうはAppDataになっていたので、Qiita CLIもしくはNode.jsでApplication Dataというディレクトリ名を指定してしまっている様子。
            - [Qiita公式のdiscussionで質問してみた](https://github.com/increments/qiita-discussions/discussions/922)ところ、```npx qiita pull```で記事のmdファイルを保存する先をwindows11のユーザーフォルダ直下にしてしまうと、エラーが出るとのこと。
            - ユーザーフォルダ内にフォルダを作成して、その中に保存するようにしたところ、エラー解消しました。
        - ローカルで.mdファイルを管理する形になるのですが、qiita側で作成した記事をpullしたものだと、デフォルト名はランダムな文字列になってしまいます。しかし、このファイル名を変更しても、qiita側の記事には影響がないようです（おそらく、.mdファイル内のidで管理していると思います）。とても快適になりました。
        - ローカルで作成した記事にもタグ付けしないとpublishすることができません。新しい分野の記事を書く際に、どういうタグが存在するかを調べたくなりました。[タグについてまとめていただいた記事](https://qiita.com/mrrclb48z/items/2afe326e2163204a301c)によると、qiita内でタグ検索をすることができるようです。これを使って、ありそうなタグの候補から、検索結果数が一番多いものを使うのがいいのかなと思います。
    - ### VScode
        - これはQiitaというより、Qiita CLIとの接続になります。
        - VSCodeとは、Microsoftが提供しているテキストエディタです。各種言語に対応しており、拡張機能を導入することで様々な機能を追加して使い勝手のいい環境を構築できます。
        - VSCode上でMarkdownを書いて、Qiita CLIで投稿するという流れを作りました。
        - VSCodeの導入は[こちら](https://qiita.com/mmake/items/2cf2131a0ab5bc431215)を参照。
    - ### github copilot
        - これはQiitaというより、VSCodeとの接続になります。
        - github copilotは、AIがコードを補完してくれる機能です。私はこれを使って文章補完もしています。（←実際、この行はcopilotが補完してくれました）
        - github copilotの導入は[こちら](https://qiita.com/zumax/items/4334c2a2baf059ba13bf)を参照。
    - ### MarkdownAI(追々追加)
        - 現在qiitaのアドベントカレンダーで、Markdownを補完するAIであるMarkdownAIが紹介されています。
        - 追々、これも使ってみたいと思います。
- ## SEO対策
    - せっかくならたくさんの人に見てほしいということで、意識してみるのもいいかも。
    - ### 以下のページを参照しました。
        - https://qiita.com/1amageek/items/1ac34fd8bcbe8257ad11
        - https://qiita.com/kentokedo/items/ce2c4f0c0e0abdc17972
        - https://qiita.com/dameNingen_ganbaru/items/d97cc86546ac5a4226b6
        - https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=ja
    - ### パッと使えそうなテクニックはこれらでしょうか。
        - ##### キーワードの適切な使用
            - 検索に引っかかりやすくする。
            - Google Trendsなどで分析可能とのことです。
        - ##### コンテンツの質の向上
            - https://qiita.com/kentokedo/items/ce2c4f0c0e0abdc17972 からそのままですが。。
            - E-E-A-T：「経験（Experience）」「専門性（Expertise）」「権威性（Authoritativeness）」「信頼（Trust）」を重視
            - 実際に経験したリアルな情報である、他のサイトで紹介されているページである、ユーザーからのレビューや口コミがサイトに掲載されている、コンテンツにオリジナル性がある等
        - ##### 外部リンクの獲得
            - 外部のサイトから自分の記事へのリンクを獲得すると良いとのこと。
        - ##### h1タグは1ページに１つだけ
            - Markdownにおいて最も強調されるh1タグは、一つにしておかないとページの主題がわかりづらく、ページ収集において不利に働いてしまうようです。
        - ##### パンくずリストの整備
            - 記事同士をリンクさせ、リンクによるネットワークのように構造化する。
            - このリンクのリストを、パンくずリストと呼ぶようです。
            - Qiita内での記事でも、自分の記事同士の関連リンクを整備しておくことで効果がある、のでしょうか？
        - ##### 画像添付時のpictureタグの使用
            - pictureタグはHTMLタグのようです。
            - QiitaはMarkdownなので、あまり関係ない？
        - ##### コアウェブバイタル（ページの健全さ）
            - ページ読み込みの速さ
            - 読み込み後の位置ずれでユーザーに変なクリックをさせない
            - ユーザー側にクリック等をさせた際の応答の速さ
            - これらが備わっていると、有利なようです。