怒涛のAdvent Calender 月間!
この記事はactindi Advent Calendar 2018の20日目の記事です。
今日はタイトルのとおりですが、技術書をどう読むかということについて、自分流にまとめてみたいと思います。
はじめに
私はアクトインディに今年の11月からアルバイトとして働いています。実務としてのプログラミングが初めてということもあって、周りのみなさんに助けてもらったり教わったりしながら「いこーよ」の開発をしています。
前職までは本当に全くもってITとは無縁な生活をしていました。しかしふとしたきっかけでプログラミングがとにかくすごく面白いと知り、そこからもうどんどんハマって抜けられなくなっています笑 アルバイトも楽しいです!業務としてコード書いていいなんて幸せです!
なぜこの記事を書こうと思ったか
プログラミングは楽しいです。 しかし一方で「あれもこれもやりたい」とインプットしたいことがありすぎて手がつけられなくなったり、何かをやっているかと思ったら中途半端に次に進んだり、広く浅くなりがちだったりするという悪い傾向が私にはあります。
そんな私に先日とある方からこれからの向上の方向性についてアドバイスをいただきました。その1つが技術書の読み方で「目次や索引を見て”わからないな”というところを読んで、わからないところをなくしていく」というものでした。 そのアドバイスを頂いた時に、自分のそれまでのスタイルとも合致して「データベースみたいだなあ」と思いました!
なのでデータベースに例えてみます。
1.テーブルを作る
テーブルというのは「表」みたいなものです。(厳密にはちがうらしい)
技術書を読むときは主に2つのテーブルを意識してます!
技術以外のことで例をあげてみます! 例えば単語の意味でいうと『定義』と『理解度』という2つのテーブルを用意します。
定義テーブル
用語 | 意味 |
---|---|
ねこ | 狭義には食肉目ネコ科ネコ属に分類されるヨーロッパヤマネコが家畜化されたイエネコ(家猫、Felis silvestris catus)に対する通称。広義には、ヤマネコやネコ科動物全般 |
いぬ | ネコ目(食肉目)- イヌ科- イヌ属に分類される哺乳類の一種 |
とり |
理解度テーブル
わからぬ | チョットわかる | わかる |
---|---|---|
ねこ | ||
いぬ | ||
とり |
このように単語や考え方について、”なんとなくこんな感じ”ではなくて、辞書を作るように出会った用語や考え方などをリストできるテーブルが定義テーブルです。
理解度テーブルは、「どこかに当てはまるとしたらどれか」というのを明確にすることで"わからないわけではないが、完全に理解したとは言えないので、チョットわかるかな"等とすることができたりします。
これと同じようにして、最近はRubyの『メソッド』テーブルと『実装力』テーブルを作ってたりします。(ちょっと手間に見えるかも知れませんが、やってみると楽しいのでおすすめです!!)
”関連してるよね”とかあるけどデータベースそのものの話をしたいわけではないので割愛。
2.レコードを作る
レコードというのは、テーブルに入れるデータ、実際の中身のことです。 テーブルにどんどん出会った技術書の内容を追加していきます。
中身が多いほうがいいですね〜
でも技術書って難しい!
『プロを目指す人のためのRuby入門』の著者の伊藤さんが『 技術書、最初から完全に理解するか、頭の中にインデックスを作るか? 〜 #チェリー本 が後半から難しくなる問題を考える - give IT a try』という記事を今年の夏に書いて、「脳内インデックスを作ろう」とおっしゃって話題になったことがありました。
この記事以外に、私が学んでいるFjord Boot Campでも度々「たくさん技術書を読もう」「わからなくても読もう」というようなアドバイスを頂いていて、とにかく本を読むということは技術力を高める上で重要なんだということを教わりました。
私は読書自体はもともと好きで、来世では岩波書店の中の人になりたいと思ってるんですが、技術書については最初は「技術書は日本語と思えない」とかなり苦戦しました。(今もかな?笑)
それでも読んでいく、とにかくインデックスを作るのは大事です。 私の場合は、その手段のような感じで定義テーブルに知らない言葉わからない箇所を追加していくというのをやることもあります。
3.テーブルを更新する
「目次や索引を見て”わからないな”というところを読んで、わからないところをなくしていく」というアドバイスの通り「わからない」を「わかる」にしたり、「わかる」と思ってたけど「ちょっとわかる」・あやふやになったりしてもう一度見直すというのはよくあると思います。
そういう時にテーブルを見直して更新していくと思考がスッキリできるという効用もあります!
可視化はいいぞ!
「実際にやるのって手間だしだるい」というように思う方もいるかと思います。 「わざわざそんなことしなくてもできる」という方もいらっしゃると思います。
あくまでこれは私のやり方なので、私みたいな人、どうぞという話です。
でも1つおすすめできるポイントがあるとしたら 「可視化することで自分の状況が把握手でき、思考も整理させる」ということです。(一文なだけでおすすめポイントは2つあるじゃないかというツッコミは受け付けません。)
他にはプログラミングに限らず何かあたしい事を始めた人にはこういうのもいいのかなって思います。実際技術以外にも使っています。
おすすめはNotion
私Notion大好き人間なんですが、ここで書いたことをやるのに最適なのがNotionなのです!
機能に"databases"とあるように、テーブル作ることもレコードを作ることも更新することもぽんぽんぽんっとできます。
デスクトップもモバイル版もあるので、家でじっくりやることも移動中に操作することも可能。移動中に技術書を読んで家で表をぱーーーと書いて、次の移動中にはその表を眺めるというふうに私は使っています。
個人的に使うレベルなら無料。無料だけど人と共有することもできます。
技術書を読んで向上しよう
上記のような方法を使って、途中で手が止まりがちだったり、買ったまま積読になりがちな技術書を読むというのが私流のやりかたです。
まだまだですがこれからも技術書を読んで向上していこうと思います!