雑誌やテレビでもプログラミングが話題になることが増え、興味を持つ人も増えてきています。
いざプログラミングを学習しようと思ったら何をすべきなのか、どんなことに気をつけたら良いのか知っておきたいものでしょう。
この記事では、全くプログラミングをやったことのない人でもスタートできる学習方法、コツなどを紹介しています。始める前に一度読んでおくと良いでしょう。

初心者がプログラミングを学ぶときに注意すべきこと

何となくプログラミングを始めてみようとして、書籍やサイトから独学で学ぼうとすると高い確率で挫折します。

プログラムは、1文字でも間違えるとエラーになったり、文字化けが起こったり、考え方(アルゴリズム)がわからなかったり、開発環境の構築に手間取ったりなど一筋縄では行きません。何気なく始めてみて、挫折してしまったという人を多々見かけます。

プログラミング学習で挫折しないためのコツ

プログラミング学習で挫折しないためのコツとしては、目標設定とプログラミング言語の概要を大まかに把握することだと思います。

プログラミングで何かで作りたい!という目標があっても、その目標があやふやである場合、何をどこまで勉強すればいいかが明確でない場合、いつしか「学習のための学習」になりがちです。そうなってしまうと、モチベーションも上がらないし、ただ何となく勉強している状態になってしまいます。

また、適切な目標を設定するためにはプログラミング言語の概要を大まかにつかんでおく必要があります。
プログラミング言語によって難易度がかなり違います。難しい言語の方が使いこなすまでに時間がかかりますし、すぐに結果を表示しにくい、環境構築が難しいなどの傾向があります。

プログラミング言語で出来ること

プログラミング言語と難易度を大まかにまとめてみました。

/uploads/picture/asset/24/difficulty.png

難易度が難しいほど、動作する速度が速く、環境構築が容易ではなく、手軽に表示したりして確認しづらい、レンタルサーバーなどウェブサイト上に設置しづらいという特徴があります。

プログラミングは簡単ではないのですが、大まかな流れや基礎文法などは共通しています。データを加工してディスプレイに表示したり、ハードディスクなどの電源を落としても消えない記憶装置に記録する。

各プログラミング言語で何ができるのかを見てみます。

C言語で出来ること

基本的には何でも出来き、メモリに直にアクセスできる言語です。C++はC言語にオブジェクトなどの機能を付け加えたものです。

Java言語で出来ること

Javaバーチャルマシーンを介して動作します。そのためOSを選びません。こちらも基本的に何でも出来るのですが簡単な言語ではありません。
スマホアプリからWebサーバーからデスクトップアプリからゲームで使用するために使う、サーバーまで作成できます。

C#はJavaに対抗して出来た言語です。

PHP言語で出来ること

PHPやRubyやPythonは、サーバーサイドに特化した言語です。
サーバーサイドというのは、応答を返す側のコンピューターという意味です。
117に電話をかけると時報が確認できますが、このときNTT側がサーバーサイドになります。ウェブページに適しており、ショッピングサイトやCMSや会員制や掲示板などが作成できます。自分のホームページで何か手軽に作成してみたいということに適しています。単体ではスマホアプリは作れませんが、インターネットのホームページを利用して、サイトをスマホアプリのようにふるまわせることが出来ます。

ゲームなどの作成は全く向いていないのですが、JavaScriptと連帯することでミニゲームを作成してPHP言語などでサーバー側に記録するという使い方も出来ます。

JavaScript言語で出来ること

ブラウザで動作する唯一の言語です。ブラウザでミニゲームを作ったり、マウスをクリックすると変化させるなどのイベント設定が出来ます。
PHPやRubyやPythonなどの言語と連帯しやすい言語です。

どのプログラミング言語を選ぶべきか

何でも出来るという点からか、どうしてもCやJavaがいいような気がしてしまいますが、難易度も高いです。
また、ホームページを借りて使用する場合、CやJavaはそもそも設置することが出来ないというデメリットもあります。

学校で勉強しているからとか、仕事で覚えなければいけないなどの特別な理由がない場合
比較的簡単な言語から始めることをお勧めします。プログラミングの基礎的なことや文法的なことは、どのプログラミング言語も似ています。

プログラミングの本を利用する

株式会社アンクの本では様々な言語やプログラムそのものの仕組みについて画像で分かりやすく、かつ本格的に解説している「絵本シリーズ」があります。
普段当然のように使われている用語に関しても、一番最初の知識から理解を深めていくことができます。細かい文法よりも先にどんなことができるのか、全体像をつかみたい人にはおすすめの一冊でしょう。

アンク絵本シリーズ

プログラムの仕組みそのものについてくわしく書かれている本を事前に読んでおくと、学習が進みやすくなります。
プログラミング入門講座

オンラインで学習する

スマホアプリでプログラミングを学ぶ

/uploads/picture/asset/36/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-08_14.56.44.png

スマートフォンでプログラミングに関する学習ができるアプリも多数存在します。
下記の例は漫画なので、ながら作業で基礎文法を覚えることが出来ます。

PHPプログラミング漫画

プログラミング学習サイトで学ぶ

/uploads/picture/asset/37/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-08_14.56.04.png

様々な言語に対応しており、スライドでの学習→コードを書いて実践という形式になっています。また、どのレッスンも導入の部分は無料で受講できるためまずは最初の部分だけでも触ってみるのも良いでしょう。

Progate

プログラミング動画サイトで学ぶ

/uploads/picture/asset/38/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-08_14.56.18.png

ドットインストールでは実際に操作している画面を動画で見ながら学ぶことができるため、使用ソフトのインストール方法なども詳しく理解することができます。自分のペースで進められるのも独学の良い点でしょう。

ドットインストール

オンライン学習サービスを利用する

/uploads/picture/asset/39/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-08_14.57.09.png

本や学習サイトなどでの独学ではデメリットもあります。本に書かれているコードや学習サイトの内容をなぞっていくだけなので、1つのプログラムから応用して学習してくということが出来ません。ひととおり進めてみたけれど、どういう構造になっているか図で表せないなど、理解が不足している状態になりがちです。

何か習い事をしたことがある人ならわかると思いますが、習った方が上達スピードも早いし理解も深いんですね。
習ったり、質問をしてコツを聞いたりした方が独学でやるより10倍くらいは習得度合いが違うでしょう。
TechAcademy

最近では、本だけでなくネット上でも学習できる環境が整ってきています。
無料で学べるものや先生がつくサービスなど、ぜひ自分に合った学習方法を見つけてみてください。