> For the complete documentation index, see [llms.txt](https://mml.gitbook.io/mml/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mml.gitbook.io/mml/programming-side-book/study-hard/how.md).

# どうやって勉強する？

## どうやって勉強する？

現在ではプログラミングを勉強するには様々な方法がある。どのやり方が正しいとか王道だとかはないので、自分に合った方法を探せばよい。ここで説明するのはあくまで参考であり、一般的に重要になる項目である。

## インターネットで調べる

もっとも基本的にしてもっとも難しい技術である。あなたは「プログラミング 入門」などと検索欄に入力して調べたかもしれないが、あっという間に情報の洪水に溺れたことだろう。プログラミングにおいてはその情報の洪水の中から本当に必要な情報だけをすくい上げるリテラシーが必要になる。

**プログラミングについてインターネットで調べるのは、特に初心者のうちがもっとも難しい**。なぜならば

1. 初心者には正しい情報へたどり着くための専門用語の語彙が備わっていない
2. 初心者には正しい情報と誤っている情報の区別がつきにくい
3. 初心者が調べるような簡単な情報は、他の初心者が書いたレベルの低い解説で溢れている

といった現状があるからだ。

正しい情報を見分けるのは熟練のプログラマでもときどき苦労することだが、**ポイントは誰かが発信した情報を他者が更正できる仕組みが備わっているかどうか**である。不特定多数の人間が閲覧可能であり、なおかつ誤りを指摘できる状態が維持されているならばある程度は信頼してよい情報源だといえる。

初心者がインターネットから比較的確実にたどり着ける情報についていくつか紹介しておこう。

### 公式/非公式チュートリアル

最近ではプログラミング言語やフレームワークには公式のチュートリアルが存在するケースも増えてきた。また公式でなくとも、有志による良質なチュートリアルが存在することもある。

たとえば「python tutorial」で検索すると、Python という言語について入門書と遜色がないレベルで詳細に網羅した公式チュートリアルに容易にたどり着くことができる。

{% embed url="<https://docs.python.org/ja/3/tutorial/>" %}

公式チュートリアルは機能について網羅的に紹介する目的で書かれており、あまり初心者向きではないことが多い。公式チュートリアルが難しいとか不十分だと感じたなら、他の非公式チュートリアルか入門書を探すとよい。

### 公式ドキュメント

どんなプログラミング言語やフレームワークについての情報も、公式のドキュメントが正しいとみなされる。もしプログラムが公式ドキュメントと異なる動作をしたらそれはバグなので、発見したら公式に報告すること。

### 入門サイト

### 海外のサイト

### **注意すべきこと**

良質な入門サイトが増えてきた一方で、**最近では情報の適正な価値を判断できない初心者を食い物にした悪質なビジネスも存在する**。初心者が置かれている状況を悪用すれば「レベルの低い情報を適当にかき集めて初心者に高額で売りつける」という詐欺まがいの商売は簡単に思いつく。いわゆる情報商材というものだ。

もちろん情報の価値は買う者が決めるものであって、どんな情報でもあなたが納得して買うならばそれでよいのだが、**良質な専門書でも相場は1冊あたり2,500円〜6,000円程度**だということを知っておこう。つまり月3万円の授業料を払うことは毎月5, 6冊の専門書を買うことと等価であり、それを上回る価値がある情報かどうか一度冷静になって考えたほうがよい。

個人レッスン等についてもなるべく警戒したほうがよい。大抵の場合プログラマは人に教えるよりも普通に働いたほうが給料がよいので、あなたに根気よく教えてくれる人は、

1. 普通に働いてもそこまで給料がよくない程度の技量である
2. 普通に働くよりも儲かるように高額の授業料を設定している

という可能性がつきまとう。もちろん人に教えるのが好きだという熱心な教師による、善意とボランティア精神に基づく良心的な個人レッスンも存在するだろうが、基本的に本職のプログラマにはあなたに付きっきりで懇切丁寧に教えるメリットはない。**初心者をカモにする人間がいること、自分はカモにされるかもしれないことを心に留めておいたほうがよい**。

## 他のプログラマに聞く

「本職のプログラマにはあなたに付きっきりで懇切丁寧に教えるメリットはない」と先ほど断言したが、その一方で**プログラマどうしは頻繁に情報交換を行っているので正しい情報にたどり着くためのアドバイス程度なら喜んで行う人が多い**。

プログラミングの世界では互助の文化が比較的根付いているし、プログラミングを真剣に学んだことがある人ならば大抵は学ぶことの難しさと辛さを知っているので、初心者に冷たくすることは少ない。Twitter などで情報発信を行なっているプログラマであれば、初対面であっても快く情報提供してくれることだろう。

ちなみにプログラマがよくいる SNS は Twitter や Slack である。Qiita という情報共有に特化したサービスや GitHub というソースコードの共有と管理を行う SNS もある。また質問サイトを利用するつもりなら Stack Overflow というプログラマ御用達の質問サイトを利用したほうがよい。他の質問サイトは概して回答者のマナーが非常に悪く、回答自体も質が低いことが多いためおすすめしない。

### 不特定多数に聞く

簡単な質問なら Twitter がもっとも適している。Twitter で多くのプログラマと相互フォローの関係になっていれば「OOがわからないのですが、どなたかご存知の方教えてください！！」などとヘルプを発信すれば大抵は誰かが教えてくれる。残念ながら誰も教えてくれなかったときは諦めて自分で調べよう。

### 相手を決めて質問する

SNS に限った話ではないが、実際に誰か相手を決めて聞いてみようと思うなら最低限の礼節はわきまえること。すなわち

1. 最低限自分で調べたあとで質問する
   * 繰り返すが、大抵の人間にはあなたに手取り足取り教える理由はない
2. 挨拶する
   * 「はじめまして」など
3. 自分が初心者であり助けを必要としているという事情を説明する
   * 「プログラミングの勉強を始めたばかりで、自分で調べただけではどうしてもわからない点があって」
   * 「最初の一歩を踏み出すのが不安なのでアドバイスをいただきたく」など
4. なぜその人に質問することにしたのか理由を述べる
   * 「詳しそうな方だとお見受けしたので」など
5. いったん許可を取る
   * 「質問してもいいですか」

&#x20;くらいはすること。もしも「いいですよ」と返事が返ってきたならば

1. 自分が本当に聞きたい内容を相手に伝える努力をする
   * あなたが初心者であるならば、あなたの知識や語彙は不足しており質問を明確に表現することは難しいだろう
   * 相手はその事情を考慮してあなたの質問をなんとか理解しようとしてくれるだろうから、過度に恐れる必要はない
2. 質問に答えてもらったら必ずお礼を述べる
   * 「ありがとうございます」

という姿勢を忘れないこと。

どの程度の礼儀正しさで接するべきかはあなたの性格や質問する相手の性格にもよるだろうが、他人に質問するという選択肢とその方法を本書を読んで知ったのなら、他のプログラマに失礼な態度を取ることのないように。

## 入門書を買う

入門書に関しては好みや相性があるので一概には言えない。書店などでパラパラとめくってみて自分でもっともわかりやすいと思う入門書を選べばよい。

もう一度書いておくが、**良質な専門書の相場は2,500円〜6,000円くらいの価格帯**である。経験的に、2,000円を切ると書いてある内容が薄っぺらになりがちで、4,000円を超えると今度は辞書のように詳しすぎになる。詳しすぎる本は入門書というよりは中級者以上に向けたリファレンスの扱いなので、初心者が読んでわかるような構成にはなっていないことが多い。

初心者向けの良書は経験的にだいたい2,500円〜3,800円くらいの価格帯に多い。

誰かに何万円もする教材を買わされそうになったらほぼ間違いなく悪質な商材なので注意すること。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mml.gitbook.io/mml/programming-side-book/study-hard/how.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
