【#14 プログラミング初心者向け】つくりたいアプリがない方への処方せん
こんにちは。
Step App Schoolの小林です。
プログラミングを始めて2〜3カ月くらいするとぶつかる壁「つくりたいアプリ(ソフトウェア)が思いつかない」方に向けて、対処法を書こうと思います。
1.つくりたいアプリなんてある訳がない
プログラミングスクールなどに通ってしばらくすると、メンターさんや先生から「基礎は固まったから、あとは好きなアプリ(ソフトウェア)を作ったらいいよ」と言われます。私も最初に通ったスクールから2週間ほどで言われました。これがけっこう困ります。1割くらいの方は「こういうのがつくりたい!」という目標が明確にありますが、肌感覚で4割くらいの人は「特につくりたいものがない」と言います(ちなみに残りの5割はプログラミングから脱落します)。まず、大半の方はつくりたいものがないと理解してください。
プログラミングスクールでメンターや先生役をしている人や独学でプログラミングをしている人の大半は「これをつくりたい!」というのが明確です。動機がはっきりしているので、これまでプログラミングを続けて来れたのだと思います。なので、つくりたいアプリがない人の気持ちはわからないと思います。自分が少し上の立場で、かつ、相手の気持ちが理解できないときに言う定型文がこれです。
「なんで学ぼうと思ったの?目的なくやってても上達しないよ」
「つくり方は教えたでしょ? なんでやらないの?」
余計なお世話ですね。それだけじゃなくて、受講生に“プログラミングが上達しない呪い”がかかってしまいます。
サンプルコードを「写経」して、文法を勉強したところで、つくりたいアプリなんてできるわけがないんですよ。その理由を説明します。
2.アプリをつくるとき理解すべき3つのこと
突然ですが、料理はつくれますか? どんなに料理をしてない人でも、包丁は握ったことあるだろうし、カレーくらいはつくれると思います。では「好きなラトビア料理を作ってみてください」と言われたら、どう答えますか?
バルト三国に造詣が深くない限り「ラトビア料理を知らないから作れない」と答えるでしょう。それに対し「道具の使い方教えたじゃん」「もっと頑張った方がいいよ」という人がいたらどう思いますか? 口には出しませんが、だいたいは「サイコ◯スか、こいつは」と思うでしょう。
何かをつくろうとしたとき、実は「手順」「道具の使い方」がわかっているだけではできません。それに加えて「完成品のイメージ(難易度)」を理解している必要があります。
プログラミングスクールで、手順(テキスト)と道具(Swiftで言うところのXcodeの使い方や文法など)の使い方は教えてもらっても、完成形をイメージできないものは作れません。完成形をイメージするとは、その難易度も含みます。パズドラをやったことあるからといって、それに似たゲームをすぐにつくれるかというと違うのと同じです。
3.やりこまないと完成品のイメージはつかめない
まだ子どもたちが小さいころに「お父さんが何かおやつをつくるから、食べたいもの言ってね。ただし、家にある材料でつくれるものだよ」と言いました。子どもたちはあれこれ相談して、出してきた答えが「こんぺいとう」でした。
こんぺいとうのつくり方を知っている人ならわかると思いますが、大釜に核となる砂糖の粒を投入します。大釜を回転させながら、溶けた砂糖の液体を回しかけて水分を飛ばします。こうやって何時間も作業することでこんぺいとうが完成します。一般的な家庭ではつくれません。ところが子どもたちはそれをしらないので「砂糖だけでできているから、かんたんにつくれるだろう」と思っていたのです。完成形をイメージできるとは、その手順を含めてロードマップをすぐに描けるということです。
プログラミングも同じです。たとえば、ランニングのアプリで、自分が歩いた道を地図上にトレースしていくものがたくさんあります。つくるのはそれほど難しくなさそうですが、初心者には難しいプログラミングをする必要があります。逆に初心者にとっては地図そのものをつくる方が、骨が折れそうな気がしますが、逆に地図アプリはコードを1行も書かなくても15分でつくれます。この違いは、ある程度プログラミングをやっていないとわかりません。
超初心者は、実はつくりたいアプリがあっても、その難易度が高いのか低いのかわからないし、経験不足から自分の身の丈に合ったアプリが何なのか選べません。だから「つくりたいアプリがない」という発言につながるのです。
4.つくりたいアプリがない場合の対処法
ある程度サンプルコードを写経して、文法を勉強したのに、つくりたいアプリがない方は意外に多いです。そういったことに悩んでいる方は、次のとおり進めてみてください。
まず、アプリを50本つくってください。サンプルコードを写すだけでもかまいません。とにかく数をこなしましょう。たくさんの写経をすることで、完成形のイメージがわきやすくなります。「けっこう写経したよ?」という方でも20本くらいだったりします。もう1周やってみましょう。すると40本になります。最初は、質はともかく量です。量をこなさないと質は上がりません。
次に、書いたコードの組み合わせで、すごく難易度の低いアプリをつくってみてください。「音を鳴らすプログラム」と「画像を切り替えるプログラム」の2つを学んだのであれば、それらを組み合わせてアプリを1つつくってみてください。
あたりまえですが、シチューとパンのつくり方を覚えた人が、ロールケーキをつくろうとしてもうまくいきません。学んだことを組み合わせて、できるだけ難易度の低いアプリ開発からチャレンジすることが大事です。このたとえで言えば、パンシチューをつくってみましょう。
5.まとめ:50本アプリ写経+簡単なものをつくる
プログラミングを学び始めて「つくりたいアプリがない」となったら、ひとまずサンプルコードを写すだけの「写経」を50本ほどやりましょう。それから、その50本にある機能を組み合わせてできる、もっとも簡単なアプリをつくってみましょう。それが10本くらいたまったら、自分の中で何かが芽生えてきます。それが一段階ステップアップした証拠だと思います。
上達する秘訣があるとしたら、楽しんでやることですね。私は単純で「おー、これでうごいた!」というだけでうれしかったりします。小さなことでも「ひとりでこれをうごかせたのはすごい!」と自分で自分を褒めながら進めていくといいと思います。
わたしがいるプログラミングスクールです。
もしよければ、これまでの記事もご覧ください。
【#1 プログラミングの準備】
【#2 背景変換アプリ】カンタンなコードを書いてみよう
【#3 背景変換アプリ】プログラムの中身を理解してみよう
【#4 Swift iPhoneアプリをつくる流れを理解しよう】
【#5 画像切替アプリ】お気に入りの写真を表示しよう
【#6 画像切替アプリ】コードの内容を理解してみよう
【#7 iPhoneアプリ開発でよく出るエラーをつぶそう!】
【#8 音をならすアプリ・前編】素材を自分で集めよう!
【#9 音をならすアプリ・後編】コードを書いてみよう!
【#10 音をならすアプリ】コードの中身を理解しよう!
【#11 Xcodeの整列・制約を理解しよう】
【#12 プログラミングが上達しないたった1つの理由】
【#13 「この歳プログラミングなんて遅すぎる」という人は◯◯が間違っています】
馬券が当たった方、宝くじを当てた方はお願いします。