「抽象」と「具体」の行き来が勉強である
題名の通りなんですが,勉強を「インプット」と「アウトプット」だとよく言いますが,私はあんまりしっくりこず,「抽象」と「具体」を行き来することだなあと思っているので,メモしとこうと思います.
ある新しい概念や単語に出会ったときに,その定義だけをみてすぐなるほどな,とわかることは少ないと思います.
例えば「スプーリング」とは,コンピュータにおいて、CPU(高速)とプリンタなどの周辺機器(低速)の処理速度の差を埋め、効率的に処理を行うための技術ですが,うーんという感じでしょう.
これが「抽象」だと思っていて,ここから,
- プリンタに印刷するとき,一回CPUがデータをまとめて保存しておく
- プリンタはそのデータをゆっくり取り出して印刷する
- だからCPUはプリンタを待たずに次の仕事ができる
という具体的な状況を考えると,「ああ,そういうことか」と理解できたりします.
つまり,
抽象(定義)
↓
具体(例)
↓
抽象(理解)
抽象(定義)
↓
具体(例)
↓
抽象(理解)みたいな往復が起きています.
抽象 → 具体
最初は抽象的な概念を見ても理解しづらいので,具体例に落とします.
例えば
- OSの概念 → 実際のプロセススケジューリング
- 分散システム → YouTubeやGoogle Driveの構成
- データ構造 → 実際のコード
みたいな感じです.
抽象だけだと「言葉」でしかないので,具体に落として「イメージ」を作ります.
具体 → 抽象
逆に,具体的なものをたくさん見ると,「共通パターン」が見えてきます.
例えば
- Redis
- Kafka
- RabbitMQ
を見ていくと,
「キューってこういうものか」
という抽象概念が見えてきます.
これは,
具体 → 抽象
具体 → 抽象のプロセスです.
勉強とは往復運動
つまり勉強は
抽象
↓
具体
↓
抽象
↓
具体
抽象
↓
具体
↓
抽象
↓
具体
という往復運動だと思います.
本を読んで理解できないときは,抽象だけ見ていることが多いです.
逆に,手を動かしているだけだと,具体の世界に閉じてしまいます.
この2つを行き来すると,理解が深くなります.
研究やエンジニアリングも同じ
これは研究やエンジニアリングでも同じだと思っています.
例えば,
- 論文 → 抽象
- 実装 → 具体
です.
論文だけ読んでもよく分からないし,実装だけしても全体像が見えません.
だから,
論文(抽象)
↓
コード(具体)
↓
理解(抽象)
論文(抽象)
↓
コード(具体)
↓
理解(抽象)
みたいな往復を繰り返すことになります.
まとめ
勉強は「インプット / アウトプット」よりも,
「抽象」と「具体」を行き来すること
だと思っています.
抽象だけでもダメ,具体だけでもダメで,
この往復運動を何回も繰り返すことで理解が深くなるのかなと思います.
PS
だから,基本情報技術者試験や各種クラウドベンダーの試験は,「抽象」なだけであるので,いわばバッジを集めているに過ぎず,実際の業務という「具体」と同時にやらないと,自身の血肉にはならないなあと,現在(2026/03)基本情報技術者試験の勉強をしていて思いました.