アラサーからのプログラマー生活

アラサーの新米PGが必死に頑張る成長記録です。あとは旅行とか。

1冊の参考書を読み終える予想時間を"早い段階で"算出したい

f:id:hollage0214:20190322002106p:plain:w600
こんばんは、堀井です。

この前の記事で基本情報技術者試験のための参考書を買いました。

以前会社から借りていた本と合わせて4回ほど読み切ったところ、午前試験は約70%の正答率を出せるようになりました。

合格ラインが60点なので、午前に関してはひとまず合格ラインに達していると言って良いでしょう。

午後の正答率は60%前後なので、もうあと何度か過去問題を解いておけば一発合格できるのではないでしょうか?

さてそんな参考書ですが、買ったばかりの参考書ってどれだけ時間をかければ読み切れるか心配になることはありませんか?

私はあります。

例えばこんな条件。

  • 目次や後付けを除いて300ページある
  • この本は全部で9章ある
  • 1章は30ページあって、まあまあ難しかったため30分掛かった

と言った場合に「全部読み終えるにはどれくらいかかるか?」を予想できるツールが欲しいなと思いました。

まず、入力欄として

  • 合計ページ数
  • 1章のページ数
  • 1章を読むのに費やした時間

は必要ですよね。

これらを使うと、

( 合計ページ数 / 1章のページ数 ) * 1章に費やした時間 = 読了予想時間

にはなりますが、これではあまりにもつまらないし実際問題現実的ではありません

ということで考えてみました。



より確実性を高くするためには?

当たり前の話ではあるんですが、第1章って導入になることもあるし凄い簡単に書かれていますよね。

ですので(同じページ数として)、第1章が5分で読めても第2章が30分かかることはよくある話です。

もっと言うと、ページ数が進むにつれて内容は難しくなる傾向にありますよね。

章によっては簡単な部分もありますが、難しさ係数を付与する必要があるかなと思います。


難しさ係数とは

「この難しさ係数って一体なんだろうか」ということですが、先に挙げたように1章に5分かかっても2章に30分かかることがあります。

これを算出するために必要な情報は何かというと

  • 1章の体感難易度
  • 2章以降の想像難易度

ではないかと考えています。

一例を挙げると(数値は適当ですが)、

1章:かんたん
2章以降:むずかしい
難しさ係数:1.35


1章:ふつう
2章以降:ふつう
難しさ係数:1.10


1章:むずかしい
2章以降:むずかしい
難しさ係数:1.20

と言った具合に、2章以降の難易度によって読了までの時間は伸びるはずです。

残念ながら(?)、難易度が 1章 > 2章以降 になる本を私は見たことがありません*1

ですので、その場合は係数を1.00にするかエラーとすると良いのではないでしょうかと考えています。

もちろん難易度は5段階で表しても構わないでしょう。


あると便利な機能も追加したいね

この難しさ係数を最初の式に加えるだけでそれっぽいツールは作れると思いますが、折角なのでユーザビリティの高いものを作りたいですね。

例えば「1日当たりの平均読書時間」情報を付与することで、何日前から読み始めなければいけないかの目安を逆算することができます。

また、出力結果として「読了目安日数」もあると便利かもしれません。

f:id:hollage0214:20190322002746p:plain
完成予想図としてはこんな感じでしょうか。

どちらかと言えばWeb系で使える気がします、JavaScriptとか。


参考書を読むときのライフハック

f:id:hollage0214:20190322002124p:plain:w600

これは普通に良質なライフハックだと思うのですが、参考書って大抵練習問題が載っていますよね?

当たり前の話ではあるのですが、章末に書かれていて「この章で学んだことをテストしてみよう!」というものばかりです。

これって「さっき見たから答えられるよ」と言って正解することはできますが、後日同じ問題をやったら忘れてることが多いです。

なので繰り返し読むわけですが。

それもいいのですが、本を逆から読んでみてはいかがでしょうか??

そうすると最初に問題が出てきて、後から解説を見る形に変わります。


つまり、


参考書から問題集へと早変わりします。



1度で2度美味しい読み方です。皆さんも試してみてくださいね(テンプレ)。

それではまた次回。

*1:小説や論文では出ることもあるかと思いますが、今回は参考書の話です