第1回 はじめてのプログラミング教室|Tech Book Zone Manatee

マナティ

大人のためのやさしいプログラミング教室体験記

第1回 はじめてのプログラミング教室

この連載では、プログラミングの経験が全くない方でもわかるように、プログラミングの学び方を説明していきます。
仕事でプログラミングをどうしても覚える必要がある方、最近流行りのプログラムに興味はあるけど何をするものか全くわからない方、近い将来必須科目になるプログラムを子供に習わせたいけど親である自分がプログラムが何なのかわからなくて不安な方など、そんな方でも気軽に読んでいただける連載です。
みなさんもプログラム初心者のMさんと一緒にプログラミングに触れてみてください。

さて、本連載の主人公であるMさんが、上司と何か話しています。Mさんは会社で突然システム開発の部署に異動になってしまい、その上、上司にプログラミングを命じられて困っているようです。

 

 

●突然、プログラミングをやることに…!?


無理、無理、無理、無理。不可能です!
社内で必要と言われても…無理なんです。

プログラミングなんて私には難しすぎます。
お断りさせていただいていいですか?
 

そういわれても、
もう決まったことだしねぇ。
わが社としても、Mさんにやってもらうしかないんだよ。
 

えー、そんな!
無理です。本当です。無理なんです!
 

そうだ!僕の知り合いが、プログラミング教室をやっていたな。
こどもから大人まで、プログラミングが好きになるって言ってたなー。
ここに行ってみたら?
きっとプログラミングが好きになるかもしれないよ。
それでもダメだったら…、その時は仕方がないね。
 

え?ここに、行けば変わる?
わかりました。そこに行ってもダメだったらあきらめてくださるんですね。

わかりました。それなら、行ってまいります!
 

というわけで、Mさんは、泣く泣くプログラミング教室に行くことになりました。

●はじめてのプログラミング教室


こんにちは、Mさん。こちらこそよろしくお願いします。
ところでMさんは、プログラミング経験はありますか?
 

実は、とっても苦手なんです。
今まで何度も挑戦したのですが、挫折してきたんです。
でも、会社でシステム開発に配属されて、
どうしてもやらないといけないみたいなんです!

それで、ここに駆け込んできたんです。
こんな私でもプログラミングができるようになりますか?
 

そうですか。それは大変ですね。
でも、大丈夫ですよ。
きっとできるようになりますよ。

ホントですか。
不安だなー。

とりあえず、「プログラミングゼミ」という学習用アプリをやってみましょう。
このサイトから無料でダウンロードできますよ。
https://programmingzemi.com/
今回は、あらかじめインストールしてある教室のPCを使いましょうね。
はいっ、この画面ですよー。
 


これって、こども向けの教材ですよね (-_-;)
こんなので本当に大丈夫なんですか?
 

大丈夫、大丈夫。ほら、とりあえずやってみましょう。
こうやってブロックをつなげて、「そらもん」を動かしてみてください。

そうですか。では、だまされたと思ってやってみますね。
 

 

 

楽しくやってるじゃないですか。
どうですか?
 
自分の思い通りに動くのは楽しいけど、
まだ、プログラミングしているというより、
遊んでいるという感覚ですね。
 
いいですね。その「楽しい」という感覚が大切なんです。
でも、実は楽しんでいる間に、
プログラミングの最初の基礎がすでに身に付いているんですよ!
 
えっ。まだ何も分かってないんですけど。
 

●「順次処理」ってなあに?

今、ブロックを順番につなぎましたね。
これが「順次処理」という処理の仕方なんです。
 
順次処理?
 
そう、順次処理。
Mさんは、スマホを操作するとき、
使いたいアプリのアイコンをタップしますね。
 
はい。
同じアイコンをタップしたとき、いつも同じ動作を期待しますよね。
 
そりゃそうですね。
 
もし、同じアイコンをタップしても、毎回違う動作をしたらどうですか?
 
それは困ります!
 
そうですよね。
では、アイコンをタップしたときに、いつも同じ動作をするように、
プログラマーは何をしていると思いますか?
 
その動作をあらかじめ書いておくんですか?
 
その通りです。
そして、動作は、順番に記述する必要がありますね。
具体的には
「アイコンがタップされたら、アプリを起動する」
という順番で記述されているんですね。
それが「順次処理」なんです。
 
なるほど。
 
今回は、キャラの動かし方を順番に決めましたが、
実際のプログラミングでは、PCやスマホの動かし方を順番に決めておくんです。
順番を間違うと、とんでもないことになるんですよ。
 
そうなんですか。
でも、あまりピンとこないなー。
 
そうだなー、例えば…、
スマホで、銀行のアプリを使ったことはありますか?
 
はい、いつも使ってます。
 
アプリを起動したとき、
どんな順番でアプリが動くか説明してもらってもいいですか?
 
ログイン時にアカウントとパスワードを求められます。
それから、残高照会や振り込みができるようになりますね。
 
そですよね。でも、もし、あるとき順番が変わって、
パスワードが求められる前に振り込みができる画面になったとしたらどうですか?
 
あっ。
パスワードを知らない誰かに、操作されてしまう可能性がありますね。
確かに、順番は大切ですね。
 
そうなんです。
もちろん、銀行アプリには、もっと裏でたくさんの動作をしていますが、
基本になるのは「順次処理」です。
会社で使うプログラミング言語でも、この順次処理をマスターして、
プログラムの流れ(フロー)をしっかり組み立てることが大切になります。
 
分かりました。
 

●プログラミングの考え方はどんな言語でも同じ

今回使っている「プログラミングゼミ」はプログラムを英語などの文字ではなく、
視覚的なブロックでプログラムするので、ビジュアルプログラミングと呼ばれています。
このビジュアルプログラミングでも、
会社で使っているJavaやPythonなどのテキストプログラミング言語でも、
考え方の基本は同じです。
ですから、まず、「プログラミングゼミ」で、
プログラミングの基礎と枠組みを学びましょう。
 
大切なのは分かりました。
でも、こんなこども用のアプリで勉強することで、
本当に会社で使っているテキストプログラミング言語まで使いこなすことができるんですか?
 
いい質問ですね。
もちろん、それぞれの言語の文法や用語は学ぶ必要がありますが、
根底に流れる論理的思考力は、プログラミングゼミで十分身につくんですよ。
言語よりも、プログラミングの枠組みを理解することが大事なんですね!

例えば、プログラミングゼミで、こんな名簿入力プログラムも可能ですよ。
これはユーザーが見る画面ですね。
 

ちなみに、実際のプログラムは、こんなふうになってますよ。
 

へぇーっ。こんなものまでできるんですねー。
何か意外ですね。
そして、プログラムも、そんなに複雑ではないですね。
なんか、やる気が湧いてきました。
 
それは良かった。何か、他に聞きたいことはありますか?
 
うーん。順次処理以外に、大切な枠組みはありますか?
 
プログラミングの大枠は、「順次処理」、「繰り返し」、「条件分岐」です。
そのほかに使うツールが「メッセージ」、「引数」、「変数」などです。
あと、データの入出力なども必要ですね。
次号以降の記事ではこの内容が掲載されますよ。
 
そんなに覚えないといけないんですね。
なんか大変そう。
 
そんな顔しないで。
大丈夫ですよ。
ほら、プログラミングゼミには、
それらすべてが簡単に使えるように用意されていますから。
 

へぇー。
これなら楽しく学べそうですね。
 
そう思いますよ。
プログラミング言語は、これからどんどん変化しながら進化し続けると思います。
だからこそ、一つのプログラミング言語にこだわることなく、
プログラミング全体の枠組みをこの「プログラミングゼミ」で学ぶのは、
非常に大切なことなんです。
プログラミング的な考え方を身に着けて、
どんな時代になっても対応できるようになるのがいいと思います。
では、これから実際にやってみましょうか?
 
はいっ!


Mさんは少しプログラミングに対する抵抗感がなくなってきたようですね。
今回は順次処理というプログラミングの一番基本的な書き方を学びました。
次号ではパズルゲームで奥深いプログラミングを学びます。
Mさんがどんなふうに成長していくか、どうぞ楽しみにしていてください。

著者プロフィール

特定非営利活動法人 ロジカ・アカデミー 理事長 関 愛(著者)
中学生の頃からプログラミングを独学し,18歳の時に北海道の田舎町でシステムエンジニアとして起業。19歳で情報処理推進機構(IPA)から「天才プログラマー/スーパークリエータ」の認定を受ける。23歳の時に新入社員研修講師として活動を開始し,Yahoo! JAPAN,UFJ銀行,日本生命をはじめとする大手企業で1,000名以上の現役プログラマーを育成してきた。33歳で特定非営利活動法人ロジカ・アカデミーを設立し,理事長に就任。
現在は「すべての人に生きる力を授けるプログラミング教育」をコンセプトとした「ロジカ式」教材の開発を指揮する傍ら,プログラミング教育の普及と講師育成を中心とした活動に携わっている。
著者ホームページ:https://logica.academy