私は書店と図書館をまわることが当たり前なルーティーンです。
プロのエンジニア (Web プログラマ) である私が、なぜ「読書」をオススメするか、語ります。
※この記事は過去「技術書サイト」で特集として公開していた記事に加筆、修正したものです。
真面目な本は、、、ツラい
私は会社員時代に IT 業を通じ、たくさんのことを感じ、考えたものです。
その一つに「 みんなゼンゼン本は読まないんだなぁ 」ということです。
(職場の規模、人員やステージに大きく左右されるところです)
ある時、オフィス内に「この本はスゴいので、ぜひ買って読みましょう」というアナウンスが流れたところ、想像以上に反発があって驚いたということがありました。
(なぜ、自腹で本なんか買わないといけないんですか ! 的な)
確かに、真面目な本面白くありません。
特にプログラミング系の専門書はなおさです。
高価で分厚くて文字が多いプログラミングの技術書を読み進めるためには、たえず自分を鼓舞しなければなりません。
技術書より、マンガや小説を読む方が気楽です。
さらにはゲームをしたり飲みに行ったりする方が、ずっと楽しい時間を過ごすことができるのは間違いありません。
それなのになぜ、わざわざお金を払ってそんなに辛い思いをしなければならないのでしょうか。
多くのビジネスパーソンは準備不足
レバレッジシリーズ
の著者である本田直之さんは著作のなかで、アスリートとビジネスマンを比較し「 日本のビジネスパーソンは仕事に対する準備時間が圧倒的に少ない 」と指摘していました。
全く練習せずに試合に臨むアスリートはいませんよね?
ぶっつけ本番 など通用しないシビアな世界で能力を競い合っている彼らは、試合に勝つため、結果を残すために膨大な時間を練習にあてています。
これをビジネスに置き換えてみるとどうなるでしょうか。
ビジネスは 毎日が常に本番 であり、トラブルの連続ですが、十分な練習を行なった上でこの本番に臨んでいるビジネスパーソンはどれくらいいらっしゃるでしょうか。
私が実感していることは、仕事上で確実に成果を上げられるようになるためには、まず自身の能力アップが必須 であるということです。
自身が知見を蓄えスキルアップすれば、成果物の品質が上がり、あなたの評判は上がり、ビジネスの貢献へとつながります。
注目すべきは優れたスキルを持つ人には良いフィードバックが集まり、それが良いループを生むことです。
逆に、手を動かさずに「今のこの状況」の原因を周囲に転嫁するならば、時間に追われ、成果物の品質は下がり、プロジェクト崩壊へとまっしぐらです。
プロジェクトの状況が悪くなってしまう場合、メンバーの知識不足、スキル不足が後ろに隠れていることは少なくありません。
(これは自戒も込めて言っています。もちろん)
繰り返しますが、スキルアップが先 というのは絶対的な真理です。
少なくとも私はそう考えます。
深く、効率的に学ぶ
Java
での開発経験が皆無の状態でSpring Framework
を使ったプロジェクトに参加することになった場合、あなたはどうするでしょうか。
いきなり Spring をダウンロードして闇雲に手を動かすよりも、知っている人に教えてもらったほうが効率的がよいというのは自明です。
Spring が得意な先輩にノウハウを教えてもらうことができれば良いですが、そのような人が身近にいるとは限りませんから、ネットを調べるか書籍を購入するというのも選択肢として外せませんね。
技術書を読む理由の一つはは 深く、効率よく知識を習得するため です。
身近な人に聞くのも、ネットを調べるのも有効ですが、それでも技術書を手にした方が良い理由は次のような点が挙げられます。
- 情報が精査されているため、質が高い
- 基本から応用までカバーしており範囲が広い
- 技術の背景を説明しており、「なぜこうなっているのか」というコンテクストが把握できる
- 自分のタイミングで読み進めることができる
筆者が膨大な時間をかけて得た知識やテクニックをほんの数千円で手にすることができるなんて本当に素晴らしいことで、技術書は もっともコストパフォーマンスに優れた学習手段 といえます。
「業務に関わる知識を得るためならば何もお金を払って技術書を購入しなくても、ネットで調べれば十分ではないですか」という疑問は当然あると思います。
確かに、最近はネットで得られる情報は膨大になりました。
またフロントエンド関連に顕著ですが、ものすごい勢いで成長しているソフトウェアについては、バグの対処情報がネット上にしかないということが多々あります。
しかしながら、ネットの有用性はその情報の鮮度であると私は考えます。
「今使っている最新 stable の特定のバグの解決方法」を求めるにはネットが有効ですが、このような特定の問題のみを扱っている情報はあっという間に情報が古くなってしまいます。
(そのため、日付やバージョンを明記していない情報は価値がないどころか、害になります。)
書籍化されている情報は「その時の情報」を切り取ったものという点は同じですが、情報をむやみやたらに垂れ流すのではなく編集を経ており質の高さの点大きく相違があります。
serihiro さんがブログ記事で「 いわば綺麗に編纂され直された歴史書 」と表現しておられましたが、まさにその通りです。
seri::diary
術書を読む意味について考えること
http://serihiro.hatenablog.com/entry/2016/12/24/111448
私は、わたしはネットの情報と技術書の情報とでは「専門学校と大学に行くような違い」があると感じています。
具体的には次です。
- 「特定の技術を習得する」専門学校的学習
- 「今は役に立たないかもしれないけれども相互的に深く広く技術を勉強する」大学的学習
こういったところから「特定の要件に対応するためにピンポイントで対応する」ことしかできないエンジニアと「問題を根本解決するためにゼロから作り直すことも厭わない」姿勢を持つエンジニア、という差が生まれてくるのではないでしょうか。
だから、本を読め!!
ときどき「業務時間外で勉強をする必要はあるのか」という愚痴を聞くことがありますが、こういった発想にとらわれてしまうことは不毛であると感じます。
これまで述べてきた通り、自分が向上心を持ってスキルアップに取り組んでいけばそれは自分に返ってきます。
これを平たくいうと、結局のところ 自分がトクできる のです。
難しい本を読み進めるには、時に苦痛を伴うこともあるでしょう。
しかしながら先憂後楽で、近い将来に何らかの形で成果があるのならば「今ちょっとぐらい頑張ってもいいんじゃない ? 」のというのが私のスタンスです。
やれば、何かしらの成長を感じられる。
成長して難しいタスクを効率的になすことができるようになれば、 スキルアップそのものが喜び となります。
仕事の効率が上がり、成果が上がりNo残業
を実践していけば、それは働きながらにして自分の時間を取り戻していくことです。
そうやって作り出した時間を有効活用できると思うと、ワクワクしませんか。
そうして取り戻した時間を有効に活用して、新しい本を読んだり、自分のプログラムを楽しんだり、良いループが回っていくようになりますよ。
なんて素晴らしいんでしょう。
本を開いて「うわっ、難しい」と感じるのは明らかにレベルが合っていません。
樺沢 紫苑 氏の「読んだら忘れない読書術」には「 明らかにレベルがあっていないのに、一冊で済ませようとするために難易度の高い本に手を出して挫折する人が多い 」というお話がありました。
「レベルが合う本からステップアップする」ことは当たり前のようで、実践できている方が少ないのですね。
書籍を読むことは、思考の幅を広げます。
そして思考に幅が広がると、漠然とした思考を言語化することが容易になります。
プログラムは、実は 言語能力がものすごく重要 です。
プログラムとは「抽象化と具象化」の繰り返しで、抽象化するには多くの概念を獲得済みであることが重要だからです。
プログラマこそたくさんの本を読み、多くの概念を知り、表現力を増すことが強みになると考えております。
そして、藤原先生がおっしゃるように「たくさんの本を読むことは、適切な人生設計をする力になる」のです。