DIVE INTO CODE

2019年09月21日
  • #Ruby
  • #JavaScript
  • #PHP
  • #プログラミング学習

複数のプログラミング言語を並行的に学ぶことは効率的なのか?

Aws4 request&x amz signedheaders=host&x amz signature=e812088d869b7f4eae40a7938bc5f3ef81debb27f35414b33a47b4058678e433

プログラミング言語の学習をしようとしている方の中には、「もしかして複数の言語を並行的に学べば効率的なのでは?」と考える方もいるでしょう。確かに、一度にいくつもの言語を学んでいくことができれば効率が良さそうですが、果たして実際のところはどうなのでしょうか?今回は、プログラミング言語を並行的に学ぶことの是非と、効率的な学び方について解説していきます。

【こんな方におすすめ】
・プログラミング言語の学習法に悩んでいる方
・プログラミング言語を並行的に学んでみようと考えている方
・プログラミング言語の効率的な学び方を知りたい方

【目次】
1.複数のプログラミング言語を並行的に学ぶことの是非
 ・並行的に学ぶべきではない言語とは
 ・並行的に学べるかもしれない言語とは
 ・本当に効率的な言語の学び方とは
2.まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

複数のプログラミング言語を並行的に学ぶことの是非

並行的に学ぶべきではない言語とは

今回は、「複数のプログラミング言語を並行的に学ぶことは効率的に見るとどうなのか?」というテーマでお話をお聞きしたいと思います。

分かりました。複数の言語を並行的に…というのは、どの言語を学ぶのかにもよるな、と思います。ですからまずその点をご説明してから、「どういった具合に学んでいくと効率的なのか」といったお話をしていきましょう。

お願いします。

ではさっそく、「どの言語を並行的に学べばよいのか?」という話から。まず永田さんにお伺いしてみますが「言語」といわれると、何を思い浮かべますか?

やっぱりRubyとか、PHP、Java、Cとか、あとはPythonですかね。

今出てきた言語、これらはどれも並行で学ばない方がいい言語です!

そうなんですか!なぜなのでしょう?気になります!

なぜかというと、例えばRubyとJavaを一緒に使って作られているWebアプリケーションって、あまりないんですよ。RubyとPythonを一緒に、というものも多くないし、RubyとPHPも同じです。つまりこれらの言語って、競合はするけれども一緒に使うことがあまりないんです。それに、確かにプログラミング言語はそれぞれ似たようなものではあるので同時に学ぶことはできなくはないですが、おそらく初心者は混乱してしまうでしょう。

「これはどちらの言語の話だっけ?」とか。

そうです。ひとつのテーマに対して複数の書き方を覚えなければいけないので「これはどっちの言語だっけ?」となってしまう。言語間の違いを理解するというおもしろさも無くはないですが、始めはそうは感じないでしょう。それに、同じテーマに対して理解をするのに、時間も2倍かかってしまいます。これって効率的とはいえませんよね。

並行的に学べるかもしれない言語とは

次に、先に挙げた言語以外に並行的に学べるものはないか、お話していきましょう。例えばWebアプリケーションの開発って「フロントエンド」と呼ばれる「見た目」を装飾する作業と、「バックエンド」と呼ばれる裏側での計算処理を組み立てるのと、大きく分けて2つの作業があります。バックエンドで使われる言語は、先程お伝えした「Ruby、PHP、Java、Pythonなど」です。例えば、バックエンドをRubyで組み立てるとして、フロントエンドではHTMLやCSS、JavaScriptといった言語を必ず使うんです。なので、例えばRubyとJavaScriptを一緒に学ぶ、といったように、フロントエンドとバックエンドそれぞれで使用する言語を学ぶというやり方には、意味がありますね。

なるほど。つまり、手数を増やそうとしてなんでもかんでも学ぶのではなくて、自分がシステムなどを開発する際のことを考えて判断すべき、ということですね。DIVE INTO CODEでは主にRubyの授業をされていますが、授業内ではJavaScriptのことも多少は学んだりするのですか?

そうですね…。例えば「Webエンジニアコース」というコースでは、Rubyを深く、JavaScriptは基礎を学びます。

そうなんですか。では、DIVE INTO CODEの受講生の中で、RubyやJava、Python、PHPを並行して学んでいるような方はいたりするんですか?

「職業訓練校にも通って勉強しています」という方は、稀にいらっしゃいます。ただ、そういった方はかなり大変そうですね。やはり混乱してしまうようで。ですから、複数の言語を並行的に学ぶというのはかなり難しく、効率的にはいかない可能性があるといえるでしょう。

本当に効率的な言語の学び方とは

私たちも「Ruby以外の言語を学ぶときはどのような感じなのか?」といったことに興味がありますし、Ruby以外のコースも作りたいと思っているんです。実際に私自身、JavaでのWebアプリケーション開発の研修も引き受けたことがあります。そういった経験により思うのが、たとえ言語が変わったとしても、あくまでRubyがJavaに置き換わっただけであって、言語学習の基礎的な部分や習得の流れって同じなんですよね。

「どういう基礎から学んでいくのか」っていう部分は同じ、ということですね。

なので、ひとつの言語に対して理解がある人であれば、書き方の違いっていう部分を理解していくことで、別の言語の学習にもキャッチアップしていけるようになる。「RubyでいうコレはJavaではコレなんだ」という感じですね。

なるほど、じゃあ、並行的に学ぶよりも、まずひとつの言語をしっかり学んでから、別の言語に取り組んだ方が効率的ということでしょうか。

そうです。プログラミング言語というものの基礎的な考え方が構築できていますから。それができていないうちに並行で学ぼうとしても、訳が分からなくなってしまい、結局両方とも覚えられなかったりします。もちろん初心者の人からしてみたら「ひとつで大丈夫なのかな?」という心配の気持ちもあるでしょう。でも、それは違うんです。どれかまずひとつの言語をマスターするので良い。マスターしてからはじめて、別の言語へと横展開していけばいいんです。

まとめ

・プログラミング言語を並行的に学ぶことは基本的には効率的とはいえない
・フロントエンドとバックエンドそれぞれで使われる言語を学んでいる人もいるが、それもあまり良いとはいえない
・本当に効率的な言語の学び方とは、ひとつの言語をマスターしてから別の言語へと横展開すること

複数のプログラミング言語を並行的に学ぶこと、一見すると効率的な良い学び方のように思えますが、実際には言語同士がごっちゃになってしまうなどして、学習を妨げてしまう要因になってしまいます。そもそも、基本的にはひとつのプログラミング言語をマスターすればWebアプリケーションなどの開発はできるので、そういった意味でも無駄な労力となってしまうといえるでしょう。

それでも、どうしても複数の言語を極めてみたい!ということなら、まずはひとつの言語をしっかりマスターしてから、別の言語に着手してみることで、効率的に学習することができます。急がば回れの精神で、まずは目の前の言語ひとつに取り組んでみましょう。

DIVE INTO CODEの公式HPこちら

DIVE INTO CODEの無料カウンセリング予約こちら

DIVE INTO CODEのことをもっと知ってみませんか?