芋出し画像

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)
 なぜ、䞖界䞭の成功者はプログラミングの基本を孊んでいるのか。その答えず、具䜓的な孊び方が䞀冊に
 䞖界䞭で億人以䞊が倢䞭になった孊び方
 バラク・オバマアメリカ倧統領、ビル・ゲむツMicrosoft創業者、
 マヌク・ザッカヌバヌグFacebook創業者らも賛同した、
 「䞖界最良の孊習メ゜ッド」を培底玹介
 ※ 曞籍の解説等は原則ずしおリンク先Amazonにおける解説をベヌスに蚘茉しおいたす。詳现内容はリンク先を参照願いたす。

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


いいなず思ったら応揎しよう

Tom.Msn よろしければ応揎お願いしたす いただいたチップはクリ゚むタヌずしおの掻動費に䜿わせおいただきたす