こんにちは。いっとくです!
いや〜、不思議だよね〜。
なんでサウナって全員死ぬほど汗かいてるのになんで臭くならないんだろうね〜。
雑菌が活動できないレベルで暑いからか〜。解決〜!
さていきなり全然関係ない話をしてしまいましたが、今日はちょっとプログラミングと英語の相性の良さを語りたくなったので語ろうと思う。
本当に急に思った。仕事中に実感しまくった。
ってなわけでこれからプログラミングを勉強したいという人や、今勉強中ですって人は参考にしていただけるとうれしいです。参考にしてくれたら今すぐ幸あれ。
僕は現在、Webエンジニアとして都内の会社で働いていますが、元々はIT系の会社で営業をやっていました。
今でこそ毎日無駄にデカいスクリーンに映っている仰々しい黒い画面に向かってカタカタと文字を打ち込む仕事をしている訳ですが、もともとプログラミングなんてしたこともなかったので、転職のためのスキルを手に入れようとしてIT留学というのに参加してきたのです。
IT留学については以下の記事でまとめているのでよろしければどうぞ↓
IT留学でのプログラミング授業はしっかり日本語で行われていたのですが、せっかく海外にいるんだし英語力も超上げたいというモチベーションもあったため、基本的に自習の時は英語のサイトで調べて、マジで理解できないやつだけは日本語で探すようにしていました。
その結果一つわかったことがある。
それは…
英語でプログラミングを勉強するのにはめちゃくちゃ大きなメリットがある!!
ということ
そこで、英語でプログラミングを学ぶとどんないいことがあるのかということを熱烈に語っていきたい。
プログラミングはほとんど英語
英語でプログラミングを学ぶひとつ目のはメリットは「プログラミングはほぼ英語」なので、英単語がわかるようになるとプログラムの理解が早くなるということ!
例えば簡単なHTMLでこんな例を。
<p>僕の父は月末になるとよく球根を食べています。</p>
HTMLの中でも超基本であるpタグですが、この「p」はプリンやパンツ、ましてやパンケーキからきているわけではない…
パラグラフ(paragraph)のpなのだ!
段落なのだ!文章の塊を持ってきてね!って意味なのだ!
なので、もしプログラミングが日本語で作られていたらこうなる。
<文>僕の父は秋になると銀杏のくさい部分を焼いて食べます。</文>
でも残念ながらプログラミングは日本語でできていない。
そう。どう見ても英語。だから英語が読めた方がいい。
どんなに複雑になって意味不明に見えたりしても、必ず何かしらの意味を持たせて作られているのがプログラミングです。そしてそれを作った奴はだいたい英語を喋る。
だから英語の意味がわかるとプログラミングが一気に理解しやすくなる。
例えばPHPのこんなコード。
<?php
$name = 'UNKOKUN';
if ($name === 'UNKOKUN') {
echo 'UNKOKUNちょっとオイニーが…';
}
?>
nameは日本語で名前。そしてifはもしも。
つまり、上記はもし名前がUNKOKUNだったら「くせえよ」と発言する。そんなプログラムです。
echoは文字を表示する命令で、言葉的には反響するとかそんな意味なので、実際の動きと言葉がなんかいい感じにずれてる気もするけど。
この例文は簡単な英語なので、日本の教育を受けていればわかる範囲だとは思うんだけど、難しくなっても原理は同じです。
これでもしifの意味をわからずに覚えるとしたら覚えるの大変じゃない?
ifはまだ2文字だからいいとしても、htmlspecialcharsみたいなのが来たら意味とセットで覚えないとすぐ忘れちゃうから。
逆にいうとif文を書くために必要な文字がdkjhsとかだったら、言葉自体が意味を持ってないから覚えづらいよねってことです。
さらに多少なりとも英語がわかるようになるとエラーにも強くなる!
プログラミングをしているとよくエラーに遭遇することになるのですが、このエラー文は下の文章みたいな英語で出されます。
“PHP Parse error: syntax error, unexpected ‘{‘ in index.php on line 20”
最初の頃はエラーの内容を読むのも面倒だし、そもそもわけがわからなので心折れそうになるのですが、「syntax = 文法」とか「unexpected = 予期せぬ」とかがわかってると、「文法間違ってるよ!20行目に謎の { が入ってるんだよバカ!」と言われているのがすぐわかるようになります。
また、英語がわかると他の人が書いたプログラムが何を意味しているのかがわかるようになるし、逆に人に伝わるプログラムがかけるようになるというメリットも。
プログラミングではよく変数というのを使います。
とりあえず、文字とか数字とかのデータを保存しておく箱みたいなものなんだけど、これも業界の習慣的に英語で名付けられてます。
phpだと$の後ろに自由に名前をつけて変数を作ります。
$var = variable;
$city = Tokyo;
$number = 1;
この時、例えば変数名が$prefとかになっていて、prefが都道府県(prefecture)だとわかると、「あぁ、中に都道府県の名前が入ってるのね!」とわかりやすくなるわけです。
つまり英語の意味がわかると、変数を適切に理解できるし、人に伝わりやすい命名ができるようになるわけです!!すばらしい!!
ちなみに実際に現場に入ってみると、変数名が$citysになっていたり、なんなら$taiken_courseみたいになっていることもあります。
オイィィ!
$cities!!$trial_course!!
英語にこだわりを持ちすぎるとこういうの見た時にイライラしちゃうので、適当に合わせつつも一応読めるよ?くらいがちょうどいいかもね!
こんな感じで英語でプログラミングを勉強するといいことがたくさんあることが伝わりつつあると思います。
…でも、それだけじゃないんだな〜
プログラミングは英語の方が情報量が多い
すごく当たり前のことなんですが、英語と日本語を話す人の人口比率がそもそも違うので、プログラミングに関する情報は圧倒的に英語の方が情報量多いです。
もちろん基本的なことを勉強するだけなら別に日本語でも事足りるほどインターネット上に情報が転がってますよ。
ましてやプログラミングの勉強を初めて、HTMLやCSS、if文やfor文を書いている時期に日本語で情報が見つからないなんてことはまずないでしょう。
しかし、Webエンジニアとして就職して実際に業務に取りかかり、わからないことがあったので調べてみると、日本語の情報が全然見つからない時がたまにあります。
今の所たまにしかありませんが。
仮に知りたい情報あっても、めちゃくちゃ前に書かれていたものなので、全然役に立たなかったりなんてこともあります。
するとどうしても英語で書かれている情報を集めないといけなくなるわけですが、もし自分がこの作業に慣れていなかったらと思うとゾッとすることがあります。
また、日本はITリテラシー後進国と呼ばれていることもあり、プログラミングに関する新しい情報というのはほとんどの場合、英語で登場します。
それを翻訳されるのを待たなくても、手に入れることができるというのはとってもいいことじゃない?
翻訳の精度が上がってくれれば、それはそれでいいんですが、結局のところ全部自動翻訳に任せた文章は今の所意味不明になります。
ましてやプログラミングには専門用語が混じっていたりもするので。
なので英語が読めれば、情報収集の手段が広がってより困難を乗り越えやすくなります!
しかも別に喋れなくてもいい!
何が専門用語なのかわからなくなる
ここまで書いてきたことは割と簡単に想像がつくメリットだと思います。
しかし僕が実際に英語でプログラミングを勉強してみると、勉強するまでは全然思いもしなかったメリットに気づくことができました。
それがこの「何が専門用語かわからなくなる」ということ!
…
…
…絶対伝わってないと思うので解説します。
例えばプログラミングを勉強している時に、こんなことが書かれていたらどう思います?
「まずコンストラクタで値を初期化したのちにクロージャを使って関数を無名関数でラップし、関数をバインドします。そしてここで先ほど書いたクラスをインスタンス化して引数に渡しましょう。するといい感じになります。」
…マジで意味わからなくない!??
日本語に訳した意味もないんじゃないかってくらいカタカナまみれだし、日本語の部分も無駄に堅苦しいし、結局よくわからないけど最終的にいい感じになることしかわからないよね!?
でも、これが英語で書かれているとあら不思議!
First you should initialize the values by using the constructor, then wrap the function with an anonymous function using a closure and bind the function. Let’s instantiate the class we wrote earlier and pass it to the argument here. Then you will feel nice.
…うん。全然意味わからないよね。
そもそもさっきのよくわからない文章をGoogle翻訳で英語に変換してすこし変えただけなので、文法的にあってるのかどうかもよくわからないのですが、僕はこれを見てこう思うんです。
どれがプログラミングの専門用語かわからなくなった。
日本語だとラップするとかバインドするとか言っていたのが、単純にただの動詞になったので、何も恐れることなく普通に翻訳するよね!
もともと英語がめちゃくちゃできる人なら、もしかすると専門用語っぽく感じる単語とかあるのかもしれないけど、僕みたいな学校でしか英語やっていない凡人からすると、どれが専門用語か全然わからなくなるから!
すると専門用語まみれの日本語よりも学習のハードルが下がるし、結果的にカタカナに翻訳されていた専門用語の言葉の意味まで調べることになるので、結果的に理解しやすくなったりします!
これらが英語でプログラミングを学習することのメリットです!シナジー感じませんか!?
しかし、実際英語で勉強するとなるとハードル高いですよね。
僕も留学したノリでやってみたけど普通の精神状態だったらまずやんないもの。
でも実際にやってみるとわかるのですが、出てくる単語のバリエーションとか少ないので、ある程度やれば日常会話よりはるかに簡単です。
読むだけだし。聞き取れる必要も喋れる必要もないし。
だから騙されたと思って一度挑戦して見て欲しいんだな〜。
なので一人でも多くの人が挑戦しやすいように、最後に僕が英語でプログラミングを勉強した方法と、オススメのサイトを紹介して締めていこうと思います!
英語でプログラミングを学習する方法とオススメのWebサイト(英語)
はい!というわけで、英語でプログラミングを勉強する方法とオススメのWebサイトを紹介する前にまずは下準備を。
Googleの言語設定を英語にしておきます。
日本語のままだと英語のサイトがなかなか出て来ませんので!
方法はいたって簡単。
まずは適当に検索すると、検索バーの下に設定というのがあるので、そこをクリックして言語(Language)を選択します。
するとこんな画面になるので、Englishを選んで保存したらおしまい。
次からアルファベットのみで検索しようものなら英語のサイトしかでてきません。
本当に日本語の情報が欲しくなったら日本語を混ぜて検索すれば出て来ます。
さぁ、下準備はこれで完成です!
勉強した方法ですが、自分でWebサービスを作り、わからないことや関数があったら調べるだけ。以上。
え?参考にならない?仕方ないじゃん、それしかやってないんだからー!
おそらくあなたのパソコンはGoogleの検索を英語にしたことによって、関数名とかで検索すると英語のサイトしか出てこないようになっていることと思います。
出て来たそれっぽいサイトを読み、わからない単語があれば辞書で検索をひたすら繰り返します。
最初はわからない単語が多すぎて効率悪い感じもするんですが、日常会話よりは圧倒的にすぐできるようになります。
ほぼ同じ単語ばかり出てくるので。
本当にシンプルな方法ですが、圧倒的な近道というのはほぼない世界なので、今自分がやっている勉強でわからないことがあったら英語で調べるという癖をつけることが大事だと思ってます。
とまぁとてもシンプルな方法なのですが、これだけだと始める気にならない人も多いと思うので、一つ英語でのプログラミング学習に最適なWebサイトを紹介します!
海外のプログラミング学習サイトです。
ドットインストールとかプロゲートとかって有名だと思うんですが、このサイトもなかなかクオリティが高いのでオススメ!英語の勉強にもなるし。
メニューを見てみるとLearn HTMLとかLearn CSSとか色々な言語が学習できるようになっています。
特にPHPなんかはPHP単体だけではなくデータベースと合わせて学習できるのでかなりためになります。
また読むだけではなくテストみたいな感じで問題とかも用意されているので、手を動かしながら勉強できます!
ただ、少し練習問題は充実していないので、基本的には例文を写経していくのがいいと思いますよ〜。
かなり基礎的なところからありますが、PHPとかをやる時は、ドットインストールで環境構築とかを学習した後にやってみるといいかと思います。
またかなり広い範囲がカバーされているので、とりあえず基礎的なプログラミングはできるようになったという人は、こちらで英語を使ってプログラミングを勉強してみるとエンジニアとしてレベルアップをはかれるのではないでしょーか!?
英語とプログラミングはめちゃくちゃ相性がいいし、確実にプラスアルファの能力としてついてくると思うので、興味がある人はぜひ挑戦してみてください!
以上、いっとくでした!さよなら!
コメント