プログラミング初心者が最初に思うことは、
ってことだと思います。
僕も、最初の頃はRuby やら Python やらPHPやら色々あって、何を使って良いかわからずにとりあえずJava を書いていたりしました。
だから、この記事ではプログラミング初心者の人が最初に何を選べば良いか、ということについて紹介していきたいと思います。
結論としては、Pytohn が一択で最強です。その理由についても紹介していきたいと思います!
目次 (クリックでジャンプ)
そもそも、プログラミング言語ってなに?
この記事では、
という “超基礎的な” ところから紹介していこうと思います。
プログラミング言語とは、ざっくりと言ってしまうと日本語や英語、中国語などの「言語」に近いイメージです。
本当にざっくりと理解して欲しいのですが、例えば「こんにちは」を意味するのは、それぞれ
- こんにちは (日本語)
- Hello (英語)
- 您好 (中国語)
です。こんな感じで、機械に命令を出す時にそれぞれに異なった司令の出し方をします。
って思われるかもしれませんが、そこはちょっと複雑で…
例えば、盆栽や神社のことを説明するには、日本語の方が良さそうですよね。和食のレシピを作るなら、日本語で書いた方が伝わりやすい、みたいな。
同じく、イギリス料理なら英語、中華なら中国語で書いた方が伝わりやすかったり、より簡単に説明できたりします。
こんな感じで、それぞれの言語では
- できること、できないこと
- 得意なこと、苦手なこと
- 手軽さ、単純さ
のようなものが全然違ったりします。だから、今でも
- Web サーバーならPHP
- 機械学習なら Python
- iOSアプリなら Swift
のように様々なプログラミング言語があるのです。
プログラミング言語を決めるポイント 5つ
それでは、幾つもあるプログラミング言語の中から、一体どれを使っていけば良いのでしょうか?
いろんなポイントはあるのですが、ここでは初心者が選ぶ際に気をつけたいポイントを紹介していきます。
1. 使っている人が多いかどうか?
まず大事なのが、使っている人の多さです。
使っている人が多いと、情報が手に入りやすかったり、使えるのものが豊富だったりします。
また逆に、「使っている人が多い言語は、そこそこ良い言語であるし、これからマシになっていく」という見方もできると思います。
そのため、ごく少人数が使っているような言語は「初心者」にはあまりお勧めできません。
2. 将来的に、いろんなことができるかどうか?
これはつまり、用途が広いということです。
プログラミング言語は、「コレ専用!」という用途が決まっているものもあれば、逆にかなりいろんなことができる言語もあります。
例えば、Swift という言語はiPhone アプリ開発のための言語ですが、コレは極めてもアプリ開発者 以上のことは基本的にはできません。
対して、Python は機械学習のこともできれば、Webのこともできます。
最初は用途を絞った方がいいという人もいますが、僕は広い方が後々にとってはプラスになるのかなと思っています。
3. 環境構築がやりやすいかどうか?
次に大事なことは、環境構築です。
さっと書けるかどうか。
その点、Python はもともとインストールされていることも多いですし、最近は環境構築がとてもやりやすくなっています。(anaconda とか pyenv とか)
なので、比較的やりやすいと思います。
また、学習環境という意味での環境構築も大切です。その点でも、最近流行りの言語は無料で学べるサービスなども多いので楽であると言えます。
4. 自分のやりたいことができるかどうか?
コレがかなーり大切です。
自分のやりたいことがはっきりと決まっている場合は、「〇〇(やりたいこと) + 言語」で検索して何ができるかを確認しておきましょう。
(Python は基本何でもできるので大丈夫です。)
プログラミングは初学者の9割が挫折するというデータがあります。
だから、やろうと思った人の9割は何らかの理由で挫折するということです。
そうならないためにできることは、「自分の作りたいものを決める」ことです。
そうすると、モチベーションを保ちやすくなります。
5. 書いていて楽しいかどうか?
一番大切なのが、コレかもしれません。書いていて楽しいかどうか。
プログラミングを始める人の中には、
- 将来仕事にしたい
- 最終的にサービスを作りたい
- お金を稼ぎたい
などを意識する人が多いかもしれませんが、それは最終的なものであって、最初は地味な作業が圧倒的に多いです。
そうした時に大切なのが、プログラミングそれ自体を楽しめるかどうかです。
書いていて辛い言語もたまにあるので、そうした言語は避けるべきだと思っています。
全てにおいて、優れているのが、Python
ここまで、プログラミング言語を比較するための5つのポイントを紹介しました。
- 使っている人の多さ
- 将来性の高さ
- 環境を構築する際の簡単さ
- 自分のやりたいことができるか
- 書いていて楽しいか
この5つのポイントを満たすのが「初心者におすすめの言語」になるのですが…
そうはいっても一長一短あって、いろんなサイトを見ても、いろんな説明がなされています。
しかし、僕がおすすめするのは1つだけ!
それは…そう Python です!
Pythonのメリットは、手軽にそこそこなんでもできる
1991年にオランダで生まれた言語とされていて、現在では世界中で多くの人に読まれ、書かれています。
上の5つのポイントを、比較的上手にカバーしていると思います。
個人的に、Python の凄さはそこだと思っていて、比較的優しく、比較的そこそこなんでも作れるというのがいい点です。
そして、最近では「機械学習」がブームですが、機械学習に関してはトップランナーとして君臨しています。
プログラミング初学者にとって、これ以上の選択肢はないと思います。
- Webアプリ
- サーバ、通信系
- 機械学習
- 統計・分析
- IoT、メカ系
etc…
Python は直感的に読めるので、何をしているかわかりやすい
また、オススメする理由は他にもあって、Python は直感的に読めるという長所があります。
プログラミングをしたことがない人にとっては、
と思うかもしれませんが、ある程度経験を積んだあとは、プログラミングの学習というのは「上級者のソースコードを読み、それを書き、また読み…」というのの繰り返しになります。
なので、「簡単に読める」というのはかなり大切なことです。
機械学習やスクレイピングができる
そして、おすすめの理由のもう一つが、”すぐに動く” ということです。
プログラミング言語の中には、書いても書いてもチュートリアルが終わらないような言語もあるのですが、Python は いろんなものを書いたりグラフを表示させたりと、すぐに動きのあることをできるようになります。
また、対話型 (インタラクティブな) 言語なので、会話するようにプログラミングできるモードもあるので、プログラミング「やってる感」があるというのもメリットの1つです。
コレが、例えばC言語とかだとどこにエラーがあるか全くわからない… みたいなのが結構あるので、大変。
また、先ほども言ったように機械学習なども簡単に実装できるので、最近のトレンドにも乗り易くなっています。
有名企業が使っている ≒ 年収が高い
最後に、コレは蛇足かもしれませんが、Python は大きなサービスを作る時にも使われていたりします。
- Youtube
- Dropbox
また、最近の機械学習ブームもあって、Pyhton エンジニアの平均年収は 500万円とも、6,00万円とも言われています。
これはエンジニア業界の中では大変に高くなっていて、海外に行くともっと高くなるかもしれません。
今まさに、Python の時代なのです。
Ruby よりも Python をおすすめするのは、方向性の違い
この記事を書こうと思った時に、いろんな人のサイトを拝見したのですが、その時に
という人がそこそこいたのでそれについて少し触れたいと思います。
Ruby、いいと思います。書いていて楽しいし、本当にすぐにWeb系のサービスを構築することができます。
また、コンセプトが「書いていて楽しい言語」なのも共感できます。僕も少し触っていた時期があったのですが、かなり良い印象を持っています。
ただ、気になるのが以下の2点です。
- Web系のことがメインになってきてしまう
- 管理がしにくい
1. に関しては、やりたいことがWeb系なら全く問題ないと思います。問題なのは、2の方です。
Ruby を書いたことがある (ネイティブRuby以外の) 人ならわかると思うのですが、Ruby はどのフレームワークが何をやっているかわからない上に、自分でも書けてしまうので、AとBのライブラリにCを入れると動かなくなる… みたいなことが結構あります。(でも、次にEを入れるとまた動かなくなったけど、順番を変えて入れ直したら動いた… みたいな。)
まぁ、この辺りはちょっと自分の使っている言語が最強!みたいな主張と重なる部分があると思うので、いろんな人の話を参考にしてみてください。
ともかく、僕がオススメするならPython が最強!ってことだけは覚えておいてください。
結論:Python が最強です
おすすめは、最初は書籍で勉強して、基本を抑えたら順次 Web で調べたり、次の書籍に移ったりしたらいいと思います。
最初に選んだ言語はそこそこ長い付き合いになることが多い (らしい) ので、ぜひ素敵な言語に巡り会えることを祈っています!