きっかけ
「CleanCoder」という書籍を少し読み返しています。
第6章に「練習」という章があり、そこで、あくまで著者のボブおじさんの意見ではありますが、プログラマにおいても練習が必要だという論が述べられています。また、「型」を学ぶ重要性についても記載されています。
プログラミングの型というのは、プログラミングの問題を解くためのキーボードやマウスの動きの練習である。実際に問題を解くわけではない。解き方はすでにわかっている。問題を解きながら身体の動きや意思決定の練習をするのである。
- 「Clean Coder (日本語訳版)」p.103ページより
「コーディングにおいてタイピングの練習をする」ということには私も始めは違和感を感じました。1
この点について議論はあるかと思いますが、一度脇においておきます。
練習サイト
一度キーボード (RealForce) を購入してタイピングにハマった時期があり、その時使っていたのは e-typing というサイトでした。ご存知の方も多いかと思います。
というわけで、e-typing を利用したのですが、コーディングをするのと日本語を入力するのでは勝手が違うなという違和感を感じました。
何か脳内の経路が違うといいますか、そんな感じです。
コードそのまま写経するサービスはないのかなと思い、ちょっとググって見つけたいいサイトが、 typing.io です。「PHP typing practice」って検索すると出てきました。
typing.io
以下のサイトにアクセスしてみてください。
https://typing.io/lesson/php/symfony/PhpEngine.php/1
PHPのフレームワークである、symfonyのソースコードを題材にタイピングを行うことができます。
UIもシンプルかつきれいで、特に操作に違和感は感じません。
結果表示
以下のように色付きでタイポ内容が表示されます。
こちらには課金が必要となりますが、タイポのヒートマップが表示されます。
任意のコードのアップロード
こちらも課金が必要となりますが、任意のコードをアップロードし、それを用いてタイピングを行うことができます。
以下のように、いくつか自分でタイピングゲームを作ってみました。
以下のデザインパターンのコードをお借りして、Iteratorパターンの実装を写経するタイピングを作成してみました。
デザインパターンを学習中ですが、どうもまだスッとは使えないなという感じです。
タイピングの題材としてデザインパターンを使い、頭と身体に馴染ませていく。割と悪くない案なんじゃないかなと個人的に考えています。
使ってみて
まだ今日の朝ちょっと試しただけですが、よさそうです。
あと、以下の気付きがありました。
タイピングミスは、自身の現在の集中力を測る指標としてよさそう
1時間弱ほどやったんですが、疲れてくると露骨にタイプミスが増えます。
そして、休憩して戻ってくると露骨にタイプミスが減りました。
一般に当てはまるものかわかりませんが、私において、タイピングミスの増加は集中力の乱れを測る指標として使えそうです。
別にタイピングゲームに限らず、業務中のコーディングにおいても同様に導入できそうな感じがします。
運用としては、単にタイピングミスが増えたら小休憩はさもうというそれだけなんですが。
社用端末と使用端末等、利用する端末が変わった際にこのタイピングサイトを利用するとよさそう
社用端末と私用端末は同じThinkpadを利用しているんですが、配置の位置が微妙に異なります。そのため、月曜日の朝等、使用する端末を変更する際などにしばらくタイプミスが多発するという問題がありました。
月曜の朝のそのタイミングで、typing.io 利用するのがよさそうです。キーボードに対する身体のキャリブレーションといいますか、そういう用途に用いることができる気がします。
おわり
typing.io よかったのでおすすめです。定額課金には慎重な方なんですが、これはすぐ課金してしまいました。
月額 $9.99 とそこそこしますが、それ以上の価値はあるんじゃないかなと思っています。
補足
typing.io でできないのが、IDE等エディタのショートカット利用の練習ですね。
現在 ペチピーストーム を使っています。当面の目的はタイプミスの撲滅なのでショートカット利用についてはいいかなと思ってるんですが、そのうち段階が進めばまた別のソリューションを探すことになるかもしれません。
-
書籍を読んで私は納得しました。この点について記載しようとする引用の範囲を超えて本文を掲載してしまう気がしますので、気になる方は実際に書籍を読んでみてください。 ↩