「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック
https://gyazo.com/9420919b307223f8b98f4a7250bd57f7
📝 読書メモ
選び方
自分のスキルに合った本を見極める
売れ筋の本がいまの自分のスキルで読めるとは限らない
目次を眺めて自分の知りたい項目が書かれているか判断する。
目次を見て中身のイメージが全然湧かないのであれば、少し難しすぎる本かも。
一方、知っている内容についてのページ数があまりにも多ければ、やさしすぎる本だと判断できる
「入門」には注意
ターゲットを初級者に合わせた方が売れやすい
パラパラと書籍をめくってみて、その後半でどこまでたどり着くのかを確認するなど、ゴールをざっくりと理解してから購入する
まったく異なるジャンルの雑誌にときどき目を通してみる
技術書を読むような技術者は世の中全体では圧倒的に少数であり、ITと関係しない仕事をしている多くの人は、専門的な知識なしにPCやスマホを使っている。そのような人たちがどのようなところで困っているのか、何を求めているのか、ということを知ると、それが自分の仕事に役立つこともある。
自分に合うと思った本があったら、そのシリーズ本を探してみる
実務に関わっているITエンジニアのブログ。その人が書いているレビューから、読んでいる本を探す
目指したい人を探す
同じプログラミング言語を使っている、企業規模が同じくらいである、業務内容が近いなどの共通点があると、その本を使う場面がイメージしやすい
悪書との出会いは避けられない
相性が悪かったら、いまの自分に合わないと判断して、流し読みで通読したり、すぐ別の本に切り替えたりするのも1つの方法。最も避けるべきことは読書そのものを止めてしまうこと。
レベル感のあった本を選ぶ
技術の習得という観点でいえば、自分のスキルから見て少し難しい本であれば効果的。たとえば「半分ぐらいは知らないが、読めばなんとかなりそう」、「2割ぐらいはすごく難しそう」といった印象を受ければ、ちょうどよいレベル。
途中から急に内容が難しくて理解できなくなることがたびたびある。そういった場合は完全に理解することはやめ、最後までざっくりと目を通す。→ つまずいた内容についてほかの本や資料で調べる。1つずつわからないことを解消していき、基礎が足りなければそれを補強していけば、着実に実力はアップする。
英語の技術書を選ぶ時のポイント
英語が苦手であっても技術書は読める
技術書であれば難しい単語や言い回しも少なく、比較的簡潔な文章であることが多いから
「英語の勉強が完了してから洋書を読む」と考えてはいけない
読み方
1つのテーマで3冊の本を読む
1. 入門書、専門書、逆引き(事例が載ってる本。目的からその実現方法を紹介した内容であることが一般的)のように視点が異なる本を3種類くらい読むと、実務で使えるレベルになる
2. 難易度や内容の異なる3つの本を読むだけでなく、同じくらいの難易度、同じような内容の本を複数見比べる、というのも1つの方法
3冊くらい見比べてみて、すべてに載っているような内容は、とても重要な部分だとわかります。これは1冊を読んだだけでは気づかない
仕事に直結するような知識だけしか学ばないのでは、知識が広がっていくことはない。勉強だけでなく、遊びや趣味の範囲から、なんらかのきっかけでそれが仕事に役立つこともある。
次に読む本を決めるとき、いま読んでいる本について考えるとき、それが「消費」、「浪費」、「投資」のどれに該当するか考えてみると、優先順位を決める役に立つ
読書記録
scrapboxおすすめ。量が増えても検索しやすい。
合わない本は無理しない。無理して読んでも身につかないと思うなら、それに時間をかけてもしかたない。今の自分と合ってないだけ。
その本を読むゴールを決める
本を読むことに没頭してしまうと、その目的から離れてしまうことがある。学ばなければならないことがほかにもあるにもあるのに、その本を読むことが目的になってしまって、無駄に時間を使ってしまう。
仕事などで必要な本であっても、当初の目的を達成したら、そのほかの部分を「いま」読むのではなく、後回しにしてほかのことに手をつけるのもあり
同じ本を何度も読む
1. 1度目はざっと流し読みをする。章、節などのタイトルの部分と最初の数行をざっと眺める。加えて、図や表に目を通す。
この程度であれば、300ページくらいの本であっても30分から1時間程度で最後まで読めてしまう。というか、1h くらいでで読み終わることを目指して流し読みする。
この流し読みで全体像が読み取れない、何が書いてあるのかまったくわからない、というくらい難しいなら、おそらくその本を読むレベルに達していない。もっと簡単な入門書が必要だと判断して、いったんその本を読むのはあきらめて入門書を探す。
ポイント:本の中身を理解するというよりも、本の全体像を把握する。自分にとって必要な部分はどこなのか、どこを重点的に読む必要があるのかをチェック
🤔 技術書は高いので、すでに買った本をざっと読んで微妙ってなるのはお金がもったいないので、読ませてもらえる本屋に行ってこれをやるのはありだなと思った。
2. 2度目は手を動かしながら読む
流し読みの結果、もう少し詳しく読んでみたいと感じた場合や、試してみたいと思った場合は、必ず手を動かす。プログラミングに関する本の場合は、実際にソースコードを入力。DBやサーバーに関する本の場合は、実際に環境を構築して試してみるの
技術書の場合は、この「手を動かす」という作業が必須。
実際に本に書かれているソースコードを手で入力し、試行錯誤することで、その効果を体験できる。 単純にコピー&ペーストしているだけでは、動くことはわかりますが、そこから得られるものは限られています。
ソースコードの修正で試行錯誤することで、知識が深まるのです。そこから得られたスキルはかけがえのないもの
3. ノートにまとめながら読む
2周目で本の内容を試した後は、それを記録に残す。
後から本を読んでやった作業を振り返るときに、もう一度本を読むのは大変なので、その本で注目したいポイントを自分で整理しておく。
自分がどんなところに詰まったのか、どうやって解決したのかなど、その手順を残しておくと、後で同じ状況になったときに解決するまでの時間を短縮できる。
Q. 2度目と3度目を分けずに、「手を動かすのと同時にノートにまとめればいいのでは?」
効率を考えるとそうかもしれないが、個人的にはあえて分けている。これは、学校の勉強で予習や復習をするのと同じ考え方で、一度だけでは忘れてしまうことも、後で振り返って手を動かすことで身につくことが多いため。
🤔 自分も2と3を1周目でやってたから、反復学習のためにも分けるのやってみたいと思った。
プログラミング書
本の内容を前から順にすべてを納得できる、実装できるようになるまで理解している時間もないことが多いだろう
そこで、まずはざっと読み通すことをおすすめ
1. 最初はとりあえず1冊の本に書かれている内容を把握するために読みます。使わないものを詳しく知っても意味がないため、「そんな機能があるんだな」くらいで読み飛ばす
基本的な概念や使い方を確認する。インストールしてみて、数行のソースコードであれば入力して試してみてもいい
このとき、うまく動かない、となったり、すぐに解決できないと感じたりするのであれば、とりあえず飛ばす。大切なのは「何がどこに書かれているか」を把握すること。
2. 動くものを作る
まずは汚くても「動くコード」を書く
たとえば、その本の全体を一度読み終えた段階で、章単位で学んだことを使って、何か動くものを作ります。本に書かれている内容をコピーするのではなく、ゼロから何か新しいテーマを考えて作ってみる。本に書かれている内容をそのまま入力して、一部を書き換えて動かしてみる、章末に書かれている練習問題を解く、というのもいい.
3. 同じ結果が得られる複数の実装を試す
複数の実装のうち、どれが良いか知らないと、リファクタリングはできない。
本のソースコードを違う方法で実装することは有効。本には1通りしか実装方法が載ってないが、これを自分なりの方法で書き換えてみる。そして、本のソースコードと、自分が書き換えたソースコードを見比べて、どちらが読みやすいか、どちらが保守しやすいかを考える。
他人のコードを信じない
同時並行で読むか、1冊ずつ片付けるか?
同時並行で読むのに適してるパターン > 新しい技術を学ぶとき、複数の本を見比べながら読み進める。
メリット
1. わからないところで詰まりにくいこと。1冊の本を読んでいると、書かれている内容がよくわからずに先に進めないことがある。しかし、複数の本を同時に進めていれば、ある本でわからない部分があっても、ほかの本を読むことで解決することがある
2. ほぼ同じ内容が書かれている部分を一気に進められる。複数の本が溜まっているように見えても、重複している部分が多いため、見た目以上にスピーディに読み進められる。
再読の効能
再読を通じて自分の成長や価値観を再確認できる
読書術
1冊90分で読む時間制限読書法
集中して読書できる:読書の質が向上する。定めた時間内だけであれば周囲の誘惑から身を守りやすい。
人は与えられた時間をすべて使ってしまう傾向にあるので、あえて時間を制限すれば、その時間内でやるべきことを終わらせられる。
向いてる本:前提知識があったり、分かりやすい本
要約サイトやYoutubeの要約・書評の動画を取り入れるのもおすすめ
読書記録のすすめ
進捗を数値化できる
過去を振り返りやすい:過去の自分から成長できたことを実感できる
アウトプット
本の内容を誤って解釈していても気づかないという問題。つまりアウトプットしないと間違いに気づかない
コミュニティに参加する
会社の中では出会わなかったようなスキルを持ったエンジニアと接することで、モチベーションも高められるかも
LTに挑戦する
転職や独立を考えたときにも、コミュニティで得られたスキルや人脈が生きてくることもある。「情報は発信するところに集まる」といわれることがありますが、自分から情報を発信しないと、その人が何に興味を持っているのか伝わらないもの
資料の準備で、ある技術について話すには、その前段階としてほかの技術について説明しないといけない、ということに気づく。これを繰り返すと、自分がわかっていることであっても、ほかの人にとっては当たり前ではないことを認識できるようになる。発表するための資料を作ることで、自分の知識についての抜けや漏れに気づく。
受けた質問から学学べる
ブログに書く
発表資料作成と同様に、頭を整理できる
もうちょっと勉強しないと書けないとか思ってないで、とりあえずアウトプットする
https://gyazo.com/4aa18bb4f2aacbaf96968d702c8adcaf
わからないことそのものもアウトプットすることで、自分にわかっていない部分があるのを他人に気づいてもらえる
大事なのは、アウトプットばかりにならないこと。自分が知っている知識、これまでに学んだことには限りがあるので、アウトプットを続けていると出せるものがなくなってくる。インプットが枯渇すると、成長が止まってしまう。インプットとアウトプットの時間や内容について、常にバランスを意識する
発信するテーマの選び方
初心者の視点が大事
ここで大事なのは「自分の視点」
「自分はこう思う」、「自分ならこうする」という視点で発信することで、ほかの人とは異なる内容になる
世の中の多くの人は初心者なので、自分と同じように困っている人は少なくない。専門家が書いた記事だと前提のレベルが高すぎてわからない人もいるので、初心者で、つたない内容であっても、それが役に立つことがある
アウトプット方法の例
学習してから2週間経つと読んだことの10%、聞いたことの20%ほどしか覚えていないといわれている。それに対して、実際に自分でアウトプットすると定着率が格段に上がり、90%にまで向上する。技術書の読書であれば、主に技術の習得が目的であるため、アウトプットが非常に有効。
1. 人に説明やアドバイスをする
2. SNSやレビューで感想をのべる
3. 進捗や学びを発信する
学習した内容を自分なりに整理して、まとめた結果を公開する
フィードバックがもらえたり、交友関係が広がったり
4. 仕事や日常生活に生かす:仕事を効率化する等
5. 勉強会に参加する
良い刺激にもなる
たくさんアウトプットする
上達したければたくさんのインプットとアウトプットが必要