>RSSIT技術を日常生活で活かそうプログラマ、テスター、SE、PMなど、いろいろやってるオヤジです。2018/05/15プログラミングとアマグラミングはどこが違うの?プロが行うプログラミングとアマチュアのプログラミング(以後、アマグラミング)はどこが違うと思いますか?例えば簡単な自動販売機のプログラムを作る例を考えてみます。全部130円のジュースで千円札が使える自販機だとするとこんな感じの処理を思いつくのではないでしょうか。円をお釣りとして出すジュースのボタンを押す前にキャンセルボタンが押されたら、入れたお金をそのまま返すジュースの在庫がなくなったら、「売り切れ」の表示を出してそのジュースのボタンを無効にする自販機内の小銭の合計が870円未満になったら「釣銭切れ」の表示を出して千円札を受け付けないようにするでもこれだけでは不十分です。レアケースですがお客を怒らせてしまうこともあり得ます。グラミングプロが作るプログラムは、レアケースも含めてあらゆるケースを考慮します。それを確認するために、テスト工程に多大な時間を費用をかけています。これがプログラミングとアマグラミングの大きな違いだと私は思っています。アマグラミングではレアケースまで考えることは少ないのではないでしょうか。レアケース用のテストなんかしないでしょう。起こる可能性が低いことに労力を使いたいとは思わないからです。モノづくりは作り上げるときが楽しいのであって、レアケースの異常まで考えて対応することは楽しくもありません。プロのプログラミングだと、高い品質を要求されるプログラムであればあるほど、レアケースを考慮し、テスト工程に時間とお金をかけます。不具合が起こらないようにコーディング規約などが細かく決められます。それが行き過ぎると「こんなテスト本当に必要なんだろうか?」「この規約って意味がないんじゃないの?」と思うようになってしまいます。なってくるともはやプログラミングは楽しいものではなくなってしまいます。楽しみたいならプロにはなるな!プロのスポーツ選手の場合、好きで始めたスポーツなのに、プロになると勝つことが仕事になるのでときには姑息な手も使わなくてはいけなくなります。体を壊してまで戦わなくてはいけなかったりします。好きだったはずのそのスポーツが辛いものに思えることがあります。スポーツを楽しみたいならプロ選手にならないほうがいい。趣味で続けるほうが楽しめる。プログラマーもスポーツ選手と似たところがあります。プログラミングを楽しみたいのなら、プロのプログラマーにならずに趣味のアマグラマーでいたほうがいいかもしれません。近くにプログラマーになりたいという人がいましたら、プログラミングとアマグラミングの違いを説明してあげるといいのではないでしょうか。それでもプログラマーになりたいという覚悟を持った人だけにプロの世界に入って来てほしいものです。そんなことを言っていると誰も来ないかもしれませんが。※自販機の不具合の事例はこちらに書いてあります。11:52趣味の中でお金がもらえなかったのは歌と楽器演奏くらいでした。自分は楽しくないことは仕事にしないというつまらない信念を貫いてしまったのでした。思い起こせばプログラマになったのも、金を払うから作ってほしいと言われたからでした。ところで、海外では子供でも知っている話なのですが、日本ではなぜかあまりメジャーでない問いに「象を冷蔵庫に入れる方法」を考えろというのがあります。(1)冷蔵庫の扉をあける。