エンジニアの学び方『効率的に学ぶには』① WEB+DB PRESS vol.80より
新卒1年目くらいに会社でもらったWEB+DB PRESSを掃除してたら出てきたので久々に読んでみた。
色々とあるのだがその中からエンジニアの学び方というコラムを紹介します。
効率的に学ぶには
知識には3つの軸がある
- 広い視野軸
- 深い理解軸
- 応用対象軸
広い視野軸
広い視野は、学ぶべき対象を見つけるために必要です。
この軸が足りないと、新しいものにも気づけません。その結果今知りえている技術に固執してしまうようになってしまいます。
ポイント
- 勉強会に参加する
- ブログ記事やニュース記事を見る
広い視野を持つことは時間をかけて学ぶべき対象を見つけるための最初の一歩。
最初の一歩で立ち止まらず、先に進むことが必要です。
深い理解軸
深い理解軸は学びの効率化と応用のために必要です。
ポイント
- 自分の都合にあわせて変更できる抽象的な知識
- 抽象化された知識がどう役立つか
- 具体的な知識・経験が必要
- 自分の都合にあわせて変更できる抽象的な知識
深い理解軸が足りないと、取り入れた知識をオウム返しのようにそのままの形で出力する事となってしまいます。
コマンドひとつでも、何も意味を理解していないで使用しているとそれしか使えず、自分の都合に合わせて変更することは出来ません。
コマンドやそれに連なる記号の知識が必要になってきます。それはもっと抽象化された知識です。
(lsとは?|(パイプ)って?そもそも標準出力って何??)
(lsとは?|(パイプ)って?そもそも標準出力って何??)
- 抽象化された知識がどう役立つか
たとえば、プログラミング未経験の人とC言語の経験がある人
2人がrubyを学んだら、当然経験のある人のほうが習得が早いでしょう。
代入や、ループ、変数宣言等特定の言語だけの知識ではないものは沢山あります。
このような抽象化された知識を持つと、新しい知識を得る速度が上がります。
- 具体的な知識・経験が必要
抽象的な理解をいきなり得ることは出来ません。
具体的な知識・経験を持ち、さらに理解を育てる必要があります。
経験に基づかない抽象的な知識は、具体的な知識とどう対応して良いか分からず、応用が出来ません。
この深い理解軸の、「すでに経験して知っていることを、もっと深く理解する」という方向性は大事なのですが、
こればかりでは新しいものに気づくことが出来ずに、たこつぼに陥ってしまいます。
バランスが重要です。
応用対象軸
この種の知識はドメイン知識とも呼ばれています。
広い視野軸で知識を集め、深い理解軸で知識を抽象化。
ですがそれだけだと何も成果がありません。
たとえば、会社でのシステムの問題は社内での知識であり社外でその問題を学ぶのは難しいです。
勉強会などで学べるのは、他の会社がその解くべき問題をどうやって解決したか。
自社のシステムの文脈を知らずに、他社の解決法をコピペしてもなかなか成功しません。
まず、自社のシステムを理解し、他社から得た地しいを社内向けに翻訳する作業が必要です。
これをないがしろにすると、他ではうまくいっているのにウチではうまくいかないという現象が起きます。
この応用対称軸が足りないと、何かを学んで深く理解し、応用する力を持っていても
それを何に応用して成果を出せば良いかが分かりません。
この軸に偏りすぎると会社・ビジネスに蜜結合してしまいます。
以上この3点の軸をバランスよく行っていくことが効率的に学ぶ第一歩ではないかと思います。
まとめ
- 広い知識を得るために、勉強会に参加したり、技術コラムを読んだり・・・幅広くライトに知識を得てみること。
- そうして蓄えた知識をネットや書籍で詳しく調べてみて、サンプル等を実行してみること。
- 自分が習得した知識や技術をどうやったら現実的に落としこめるかを考え、実行する。
簡単にまとめてみましたが、やはり私にはまだまだ理解がおぼつかない・・・