
プログラミングは難しくない!4つのエッセンスを大公開!文系も理系も低学歴も年齢も関係なく書けるようになる話
まずは結論から。
プログラミングは、いつからでも誰でも簡単に習得できます!
0. はじめに
この記事の対象者
まったくの初心者でこれからプログラムを学びたいと思っている人
プログラミングについて興味を持っているので詳しく知りたい人
プログラミングって何かよく分からないけど知識として知りたい人
この記事を読み終えると何が得られるのか
そもそもプログラムって何?が分かるようになる
プログラムがどういう流れで動いているのか分かるようになる
プログラミング習得は文系、理系、低学歴、年齢は関係ないことが分かる
具体的にプログラムを見ながら4つのエッセンスを理解し、プログラムが読める(書ける)きっかけを得ることができる
1. プログラムとは何か?
そもそもプログラムって何でしょう?
世の中は電子機器で溢れていますよね。
どこを見ても電子機器だらけ。
スマホはもちろん、テレビ、冷蔵庫、電子レンジ、掃除機、ATM、車などなど。
こういった電子機器には必ずプログラムが組み込まれています。
プログラムというのは、電子機器(ハードウェア)やソフトウェアをどういうタイミングでどう動かすのかを命令する役目です。
2. 電子機器のプログラムが動く流れ
では、電子機器に組み込まれているプログラムが実際に動く流れを見てみましょう。
一番シンプルなプログラムでいうと、スイッチです。
照明のリモコンを思い浮かべてみてください。
ON/OFFボタンを押すたびに電気がついたり消えたりしますよね。
あれは、ボタンが押されたタイミングで以下のような動きをします。
ON/OFFボタンが押された
今はON?OFF?
今がONならOFFという命令を返す。今がOFFならONという命令を返す
これだけです。
そして、リモコンはプログラムから返された命令通りに赤外線でON/OFFというデータを照明機器に送っておしまいです。
これはとても簡単な例ですが、要はINPUTとOUTPUTが分かれば、その途中の処理というのは日本語で考えてみるととても簡単です。
3. INPUTとOUTPUTとは?
INPUTというのは、今回の例でいくとON/OFFボタンが押されたというトリガー部分ですね。
OUTPUTというのは、プログラムが最後に電子機器に返すものは何か?ということなので、今回の例でいくと、ONまたはOFFを返すことです。
ボタンが押されて、ONまたはOFFを返すっていうことがわかれば、こんな思考になるかと思います。
INPUT:【ON/OFFボタンが押された】
「ON/OFFボタンが押されたってことはONかOFFにしたいんだな」
「じゃあ、まずは今がONなのか、OFFなのかを調べてあげるか」
「調べた結果、今がONだったらOFF、今がOFFだったらONを返すよ」
OUTPUT:【判定結果のONまたはOFFを返す】
こんな感じですね。
カギかっこで囲ったところをプログラミング言語で書いてあげれば出来上がりです。(あら、不思議。簡単ね。)
4. 結局、プログラミング言語で書くところがムズイんでしょ?
ここが本題ですね。
いきなりあいまいなことを書きますが、
簡単かムズイかはプログラミング言語によって違います。
おいおい(笑
冒頭に書いてあった誰でも簡単に習得できますってのとちょっと違うじゃないか!
と声が聞こえてきそうですが、これは事実なのであえて伝えておきました。
プログラミング言語というのはそれぞれ得意不得意があるんですね。
例えば・・・
◆C
得意なこと:
・OS、ゲーム、組み込み系
不得意なこと:
・WEB系システム
◆C#
得意なこと:
・WEB系システム、ゲーム、PCのデスクトップアプリケーション
不得意なこと:
・組み込み系
◆Java
得意なこと:
・WEB系システム、スマホアプリ
不得意なこと:
・組み込み系、PCのデスクトップアプリケーション
◆Python
得意なこと:
・AI、機会学習、SNS
不得意なこと:
・組み込み系、ゲーム、PCのデスクトップアプリケーション
プログラミング言語はいっぱいあるので、上記はほんの一例でしかありませんが、大体代表的なものを上げました。
あとは、ホームページを作るのが得意な言語にHTML、JavaScript、PHP、TypeScriptなんかもありますね。
要はですね、我々が使っている日本語とか英語とかと同じで、種類がいっぱいあって、それぞれに少しずつ文法が違って、得意な言い回しや不得意な言い回しがあるみたいな感じですね。
で、何の言語を使ったらいいのか?
それは何を作りたいかによって大体どの言語を使うのがベストなのかが絞られます。
これを押さえればOKです!
最初に書いた、言語によって簡単かムズイかが違うっていうのは、例えば今回の照明の例だと、組み込み系といって電子機器に組み込むプログラムということになるので、これをC#やJavaで書こうと思ったらムズイと思います。
なぜなら、電子機器を制御するためのライブラリが少ないか、もしくはないから。
C言語で書けば比較的楽に書けるでしょう。
5. 目的に合ったプログラミング言語を使えば習得は楽
みなさんはプログラムで何を作りたいですか?
ホームページを作りたいなら、HTML、JavaScriptなどを学ぶと良いでしょう。
スマホアプリを作りたいなら、IOSならSwift、AndroidならJavaもしくはC#を学ぶと良いでしょう。
といったように、目的をまず明らかにして、闇雲にプログラミング言語なら何でもいいからとにかく学びたい!っていうのはやめましょう。
間違った言語を選んでしまうと、「やっぱムズイやん!」ってなってしまいます。
あと、流行っているからといって何も考えずにPythonを勉強するのもやめましょう。
Pythonは特に得意な領域が限られています。
ということで、まとめとしてはプログラミングの思考自体は日本語で考えればOKなので、文系も理系も低学歴も年齢も関係ありません!
なんなら日本語でプログラミングできる言語も存在しますので、それで良ければすぐにプログラミングできます。
プログラミングをするにあたっての思考ができれば、あとはプログラミング言語に翻訳するだけなので、そこを少し勉強すればあっという間ですね。
さて、
少し興味が出てきたからプログラミングの本でも見てみるかなと思って、本にあるサンプルのコードを見て愕然・・(=_=)
なんやこれ、やっぱムズイやん!!呪文やん!!
って思うと思います。(思うんかい!)
そりゃそうです。
だって、日本語しかできない我々が韓国語で書かれた本を見て何が書いてあるかわかります?
わからないですよね?
当たり前です。
ただ、読める(書ける)ようになるにはコツがあるんです。
プログラミング言語に共通する4つのエッセンスを押さえれば読める(書ける)ようになります!
ここから先は有料になりますが、是非興味があれば見てみてください!
なるべくわかりやすくなるように、Microsoftが開発したC#と、子供のプログラミング学習でよく使用されるScratchを使って説明していきます。
サンプルのソースコードはすべてオリジナルです。
Scratchは日本語でプログラミングができますので、とっつきやすいと思います。
Scratchは以下から無料で誰でも利用できます。
https://scratch.mit.edu/
6. プログラミング言語に共通する4つのエッセンス
ここからは実際にプログラミング言語を使って、どこを押さえればプログラムが読める(書ける)ようになるのかを話していきます。
ここから先は