はじめに
客先常駐のエンジニアなど行く先々で違った技術を使うことになり、その都度勉強している状況だと思います。当然ながら筆者もそのエンジニアの一人のため毎回勉強になります。その時にいつもやっている勉強法になります。
筆者は、この勉強法でうまく行っていますが、全ての人に対して有効かはわかりかねる部分があります。
以下に記載する内容はあくまで一例であるという認識のもと読んでもらえると幸いです。
■1■【まずは疑問を持つこと】
新しいことを知る第一歩は、「疑問」だと思います。普段使っている技術や製品に対してどうやって動いているのかとかの関心を持つようにしましょう。全てはそれからだと思います。
■2■【とりあえず検索】
疑問に思ったり、興味があるキーワードはとりあえず検索かけてみましょう。この時「〇〇とは」等で検索をかける事がコツです。「〇〇とは」というワードはあとにつなげる文章を考えると「〇〇とは〇〇の事である」とつなげる事ができると思います。つまり「〇〇とは」で引っかかるサイトには概要的なことが可能性が大きいです。いきなり専門的な言葉ばかり並んでいるサイトを見ても何の事か分らないと思います。
上記検索キーワードで引っかかったサイトで「まずはざくっと理解する」事が大事です。
またこの時に調べたサイトは「お気に入り」に登録しておくとかメモ帳に貼り付けておくとかしておくと後々便利です。
具体的には以下の内容について調べています。
★ポイント★
・その技術は何というものか?[名前とか]
・どんなことができるのか?[機能]
・どんなメリットとデメリットがあるのか?
・どんなふうに使われているのか?
★効果★
・製品や技術の概要を頭に叩き込む
■3■【正確な情報を調べる】
■2■で内容を把握したら次は専門的なサイトに行ってその技術の定義を抑えます。例えばAWSだったらAmazonのページ,AzureだったらMSサイトとかになります。
こういうサイトに書いてある内容は、複雑だけど詳しく書いてあります。また技術や製品を出している大本の為、うそは乗っけていないと思います。
概要も知らないでいきなり見ても何の事かさっぱり分りませんが、概要を一通り抑えた後ならば、「ちんぷんかんぷん」は避けられると思います。
ここで知っておきたいのは以下の内容になります
・関連する技術の仕組みや定義
どんな製品や技術もどうやって動いているのかという事を知れば、様々な環境において、「この技術に必要なものはこれである」というのがわかりますので必要な前提というのが見えてきます。
例えばインターネットにつながってないところにWEBサーバを構築する場合はまずはプロキシとかを立てて、サーバーがネットワークに接続できる環境にすることが前提になりますよね?
・検証環境(試用版)等は使えるのか
インターネットや書籍から吸収しただけの内容はやっぱり忘れます。覚える為には実際に触ることが重要です。そのために必要となる情報をこのタイミングで集めます。
★効果★
・その技術もしくは製品の概要知識が固まる
■4■【実機検証】
次にやるのは「とりあえず触ってみる」になります。どんな技術もそうですが実際に覚えるのは自分で触って確認することが一番です。それに最近では「クラウド」や「コンテナ」等インフラを簡単に作れるシステムがたくさんあります。
私は基本的に無料枠でできる事しかやりませんが、掛けるお金があるなら私は多分ここにお金をかけると思います。
ここでやることは「チュートリアル」に書いてあることをそっくりやってみるで十分です。その程度の情報ならば、ネットを見れば腐るほど転がってます!
またやったことはすべて記録に残します!後から確認したり資料に使ったり、用途は様々です。
★ポイント★
・実際の設定やインストールを行う
・やったことはどんな些細な事でも記録しておく
・発生したエラー等の解決方法も自分で調べる!
★効果★
・技術や製品の最低限の操作を覚えることができる
・技術や製品の生きた知識が手にはいる。
■5■【資料作成(書きなぐり)】
これは自分で理解することが目的です。人間なのでやったことは、いづれ確実に忘れます。忘れないようにするためには記録することが一番です。ちょっと面倒ですが、学校の授業でノートを取る感覚です。
この時に使う媒体は2つ使います。一つ目はノート。人間は書くことで覚えるのでその書く作業の為に使います。また書きなぐりでもいいので絵(環境構成図やイメージ図等)を書くことを意識するといいかもしれません。
文章は覚えづらくても絵は意外と頭の中に残ります。
メモ帳では実行したコマンドやコードなどをそっくりそのままコピーしておきます。その際に「何のためにやったか」を明確に書いておくと後で見た時に思い出しやすくなります。
そのあとは保存したファイルを「Googleドライブ」等のオンラインストレージに格納しておくことがいいと思います。「Googleドライブ」はスマホでもアクセスできるためちょっとした時間ができた時に確認するのにもってこいです。
★ポイント★
・資料を作ってやった内容を反復
・資料作成時はイメージ(絵)を書く。
・「オンラインストレージ」に情報を残し定期的に確認
★効果★
・手元に資料がなくてもその技術や製品について語れるようになる
■6■【なんかやってみる】
このタイミングまでくれば、概要知識と操作経験がすでに身についていると思います。しかしながらこれだけでは一般的な事しか知らない状況です。言い換えれば「そんなの誰でも知ってる。もしくはネット見れば解決する」というところです。そこからさらに一歩踏み込むには標準以外の方法でやってみるという事が大事です。ここでのポイントは「人に聞かないで自分で調べる」です。筆者は人に聞くのは障害対応とか仕事の時だけにしています。勉強が目的のときは全て自分で調べます。自分で手を動かしたり、ひたすら調べたりした方が経験上頭に残ります。
以下を例として挙げておきます。下記例のような事をやると今自分がほしい技術以外の技術も必要になりそれを調べる事でさらに知識が深くなります。
例1:
CentOSでyumを使ってインストールするパッケージをネットワークにつながってない環境でやってみるとか。。。
例2:
全てのインストール手順や設定手順をShell(PowerShell)でやるとか。。。
★ポイント★
・資料やネットに書いていないことを適当にやってみる!エラーが起きたら試行錯誤
★効果★
・製品や技術の仕組みや関連する技術が理解できる
■7■【資料作成(完璧版)】
ここまで、実機検証やネットでの勉強をしてきて、ある程度は、技術内容を理解できてると思います。そして記録もとっていますので忘れた時の対策も出来ている・・・・と思いますが、まだ定着には至っていません。
今度は今までの情報をいったん整理する意味での資料作成をします。これは先ほどのインプットとともにアウトプットの意味もあります。先程の書きなぐりとは違い、第三者から見ても内容がわかる資料を作ります。
第三者にもわかると言うことは内容をきちんと整理する必要がありますので、自分のなかでもまた知識の定着が進みます。
さらにこれを[Qiita]や[SlidShare]に挙げる事で自己アピールにおいても大きな意味を持ちます!
★ポイント★
・今までの内容を整理して資料としてまとめる
★効果★
・製品や技術の内容が概ね理解できる
・自己アピールにもなる
■8■【説明】
あとは自分がやったことを誰かに話すことです。これは先ほどの■5■と■7■がインプットだとしたら、今回はアウトプットになります。
やるのは文字通り自分が整理した内容を資料を使わないで誰かに話す(説明)事です。資料を使わないでも話すことができているということは「自分の頭の中に入っていること」になります。それができなかったら■6■で作った資料を見て再確認します。
余談ですが、この誰かに話すというのは、周りに自分のスキルを認めさせる効果もあります。(要するに「頑張ってますよアピール」です)
ただ状況によってはそんな環境が頻繁にあるわけでもないって人もいると思います。そのときは「Qiita」や「SlideShare」を使って第三者に伝えることを目標とします。要はなければ「自分で作れ」ということです。
私の環境では「社内勉強会」というものがありますので、そちらを使って「資料作成能力」「プレゼンテーション」「知識整理」を同時にやっています。
それ以外では「Qiita」や「SlidShare」を使っています。職種柄これをやっておくと物凄い武器になることが多々あります。理由は誰もが見れるからです。
★ポイント★
・自分がやった内容を誰かに話すことでその内容を整理することができる
・発信する環境がないなら自分で作って発信!
★効果★
・製品や技術の内容が大体話せるようになる
・やってきたことが頭の中で定着する
・技術や製品を[知っている]証明になる
■9■【無料セミナーで知見を広げる】
ここまでやるとその技術や製品についての知識はすでに出来上がってきていると思います。ですが今のままではまだ特定された内容しか対応できないと思います。それを回避させる手段は無料セミナーへの参加です。
無料セミナーでは、技術的なことや概要的なこと等様々な事をやっていますが、ここでは概要的な内容を話しているセミナーがいいと思います。技術的なことは上記の■1■~■8■をやれば大抵の事は手に入ります。ですが、それだけだと技術や製品の知識はわかっても「ノウハウ」に関してはわかりません。実は仕事していくとこの「ノウハウ」がかなり重要だったりします。
その「ノウハウ」に関しての情報を収集する一番の近道が「Connpass」等の無料セミナーへの参加です。セミナーは何も知らない人向けにかなり噛み砕いたりしているので、知識を持っている場合は、すごくわかりやすくなります。
ここでは正直、深い技術よりも、「新機能の存在を知る」が目的です。だからキーワードだけメモッておけばいいと思います。それであとからゆっくり調べればいいだけです。
★ポイント★
・さらに知見を広げる為に機能概要を語っているセミナーへ参加
・キーワードだけメモッてあとでゆっくり実践する
★効果★
・今の自分が知らない知識が手に入る
ここまでやっておけば大抵のことは頭に入ってきて語れる様になります。
さらに深い技術を習得する場合でも基本的には上記の1から9のループです。
正直、書籍を購入してしっかり机で勉強は性に合いません。資格取得を目的としてる場合は別ですが。。。
もしこのフローをやって頂けたなら、書店で技術書を読んでみてください。初めは「さっぱり」だったのが驚くほど理解できるようになっていると思います。
春になってまた新らしくこの業界に入ってくる人の為に書いてみました。
100%大丈夫とは言い切れませんが、知っておいても無駄にはならないと思います。