こんにちは、とーくん(@token_at)です。
この記事では、
プログラミング本やブログに書いている意味はわかるんだけどね。そう、理解はできるんだよ。でもね、自分で書こうと思うとかけないんだ。どうすればいい?
という悩みにお答えしていきたいと思います。
私がプログラミングを独学したのは学生時代。今から20数年前・・・。
当時の私もプログラミングの本は読むもののなかなか自分でプログラムを書くことができませんでした。
同じような悩みを持ったあなたへ、
「プログラム本を理解した」
↓
「プログラミングできる」
状態にどうすれば効率的に持っていけるかをアドバイスしていこうと思います。
早速行きましょう。
結論:完成品をぶっ壊せ!
今の私が20数年前の私にアドバイスするとしたら、この一言ですね。
「完成品をぶっ壊せ!」
はい。ちょっと過激な結論ですね。具体的に説明していきましょう。
プログラム言語の本を読んで理解したは理解度20%
そもそものお話なんですが、初心者の方がプログラミングの本を読んで理解したと言っている場合、プログラム経験者から見ると理解度は20%くらいかなと判断しています。
まあ、はっきり言ってしまうと、まだ分かってない、ということです。
「理解した」のと、「自分で書ける」にはそれくらいギャップがあると思ったほうがいいですね。
これ、英語学習とも似てるんです。「読める」けど、「話せない」って、言ったことないですか?そもそも「英語は読めないよ!」って?・・・勉強しましょう(笑)
英語を話せない私が言うと余計説得力ないかもしれませんが、話してなんぼ、書いてなんぼ、の世界なんです。
サンプルプログラムの使い方が間違っている
プログラミングの書籍にはサンプルプログラムがついてくると思います。動画やブログでもサンプルプログラムが提供されていることも多いでしょう。
このサンプルプログラム、どうしていますか?
まさか、動かして終わり・・・ですか?
サンプルプログラムは、教科書どおりに動かして、「確かに動くね。なるほど。」で終わらしちゃだめですよ。
それは最初の一歩ではありますが、ここからが大事。
サンプルプログラムは改造してこそ意味がある!
なぜサンプルプログラムを改造する必要があるのか?
実際のシステム開発の現場での話をしましょう。
わかりやすい具体例として、
ドラッグ&ドロップでファイルをアップロードする機能をこの画面に追加してほしい。
という要望があったとします。
ファイルアップロードは今やどのサイトでも見かける機能なので、悩まず作れる方は多いと思いますが、大抵はすぐにググります。
で、基本の典型的なサンプルプログラムを見つけてきて、開発中システムの仕様にあわせて改造していきます。
もちろん、どのサイトからどのサンプルプログラムを持ってくるか。この選定は場合によっては、かなり重要なんですが、ここでは一旦おいておきましょう。
- アップロードできるファイル形式をjpg形式に限定したり。
- 2MB以下のファイルのみアップロードできるように制限をかけたり。
- チェックボックスにチェックしているときだけ、アップロードできるようにしたり。
わかります?
何が言いたいかと言うと、サンプルプログラムを改造することは、システム開発の現場を擬似体験するようなものなんですね。
もう一度いいます。完成品をぶっ壊せ!
勉強中のサンプルプログラムは壊しても誰にも文句を言われません。
色を変えてみる。大きさを変えてみる。出力する文字を大文字の英字にしてみる。太字にしてみる。
最初はわかりやすいデザイン的な改造でもいいでしょう。
その後は、
読み込ませる文字列を変えてみる。別の形式のファイルをアップロードして、違う処理を作ってみる。
徐々に、システム的な改造を施していくのもよいでしょう。
「こんな風に変えてみたら面白いかも。」と想像力を使えると最高ですね。
その単元の学習目的とずれても問題ありません。どんどん試行錯誤して改造魔になりましょう。
気がつけば、どんな現場でもどんな機能でもプログラミングできる対応力が身についていると思いますよ。
まとめ
学生時代の間にJavaは少し書けるようになっていましたが、新人研修でJavaを学習しました。
このときも、学んだ知識を活かして、研修期間中に同期の顔写真を大砲の弾に見立ててボタンを押すと発射する、というくだらないアプリを作った記憶がありますね。
こんなくだらないことでもいいわけですよ。
こんなふうにしたら便利かも。こんなふうにしたら面白いかも。こんなふうにしたら自分でも使いたいかも。
そんな想像を含ませながら、サンプルプログラムをガシガシ改造してみてください!
「理解した」が「自分で書ける」に変わっているはずです!
関連記事