- ITに関わる日本人は英語が残念なことが多い -
老兵は死なず、AIと踊る
ITの権威も英語は弱いか?
変数名は「AIにレビューさせろ」Part1で、「日本人の英語力は、ばらつきがあり変数名の命名に英語を使うときは危険度が増します。」と婉曲的に書きましたが、残念ながら少なくともITに関わる日本人の英語力はやはり残念なことが多いです。
これは、私自身の英語力も以前は残念だったといえますし、今は「残念でない」だけで、上手いか?と言われたら「人よりは」と謙遜してしまいます(一応プロなので)。
実は、プログラマになりたい人向けに、「基本情報技術者試験の科目B」をお勧めしたのですが、その問題文に「残念な英語」が混ざっており発見してしまいました。
令和5年度、基本情報技術者試験 科目Bの問1の
論理型: divideFlag
になります。この変数は回答に関わっており、あまりいい加減にしてほしくないのですが、何が問題かというと命名はこの際置いておいて、値(true/false)の持たせ方にあります。
if (divideFlag が true と等しい)
pnListの末尾 に iの値 を追加する
endif
とありますが、divideFlagを素直に読むと「割算フラグ」ということで、値がtrueの時はどういう意味かが曖昧になります。
コード上では「true = 割り切れていない」という意味ですが、多くの人は「true = 割り切れた」と受け取ってしまうでしょう。つまり誤解を与える使い方になっています。
ということでAIに掛けてみました。各AIの実行結果は以下のとおりですが、全AIが『意味があいまいになる。「割り切れた=trueと解釈しがち」』としています。
ChatGPTの結果
Geminiの結果
Copilotの結果
Grokの結果
ちなみに、ChatGPT,Gemini,Copilotは、「命名が良くない」とも指摘しています。
ChatGPTは下記のとおり1回鍛えたのでより突っ込んだ内容となっていますが、いずれにしても、divideFlagはダメということになります。
私自身は、『i ÷ j の余り が 0 と等しい』の条件の部分を無意識に『i ÷ j の余り が 0 と等しくない』が正解と考えてしまい、「答えが無いやん!」と一瞬混乱しました。
もっとも、恐らくほとんどの方が、「私がおかしい」と指摘するでしょう。この部分ですが、「割り切れたら後の追加は不要(false)」という意味(candidateFlagやisPrimeなど)であればまったく問題なく、アルゴリズムを適切に判断すると、 『i ÷ j の余り が 0 と等しくない』という認識がおかしいということになります。ということで『私がいちゃもんをつけている』と感じる人もいるでしょう。要は各人が持っている英語力ということになるのですが、今は、AIで試すことにより、一部のエンジニアのいちゃもんなのか、正しい指摘なのかを確認できる時代になりました。
日本のITエンジニアの英語力
普通のブログ記事なら「IPAさんやってしまいましたね!」と言って終わりでしょうが、いくら何でも「試験問題」ということでそれなりに注意して作成はしているでしょう。実際に多くのITエンジニアは私のような混乱は起こさないかと思います。つまりこのあたりが我々ITエンジニアの英語力の限界と考えた方がよいです。つまり、「AIにレビューさせろ」Part1の正しさをIPAさんが身をもって証明していたとも言えます。
ということで私は、日本語でプログラムを組めるようにしたいと改めて思いましたので、ADPは日本語で名称を記述できるようにしたいです。
「変数名を日本語で・・・」を読んだ硬派なITエンジニアは「変数名は英語だ!」と主張するかもしれません。そんなあなたにはTOEICや英検の受験をお勧めします。おそらく適切な英語名の命名に必要な英語力は、TOEICで730点、英検準1級以上かと思います。100歩譲って、TOEICの平均点560(英検2級程度)であれば、なんとか命名が出来るかもしれません(私の主観では足りないかと思いますが)。もし受験していない人は受験することをお勧めします。おそらくショックな点数(例えば300点)とかになるかもしれませんが、普通のITエンジニアの英語力はそんなものです。
やはりAIレビューが必要
この問題は令和5年(3年前)になりますが、今ならコード全体をChatGPTに掛けられます。下記のとおり、divideFlagについてダメ出ししてもらえるので、今後は試験問題をAIに掛けたいです。ただしローカルAIでレビューしないと思わぬところで問題が漏洩する可能性があります。
ちなみに、コードにある i,jのような1文字変数は『ダメ』という記事も見かけますが、「AIにレビューさせろ」Part0(初心者の方へ)で指摘しているとおり現実としてよく使います。また、ChatGPTはダメ出ししていません。つまり、1文字変数は普通に使うと考えた方がよいでしょう。
さらに、divideFlagのように混乱を助長するような命名を行うのであれば、むしろ f のような1文字の名称の方がましだと思いますが、それはまた別の話ということで
老兵は死なず、AIと踊る
実に8年ぶりの記事になるのですが、「自動詞と他動詞を考え直す」の続きになります。
ちなみに、この記事は『AIとの共作』になります。文章は私のものですが、特に『I bought yesterday』が持つ感覚について『どう説明しようか?』と思って放置していたのですが、AIの校正により明確な文章にできました。
Part1の記事では、私は『文法上、自動詞と他動詞を区別する意味はあまりない』と言っていますが、これは少し危険で、なぜ一部のネイティブが「I wish」に違和感を持つか?(wishは他動詞)という話になります。例えば、
主語 動詞
という文があった場合、日本人は『文章として成立している』と思いがちですが、ネイティブはどうも『目的語はどうなっている?』と無意識に考えているようです。そして、日本人にとっては(よくわからん理由で)
I go.
は文として成立し
I wish
は、文法的な正しさはおいておいて、文として成立しない。つまり、目的語として、何を望んでいるのか?が明確でないということになります。
ここまででしたら前回の記事の焼き直しになるのですが、日本人にとっての目的語の扱いの難しさは以下の文の解釈になります。
This is the book I bought yesterday.
ここの the も良く議論になるのですが、それは置いておいて、問題はここでの bought(buyの過去形)は『自動詞なのか?他動詞なのか?』になります。
そして見た目の形
I bought yesterday
とは裏腹にここでのboughtは他動詞になります。
上記の文章は、学校では、『関係代名詞』として習います。つまり、
This is the book. I bought it yesterday.
↓
This is the book. I bought that yesterday.
↓
This is the book that I bought yesterday.
↓
This is the book I bought yesterday.
という流れで解釈しがちですが、そもそもネイティブにとっては、上記のようなややこしい変換をしておらず、
I bought yesterday
は、何を買ったか省略されている。不完全な文であり、I bought what yesterday という感覚になっているようです。
さて、さらにややこしいのは、
I bought yesterday.
は完全な文でもあり、この意味では『昨日買い物したことを言いたい』ということで通用するようです。
まったくもって困った話で、I bought yesterdayは文として成立することもあれば、そうでないこともあることになりますが、ここで重要なのは、bought を自動詞か他動詞かに分類した上で文章を解釈することではなく、「目的語を要求する感覚が文脈によって立ち上がったり消えたりする」という点です。
これが、私にとっての英語学習の最大の壁でした。ここではあえてピリオドの有無で区別していますが、I bought yesterdayは、目的語が省略されている(文章の修飾を行っている)場合もあれば、単に目的語の無い文として使う場合もあり、ネイティブは感覚的に使い分けを行っているようです。
(当然ですが、個人個人によって感覚は微妙に異なることになります。特に重箱の隅をつつくような話になるとPart1で言ったように『I wishは自動詞でも使われる』という反論が成立したりします。)
つまり、このあたりの解釈は、文脈(つまり他の文等の関係)だったり、動詞の使われ方だったりするのですが、明確に決まっているわけではなくある種の集合知として整理されているわけです。つまり言語がもつある種の不合理(使っている人には当たり前なのだが説明ができない部分)を如実に表していることになります。
自然言語というのは慣習的に覚える側面があり日本語の場合”は”と”が”の使い分けだったり、数を数えるのに、「いっぽん」、「にほん」、「さんぼん」と「ぽ」、「ほ」、「ぼ」の使い分けの理屈だったりするのですが、これらは明確な基準がなく(数で勝負)のところがあります。
最近のLLMで翻訳ができるようになったのは『個々の単語の分類』だけにとどまらずに『膨大な文脈からの言語の再構成』が自然言語学習の王道ということを示唆しています。
ここで、冒頭の話に戻るのですが、『文法上、自動詞と他動詞を区別する意味はあまりない』といったのは実は『文脈や伝えたい意図によって、動詞は目的語を伴うか伴わないか分かれたり、自動詞のみで使ったり、他動詞のみで使ったりする。重要なのは分類ではなく文脈を読み取って適切に構文を読み取る能力。』ということが言えます。
コロナ禍ですっかり生活が変わってしまいまして、最近ミラーレス一眼レフカメラを買おうかレンタルしようかと思っています。
写真に凝りだして、SNSも出入りしたりしていますが、最近某SNSで、『ソフトウェア開発の会話を英会話教師に求めるのは無理』とか『TOEICは役に立たない』という趣旨の書き込みを目にしました。
この書き込みがどれぐらい説得力があるのかは不明ですが、私自身も過去に同じようなことを言いたくなる気持ちになったこともないわけではないので、書きたい気持ちはわからない訳ではない。
この発言が自分の劣等感をごまかす為にやっているのなら、これ以上は英語力が伸びないので、捨て台詞的に書き捨てたあとは英語学習から離れた方が精神衛生上は好ましいかもしれない。
『何故英語が伸びないのか?』と自問自答した時に『自分の能力不足』というのを認めたくなくついつい『そこまでする必要はない』と自己防衛的に思うようになる。
または、一向に上達しない状況に対して、本能的に『無駄な努力』と思うようになる訳です。
これにより最初の発言『英会話講師にソフトウェア開発の話は無理』とか『TOEICは役に立たない』という発言に陥ってしまう。
英語学習に限った話ではないが何かのスキルを取得しようとすると、自分自身の出来なさと向き合う必要があり、ものすごい劣等感に苛まれるという話である。これが年単位(5年とか10年とか)で続くことになれば、その苦痛は相当なものである。
何年にもわたって自分の頭をデバッグするようなもので、脳がそれを拒否するような感じになる。
巷ではあまり触れられてないが、これが英語力が伸びない一つの理由になります。つまり年単位の勉強のストレスに耐えられない人が多いということになります。
ちなみに当たり前の話になりますが、英語学習において自身が興味を持っている話題(例えばソフトウェア開発)があることは重要であるが、先生にそれを求めるのは違う話になる。自分でYoutubeを見れば幾らでも動画が転がっているのでそれを見て表現方法を勉強すればよい。または相手にも分かる話題(スマホの話とか)を選択すればよい。
TOEICは、色々問題点を指摘されたりもするが、自身の英語力を測るうえでは意外に使えるテストになる。ほぼ毎月やっており、金額も安く、スコア表示で出るのでわかりやすさがある。
一方で、得点を上げるためには難易度の高い問題を解かなければならず、ただ漫然とやっているだけでは得点が上がらなかったりする。
例えば、600点を超えようと思うと600点用に作られた問題を解かなければならない。
TOEICの問題はリスニング、リーディングそれぞれ100問あるが、初級者用の問題から上級者用の問題がちりばめられている。
つまり、点数を上げようと思ったらレベルを上げる必要があり、何年も点数が上がらず嫌気がでることもある。(記録が残っていないのでうる覚えですが、私は500点台を2年程彷徨った経験をした)。
ちなみに、勉強時間でいうと、レベルを上げようと思ったら1日3時間以上勉強する必要があった。1時間はレベルを維持する最低限の勉強時間だった。
もっともTOEICが完璧かというとそうでもない。
過去の私の点数の推移をみると、アメリカ留学前の最高スコアが855で、留学後に受けたスコアが865と10点しか上がっていない。当たり前ですが留学後の方が明らかにレベルが上がっているのでTOEICで測定できないスキルがあることも事実である。そういう意味では確かに500点台でもコミュニケーションが取れる人もいればダメな人もいる。
また、スピーキングに関しては、私の場合は、仕事の特殊性もあり、ネイティブだけでなく、ノンネイティブ相手に如何に通じるかを実践している関係で平易な文法や単語のチョイスになるのでそいうい意味ではレベルが上がりにくい面があり、試験をやればそこまで高得点とならない。
ということで、テスト得点の絶対値に左右され過ぎるのもよくないので自分がどれだけ英語力を必要としているか目標をはっきりとさせることも大事だったりする。
要するに実践が出来ていればテストの点はあまり関係ないということになる。もっとも『実践が出来ないからテストをやっている』ということもあるかと思いますが、留学する時間が無い場合は、今はYoutubeで興味のあるビデオを見るのも実践の一つかと思う。ネイティブ相手なら英会話もよいかと思う。
と長い話になりましたが、まとめますと
・英語学習は時間がかかる。私の場合TOEIC400→850で10年以上、約5000時間はかかっている。
・週1の英会話学習の場合、予習、復習をしなければ効果はない。
・毎日勉強しなければならない、一日最低3時間。
・勉強をさぼるとレベルも下がる。
・毎日勉強しても少しずつしかレベルは上がらない。
・全く聞き取れず、意味が解らない英語を数年聞き続けなければならない。
・どこまで勉強するか割り切りも必要となる。
・私の場合、今の状態になれば、勉強を止めてもレベルが下がらなくなった。
ということになります。
よく中学、高校で6年間英語をやっても上達しない(喋れない)といいますが、せいぜい年間250時間で6年間でも1500時間では出来なくて当たりまえ(出来る人は才能があるだけ)です。
忙しさにかまけて、前回の更新からかなり時間がたってしまい、各テストの結果が積みあがってきたのでメンテナンス不能になる前に結果を書き留めます。
前回の更新から、英検とTOEICが3回、TOEIC-SWが1回追加になります。
英検1級一次得点推移(2016年からは換算値)
| | 2014 1 | 2014 2 | 2014 3 | 2015 1 | 2016 1 | 2016 2 | 2016 3 | 2017 1 | 2017 2 | 2017 3 |
| 語彙・熟語 | 11 | 10 | 11 | 11 | 14 | 15 | 15 | 8 | 15 | 17 |
| 読 解 | 13 | 15 | 10 | 10 | 19 | 15 | 22 | 14 | 19 | 11 |
| リスニング | 18 | 19 | 18 | 17 | 21 | 17 | 20 | 17 | 19 | 16 |
| 作 文 | 4 | 13 | 16 | 16 | 23 | 20 | 15 | 20 | 12 | 17 |
| 合計 | 48 | 57 | 55 | 54 | 77 | 67 | 72 | 59 | 65 | 61 |
| CSE | | | | | 2014 | 1940 | 1897 | 1909 | 1888 | 1888 |
| | 2018 1 |
| 語彙・熟語 | 17 |
| 読 解 | 16 |
| リスニング | 23 |
| 作 文 | 18 |
| 合計 | 74 |
| CSE | 1966 |
TOEICの成績推移(220回まで)
| | 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 | 217 | 220 | 223 | 227 | 230 |
| L | 440 | 440 | 445 | 385 | 415 | 425 | 450 | 440 |
| R | 395 | 425 | 370 | 395 | 415 | 370 | 400 | 350 |
| T | 835 | 865 | 815 | 780 | 830 | 795 | 850 | 790 |
TOEIC-SWの成績推移
| | 2014 5/18 | 2015 5/17 | 2016 5/15 | 2017 5/14 | 2018 5/13 |
| S | 120 | 110 | 120 | 100 | 120 |
| W | 140 | 130 | 140 | 150 | 140 |
前回の受験後、2017年の秋から通訳ガイドの仕事が本格的に入ってくるようになり、実戦が増えましたがそのおかげでテストの方はなおざりになってしましまた。
英検の結果から、CSEスコアでみると1888と過去最低を2回記録したのち1966で留学後で2番目に高い点を出したので下げ止まりから反転したようです。
実は2018年1回目は勉強時間がとれなく成績もあまりよくないだろうと思ったところでしたがリスニングが伸びて全体の底上げに貢献したようです。
2017年の3回目までは過去問と単語を覚えることに注力していましたが、その後は勉強時間もとれないので趣味と実益を兼ねて英語の本を読むようにしました。
もっとも3、4、5月と訪日外国人のシーズンでそれもできなかったのですが、まぁ方向性は悪くないようですのでこれからは英語の本を読むのとNHKのラジオを中心に精進しようかと思います。
TOEICについてはリスニングが安定しているのですがリーディングの点数の変動が相変わらずで、最後の230回目は実は塗り絵(問題のやり残し)が15問ありました。223回は10問で、227回は5問でした。
ちなみに、227回目のリスニング(450点)ではかなり英語が聞けた感があり今までとは異なる次元に立ったようです。点数の差は10点ですが、それ以上の違いがあるようです。
TOEIC-SWは留学直後の点数に戻ったようですが、こちらについてはこれ以上受験するかどうか迷うところです。というのもスピーキングのスコアが120点とありますが、こちらの
Proficiency Level Descriptors(能力レベル別評価一覧表)と比較しますと『質問に回答し、基本的な情報を提供することができる。しかしながら、しばしば内容は理解しにくい。』とありますが、この『しばしば』がどの程度を指すのかにもよりますが、実際に仕事をしているなかでそこまで悪くはないなというのが実感で、最近では『お前英語うまいな』としばしば(10人中2人程度)いわれることもあり、要するにテストの評価と、実戦からのフィードバックが合わなくなってきているのでいやはや何ともしがたいところではあります。もちろん受験勉強をきちんとすればよいのかもしれませんが、今となっては受験勉強に費やす時間がもったいないのでどうしたものかというところです。ちなみに上手いといわれるようになったのはここ2,3か月で、それ以前は『私の英語はどうですか?』と聞いたら大抵『acceptable(許容範囲です)』という返答をもらっていました。
スピーキングについて仕事上、最近実感したのですが、必ずしも上手く話すことが良いことではないということで、つまり、最近ではアジア諸国の旅行者が増えましたが、彼らの英語力は低い人では英検でいうところの2級ぐらい(TOEICでいうところの600点ぐらい)のようで、そこをターゲットに話をするようになると『分かり易いんだけど・・・英語としては洗練されていない』という風になるようです。
逆にリスニングについては様々な発音やイントネーションの声を聞くので鍛えられているようです。
珍しくの連続の投稿になりますが、下記の記事ですが調べごとのついでに見つけたものです。
ここがヘンだよ、EXILE その1
この記事によるとwishは他動詞だから必ず目的語を必要とする。タイトルのI Wish For youのwishは目的語が無い。従って、この英語は間違いである。という3段論法である。
実はJ-POPの英語の歌詞に対しての批判の論拠の1つに、『他動詞だから~』があるのだが、この他動詞・自動詞というの考え直してみよう。ということです。
ちなみに、私は中学・高校の英語から離れて大分経つので以下の説明は学校で習う英語と違う場合があるので、中高生の方には以下の理解はお勧めしません。あくまでも実務的に英語を使う場合に自動詞・他動詞をどう理解すればよいかという話をします。
自動詞とは目的語を取らない動詞です。
I went.
他動詞とは目的語を取る動詞です。
I have a pen.
He gave me chocolate. 彼は私にチョコレートをくれた
ここでいう a pen とか me, chocolateが目的語になります。ちなみに目的語が2つの文はなじみがないかもしれませんが、『彼が私にチョコレートをくれた』、『彼が私にチョコレートを買ってくれた(He bought me chocolate.)』等、結構使える構文だと理解できます。
というわけで、英語の場合、文には目的語が0,1,2個の場合があるということです。そしてその個数は動詞によって決まるということです。
さて、ここまで説明しますと、『wishは他動詞だから目的語を取らないとダメ』という話になりそうですが、もう少し話ますと、
他動詞であり自動詞でもある動詞がある。wishはその一例。ということになります。つまり、
I wish
I wish 目的語
両方OKです。つまり文法上はI wish for youはOKとなります。ここまで話すと"for you"の解釈が必要となりそうですが、これは動詞wishを修飾するもの(この場合、副詞句)になります。この辺りは機会があればお話ししたいと思います(これはこれで厄介なものになります)。
以下、整理しますと英語の文法(平叙文)は、
主語 動詞 目的語1 目的語2
となり、目的語の数は動詞によって異なります。が、動詞が決まれば数が決まる訳でもないということです。そして、もちろん使う動詞と文脈によりますが、目的語は省略できることが多いということを知っておくと英語を学ぶ上で少し気が楽になります。
さらに、場合によりますが主語も省略可能です。動詞に関しては省略できないのか?という話がありますが、ややこしいのでこの議論は止めておいた方がよいです。結論としては文の骨格を決めるのに動詞が関わっているということになります。
話が逸れたので戻りますと、
文法上、自動詞と他動詞を区別する意味はあまりないということなり、ましてや『他動詞だから目的語が必ず必要』という議論は多くの場合
文法上は無意味です。
ちなみに、私のお気に入りの英英辞典(http://www.dictionary.com/)では、自動詞、他動詞という区分ではなく、with object / without objectという扱いになっています。
ここのwith objectが他動詞、without objectが自動詞になります。そして辞書を引けば多くの動詞は自動詞であり他動詞であることもわかるでしょう。ちなみにテストでは必ず目的語を取る動詞とか、一見他動詞に見える自動詞(ある意味例外の動詞)が出題されます。つまり動詞を覚える時はこの辺りのバリエーションを覚える必要があり、マメに辞書を引くことが大事ということになります。
この項の最後になりますが、リンク先の記事では"I wish for you."の使用例は無いと豪語されていましたが、I wish for you lyricsのキーワードで検索すれば、I wish for youというタイトルを持った曲がごろごろ釣れます(ざっと見て3つありました)。全ての意味をチェックした分けではないですが、少なくとも"I wish for you"という言葉は音楽界では割とポピュラーなようです。元記事の方は何をどう検索されたのでしょうかね。
さて、話がここまでで終われば英語というのは楽なのですが、実はこれで終わらないのが英語の難しいところになります。次回(ヒマがあれば)日本人にとって英語の自動詞・他動詞の恐ろしさの例を紹介したいと思います。
8年越しになりますが、続きを書きました。
自動詞と他動詞を考え直す(Part2)、日本人にとっての自動詞と他動詞の恐ろしさ