なぜプログラミングができたほうがいいかといえば、ずばり「コンピュータのことをよく知ることができるから」、この一言につきるでしょう。
皆さんには、MacやiPhoneなどのコンピュータがない生活なんてもう考えられないですよね? そうじゃなくてもコンピュータはとても気になる存在に違いありません。そんな身近な存在のことを、もっと詳しく知りたくないですか?
コンピュータを知るために一番いいのがプログラミング言語を学ぶことなのです。日本語を話さない外国の人と仲良くなりたかったら、その人の母国語を学習します。それと同じで、プログラミング言語はコンピュータの言語なわけですから、それができるようになればコンピュータと仲良くなれるのです。
え? コンピュータはゼロとイチだけの2進数で話すんですよね、そんなの私にはわかりませんって? 安心してください。あとでも出てきますが、コンピュータの話す言葉(マシン語)そのものはさすがに難しすぎるので、専門のプログラマーもそれをそのまま扱っているわけではありません。マシン語を人間にもわかるようにかなり簡単にしたCやJavaなどのプログラミング言語を学習するのが一般的です。
この特集では、コンピュータとプログラミングの関係をひもときながら、プログラミングの基礎的な概念、プログラムの構造、プログラミング言語の種類について順を追って解説していきます。最後には、どうやってプログラミング言語に入門したらよいかも紹介します。
それでは、まず最初、プログラミングを学んでコンピュータのことをよく知るとどんないいことがあるのでしょうか?
1 コンピュータとよりうまく付き合えるようになる
普段からMacやiPhoneを使っている皆さんは、そこにインストールされているソフトやアプリを使っていることと思います。それらを使いこなせば使いこなすほど、コンピュータを「よく使えている」と思っていませんか? でも、ソフトやアプリを使いこなせるからといって、コンピュータを使いこなしているわけではありません。コンピュータを深く知るからこそできる、「もっとうまい付き合い方」があるんです。
たとえば、コンピュータを使っているとたびたび「困ったこと」が起こります。1日使っていたMacが急に遅くなってファイルもなかなか開けない、なんてことがありますよね。そんなとき、プログラミングの知識がある人だったら、まずメモリ容量が足りているかを疑います。メモリが足りなくなると代わりにストレージ(HDDまたはSSD)が使われますが、ストレージはメモリよりも読み込み/書き込みが遅く、Mac自体の動きが重くなることがあるからです。プログラミングを学ぶことは、コンピュータのしくみを学ぶことでもあるので、こういったトラブルに強くなることができます。
トラブル以外でも、一般のソフトやアプリではフォローしないような「ちょっとしたこと」、たとえば連絡帳の中から仕事関係の人だけを抜き出してリストにする、なんてこともプログラミングができればよりうまくこなせるようになります。「正規表現」という技を使って、名前に「株式」が含まれるものを抜き出せばよいのです。もちろん、この例はExcelのようなソフトでもできますが、「株式会社マイナビ出版」はいいけど「マイナビ出版株式会社」はダメ、というような細かいところまでフォローできるのがプログラミング言語の柔軟なところです。
2 問題解決の考え方を知ることができる
コンピュータのプログラムは、「なんとなく」書いても動くものではありません。思ったとおりに動かすためには、それを噛み砕いて、どんなものを対象にしているのか(データ構造)を明確にし、どうやって順序立てて処理するか(アルゴリズム)をしっかり考えなくてはいけません。
プログラミングをすることは物事を明確に考えるという頭の訓練になるので、プログラミング以外の問題解決にも応用が効くといわれています。
近年重要視されている「ロジカルシンキング(論理的思考)」や「クリティカルシンキング(批判的思考)」とも重なる部分がたくさんあります。自分の考えを論理的にコンピュータに伝えることがプログラミングであるともいえますし、エラーをデバッグ(欠陥を見つけて修正すること)しながら、「どうしてなんだろう?」と自問自答してプログラムを作る過程は批判精神につながるでしょう。
3 スピードの時代に適合した思考法が身につく
現代の仕事では、トライ&エラーを繰り返し、正しいやり方を素早く見つけるのがよいとされるようになってきました。慎重に準備してできるだけミスがないように、というやり方ではスピードが追いつかないのです。社会が進歩して、ミスやエラーをしてもペナルティが少なくなったというのもあります(太古の狩猟生活では、猛獣相手にミスをしたらガブリとやられてひとたまりもありませんでした)。
この、「トライ&エラーを素早く繰り返す」というのはまさにプログラマーのやり方なのです。たとえば1000行のプログラムを組むとき、1000行書いてから動かす、というのはまずしません。まずは10行のプログラムを書いて動かし、そのとき出るエラーを直す、というのを何度も何度も繰り返します。そうやって複雑なプログラムを組んでいきます。ミスが出るのは当たり前、エラーは自分の間違いを正してくれるとてもありがたい存在なのです。
ここにあるのは最初から大きな正解を求めず、とりえあずやってみるという精神です。どうです、プログラミングをしたくなってきませんか?
Appleが唱える“Everyone Can Code”
Appleも、“Everyone Can Code”という標語のもと、プログラミングの普及に取り組んでいます。最近では、macOS、iOSでのソフト/アプリ開発用の言語「Swift(スウィフト)」を学ぶためのツール「Swift Playgrounds(スウィフトプレイグラウンズ)」をリリースしたことが話題になりました。
2020年から小学校にもプログラミング学習が取り入れられることが決定しましたが、プログラミングがこれほど注目されるようになったのはスマートフォンが普及し、アプリが身近なものになったということも大きいでしょう。アプリの製作者=プログラマーが、一躍脚光を浴びるようになったのです。
そしてこの潮流を作ったのが、2007年にiPhoneを発売し、2008年にApp Store(アップストア)をスタートさせたAppleであることは、周知の事実でしょう。
Appleの公式WEBサイトにある「Everyone Can Code」のページ。Appleはコーディング(プログラミング)について、「なくてはならないスキル」「世界を変えることのできる何かを作るチャンス」とその重要性を訴えています。【URL】https://www.apple.com/jp/everyone-can-code/