先日、プログラミングをやってる中学からの友達と話をしました。色々話したのですが、盛り上がったのは、「初心者は一番最初に、どのプログラミング言語から始めるべきか」という話です。
初心者におすすめのプログラミング言語…単純そうで奥が深い議題です。何しろ、初心者が最初に手を付けるプログラミング言語です。責任重大、これを安易に決めることはできません。
プログラミングをやったことのない初心者の方でも、小学校のプログラミング必修化などのプログラミング熱に伴い、プログラミング言語の名前を耳にする機会もだんだんと増えてきているのではないかと思います。Java、C言語、といった言語に加えて、近頃ではRuby言語もよく耳にするようになりましたね。
初心者の方でも、「なんだか分からないけど、プログラミング言語というのはなにやらたくさんあるらしい…」ということは分かっている方が多いようです。
さて、そんな数あるプログラミング言語ですが、初心者は一体どのプログラミング言語を最初に学べばよいのでしょうか?
Contents
よく聞く「初心者向けプログラミング」
「初心者向けのおすすめプログラミング言語」としてよく聞くのが、C言語、Java、Ruby、Pythonこの4つのプログラミング言語です。
C言語、Javaは、数多くのソフトウェアで現在も幅広く使用されているプログラミング言語です。その他の言語よりも歴史が深い言語ですが、まだまだ現役、といった感じですね。
この2つの言語が初心者におすすめされている理由は2つあります。
まず、多くの企業で採用されているプログラミング言語のため、「就職に有利になる」。
そして、その他多くのプログラミング言語の基礎を学ぶことができる、という点です。
この2つの言語は、長年使われてきている言語のため、インターネットで検索すればたくさんの情報がヒットします。僕はプログラミングを学ぶ場合、翻訳を使ってでも英語を使ってほしい、ということをこのブログでも何度もお伝えしていますが、その理由の一つは、日本語での検索だと情報が少なく、古い情報、期限切れの情報、間違っている情報などを掴んでします可能性が高い、ということからのアドバイスです。
しかし、この2つの言語は前にも言ったとおり、長年使われてきているため、日本語での情報が豊富。そのため、英語の知識がなくても学んでいくことができます。これが大きな理由の一つとなっているようですね。
Ruby、Pythonは初心者向け?
さて、そして、RubyとPython言語についてです。
この2つの言語は、モダン言語、ライトウェイト言語(LL言語)と言われる類の言語で、簡単に言うと、「初心者でも直感的な操作で扱いやすい」、「C言語やJavaには搭載されていない、最新の機能が利用できる」 といった特徴があります。
RubyとPythonは、C言語のように、”コンパイル”という作業をする必要がありません。コンパイルは書いたプログラミングコードをパソコンが実行できるように、人が解読できない機械語に変換してから実行する処理のことです。
簡単に言うと、Pythonなどと比べて、やらなきゃいけないことが一つ増えるわけです。慣れていないと、時間も掛かってしまいます。
Rubyなどのモダン言語は、このコンパイル作業を自動化しています。また、自動化しつつ実行速度の速さも両立しているため、”ライトウェイト言語”(軽い言語)と呼ばれているのです。
このように、C言語やJavaと、Ruby言語やPython言語には、それぞれ異なるメリットがあります。
どちらの言語を取るかは難しいところです。もしあなたが今、あるいはこれから大学でプログラミングを学ぶなら、前者、C言語やJavaをやったほうがいいかもしれません。理由は、この2つの言語は多くの大学で採用されているプログラミング言語で、あなたが大学で学ばなければいけない可能性が非常に高いからです。
反対に、楽な姿勢でもプログラミングに入門したい、難しいのは骨が折れていやかな、といった方。そういった方は、後者のRuby、Python言語をおすすめします。情報量はC言語などより少ないですが、基本的なことを学ぶだけなら、日本語の情報はとても豊富にあります。
Fumiyaのおすすめ言語はどっち?
僕の意見として、初心者におすすめのプログラミング言語は、C言語の方なのか、Python言語の方なのか、気になる方もおられるかと思います。
単刀直入に言いまして、個人的には、Python言語をおすすめします。僕は一番最初にプログラミング言語のRuby言語からプログラミングをはじめました。2013年です。
今ではPython言語はRubyを凌ぐほどの人気がありますが、当時はPython言語より、Ruby言語の方が盛り上がっていたような記憶があります。そのため、僕も当時は流行に乗ってRubyをやりました。
結果、あなたも見ての通り、プログラミング続けてます。あくまで一例に過ぎませんが、僕はRubyからプログラミングをはじめてプログラミングをやめてしまうことにはなっていないわけです。
あなたも聞いたことがあるかもしれませんが、巷で言われている通り、C言語というのは結構難しいです。初心者向けの言語ではない…と個人的には思います。
「プログラミングは基礎が大事!C言語は基礎!初心者こそ最初にC言語をやるべきである!」
なんて声を大にして主張される古典派の方もたくさんおられます。社会心理学では、人は何がを得るよりも何かを失うことのほうを恐れると言います。こう言われてしまうと、”難しいかもしれないけど、変な癖がついて取り返しがつかなくならないように、この言語をやろう”と思ってしまう方が結構居ます。
これも個人的な意見なのですが、
「C言語以外のプログラミング言語を最初にやって、後で取り返しがつかない癖がついてしまうことは絶対にありません。」
変な思い込みをせず、ぜひ「これだ!」と思った言語に挑戦してほしいと思います。
僕個人的には、C言語もPython言語もおすすめしない
さて、上記ではPython言語がおすすめだよ、と言ってしまいましたが、実は僕の本当に意見は違います。
僕もTwitterでたまにつぶやいているのですが、僕が一番好きで、一番コードを書いていて、一番時間を費やしていて、一番の推しプログラミング言語が、実はあります。
それは
「Bash言語」
です。
“聞いたことない…”という方、多いと思います。特に初心者の方であれば、聞いたことある人はほぼ居ないでしょう。
Bash言語についての詳しい解説や僕のBashへの情熱については他の記事へ譲ることにしますが、Bashとは簡単に言うと、 「自動化プログラミング言語」 です。
英語ではオートメーションとか言われるやつです。
Bash言語では何ができるのでしょうか。簡単な例を上げると、ファイルの連結などです。
フォルダの中に1000個のファイルがあるとします。これを全て順番にくっつけて一つのファイルにしたい…そこでBash。といった具合ですね。
「仕事効率化」 プログラミング言語としてもかなり有名です。
僕が初心者におすすめのプログラミング言語としてBashを勧める理由は、Bashが面白すぎる言語だから、ではありません。
Bashでは数多くのプログラミング学習の効率化が可能です。僕はBashをはじめて間もない頃に、”ファイルが変更されたらプログラミング言語を実行する”というプログラミング学習ユーテリティツールを作りました。
この例では、”ruby ruby.rb”というコマンドを、”ruby.rb”ファイルが保存されるたびに実行しています。コマンドとは、プログラムを実行する方法の一つです。プログラムはクリック以外の方法でも実行できます。
このプログラムは結構複雑そうに思えるかと思います。一体何時間作るのに掛かったのだろうか…なんて思っている方もおられるかもしれませんね。
このプログラムは、”たった5行”で書かれています。作るのに掛かった時間は10分程度です。同じことをPythonでやろうとすると、何倍も時間がかかってしまうでしょう。
「Bashは全てのプログラミング言語のプログラミング効率を高める言語である」
これが僕の意見です。
まとめ
いかがでしたでしょうか。初心者におすすめのプログラミング言語は「Python」(またはBash)という結論となりました。
この記事の冒頭でも触れましたが、友人とこの議題について少し話しました。僕はBash派閥、友人はPython派閥だったのですが、少し語り合っただけでは、結論を出すことは出来ませんでした。
初心者が最初にやるプログラミング言語は重要である、というのは何度も言っているとおりです。しかし勘違いしてほしくないのは、 「最初にやるプログラミング言語の選択を間違えても、取り返しがつかないような失敗につながることはない」 ということです。
失敗することを恐れすぎて動けないのでは何も始まりません。考えすぎてパンクしてしまう前に、まずはなんとなくやれそうだと思ったプログラミング言語から、手を付けてみましょう。