見出し画像

14歳からのプログラミング入門 「良いプログラム」と「上手いプログラム」

 プログラミングとは、コンピューターにやってほしいことを順番に、わかりやすく伝える技術です。

 料理で例えるなら、「まずタマネギをみじん切りにして、次に肉と炒めて・・・」というレシピを書く作業。コンピューターは賢いけれど、行間を読むことができません。

 だから、私たちは少しでも指示が曖昧だと、動かない、あるいは変な動きをする「バグ」という名のイタズラに悩まされるわけですね。


AIがいても、人間がプログラムを書く価値は消えない?

 「最近はAIがプログラムを書いてくれる時代になった。じゃあ、人間のプログラマーはもう要らないの?」

 これは誰もが持つ疑問でしょう。

 結論から言うと、答えは「断固としてNO」です。

 AIは、すでに存在する膨大なコードを学習して、速く正確なコードを「生成」することができます。
 まるで、手早く材料を揃えて調理してくれる優秀なロボットシェフのようです。

 しかし、AIが作ったプログラムが「本当に良いものか?」「この会社やユーザーが本当に求めているものか?」を判断して、調整し、そして未来への責任を持つのは、いつだって人間なのです。

 実はAIが書いたコードは、たまに「動くけれど、後から見ると意味不明」なものだったりします。
 AIは「どう動くか」は知っているのですが、「なぜそう動くべきか」という意図や心構えを持つことができません。


良いプログラムとは、未来の自分への「親切なメモ」

 では、プログラミング初心者のあなたにとって、「良いプログラム」とは何でしょう?

 「速く動くプログラム?」

 それも正解です。

 でも、もっと重要なことがあります。
 それは、「人間に優しいプログラム」であることです。

 プログラムは、一度書いたら終わりではありません。
 むしろ、書いた後のメンテナンスや機能追加のほうが圧倒的に時間がかかるのです。
 驚くかもしれませんが、プログラマーがコードを読む時間は、実際に書く時間の10倍以上だと言われています。

 これはあるプログラマーの話・・・

 複雑な処理をたった一行のコードで書いて「俺、天才!」と得意になっていました。
 しかしその三ヶ月後、そのコードにバグが見つかったのです。
 修正しようとコードを開いた瞬間、「え、これ誰が書いたの?」と真剣に悩むことに。
 そう、他でもない自分が書いたコードだったのです。
 暗号のようなその一行を理解するのには、何時間もかかったのでした。

 この逸話から得られる教訓。

 「良いプログラム」とは、半年後の自分、あるいは初めてそのコードを見た人が、
  「ああ、なるほど!」
とすぐに理解できるプログラムなのです。
 たとえば散らかった物置ではなく、棚にきちんとラベルが貼られた整理整頓された図書館のようなもの。

 逆に「下手なプログラム」とは、動きはするけれど、無駄な回り道をしていたり、やたらと複雑に書かれていたりして、読み手に余計なストレスをかけるプログラムのことを言うのですね。


プログラムを書く「コツ」

 プログラムを書く「コツ」を、一つ教えましょう。

  「分解」と「シンプルさ」を愛せ

 複雑な問題に直面したら、いきなり全部を解決しようとしないでください。
 それは、巨大なピザを丸ごと食べようとするようなものです。

 「問題を小さなピースに分解する」こと、これがプロのテクニックです。

 たとえば、「オンラインゲームを作る」という大きな課題があったら、「キャラクターを動かす」「敵を出現させる」「得点を計算する」という小さなタスクに分解して、一つずつ確実にクリアしていくのです。

 また、コードは「シンプル」であるほど良いとされています。

 これは、「誰が見てもわかりやすい」という意味。
 自分の書いたコードでも、数ヶ月後に読み返すと「他人」の書いたもののように感じられます。
 そのとき、「あのときの自分、よくやった!」と思えるように、簡潔で、きれいな整理されたコードを書くことを心がけましょう。


プログラムを書く際の心構え

 プログラミングを学ぶ上で、一番大切な心構えを教えましょう。

 それは、「共感力」と「諦めない粘り強さ」です。

 コードを書くことは、コミュニケーションそのものです。
 相手はコンピューターだけではなく、未来の自分、そして一緒に働く誰かです。

(1)読者への共感(未来の自分へ優しく)
  難しい処理の前には、「ここから3つのデータを組み合わせるぞ!」といったシンプルなコメントを添えましょう。
  これは、未来のあなたへの「親切なメモ」であり、プログラムを後から修正する際の救命具になります。

(2)コンピューターへの共感(分割して考える)
  大きな問題にぶつかったら、全体をいきなり解決しようとはせず、小さなパーツに分けましょう。
  料理でも、まずは野菜を切る、次に煮込む、と工程を分けますよね。これを「モジュール化」と言います。
  一つ一つ動くことを確認しながら進めるのが、プログラムを速く書くコツです。

(3)失敗を笑うユーモア
  プログラミングにバグはつきものです。
  バグはあなたの敵ではなく、プログラムの成長を教えてくれる先生です。
  エラーが出ても、「またこいつか!」と笑い飛ばせるくらいの心の余裕を持つことが、長くプログラミングを楽しむ秘訣なのです。


さあ、何から始めましょうか?

 難しいことは考えず、「とにかく書いてみる」ことから始めてみましょう。

 お手本となるプログラムをマネしてみるのもよいでしょう。

 プログラミングは、単なる技術ではなく、世界をあなたの視点から再構築する力です。
 あなたが持っている「こんなものがあったらいいのに」というアイデア。
 それを実現するための「魔法のレシピ」を、今、あなた自身の指で書き始めることができるのです。

 さあ、恐れずに、デジタルの海への最初のダイブをしてみませんか。

 その一歩が、きっとあなたの未来を変える大きな冒険の始まりとなることでしょう。



【参考】「良いプログラム」と「上手いプログラム」の違い
 プログラミングの世界には、「良いプログラム」と「上手いプログラム」という、ちょっとしたニュアンスの違いがあります。

・良いプログラム
 ・バグがない(正確に動く)
 ・誰が見てもわかりやすい(読みやすい)
 ・メンテナンスしやすい(後から修正しやすい)
 ・セキュリティがしっかりしている

・上手いプログラム
 ・動作が速い(コンピューターの負担が少ない)
 ・メモリ(記憶領域)の使い方が効率的
 ・洗練されたテクニックが使われている

 つまり、「良いプログラム」は「礼儀正しくて、責任感のある人間」のようなもの。誰からも歓迎されます。
 一方、「上手いプログラム」は「足の速いアスリート」のようなもの。効率的で目覚ましい結果を出します。




書籍の紹介

アメリカの中学生が学んでいる 14歳からのプログラミング Kindle版
 ワークマンパブリッシング (著), 千葉 敏生 (翻訳)
 ダイヤモンド社; 第1版 (2022/3/8)
 「クラスでいちばん頭のいい同級生」が貸してくれた「オールカラーのイラスト&手書きノート式のデザイン」で、とんでもなくわかりやすくておもしろい!
 はじめてプログラミングを学ぶ人も
 これまでプログラミングでつまづいた人も
 これ1冊で一生使えるスキルが身につく!
( ※ 書籍の解説等は原則としてリンク先(Amazon)における解説をベースに記載しています。詳細内容はリンク先を参照願います。)

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

プログラミング入門講座――基本と思考法と重要事項がきちんと学べる授業 Kindle版
 米田 昌悟 (著)
 SBクリエイティブ (2016/9/27)
 なぜ、世界中の成功者はプログラミングの基本を学んでいるのか。その答えと、具体的な学び方が一冊に!
 世界中で2億人以上が夢中になった学び方!
 バラク・オバマ(アメリカ大統領)、ビル・ゲイツ(Microsoft創業者)、
 マーク・ザッカーバーグ(Facebook創業者)らも賛同した、
 「世界最良の学習メソッド」を徹底紹介!
( ※ 書籍の解説等は原則としてリンク先(Amazon)における解説をベースに記載しています。詳細内容はリンク先を参照願います。)

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-


いいなと思ったら応援しよう!

Tom.Msn よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!