地味に忙しくなり、すっかり更新が滞ってしまったブログですが、英検の結果とTOEICの結果が出そろったのでアップします。
英検1級一次得点推移(2016年からは換算値)
| 2014/1 | 2014/2 | 2014/3 | 2015/1 | 2016/1 | 2016/2 |
語彙・熟語 | 11 | 10 | 11 | 11 | 14 | 15 |
読 解 | 13 | 15 | 10 | 10 | 19 | 15 |
リスニング | 18 | 19 | 18 | 17 | 21 | 17 |
作 文 | 4 | 13 | 16 | 16 | 23 | 20 |
合計 | 48 | 57 | 55 | 54 | 77,2014(CSE) | 67,1940(CSE) |
TOEICの成績推移(213回まで)
| 190 | 191 | 192 | 193 | 194 | 195 | 196 | 198 | 199 | 200 | 201 | 202 |
L | 445 | 395 | 420 | 360 | 405 | 415 | 395 | 445 | 420 | 430 | 400 | 425 |
R | 390 | 370 | 385 | 340 | 370 | 410 | 380 | 350 | 435 | 390 | 375 | 335 |
T | 835 | 765 | 805 | 700 | 775 | 825 | 775 | 795 | 855 | 820 | 775 | 760 |
| 210 | 211 | 213 |
L | 440 | 440 | 445 |
R | 395 | 425 | 370 |
T | 835 | 865 | 815 |
英検の結果は、前回から成績が下がった。TOEICの方も一度Aランク(865)と取った後に815と点数が下がった。留学直後からどうしても点数が下がってしますのは致し方ないところか。ただ、試験の勉強したり、実際にガイド業務をやってて思うのだが以前より理解力は上がっている実感はある。このあたりは点数では測れないものがあるようだ。もっとも日本語の理解力を100%としたら英語での会話は70-80%ぐらいの理解力でもう少しアップさせたいという気持ちもある。
ちなみに英検の方はリスニングの点が下がり、TOEICの方はリーディングが下がったが、これは持久力が落ちたからのようだ。確かに四六時中英語を使う訳ではないので持久力は落ちるかと思われる。そういえばTOEICのリーディングですが、211回は残り2問で、213回は残り8問だった。
とだらだらと書いたが次回の英検は合格するように頑張りたい。少なくとも点数が下がることは避けたい。
さて、そんなこんなでネットを見ていたら、以下の記事が目についた。
「いつまでも英語や資格の勉強が終わらない人」に共通する残念な考え方
前に私のブログでもリンクさせていただきましたが、いわゆる伝説のプログラマーの記事である。
あなたのやるべきことは英語を勉強することではありません。英語を使って何かをすることです。
実際に英語を勉強している者にしてみればモチベーションを落としかねないコメントですが、私と同様にモチベーションを落としそうになった人に向けて経験談を含めて少し反論しましょう。
多くの日本人にとって英語の習得は時間がかかります。私もそうですがほとんどの日本人は英語に向いていないし英語を使わなくても生きていけました。が、私が英語を勉強していなくてこの記事にあるようにいきなり英語で何かをやろうとしても恐らくダメだったでしょう。例えば英語を勉強しだして最初の方は、たった10分間、英語を読んだだけで体が拒否反応起こしました。とてもじゃないが英語を使って何かをする以前のレベルの人もいるということです。仕事で使えるようになるまでに10年以上かかりました。その間、俺は何をやっているのだ、とう感覚にとらわれながら、一向に上達しないで、ひたすら勉強を続けていき、気が付いたら少しは使えるようになってきたのです。ただ、気を抜くと、このブログでもあるとおり、レベルが下がったりする訳です。なので英語の勉強は恐らく一生することになるでしょう。
まぁ要するに、小学生に『あなたのやるべきことは国語を勉強することではありません。国語を使って何かをすることです。』と言えば、『能書きはいいから』となるでしょう。
英語に関してのアドバイスで何時も思うのですが、通り一遍の話ではなく相手のレベルや状況を鑑みてアドバイスしましょう。
ちなみに、ものすごく気になるのですが、コメント主さんですがプログラミングの勉強もしたことがないそうです。私は独学ですが学生時代にそれそこ四六時中プログラミングの勉強をしていました。特に大学に入ってからはバイト代を本を買うのにつぎ込みましたが、その経験がその後とても役にたったのですが『勉強をしたことがない』というとどうしても技術者として不完全なものを感じてしまうのですが、まぁ、世の中にはそういう技術者もいるんだと感心しました。いや、アセンブラのニーモニックから始まって、ソートとか検索というアルゴリズムの基本はどうやって身に着けたのか気になるところです。
留学が終わって、各種英語のテストを一通り受験してみました。
結果ですが受験した順番で、TOEIC-SWがS:120 W:140、TOEICは835、英検1級の方は不合格でした。
思い起こすと、2年で英検1級を合格するという目標を立てましたが残念ながら未達成でした。ただ、得点が一次:2014点で合格点が一次:2028点ですので、後14点ということで、このまま精進すれば次回は合格するかと思われます。
TOEIC-SWとTOEICの結果がちょうど2年前と同じで、『わざわざ留学してこれか?』と思い愕然としました。普段ならあまりこういうことで崩れるメンタルではないのですが、さらに英検1級の学校で行ったテストのライティングの点数が低く、さすがにモチベーションを保つことができなくなり最後の頑張りが出来なかったです。もっとも、調子が良ければよかったで勉強しなくなるから実力どおりと言えばそうなのかもしれないが。
ただ、TOEICとTOEIC-SWの点数が低いのはさすがに、勉強していかなかったからのようで、TOEICに関しては今月も受験しましたが、先月よりも出来は良かったです。TOEICですが英検の前後であと1,2回受験したいともいます。
TOEIC-SWの方は、何をすればよいのか今一つ良く解らない感じで料金も高いので、気が向けば年1回のペースで受験しようかとおもとります。
ちなみに、通訳案内士の登録も終わりガイドデビューもしましたが、やはり実践に勝る経験はないようで、仕事となるとやる気が格段に違ってきました。のでガイドの仕事を続けて行けば英語力の維持は可能だと思います。
(1)英検
今年の1回目からシステムが変わりCSEというスコアで結果が出るようになった。これにより合格・不合格という尺度ではなくTOEICのようにスコアで比較が出来るようになったようです。つまり理論的には、英検準1級と1級を同時に受験すれば同じスコアが出るということらしいです。ということでいつか英検準1級と1級をダブル受験しようかと思います。CSEですが満点が4000点ですが、英検1級で取得できる最高得点は3400点らしいです。
とまぁ、英検の回し者のようにCSEの説明をしていますが、ただ個人的には前の方が良かったという思いが拭えません。例えばTOEICの場合、問題の中には簡単なものもあれば難しいものもあり、それにより得点を10から990へとスケーリングが可能かと思いますが、英検の場合、問題の難易度は1級のモノに集中しておりその難易度から外れたスコアの正しさが今一つ解りません。また自分の過去の得点の推移を見て感じたことは、学習時間と得点が比例関係になく同じような点数をずっと続けるた後にぽっと点数が上がるという感じになるので細かく点数を出されても学習者にとってはどうだろうという印象もあります。
もっとも単に1級合格といってもギリギリで合格の人と余裕で合格の人とはやはり英語力には差が出てくるでしょうから評価する人にとっては使いやすいかもしれません。
という訳で、ここでは一次試験の結果を従来の得点ベースで換算して出します。換算方法ですが作文以外は正確に出せるのですが、作文については満点が変わった(28→32)ので比較の為に従来の点に換算(0.875を掛けて四捨五入)しています。
英検1級一次得点推移(2016年からは換算値)
| 2014/1 | 2014/2 | 2014/3 | 2015/1 | 2016/1 |
語彙・熟語 | 11 | 10 | 11 | 11 | 14 |
読 解 | 13 | 15 | 10 | 10 | 19 |
リスニング | 18 | 19 | 18 | 17 | 21 |
作 文 | 4 | 13 | 16 | 16 | 23 |
合計 | 48 | 57 | 55 | 54 | 77,2014(CSE) |
全体的に1年前と比べて得点は上がっています。作文が高め(得点率81%、
合格者の平均点と同じ)でリスニングが低め(得点率55%、
受験者の平均以下)です。リーディング(語彙・読解)は若干低い(得点率63%、
受験者の平均)になります。リスニングが低いのは単純に疲れが出たからだと思われます。主にPart2の得点が低いのですが(10問中3問正解)完全に休んでいました。Part1が10問中6問正解で、Part3が5問中4問正解、Part4が2問中2問正解ということでリスニング対策というより持久力をつける方向で精進したいと思います。具体的には英語のドラマを見たりとかになります。
作文については評価が難しいです。というのも英検の予備校での模試の点数はあまり高くなく10点とかでしたが本番では26点でした。作文は前回から評価方法が変わったらしく以下のとおり詳細が出ているのですが、
内容:7点
構成:8点
語彙:6点
文法:5点
(それぞれ満点が8点)となっています。構成の点が高いような気がしますがその他はこんなもんだろうとも思います。
実はエッセイは留学中に何回か書いており結果もそう悪くなかったので模試で10点というので『やっぱり英検の1級は違うのか?』とも思ったでのですがどうも文章の評価は主観が入るので模試の採点者と合わないということでもう予備校にはいかないでおこうかと思ってます。一応本場でそれなりに勉強してきましたからそれを信じることにします。もっとも勉強自体は続けた方がいいので代わりとどうするかは思案のしどころではあります。が、日ごろから積極的に英語を使っていけば大丈夫かなとも思ってます。
(2) TOEIC
TOEICもちょうど、210回目から試験のシステムが変わりました。リスニングのPartIが少なくなり、PartIIIとPartIVで図が入ってきたり、『この発言の意図はなにか?』的な問題が出たりしました。リーディングでは文章が3つ出くる問題が追加されました。個人的には変わった後の方が解きやすい気がします。
TOEICの成績推移(210回まで)
| 190 | 191 | 192 | 193 | 194 | 195 | 196 | 198 | 199 | 200 | 201 | 202 | 210 |
L | 445 | 395 | 420 | 360 | 405 | 415 | 395 | 445 | 420 | 430 | 400 | 425 | 440 |
R | 390 | 370 | 385 | 340 | 370 | 410 | 380 | 350 | 435 | 390 | 375 | 335 | 395 |
T | 835 | 765 | 805 | 700 | 775 | 825 | 775 | 795 | 855 | 820 | 775 | 760 | 835 |
210回の結果と190回(2年前)の結果が同じで、『留学の結果がこれか?』と一瞬、眩暈を覚えたのですが、2年前は比較的必死で勉強したのに対して今回はまったく準備をしなかったのでそれにしては良くできた方かもしれないと思いなおすことにした。アビリティーメジャーを見ると『フレーズや文から話しての目的や暗示されている意味が理解できる』というのが追加になり、それの得点が悪いです(得点率50%)。確かにいきなり『どういう意図でこれを言ったか?』という趣旨を問う問題が何問かあり『おっ』とした記憶があります。ただ問題数自体がそう多くなかったので(確か2,3問)、特段対策等は考えなくてもよいかとも思います。強いて言えば前もって問題文を読んだ時に意図の問題だと解れば、そのフレーズを覚えておけばリスニング中に意図を取るのは私にとっては難しくはないかと思います。実際に211回はそんな感じで対応しました。
リーディングは、塗り絵(でたらめにマークしたもの)が9問ありました。最後の2つのパッセージが出来なかったです。こちらの方は完全にペースが掴めなかったようです。ただ正答率は高かったようで、留学前はだいたい5問程度塗り絵で同じぐらいの点数だったのでまぁ回を重ねたら元に戻るかと思う。ただ、前からの方針でTOEICの受験に際して読み飛ばしとかPart??からやるとかを行わないで馬鹿正直に先頭からきちんと読んでやっているのであまり点数は伸びないかもしれない。が、せっかくなので過去最高点(435)は超えたい。ちなみに211回は受験済みでこちらは塗り絵が2問でした。ので少しは点数が伸びているかと思われる。
(3) TOEIC-SW
一年振りに受けたTOEIC-SWの結果は以下のとおり、
TOEIC-SWの成績推移
| 2014/5/18 | 2015/5/17 | 2016/5/15 |
S | 120 | 110 | 120 |
W | 140 | 130 | 140 |
こちらもTOEICと同様2年前と同じ点数になった。準備をしていなかったのもあるが、そもそも論として自由度が高いので今一つコツが掴めない。実はスピーキングは15秒で答える問題が1問まるまる落としたのだが(無回答)、結果にはあまり関係ないとも思う。このテストだが、発音とイントネーションの評価をそれぞれ3段階で行ってくれる。今まではそれぞれMediumで今回も変わりないがこれをHighが取れるように頑張りたい。ちなみに留学で変化なしというもの凹む。ちなみに最初のリーディングが留学前は22,3秒前後でパッセージを読んでいたが、留学後は12,3秒になった。読むスピードが速くなったのが実感できた。ライティングは最後のエッセイが270ワード書いた。こちらは留学前が240ワードだったので少し伸びた(得点にはあまりつながらなかったが)。TOEIC-SWも続けて受験したら点数が伸びるとは思うが、毎年誕生日前後に受験しているので恒例行事にしようかとも思う。毎回勉強せずに受験すれば素の実力が図れるのでちょうどよい。
帰ってから意外にやることがあり、ブログの更新をサボっていたのですが、溜めるとやっぱり良くないということにちょっと気が付いた。
早いもので、留学が終わって日本に帰国して2週間が経ちました。
留学の方は無事(?)に卒業しまして、その足で帰国しました。帰国後、バタバタしておりましてブログの更新が滞ってましたのが、ここいらでアップデートしておきます。
| 10.15 1学期目 | 11.15 2学期目 | 12.15 3学期目 | 01.16 4学期目 | 02.16 5学期目 | 03.16 6学期目 | 04.16 7学期目 |
Level | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
GPA | 3.3 | 2.9 | 3.2 | 3.1 | 3.0 | 2.6 | 2.6 |
最後に成績が振るわなかったのは110からリーディング・ライティングクラスに変わった関係でしゃべりの方がおろそかになりそのおかげで今一つスピーキングが上達しなかったようだ。7ヶ月で何処まで上達したがが気になるところではあるが、とりあえず各種資格試験を受けることにする。ちなみに1年振りにTOEIC SWを受けた。結果は良く解らないが音読が前回より早く読めるようになった。前回は25秒程度でパッセージを読んでいたが今回は13秒位で読めるようになった。3倍になれば大佐に褒められるが2倍なので残念ではある。
帰国後の英語力の維持をどうするかだが、ちょっと思案のしどころではある。とりあえず、通訳案内士の登録の方を済ませたのでいよいよ実戦で使っていくのがよいかと思われる。後は、
さらに長期プランになるが、ADPのマニュアルの英語化を進めたいし、一回外資系の企業に勤めてみたい気もしている。悩ましいところではある。
さて、一通り、留学が終わったので今後の為に反省を行いたい。当初2,3ヶ月の予定で始めたが、結局7ヶ月留学したことになる。帰国して改めて感じるのは何やかんやで会話力は上がったようだ(繰り返しになるがその会話力の維持をどうするかが問題であるが)。一番の反省点だが、発音については日本にいるときにしっかりとやっておいた方がよかった。ネイティブの方は日本語訛りを聞いて、『違う』とは言えるが何処をどう直せばいいかまでは解っていないようであった。そういう意味ではホストファーザーが一番為になった。中国人・韓国人・台湾人の中で悲しいくらいに日本人の発音が一番わるかった。一旦日本に帰国したときにみっちりと発音を練習したらだいぶ治ったようだが、それで他の事(ライティングの練習)を行うとまた発音がおろそかになってもとに戻るという繰り返しだった。
日常生活はあとで振り返ると信じられないくらいストイックだった。4月の後半に日本に帰るとなったら一気にやる気がなくなった。まぁ、テレビもないし7時までには帰宅しなければならないし朝の8:30から授業が始まるわでよくやったかと思う(まぁ、それだけ英語力を伸ばしたかったらしい)。
さて、語学留学ということで語学学校に通った訳ですが選択肢としては大学に通うというのもあったかと思う。これが悩ましいところだが、純粋に語学力を高める場合はやはり一度は語学学校に行って正解だと思った。ちなみに大学となるとコンピュータサイエンスを受講することになるが知っていることをやる場合は何も勉強にならない上に知らないことを学習する場合は英語力がついていかないのでボロボロと聞き損じが出てしまう。知らないことで英語の勉強も兼ねてやればよいのだろうが英語の勉強だけでヒーヒー言っていたのでまぁ英語力に集中してよかったかと思う。ちなみに語学学校でもレベルが110になると基本的な文法は卒業して応用的なことを行ったのだが、応用的なことになると例えばプレゼンテーションの場合、英語力以外の能力の勉強になるため英語の方がおろそかになった。プレゼントとかは充分なので個人的にはもう少し文法等の強化を行いたかった。
クラスメートがほとんどが20歳前後の人になるのでやはりジェネレーションギャップを感じた。大学院とかになるともう少し近い年齢の方と勉強することになるかと思う。もっとも大学院に行く程の英語力が無かったのだが、次回、渡米する場合は大学院か仕事で行きたい。
今月も月末に向かって地味に忙しくなって更新が遅れてしまいました・・・。
前回と前々回に分けてダブルディスパッチについて説明しました。前回の繰り返しになりますが、この考えをさらに進めると複数のオブジェクトに対してポリモーフィズムを効かせればどうなるか?という話になります。一般化ですね。もっとも残念ながら、3つ以上のオブジェクトに対してポリモーフィズムを効かせる具体例が思いつきません。まぁ、『3者面談をやった時の先生と生徒と保護者の性格別の対応策』というのも考えられなくはないですが、今まで3つ以上のオブジェクトに対してポリモーフィズムを働かせた実戦経験はありません。ただ、この一般化-マルチディスパッチとかマルチメソッド-というアイデアを頭の隅に置いておくといつか使える日が来るかもしれません。
n体のオブジェクトに対してポリモーフィズムを働かせる。
と考えた場合、『n=0の時はどうなるか?』という考えが湧いてくるでしょう。そうです。n=0の時はメソッドに関係するオブジェクトが無いと考えられます。従来の関数がそれにあたります。
C++は自然に関数が定義できるのですが、JavaやC#は悪名高いpublic staticメソッドを使って関数を定義します。
以上が前回の復習になりますが、さて『関数が必要となる場合』の具体例をあげましょう。こちらもC++のライブラリからになりますが、一般的に以下のようなアルゴリズムの実装はオブジェクトと関係ないということで関数(正確にはテンプレート関数)で実装されています。
・合計値を求める
・ソートを行う
・検索を行う。
JavaやC#のみ知っている方はこの事実に驚かれるかもしれません。が、アルゴリズム+データ構造=プログラムという古典を知っている方なら逆に納得してもらえるかもしれません。つまり、データ構造に対して独立した手続き-アルゴリズムを考えた場合、関数での実装が上手くいくということになります。
それでもまだピンとこない人がいるかもしれません。そういう方はジェネリックプログラミングについて調べてみるのも良いかもしれません。この連載でジェネリックプログラムを扱うのは話が発散するので今は避けますがJavaにしてもC#にしてもジェネリックプログラミングをサポートしていますが、オブジェクト指向プログラミングとは必ずしも相容れるものではありません。
ということで関数(手続き)は、アルゴリズムの実装と相性がいいという話をしました。他には、実はかのstaticおじさんと揶揄されているみながわさんが指摘した、通常の手続きにも関数が使えるという話をします。
さて、みなさんがあるアプリケーションの実装時に、あるURLで指定されたHTMLファイルを取得する必要があった場合、以下の2つのライブラリのうちどれが便利に使えるでしょうか?
関数 gethtml を使う。
URLクラス、URLConnectionクラス、InputStreamクラス、BufferedReaderクラスを使う。
もし、各種クラスを使う方が便利と思うなら、あなたを『オブジェクト指向おじさん』に認定しましょう。
gethtml関数の方が良いのは自明でしょう。もし疑問があるのならコメント欄に質問してください。
さて、次回は変数の共有との関係で関数とメソッドを比べてみます。
連載も5回目になりましたが、まだモチベーションが維持できています。前回はダブルディスパッチの説明と共にメソッドと関数について本質的な違いはないという説明をしましたが、もう少し突っ込んで話をします。
もともと
object.method();
という表記は、methodがobjectのクラスに属しているという意味合いが強いかと思います。言葉を変えるとクラスとはデータと、そのデータを扱うコードが合わさったものという発想です。これはこれで一つの考え方で構いませんが、問題は全てをメソッドにするのも間違いだということです。その一例がダブルディスパッチということになります。以下のように加算演算子+を考えた場合、
object1 + object2
+演算子は
1.object1に所属するのか?
2.object2に所属するのか?
3.両方か?
4.どちらでもないか?等々
1-4の内どう考えるのが自然なのか?という問題に突き当たります。Javaは演算子のオーバーロードを禁止することによりこの問題から背を向けました。つまりこの問題を避けているとも言えます。ちなみにこのような仕様を見たときにJavaは補助輪が付いた自転車のような印象を受けました。C++は『どちらにも属さない』書き方ができます。正確にいうと『object1に属する』の書き方も場合によってはできますが、例えば、
10 + object
のような場合は、『どちらにも属さない』書き方でしか書けません。つまり関数を使ってオーバーロード演算子の定義を行います。C#はある意味『どちらにも属さない書き方』で書きます。つまり、多くのオブジェクト厨が忌嫌うpublic staticメソッドでオーバーロード演算子の定義を行います。
ダブルディスパッチの話を終える前にマルチディスパッチ(マルチメソッド)の話を軽くします。前回、2つのオブジェクトに対してポリモーフィズムを働かせる仕組みをダブルディスパッチと説明しましたが3つ以上のオブジェクトに対してポリモーフィズムを働かせる考え方もちろんあり、マルチディスパッチまたはマルチメソッドと言います。マルチメソッドをいつ使うのか?と言われたらそれはそれで考え込んでしまうのですが、それでも、メソッドが何処かのクラスに属するという考え方に固執するとこのようなパラダイムを受け入れることは難しいでしょう
さて、このようなある種の一般化を行った後は、今度は全くクラスに属さない手続き=関数という存在も自然に受け入れることができるかと思います。つまり、
y = sin(x);
のような式において、文字通りの関数、sinはどのクラスにも属さないと考えた方がよいでしょう。「Mathクラスに入れたらいいだろう」と反論を受けそうですが、実際にsin関数はJava厨が忌嫌うpublic staticで定義されており、C++でも関数として定義されています。先の演算子の例でも出てきましたが、public staticメソッドとは手続型言語での関数定義に相当するものになります。ちなみにかのεπιστημηさんは
私との議論で、
Java/C#はどのクラスにも属さないメソッドが作れないため、
当たり障りのないクラス(たとえばMathあるいはModuleC)をでっちあげてそいつに押し込まざるを得ない。
「いかなるクラスにも属さない」という"思い"を表現できません。
僕にはそこが(C++と比べて)不自由に感じます。
というふうに本質的に関数であるものを仮のクラス(Math)に入れることには難色を示されています、これについては私も同感です。
さて、『そんなに関数が重要ならsinとかではなくもっと幅広く使える例を出せ!』と言われそうです。その答えは来週に行うということで。