「和訳写経」で英文ドキュメントを制覇する

# はじめに

最新の技術を用いたプログラミングをする上で、英語のドキュメントやリファレンスを読むことは欠かせない。
しかしながら、新たに学習する技術の英語ドキュメントをすらすら読むというのはなかなかの難事である。

英文ドキュメントで技術学習をするのが難しい理由として、

* 読み慣れない英語を日本語に訳す
* 馴染みの薄い技術的概念を理解する

という2つの知的作業が同時進行し、頭脳への処理負荷が高すぎるためと考えられる。

そんなときに英文ドキュメントを読みこなすメソッドとして僕が使っている「和訳写経」を提案したい。
これにより

* 上記2つの知的作業を同時並行でなく逐次処理に置き換えることができる。
* 英語の勉強になる。
* 学習しようとしている技術の理解も促進される。
* 和訳したノートが後々参照できる資産になる

というメリットが享受できる。

# 「和訳写経」とは

技術書の「写経」と言えば、みなさんご存知だろう。
技術書のサンプルコードをそのままエディタで打ち込んで、実際に動かしてみることである。
これにより、読むだけの場合と比べて理解が数段促進されることで知られている。

和訳写経では、上記のような「写経」の対象をサンプルコードだけでなくドキュメントの本文にも拡大する。
さらに、原文が英語であるので、英語を日本語に訳しながら写経していく。
英文ドキュメントをまず日本語に訳してしまうと、上記の2つの知的作業のうちの1つがクリアされる。
そうすれば、あとは「馴染みの薄い技術的概念を理解する」方に専念できる。

## 「翻訳」ではなく「和訳」

ここであえて、「翻訳」と言わずに「和訳」という言葉を用いている理由を説明させていただきたい。

「翻訳」というと、元の英文を十分に理解した上で、他人に読ませることを前提として日本語訳文を作成する、というイメージがある。
一方で、ここで僕がいう「和訳」とは、他人に読ませることはとくに意図せず、自分が理解できるように英語を日本語に置き換えるだけ、というイメージである。

つまり、「翻訳」は「和訳」よりずっと難しいのである。
そしてここでは、自分がドキュメントの内容を理解することが目的であるから、「和訳」で十分なのである。
「翻訳」までしようとするとコストが高すぎるし、ハードルも上がるので、「和訳」でとどめることがポイントである。


# 「和訳写経」の方法

## 準備

まず、学びたい技術の英語ドキュメントを準備する。今ならばたいていはブラウザで表示できるWebページとなるだろう。
例えば、今の僕ならばiOSアプリで地図を表示する方法をマスターしたいので、MKMapViewのリファレンスのページを用いる。
https://developer.apple.com/documentation/mapkit/mkmapview

次に、和訳文を打つためのエディタを用意する。普段使いのエディタでも良いと思うが、僕のおすすめはEVERNOTEである。
EVERNOTEを使うメリットとして以下が挙げられる。

* 和訳したテキストをいつでもどこでも参照できる。
* 元のドキュメントへのハイパーリンクを張れる。
* 和訳したテキスト同士もEVERNOTEのノート間リンクで関連付けしておける。

つまり、和訳したテキストを資産化しやすいのである。



ドキュメント、エディタの2つが準備できたら、その2つのウィンドウを1画面に並べて表示する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/122210/1fa37f96-911b-63b7-63e6-6fcc63b3c5d0.png)

### 一画面に2つのウィンドウを並べる方法

#### Mac

Mac OSのEl Capitan以降であれば、以下の方法でスプリットウィンドウにより、2つのウィンドウを一画面にきれいに並べられる（[こちら](https://support.apple.com/ja-jp/HT204948)を参照）。

1. 1つ目のウィンドウ（ドキュメントのウィンドウ）の左上隅の全画面化ボタンを長押しする。
1. ウィンドウの配置場所が色付けされるので、ボタンを離す。
2. ウィンドウ一覧が表示されるので、もう一つのウィンドウとしてエディタのウィンドウを選択する。

以上の手順で、上のスクリーンショットのようにウィンドウを並べることができる。

#### Windows

Windowsの場合は以下の手順でできる（[こちら](http://faq.epsondirect.co.jp/faq/edc/app/servlet/relatedqa?QID=029074)を参照）。

1. 1つ目のウィンドウ（ドキュメントを表示）をアクティブにした状態でウィンドウズキー+左キーを押す。
2. すると、そのウィンドウが画面左半分に張り付き、もう一つのウィンドウをリストから選択する状態になる。
3. もう一つのウィンドウとして、エディタのウィンドウを選択する。するとエディタのウィンドウが画面右半分に配置される。


## 実践

準備ができたら、あとはひたすらドキュメントの文章を頭から和訳して、エディタの方に訳文を書いていけば良い。
わからない単語はググれば大体のものは意味が出てくる。
こうして一文ずつ訳しているうちに、だんだんと慣れてきて、ドキュメントの意味も理解できるようになってくる。
関数のシグネチャとか、サンプルコードももちろん写経する。写経したコードが（そのままでは実行できないスニペットではなく）実行可能なものであれば、実際に動かしてみても良い。手を動かすことで、漫然と読むだけの場合と比べて格段に理解が深まる。

同じようなシグネチャの関数が続いたり、もう十分理解して読み飛ばしたいな、と思うような文が出てきたときは、適当に要約した内容をエディタの方に書いて飛ばしてしまって良い。
今の自分には全く関心がないな、という節があれば、そこも飛ばしてしまって良い。

そうこうしているうちに、分量が多くて難しいと思っていた英文ドキュメントも、相当に読みこなすことができる。
また、馴染みの薄かった概念や用語、クラス名や関数名もすっかり頭に入る。

## 事例と効果

僕は以前、仕事で[OpenLayers4](https://openlayers.org/)を使う必要があった。
OpenLayersを使うのはほとんど初めてだった。古いバージョンの情報は日本語でもあったが、バージョン4の情報はほぼ英文の公式ドキュメントしかない、という状況だった。
そこで、[Quick Start](https://openlayers.org/en/latest/doc/quickstart.html)の内容を和訳し、サンプルコードを実際に動かしてみた。サンプルコードに登場するクラス（[ol.source.OSM](https://openlayers.org/en/latest/apidoc/ol.source.OSM.html)とか、[ol.Map](https://openlayers.org/en/latest/apidoc/ol.Map.html)などなど）のリファレンスも逐一和訳していった。
1つのWebページに対してEVERNOTEのノート1つを作っていった。結果的に作ったノートの数は21個になった。

これにより、OpenLayersが持っているsourceやlayer、vector、featureなどの概念がおおよそ掴めて、OpenLayersを使ったコードを自由に記述できるようになった。
あれ、このクラスどう使うんだっけ、と思った時も、過去に和訳したノートを検索で見つけて読めばすぐに思い出せる。
「僕はOpenLayersが理解できている」という自信とともにコードが書ける。これは精神衛生上とても良いことであるし、なにより楽しい。
それを可能とするのが、「和訳写経」である。

# まとめ

* 知らない技術をいきなり英文ドキュメントで理解するのは難しい。
* 「和訳写経」により、ドキュメントの和訳文をエディタに逐一書いていくことで、「和訳」と「技術的理解」のタスクを分割できる。
* 手を動かすことによる「写経」効果も得られて、技術の理解が深まる。
* 「和訳」をするので英語力もアップする。
* 和訳したテキストは資産となる。

読みたいけどなかなか読み進められない、という英文ドキュメントのある方は是非一度試してみいただきたい。
効果があった、なかったなどの感想や、改善案などもいただけると幸甚である。