効果的な勉強法：理系大学院生の視点から


# はじめに

## 自己紹介

交通工学・都市計画を専攻している理系大学院生です。普段は、研究以外に興味のある機械学習、計量経済学、Pythonについて勉強しています。本記事では、研究活動やゼミ等を通して、良いなと思った勉強方法を共有します。

## 対象

言わずもがな勉強方法によって、効果や効率が異なります。また、効率的かどうかは目的や目標によって異なります。ここでは、研究室に所属する大学生や大学院生を対象としたおすすめの勉強法を取り上げます。

# 勉強方法

1. [アウトプットの重要性](#1-アウトプットの重要性)
2. [分からないことを明確にする](#2-分からないことを明確にする)
3. [実装を通じた理解](#3-実装を通じた理解)
5. [生成AIの活用](#4-生成AIの活用)
6. [コラボレーションと知識共有](#5-コラボレーションと知識共有)
7. [振り返りと改善](#6-振り返りと改善)

## 1. アウトプットの重要性

### インプットだけでは不十分

本や論文を読むだけで満足していませんか？読んでも記憶に残らなかったり、身につかなかったりすることありませんか？

多くの場合、単に情報を受け取るだけでは、真の理解や長期的な記憶には繋がりません。どうせ勉強するなら、アウトプットも込みで行いましょう。

### アウトプットの方法

1. 自分なりにまとめる（ノート、メモ）
2. GitHub、Qiita、Zennなどでの公開
3. 研究室内での勉強会やゼミでの発表

自分なりにまとめたり、メモでも良いですが、理想なのは誰かに説明することです。GitHub，Qiita等で勉強した内容を公開すると良いでしょう。また、研究室内で勉強会やゼミを行い、勉強した内容を説明するのもよいと思います。

### 利点

- 理解度の自己チェック
- 説明能力の向上
- 文章化能力の向上

アウトプット込みで勉強することで、如何に理解していないのに理解した気になっていたか気が付くと思います。誰かに説明しようとすると、インプットのみの場合と比べ物にならないくらい勉強コスト（負担）がかかります。しかし、これにより2で説明する分からないことが分かるのです。

当然インプットだけで終わるよりも時間がかかりますが、文章化する能力や説明する能力の向上にもつながります。これらの能力はアカデミアでも重要ですし、就活や一般企業でも役立つでしょう。

## 2. 分からないことを明確にする

### 「分からない」を認識する勇気

研究活動を行う上で、分からないことを素直に分からないと言うのはとても重要なことです。分からないことを知る、知られるのは怖いと思います。分かっているふりをしてしまうこともあるかもしれません。ただ、それに向き合うことは学習に不可欠なステップです。分からないことを認め、誰かに教えを乞いましょう。そこで、重要なのは何が（どこが）分からないかを明確にすることです。

### 具体的な方法

1. 分からない点をリストアップする
2. 理解できた部分と理解できなかった部分の境界線を引く
3. 具体的な質問を準備する

具体的に分からないところをリストアップしましょう。これは意外と難しく、分からないところの方が多いこともあります。研究室に入りたての学生や専門科目を学び始めたばかりの学生は尚更です。その場合は、理解できたところと理解できなかったところの境界線を引きましょう。境界線を引くことで、誰か（先輩や先生）に教えてもらうときに教える側の負担は軽減されます。

### 利点

- 理解度の客観的な把握
- 教える側の負担軽減
- 質問する能力向上

## 3. 実装を通じた理解

### 抽象的な概念を具体化する

数学や理論的な内容は、時として抽象的で理解が難しいこともあります。また、学んだことがどのように応用されるのか分からないことも多いです。

このような場合はPythonやRなどのプログラミング言語を用いて実装してみると良いでしょう。実装したり図として出力したりすることで具体的なイメージをつかむことができます。

例えば、確率・統計を学ぶ場合、学んだ内容をPythonコードに落とし込みましょう。例えば、標準偏差の計算や最小二乗法の計算を、ライブラリを用いずにコードを書くことで具体的にどのような操作をしているかを理解することができます。また、プログラミングの勉強にもなります。

数学×プログラミングの書籍は多くありますし、これらの書籍を自分で作るような感覚でコードを書いても良いでしょう。

- [Pythonで学ぶ新しい統計学の教科書](https://www.amazon.co.jp/Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E7%AC%AC2%E7%89%88-%E9%A6%AC%E5%A0%B4%E7%9C%9F%E5%93%89/dp/4798171948)
- [プログラミングのための数学](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%95%B0%E5%AD%A6-Paul-Orland/dp/4839973067/ref=tmm_pap_swatch_0?_encoding=UTF8&dib_tag=se&dib=eyJ2IjoiMSJ9.4dfmFdQhOwSHucSaObPn8EKd3x-VQgm6YOJF-IXyVO2DRE6D1YZVes_uKD6R6lXQg0NSSBvPyqZtBk4y4mQ9T4M6oEB1RqBvVc50WqNTKITKPp-U21NNmK_i7FYknxOnXcCmD_RB-Qe-qGoECJtYO_06HecZAqUQx7Luw85i_A-MS5bvu3LUCZ2g7lxMTaasyn5BoQC7S88hpNjtWVrc5X72q2j--Ow3QsA4FiizshU.FdpGzi3OxEXyMBH9s_XszVTKs5jneb0nGglHvLoD2Vw&qid=1727321351&sr=1-3)
- [Pythonではじめる数学の冒険 ―プログラミングで図解する代数、幾何学、三角関数](https://www.amazon.co.jp/Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%95%B0%E5%AD%A6%E3%81%AE%E5%86%92%E9%99%BA-%E2%80%95%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E5%9B%B3%E8%A7%A3%E3%81%99%E3%82%8B%E4%BB%A3%E6%95%B0%E3%80%81%E5%B9%BE%E4%BD%95%E5%AD%A6%E3%80%81%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0-Peter-Farrell/dp/4873119308/ref=sr_1_11?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=BSM7QMUQDGSN&dib=eyJ2IjoiMSJ9.4dfmFdQhOwSHucSaObPn8EKd3x-VQgm6YOJF-IXyVO2DRE6D1YZVes_uKD6R6lXQg0NSSBvPyqZtBk4y4mQ9T4M6oEB1RqBvVc50WqNTKITKPp-U21NNmK_i7FYknxOnXcCmD_RB-Qe-qGoECJtYO_06HecZAqUQx7Luw85i_A-MS5bvu3LUCZ2g7lxMTaasyn5BoQC7S88hpNjtWVrc5X72q2j--Ow3QsA4FiizshU.FdpGzi3OxEXyMBH9s_XszVTKs5jneb0nGglHvLoD2Vw&dib_tag=se&keywords=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0+%E6%95%B0%E5%AD%A6&qid=1727321351&s=books&sprefix=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0+%E6%95%B0%E5%AD%A6%2Cstripbooks%2C149&sr=1-11)


### 利点

- 具体的なイメージの捕捉
- 理解度の向上
- プログラミングスキルの向上

## 4. 生成AIの活用

### 注意点

- 目的に応じて使い分ける
- 自己の能力向上とのバランスを取る
- 情報の正確性を常に確認する

生成AIは積極的に使いましょう。ただし、これも目的や目標によって使った方が良い場面と使わない方が良い場面があるかもしれません。

例えば、生成AIに論文を翻訳・要約してもらう場合、原文を自分で直接読んだ方が能力の向上に寄与するかもしれません。また、自分の力で要約した方が、まとめる力の向上やアウトプットの練習になるかもしれません。まとめることが目的であれば、生成AIを使った方が効率的ですが、自身の能力向上を考えるのであれば直接読む＋生成AIにサポートしてもらう方が効率的かもしれません。

また、思考を停止してはいけません。生成AIの出力の検証も必要ですし、理解した気になってしまうかもしれません。

### 5. コラボレーションと知識共有

### 知識共有の重要性

研究や学習は個人で完結するものではありません。他者との交流を通じて、新しい視点や知識を得ることができます。

### 実践方法

- 研究室でのゼミ・勉強会の開催
- GitHubなどを利用した外部への発信

前述の通り、研究室でのゼミ・勉強会，外部への発信（GitHub等）を積極的に行いましょう。組織内での知識の共有や他分野とのコラボレーションは重要な財産となります。

### 利点

- 知的財産の蓄積
- 説明能力の向上
- ネットワークの構築

### 6. 振り返りと改善

勉強方法に1つの最適解はありません。定期的な学習方法の見直しを行いましょう。また、勉強方法についてほかの人と議論を行うと良いでしょう。

## まとめ

効果的な勉強法は、個人の目的や目標によって異なります。しかし、以下の点は多くの場合に有効です：

1. アウトプットを重視し、学んだ内容を整理・発信する
2. 分からないことを明確にし、積極的に質問する
3. 実装を通じて抽象的な概念を具体化する
4. 生成AIを適切に活用し、学習を補助する
5. 他者とのコラボレーションや知識共有を大切にする
6. 定期的に勉強方法を振り返り、改善を続ける

これらの方法を組み合わせ、自分に合った学習スタイルを見つけることで、より効果的かつ効率的な学習が可能になります。

また、自身の研究内容だけでなく、幅広いテーマに触れることは重要です。常に好奇心を持ち、新しい知識や技術に挑戦し続けることは、研究者やエンジニアにとって必須な要素と言えるでしょう。

研究の進め方や考え方は国立情報学研究所の[佐藤先生](https://joisino.net/)が素晴らしい資料を公開しているので、これを見ると良いでしょう。

https://speakerdeck.com/joisino/randomness

補足や自身の考え等ありましたら、コメントを頂けると幸いです。