プログラミングと英語を同時に習得するには?勉強法まとめ【4技能ごとに紹介】

プログラミングと英語を同時に習得するには?勉強法まとめ【4技能ごとに紹介】

こんにちは、GMOリサーチシステム部のダラーです。

プログラミング、プログラミング言語はたくさん種類がありますが、全部基本英語ですよね?使うライブラリや機能なんかも基本海外製が多いし、ドキュメントは基本英語。プログラミングと英語を両方学べたら一石二鳥なのにな~、という人は多いですよね?

英語の場合、分野によって得意不得意がある人も多いと思うので、Reading/Writing/Speakig/Listening、それぞれについて使える勉強方法、実際私もやっている方法についてまとめてみました

プログラミングと英語を一緒に学ぶべき理由

まず、なぜプログラミングと英語を一緒に学ぶべきなのか?

最初でも述べたように、使うライブラリや機能なんかは基本海外製が多いからです。
また、プログラミング言語自体が英語をベースに作られているので、英語とプログラミングを同時に学ぶことでコードの意味を理解しやすくなります。(例えばparseIntなど、parseの意味が分からないとIntに変換する、とわざわざ関数の意味を覚えないといけないのは面倒です)
さらに公式ドキュメントも基本英語なので、同時学習において大きなメリットがあると考えられます。

プログラミングと英語を一緒に学ぶメリットは?

プログラミングについてネットで検索する際、本などで勉強する際、圧倒的に英語の方が英ソースが多いです。

最近は、stackoverflowの内容を日本語に翻訳しただけの怪しいウェブサイトが乱立したりしていますが、そんな怪しいサイトに行くよりもstackoverflowの内容をそのまま理解したり、解説ブログやチュートリアルに関してもそのまま理解出来たら、圧倒的にインプット量を増やすことが出来ます。

最近では、プログラミングで接する英語を解説している本なども発売されているので、エンジニアにとって英語は重要な言語になっているのかなと思います。

プログラミングと英語の同時勉強法Reading編】

多様なカテゴリの質問箱stackoverflow

プログラマーなら言わずもがな、意識しなくてもエラーが出たら大体皆stackoverflowを使っているとは思いますが…

ちなみにこのstackoverflowを運営している会社(Stackoverflow fka.StackExchange)ですが、プログラミング以外にも政治や宗教、日本語まで様々なカテゴリの質問箱があって面白いです!例えばweb3関係だったり、セキュリティだったり、プログラミングでもカテゴリが分かれて質問箱があったりするので、勉強がてら覗いてみるのもいかがでしょうか?

プログラミング系の記事はまずDev.toMedium

日本だとQiitaやzennが人気ですが、英語ならDev.toやMediumにプログラミング系の記事が沢山あります。

Mediumは一応有料サービスなのですが、「xx Medium」なんかで検索してアクセスするのは無料なので、気になるトピックで色々読みたいときはこんな感じで検索して読んでいます。

言語やサービスの公式docを英語で読む

これもプログラマーなら言わずもがなですが…日本語のページがあるなしに関わらず、公式docを読むとき、私はまず始めに一応英語を読むようにしています。

(ナチュラルに訳されているところもありますが、たまに日本語が分かりづらかったり、日本語訳が終わっていないときも結構あるので)

その日ホットな技術記事一覧をみるならdaily.dev

これはChromeのextensionなのですが、その日ホットな技術記事(フロントエンド多めですが)が一覧で出てきます。

Chromeで新しいタブを開くとこれが一番に出てくるので、これの上位記事をちらっと眺めたりしているうちに、何をしようとしたのか忘れることが多々あります(笑)

アルゴリズム/データストラクチャーの勉強にはleetcode/codewars

日本語だとAtCoderが人気だと思いますが、アルゴリズム/データストラクチャーも英語で勉強すると、より英語力が上がりそうです。しかも、結構シンプルなはずの問題文でも英語で読むとよくわからないことが多々…

leetcodeだと、特定のデータストラクチャーの解説や、GAFAのインタビュー特集など記事も多めで、ただ問題を解くだけでなく、そういった記事を読んで勉強することもできます。(ただleetcodeの場合一部のサービスは有料です)

codewarsは日本文化が好きな人が作ったのか、レベル分けになぜか「kata(型)」というワードが使われています(笑)

英語のプログラミング関連本を読む

意外と知られていないような気がするのですが、日本語に比べて英語はリソースも豊富なうえに、無料で提供されているものもたくさんあります。英語の本だとオライリー本ですら、まれに著者ご本人が自分のウェブサイトで無料公開していることもあります。一度自分が気になるトピックで無料リソースがネット上にないか、ググってみるのはいかがでしょうか?

最近だと、こんなのも見つけました!

System Designに関する無料PDF本

プログラミングと英語の同時勉強法【Writing編】

Dev.toやMediumに執筆してみる

Dev.toを見ていると、たまに日本人で書いている人もちらほら見かけます(日本語で書いている人もいますが)。自分で学んだことなどを日本語で書くのも良いですが、英語で書いてみるのはいかがでしょうか?

stackoverflowに回答してみる

stackoverflowへは回答したことがないですが、日本語に関する質問箱にたまに英語で回答しています。(今のところ回答者が少ないのでお勧めです(笑))

日本語StackExchange

ちなみに日本語質問箱の方にいくつか回答してみたところ、英語の文法がおかしいとたまに運営の人が修正を入れてくれたりしますので(苦笑)、writingの勉強にもいかがでしょうか?

discordに参加してみる

slackは日本でも企業で使われたりしていますが(GMOリサーチも)、discordというのはご存知でしょうか?ゲーマーなら知っている人もいるかもしれませんが、ゲーマーに人気なslackのようなチャットコミュニケーションサービスです。たいてい人気なゲームにはいくつかdiscordのサーバーがあったりするので、ゲーム好きならこれにまず参加してみるのも良いかもしれません。

プログラミング系は実を言うとあまり私も知らないのですが、最近はYoutubeのゲーム開発チュートリアルチャンネルから見つけたゲーム開発系のdiscordチャンネルに参加しました。ここで他の人の会話を眺めたり、たまに日本の話をしていると会話に入ってみたりしています。

日本人が少ないので、海外のエンジニアと英語で会話する機会があって面白いです。(しかもゲーム関連だと、日本のことが好きな人も多くて、入りやすいですよ)

私がよく見ているゲーム開発系サーバーはこちらです。ご参考までにどうぞ!

https://gamedevshift.com/

プログラミングと英語の同時勉強法【Speaking編】

国際色豊かなイベント型コミュニティMeetup

Meetupは日本ではそこまで知られていないのですが、海外では結構有名です。色々なジャンルのコミュニティがあり、コミュニティ内で開催されているイベントに参加できるというサービスなのですが、誰でもホストになって自由に開催出来るので、色々なイベントがあります。(例えばLanguage Exchangeや一緒にアートを見に行くイベント、スポーツするイベント、勉強会、もくもく会、テーブルゲームするイベント、などなど。)

日本で参加できる「英語」を使う「プログラミング」系のMeetupは今のところあまり数がないのですが、ブートキャンプが主催しているイベントだと英語で開催されていて、知り合いを作ることもできるかもしれません。有名なのだとLe WagonCode Chrysalisなどでしょうか。前者の方は結構宣伝のためにも色々な「xxをやってみよう!」的なイベントがあり、勉強にもなりました。

コーディング面接練習サイトPramp

これはコーディング面接用の無料サービスなのですが、自分のスケジュールなどを入れておくと、勝手に(一応)近いタイムゾーンの他の利用者とスケジュール調整されて、面接練習をすることが出来るサービスです。問題などもPramp側で用意してくれて、それを面接官役になった方が出題します。コーディング面接の場合は大体自分でやろうとしている解き方や、その時考えていることを英語で説明する必要があるので、プログラミングに関して英語で分かりやすく話す練習になるのではないでしょうか。

Prampの参考例:コーディング面接練習サイト「Pramp」を使ってGAFAの面接に挑む

Web開発のチーム開発体験サービスchingu

Web開発のチーム開発体験サービスです。私もフロントエンド周りの勉強は実務経験がなかった為、独学でReact/Redux周りを勉強したあとchinguに参加してチームでフロントエンド開発する経験を積みました。

chinguに参加する時は、一応形式的な参加テストがあるため、ソロPJを作って提出します。内容のレベルなどに応じてchingu側でタイムゾーンなども考慮した5,6人のチームに振り分けられた後、期間内でチームで決めたものを開発して提出する、というようなものです。最近は日本から参加する人もちらほらいますが、大半は他の色々な国から参加しているので、基本英語でコミュニケーションを取る必要があります。

私が参加したときは、毎週時間を決めてGoogle Meetなどで開発進捗や、タスク割り振りなどについて英語でコミュニケーションを取っていました。

また、chinguではペアプログラミングも毎回開催していたので、チーム開発だけでなくペアプロも体験することが出来ます。Prampだと面接練習になってしまいますが、ペアプロなら一緒に問題を解いていく中で英語の会話練習になりそうです!

メンタリングサービスcodebar

ボランティアで行われているプログラミングのメンターサービスです。無料で使えて、主にフロントエンド周りですが、自分が選んだメンターさんにみっちり教えてもらえるようです。

ただ日本だとMentaなどのサービスは割と大きくて有名ですが、英語で受けられるプログラミング関連のメンターサービスは色々探してみたものの、アクティブなサービスがあまり見つからなかったので、メンターをオンラインで探すということ自体あまり主流ではないのかもしれません。

プログラミングと英語の同時勉強法【Listening編】

Youtube(オススメのチャンネル)

最近Youtubeで無料で見られるチュートリアル動画や解説動画がたくさん上がっています。私が好きなのはfreeCodeCampが出している色々なチュートリアル動画や、フロントエンド関連でThe Net NinjaDev Ed、バックエンドだとHussein Nasser氏のチャンネルをよく見ています。テック系MemeやニュースのチャンネルでFireshipも好きです。

話すスピードが早すぎてちょっと…という場合は動画のスピードを落としたり、字幕付きで見るのも良いかもしれません。ちゃんとしたチュートリアル動画を見たいのだ!という方は有料ですが、Udemyで英語の動画を探してみるのも良いと思います。

Udemyの回し者ではないのですが、Udemyの場合試してみて自分には合わなかった、見たい動画ではなかったという時はクーリングオフ制度もあって返金もしてくれますし、頻繁に大規模セールをやっているので、気になる方はぜひ試してみてください。

聞き流しならPodcast

私はどちらかというとYoutubeでイラストやコードを実際に見ながらやる方が好きなので、Youtubeの方ばっかり見ているのですが、Podcastだったら画面が見られなくても流し聞くことが出来るので、とにかく英語に耳を慣れさせたい!という場合は良さそうです。

Spotify Radioなら結構たくさんの個人Podcastがあって、例えば「React」とかだけでキーワード検索しても色々なチャンネルがヒットしました。

最後に

ここ2,3年で、ネットでも英語×プログラミングの良いとこ取りをしながら学べるサービスが有名になりました。例えば、セブ島に英語留学したついでに、現地でプログラミングブートキャンプをやるものです。

ただ、逆に日本にいるけど日本語がそこまで分からないから英語でプログラミングを学んでみたいという外国籍の人も割といて、英語で参加できるプログラミングブートキャンプがいくつか出来ています。こういったブートキャンプのイベントや、オンラインのプログラミング関連サービスを利用すれば、英語とプログラミングが一石二鳥で学べます!

お得感しかないこの勉強法、皆さんも一度試してみてはいかがでしょうか!

前の記事
«
次の記事
»

技術カテゴリの最新記事