学び続けるという責任
業種や課題解決の対象物によって異なりますが、多くのソフトウェアエンジニアをはじめとするホワイトカラー職の仕事は、既知のことだけで解決できることは少なく、常に新しい取り組みが求められるものだと思います。
つまり、新しいことを学習し、経験し、スキルとして定着させ、コンフォートゾーンを広げることが求められます。
勉強や読書は苦手
私は子どものころから勉強は得意でもなかったし、読書は嫌いでした。そして今も苦手です。
面倒だな、という気持ちがたくさんあります。
そして、勉強や読書を無理に好きになる必要はないと思っています。
ただ、必要性を理解し、実際にやっていかなければなりません。
達人プログラマーから2つの指標
『達人プログラマー 熟達に向けたあなたの旅』の中に、下記の記載があります。
- 毎年少なくとも言語を1つ学習
- 月に1冊のペースで技術書を読む
“毎年少なくとも言語を1つ学習” というのは素直にプログラム言語と捉えると少しハードルが高いように感じており、これはKubernetesのようなツールやNext.jsのようなフレームワークも含めて捉えています。これであれば無理がない指標です。
“月に1冊のペースで技術書を読む” はそれほど難易度が高くなく、基準としてわかりやすい指針のため、自社のエンジニア組織の価値観としても導入しています。
社会人向けの研修、特に高度な技術情報系のものは数十から数百万単位で費用がかかることも珍しくありません。1
専門書は高額とはいえ、一冊辺りおよそ5,000円程度と、情報量と費用のコストパフォーマンス、学習効率が高い選択肢です。
まずはなるべく本を読むべきだと考えています。
しかし、読書嫌いとして生きてきた身としては、やはり面倒です。
どのように立ち向かうべきでしょうか。
自分の中でルールを決める
会社のお金で買った本
会社の経費として購入することを決めた本は、自分のお金でない分 “無駄にしてはならない” という読まざるを得ない強制力を働かせることができます。
このため、「自分には合わなかったかも」とか、「難解すぎてまだ早かったかも」と思っても、会社のお金で買った本はひとまず一通り読むようにしています。
このルールは重い腰を上げるときには有用です。
すべての本が、興味関心を呼び起こし、ストレスなく読めるものとは限りません。
ものによっては全く興味が持てず、既存知識と重なる部分が少なくて理解に時間がかかり苦痛を伴う場合や、期待と違って価値をすぐに感じられない内容のときもあります。
例えば、『アジャイルサムライ』などはとても読みやすく、まとまった時間があれば一日で読めるでしょう。
一方で、『エリック・エヴァンスのドメイン駆動設計』や『システムズエンジニアリングハンドブック』などは内容が重厚で、何らかの強制力がなければ音を上げてしまいそうです。
でも読み切れました。会社のお金で買ったものだからです。
自分で買った本は積読も許容する
私はACM(Association for Computing Machinery)経由でO'Reilly Online Learningを利用していますが、日本語の技術書に限定しても数百冊読める積読の状態とも言えます。
これを読まなければならないリストと捉えると気持ちが参ってしまうので、自分の買った本やサブスクはもう少し気楽に考えています。
O'Reilly Online Learningの中ではそのときに気になった部分や必要になった部分をかいつまんで読んだり、自分の知識レベルから早すぎると感じたときには気軽に離脱する方針としています。
業務外の時間はベストコンディションでないことを受け入れる
プライベートの中で集中できる時間をまとめて確保するのは難しいことがあります。
特に小さい子どもがいる環境では時間は断片的であり、時間が確保できても望んだコンディションとは程遠いことが普通です。
優雅な時間を前提にすると、その時間を創り出せずにストレスは溜まる一方です。
粗末な時間を受け入れて、業務時間では許されないようなリラックスした状況、たとえば寝転がりながらや、飲酒のあとなど、集中できない環境でも本を開くようにしています。
20代のころはなるべく毎日プライベートでもコードを書くことを意識しており、よく飲酒しながら適当なプログラムを書いてみたりしたものです。プライベートの時間であれば、それくらいの雑さを許容したほうが生きやすいように思います。2
ときにはAudibleも
オーディオブックサービスは聞き逃しがあったり、前後のページを移動しながら理解したりができないため、これまで敬遠していました。
しかし、前述のとおり “ベストコンディションでないことを受け入れる” とすると、たまたま聞いていた内容、たまたま聞き逃したもの、寝落ちなど、のあらゆることを受け入れられる前提で書籍を選ぶのも手です。
図が多く入ったものや、プログラムコードの記載があるような技術書全般にオーディオブックは不向きですが、一連の物語のような本であれば、通勤中や就寝前の時間を有効利用できます。
例えば、『サピエンス全史』でおなじみユヴァル・ノア・ハラリの『NEXUS 情報の人類史』は気にはなっていたもののページ数が多く、読む時間を捻出できないと敬遠していましたが、Audibleによって移動時間と就寝前の時間で上下巻ともに消化できました。(上下巻でなんと合計23時間超えの音声データです。)
途中で寝落ちしたり、他の考え事をしていたり、周りが騒がしくて聞こえなかったりする場面もありましたが、ふんわりと情報を取り込むことで、「そういえば、NEXUSの中でもそういう話あったな」とか自分の知識の引き出しが少し広がりました。3
有名な自己啓発系の本も多くがAudibleのラインナップに含まれており、このような本もオーディオブックサービスとして相性が良いでしょう。(私はこの手の本が苦手で途中で離脱してしまいますが。)
『具体と抽象』はAudibleから入りましたが、とても良い内容だったので、Kindle版も購入しました。このような出会いのきっかけにもなります。
YouTubeでもOK
動画をみて学習というのは、自分の気持ちのよいテンポで進められず、テキスト検索して必要な部分だけをピックアップしづらいなどデメリットが多いと考えていましたが、プライベートの断片的な時間での学習や、疲れたときの息抜き、いろいろな角度から理解できるという点では優れていると感じるようになりました。
ドメイン駆動設計を学ぶときに『エリック・エヴァンスのドメイン駆動設計』の合間にみた『10分でわかるDDD/アジャイル』にはとても助けられましたし、高校数学を学び直す中で、『とある男が授業をしてみた』の解説は本にはない動画ならではのわかりやすさがあります。
感想文やメモを残す
会社のお金で買った本は必ず、自費で購入した本やO'Reilly Online Learningを用いて読んだ本もなるべく感想やメモを社内wikiに少しでも残すようにしています。
他の人が読むときの判断材料や自分の頭の中の整理のためなので、イマイチだったらその旨を書いたり、参考になった部分や重要と思ったところを書き出したりしています。
一般公開できるような文章として感想文が書ける場合はQiitaやZennで記事として公開します。
感想文やメモを残すという中間成果物を意識することで、内容理解が進みます。
習慣をつくる
下記の記事でも書きましたが、モチベーション・やる気という不安定なものに頼っても解決しません。「やる気が出ないのです。」という言葉や悩みを聞くことがありますが、やる気は別になくても良いと思っています。
ただ、 やる必要があるものは、やる必要がある。
仕組みや習慣をつくる。適度なストレスと強制力をあえてつくる。完璧主義になって0点と100点の二者択一にしない。ゆっくりでも良いので前に進む。
このあたりが重要なのではないでしょうか。

