
皆さんこんにちは。ユスです!

エーェェェ!ボク、ボブ。
今世界中で注目されているプログラミング。IT人材の不足もあってか日本でも小学校から必修化になるほど国内にも影響を与えています。
そんなプログラミングをこれから学ぼうと思っている方も多いのではないのでしょうか?
でもプログラミング言語はどれ選べばいいか分からないし、そもそもプログラミングについて全く分からないという人も多いと思います。
そこで今回は
・どの言語を選べばいいの?
・プログラミングってそもそも何?
という方のために説明します。

僕は今までに、HTML & CSS, C言語をやっていて基礎は理解しています。現在はPythonを学習中です。
プログラミングは数年間やっておりますので安心してお読みください。
プログラミング初心者の方におすすめの言語
2020年にプログラミングで最高なスタートを切りたい方は次の10個がおすすめです。
・Python
・Ruby
・JavaScript
・Java
・PHP
・HTML & CSS
・C/C++
・C#
・Go
もしかするといくつか知っているものも混ざっているかも知れませんね。
ではそもそもプログラミングとはどのようなものなのかについて見ていきましょう。
プログラミングとは?

プログラミング、またの名をコーディングと言ったりするこの暗号が並んだものは果たして何なのでしょうか?
Wikiではこのように書かれています。
ある特定のコンピューティングの結果を得ることを目的として、実行可能なコンピュータープログラムを設計・構築するプロセスのことである。
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
これだけ読んでも理解できる人は少数でしょう。
分かりやすく一言でまとめると
人間がコンピューターへの指示を書き、それを機械語に翻訳すること
こんな感じです。要するに翻訳作業ですね。
これを用語で説明すると、ソースコード(処理内容を自分で書くやつ)をコンパイル(翻訳)して実行する。という作業です。
- コンパイルはプログラムが記述されたファイルを、コンピューターが理解でき機械語に変換できるように形式を変化させることを指す。インタープリンタ型と呼ばれる言語(Pythonとか)はプログラム実行時にソースコードをそのまま読み込むため、コンパイルは必要ない。
プログラミングでは主に
・エディター(書くところ)
・コンパイラー(翻訳するところ。使わない言語も存在する)
・デバッガー(間違えを指摘する)
の3つのツールを活用します。
これらは別々の場合もあるのですが、「総合開発環境」という組み合わせたツールを使えば簡単にプログラミングを実行させる環境が整います。
そんなプログラミングには人間の言葉と同じようにたくさんの言葉が存在します。

ボブ、プログラミング難しすぎてガメンたたきワッタ。
プログラミングは挫折しやすいとたまに聞きますが、全然そんなことはありません。
そもそも挫折する人っていきなり難しい言葉から挑戦する人が多いです。
僕たちで言う、いきなりアイルランド語に挑戦するみたいなものですからね(笑)
ちゃんと手順を踏んで、簡単な言葉から挑戦すれば他の言葉も簡単に理解できるようになっていきます。
それがプログラミングってもんです。
プログラミングでなにができる?
プログラミングの秘めている可能性はアイデアさえあれば無限台です。
プログラミングではこんなことが出来たりします。
- Webサイト&Webゲーム制作
- ゲーム開発
- スマホアプリ開発
- ソフト開発
- AI関連の制御や開発
- OS開発
このようにアイデア次第でたくさんの用途に使うことができます!
プログラミング言語を選ぶ基準 [当記事で]
この記事では以下の
- 特徴
- 用途
- 難易度
の3つに注目して選んでいます。
この基準は後の説明で用いりますので、比較基準と思ってください。
プログラミング初心者におすすめの言語 [解説]

1. Python
特徴
Pythonの特徴は以下の通りです。
・文法がシンプルで読みやすい
・コンパイラーが不要
・実行がちょっと遅い
Pythonは少ないコードでシンプルな文法に沿って書けるので、コードが読みやすい、間違いを訂正しやすいなどといったメリットが一番大きいです。
パフォーマンスが他の言語に比べて遅いのは難点ですがそんなに気にするほどではないので、実行されるまでの楽しみにしている時間が増えるとポジティブにとらえておきましょう。

ポジティブ大事よ
用途
Pythonは主に「機械学習・AI」、「Web関連」などの用途に用いられます。
難易度
Pythonはハッキリ言って簡単です。
プログラミング初心者にはとてもおすすめできる難易度です。
コードもシンプル。世界で今一番注目度の高い言語ですので、情報量もハンパないです。
迷っている方はPythonから最高のスタートを切ってみてはいかがでしょうか?

5段階中の易しさは「2.5ボブポイント」
2. Swift
特徴
Appleから2014年に発表されたSwiftですが特徴はこんな感じです。
・コードが書きやすくシンプル
・パフォーマンス高速
・Playgroundの環境
Swiftは先ほどのPythonとコードが比較的書きやすくシンプルといった点では似ていますね。
そして速度。Pythonと比較してみると大体8倍くらいパフォーマンスが速いです。
だったらPythonも遅いんじゃね?と思うかもしれませんがSwiftが速いだけです。
そしてPlaygroundと聞いて「?」となった人もいるでしょう。少し説明します。
Playgroundは正しくは「Swift Playgrounds」と言うAppleが開発したSwiftの開発環境のことを指します。
Windows Visual Studioみたいな総合開発環境とは違ってSwiftオンリーの開発環境だと思ってもらえばいいと思います。
用途
SwiftはiOS, iPad OS, Mac OSなどのアプリ開発に用いられるため、iOSなどのアプリを作りたい方はSwiftを勉強するべきです。
現時点でAppleやGoogle, Facebookと比較的環境が狭いSwiftですが、将来的にWindowsでの環境が整えば様々なところで利用されること間違いなしです。
難易度
難易度的にはPythonと同じくらいですね。
僕もちょっと触れてみたのですが、コードがシンプルで読みやすいといった点では扱いやすいと感じました。
先ほどWindowsでの環境について書きましたが、環境が整えば様々な所で利用されるので、将来性が非常に高い言語だと言えますね!

3ボブポイント
3. JavaScript
特徴
実は多くの人が知らないだけで周りにはJavaScriptが担当しているデバイスがたくさんあります。
デスクトップコンピューター、スマホ、携帯、車、スマートテレビ、スマートウォッチなど私たちが普段使うデバイスのほとんどはこの言語で開発されていることからどれだけ凄いのかが身に沁みますね。
用途
JavaScriptはWebサイト全般に使われます。
例えばWebサイトにアニメーションを表示させたり、ブラウザの拡張機能を作成したりすることができます。
とりあえずWeb関連のものを作りたいという方にはおすすめです。
難易度
JavaScriptは初心者にとっては難易度がかなり高い言語だと言えるでしょう。
しかしこの言語を学習する人はとても多く、ネットでの情報量も豊富ですのでガッツのある方は挑戦してもいいかも知れません。

4.5ボブポイント
4. Ruby
特徴
国産で、まつもとゆきひろさんが作ったRubyですが、こういった特徴があります。
・記述量が少ない(特に)
・コンパイルの必要性がない
Rubyは先ほど紹介したPythonとSwiftに比べてもかなり短いコードで書くことができます。
今ちょっと触れてみたのですが、これマジで楽しいです!
まつもとさんの遊び心が感じられますね!
用途
Rubyは主に「Webアプリ開発」と「スマホアプリ開発」の用途に用いられます。
あとはスクレイピングも得意ですね。
どんなのかというと、ウェブサイトから情報を抽出してそれを加工して使うという技術です。
例を挙げると、天気情報の更新の取得ですね。
他のウェブサイトのお天気情報を抽出して、自分のサイトに用いるという使い方もできます。
難易度
Rubyは初心者の方にもおすすめできる言語です。
簡単+楽しみたいという方には絶対にフィットするはずです!

2ボブポイント
5. PHP
特徴
自由度が高い
PHPは本当に自由度が高く、人によって書き方が別物になってしまうことがある言語です。
つまり国語の作文で人それぞれの個性が文章に出るように、あなたの個性もコードに出すことが出来る言語です!
用途
PHPはWeb関連に特化した言語なのでこれ以外の用途では使われません。
でもその代わりWebに特化しているので、作りたいものが決まっている人には選びやすい言語と言えるでしょう。
PHPはJavascriptに並んでWeb関連のプログラミングとしてはかなりの人気を誇っており、Facebookのベータ版もPHPで制作されたというエピソードをもっています。
難易度
PHPは比較的習得しやすい言語ですが、自由度が高すぎるがゆえにバグを見逃してしまう場合が多いので知らず知らずの内にウイルスを作って、結果的にパソコンを叩き割らないといけないかもしれません(笑)
でもデバッグなどの対策を行えば大丈夫です。

3ボブポイント
6. HTML&CSS
特徴
HTMLはWebページの構造を記述するための言語です。<h1>こんなタグと呼ばれるものを使って、ここは見出しなど構造を作ります。
CSSはWebページのデザインに用いられる言語です。HTMLで指定した構造の文字色や文字の大きさ、配置などを指定することができます。
まとめるとHTMLはレイアウトの元となる情報を扱う言語で、CSSはそれを彩る言語ということですね!
難易度
多分一番簡単に習得できる言語だと思います。
僕も2週間毎日3時間ずつ取り組んで基礎は理解できましたよ!

1.5ボブポイント
JavaScript, PHPとの違いは?
ここまでHTML&CSSとJavaScript, PHPを紹介してきましたが、違いってなんやねん?と疑問を持たれている方もいるでしょう。
そんな方のためにそれぞれの特徴を簡単にまとめるとこんな感じになります。
・HTMLは文字や画像などの構成用 (設計図)
・CSSはWebサイトの装飾用 (デザイン)
・JavaScriptはWebサイトに「動き」をつける (アクション)
・PHPは天気などのデータの表示を変える (アクション+読み取り)
それぞれの用途のまとめ

以上の6つを紹介しました。
自分とマッチする言語があったのではないでしょうか?
言語を決めるためにも軽く用途のおさらいをしておきましょう。
・Pythonは主に「機械学習・AI」「Web関連」に用いられる
・Swiftは主に「iOS, iPad OS, Mac OS」などのアプリを作る際に用いられる
・JavaScriptは主に「Webサイト全般」の開発に用いられる
・Rubyは主に「Web・スマホアプリ」の開発に用いられる
・PHPは主に「Web関連」に用いられる。
・HTML&CSSは「Webサイト」作成のために用いられる。
こんな感じです。
用途が似ていてもコードの書きやすさであったり、楽しさも人それぞれなので完全に好みで決めちゃってOKだと思います。
需要(企業での収入)
もしプログラミングをエンジニア転職のために学ぼうと思っているのだったら、その言語の需要も併せて知っておくべきです。
今回紹介した各言語の平均年収をまとめておいたのでご覧ください。
・Pythonの平均年収は約651万円
・Swiftの平均年収は約550万円
・JavaScriptの平均年収は555万円
・Rubyの平均年収は約864万円
・PHPの平均年収は約538万円
・HTML&CSSの平均年収は350万円~450万円あたり
RubyとPythonが特に高いですね。
ただし企業によっては1000万を狙えるところもあるのであくまで平均だということを頭に入れておきましょう。
なお個人でフリーランスエンジニアとして活動し、順調に進んだ場合も1000万単位の領域まで到達することは十分可能なので自分は行けると信じて挑戦してみるのもありです!
2020プログラミング言語ランキング[参考までに]
参考程度ににこちらもご覧ください。

この画像は2020年に人気な言語ランキングです。
一位はC/C++となっています。
この言語は難易度がかなり高いので初心者の方がモチベージョンを損なわないよう、今回は見送らせていただきました。

僕の場合、エンジニアの友達に一番最初の言語としておすすめされて教えてもらってたんだけど、あれはマジで難しかった。
まじで先生なしだとモチベ保つのが難しい。。。
けどプログラミングの深いところまで学べるから学んで良かったと思います!!
それでも選べない方のために

ここまでお付き合いいただきありがとうございます。
今様々なデータを見てきましたが、選ぶのが難しいという人もいるはずです。
なので僕がそんな選べない方のために選ぶとしたら、、、Pythonですね。
僕がやっているからという理由もあるのですがプログラミング需要ランキング1位、コードが書きやすいなどといったメリットがたくさんあるので迷っている方はPythonを選びましょう。
明るいプログラミングライフを!

今回は以上となります。
きっとプログラミングをやりたくなってきた人もいるのではないでしょうか?
プログラミングは大きな可能性を秘めており、あなたのアイデアで世の中一つを動かせるかも知れません。
そんなプログラミングの可能性、いやあなたの可能性を信じて明るいプログラミングライフを送ってください!!

ツイッター&インスタのフォローお待ちしています!

ボブ、ネムタイ。
こんにちは。
私はPythonを学ぼうと思っているのですが、
まず、環境を整えなければなりません。
Pythonはどのような環境で快適に動作しますか?
現時点で、バリバリ演算をするようなプログラムは作りません。
画像処理をする場合はIntel Neural Compute Stick 2を使うと仮定します。
Yusさんはどんな環境でしましたか?詳しく教えてください。
独学なので、おすすめの本やサイトはありますか? 教えてください!!