ユーニックス総合研究所

  • home
  • archives
  • programming-omoshiroi

プログラミングは面白い。そして美しい

プログラミングは面白くて美しい

プログラミング。
最近流行ってますよね。

私はプログラミングを15年以上続けています。
そこで思うのですが、プログラミングは面白いです。
そして美しい。

なぜそんなことが言えるのか興味ありませんか?
この記事でじっくり解説しますね。

関連記事

魔法の壺、プログラミングのライブラリ(Library)とは
頭悪い人にプログラミングは可能か?可能です
開発を3倍速にするプログラミングの考え方4つ
英語できないけどプログラミングはしたい。そんな人はこの方法がおすすめです
意味のないプログラミングの特徴3つ

プログラミングのどこが面白いか?

はたしてプログラミングのどこか面白いのでしょうか?
これは結論を言うと↓の通りです。

  • 自動化が面白い
  • 問題解決が面白い
  • 設計が面白い
  • ユーザーからの反応が面白い
  • ソフトウェアを販売するのが面白い

これらの面白さについて具体的に解説していきます。

自動化が面白い

プログラミングは作業などを自動化できます。
そして作業を自動化すると大幅に仕事を減らすことができる。

  • プログラミングで自動化して仕事を減らせる

この自動化はプログラミングのだいご味です。
自分の仕事がプログラミングで減る。
そして代わりに使える時間が増える。

このことに面白さを感じるのは万人共通だと思います。
自分の仕事が自動化できるなら、それはとても嬉しいことですよね。

問題解決が面白い

プログラミングは問題を解決するのが仕事です。
そして問題の解決する手順は自分の頭で考える必要があります。

問題をいろいろな目線で見て、そして分析。
そしてその解決方法をコードに起こして問題を解決する。

こういった問題解決はゲームに似ています。
ゲームのステージをクリアしていく感覚です。

  • 問題解決はゲーム感覚

問題解決が面白い。
というのはゲームに通ずるところがあるからですね。

設計が面白い

プログラミングではソフトウェアの設計をすることも。
ソフトウェアの設計はアーキテクチャの選択やデザインパターンの使用などがあります。

こういった設計を行うのはプログラミングみょうりに尽きるというものです。
設計は最初から最後までソフトウェアに影響を与え続けます。
ですので設計を行うというのはそのものソフトウェアを作ることになるのです。

  • 設計はソフトウェアの基礎

そしてその設計に従ってプログラミングを行う。
自分の設計によってソフトウェアが形作られている様子は面白いものです。

ユーザーからの反応が面白い

プログラミングでソフトウェアやアプリを作って公開します。
そうするとそのアプリを使ったユーザーからいろいろな反応が来ます。

  • アプリを使うユーザーから反応が来る

そういった反応を見るのもこういったアプリづくりのだいご味です。
面白い投稿や危ない投稿なども。
そのような投稿を管理するのもアプリ管理者の仕事です。

ユーザーからの色々な反応を見るというのは面白い。
まさにプログラミングをする側の特権と言えます。

ソフトウェアを販売するのが面白い

プログラミングでソフトウェアを作ったらそれを販売することもできます。
今はpixivのBOOTHなどでソフトウェアを手軽に販売できるようになりました。

そういったマーケットで自分のソフトウェアを販売します。
ソフトウェアを購入してもらえたらお金も稼ぐことができます。

  • プログラミングでお金を稼げる

プログラミングは無からソフトウェアを作り出すことができるんですね。
ですので元手はパソコン、インターネットぐらいです。
あとはスキルがあればそういったソフトウェアを作って販売できる。
これが面白いんですね。

逆にプログラミングのどんなところが面白くないか?

では逆にプログラミングのどんなところが面白くないのでしょうか?
面白いことばかりじゃないのは世の常です。
それはプログラミングも同様です。

挙げるとしたら↓の通りです。

  • エラー、バグ解決が面白くない
  • 特に困難なバグはすごいストレスがかかる
  • なかなかお金にならないのが面白くない
  • 難しすぎる問題は面白くない

エラー、バグ解決が面白くない

初心者のうちはエラーやバグ解決は面白くないです。
解決すればすごい達成感があります。
しかし初心者は経験値が低いです。

ですのでエラーやバグもなかなか解決できません。
そうすると時間ばかり流れてしまって面白くないんですね。
特に時間がない人にとってはエラーやバグは時間ドロボーです。

  • エラーやバグは時間ドロボー

時間ドロボーは面白くないのが普通ですよね。

特に、困難なバグはすごいストレスがかかる

特に困難なバグ解決はたいへんです。
困難なバグというのは1日、あるいは1週間、解決に時間を使うこともあります。

ただ1つのバグの解決にそんなに時間を使わなきゃいけない。
なかなかストレスのある話ですよね。

  • 困難なバグは究極の時間ドロボー

しかしプログラミングではこういうのは日常茶飯事です。
困難なバグは次から次へと生まれます。
ですのでこういう困難なバグの解決は面白くないわけですね。

🦝 < 面白いという変人もいます

🐭 < プログラミングの申し子

なかなかお金にならないのが面白くない

プログラミングはなかなかお金になりません。
一番稼ぎやすいのはプログラマーなどになってプログラミングでお金を稼ぐことです。
これが一番稼ぎやすいです。

  • プログラマーになるのが一番稼ぎやすい

しかし雇用される以外だとなかなかお金にするのも大変です。
ソフトウェアを作って販売するのは簡単な時代になりました。
ですが販売できるようなソフトウェアを作れるようになるまで時間がかかります。

勉強中はプログラミングはなかなかお金になりません。
ですので面白くないわけですね。

難しすぎる問題は面白くない

それから難しすぎる問題は面白くありません。
なにごともほどほどが一番。

  • ほどほどが一番

ほどほどの難易度の問題だから解いていて面白いわけです。
それが自分の実力以上の問題だったら解けないわけです。
問題は解けないと面白くありません。

ですので難易度の高すぎる問題は面白くないわけです。

プログラミングのどんなところが美しいか?

それでプログラミングのどんなところが美しいのでしょうか?
プログラミングは面白くて美しい。
これは事実です。

この美しさについては↓の点をお話ししたいと思います。

  • プログラミングにおける美意識
  • コードの美しさを求める
  • 設計の完璧さを求める

プログラミングにおける美意識

プログラミングでは美意識が必要です。
美意識のないプログラマーは尊敬されず、美意識のあるプログラマーは尊敬されます。

「コードが美しい」

これはプログラマーにとって大きな賛辞です。
これを言われたプログラマーはその日一日を笑顔で過ごせるでしょう。

プログラミングではこのように美意識が求められます。
これはプログラミングは「美」を我々に要求しているからです。

コードの美しさを求める

コードに美しさを求めるのがプログラミングに没頭している者の姿です。

もはやコードが目的。
美しいコードを書くのが目的である。
ソフトウェアの完成は2の次。

そういった心理状態になることはよくあることです。

  • 美しいコードが最優先

自分の書いたコードを眺めて「美しい」とほれぼれするのもあるあるです。
コードに美しさを求める人はたくさんいます。
そして美しいコードは常にプラスに働くことが多いからです。

設計の完璧さを求める

設計についても同じようなことが言えます。
自分の設計したプログラム、その設計を眺めます。

美しい設計。
非の打ちどころのない設計。

そういったものに人は惹かれます。
美意識は設計でも必要とされるのです。

  • 設計でも美意識が求められる

美。それがプログラミングでは必須です。

プログラミングのどんなところが醜いか?

逆にプログラミングのどんなところが醜いでしょうか?
美しくないプログラミングとは?

美しさを求める筆者は醜さを皆様に露出させることに抵抗があります。
しかし! 今回は特別です。
どうぞ醜い世界をご堪能ください。

  • スパゲティコードは醜い
  • 重複したコードは醜い
  • バグのあるコードは醜い

スパゲティコードは醜い

こんがらがって収拾がつかないコードをスパゲティコードと言ったりします。
スパゲティのようにこんがらがっているその様子。
ああ、醜い。

  • スパゲティコードは醜い。

しかし仕事ではこのようなスパゲティコードも日常茶飯事です。
プロが書くコードが常に美しいとは限りません。
相次ぐ仕様変更などによりコードはガタガタ。
スパゲティのようにこんがらがってもはや第3者の手には負えない。

そういうコードもたくさん存在します。
あなたのお気に入りのアプリもスパゲティコードかもしれません。。

重複したコードは醜い

重複しているコードは醜いものです。
このようなコードは共通化するのが良いのですが、共通化も難しい手段です。

重複しているコードを共通化したら逆にスパゲティになった。
これもよくある話です。

  • 重複したコードは扱いが難しい

つまり重複したコードには美しいものと醜いものがあるわけです。
この見極めは大変難しいとされています。

バグのあるコードは醜い

そしてなによりもバグのあるコードは醜いものです。

バグのあるコードに嫌悪感がわくのは仕方のないことです。
それはバグに対する嫌悪感です。

そういった感情は面白くないですよね。
ムカムカしてウギギとなります。

  • ムカムカしてウギギ

バグのないクリーンなコードを我々は望んでいますが、それは難しい話です。
ほとんどのソフトウェアには必ずと言っていいほどバグが潜んでいます。

これはつまりほとんどのプログラムは美しくない……?
という結論に……?

なんてことだ。自我が……。
自我が崩壊する……!

おわりに

今回はプログラミングの面白さ、美しさについて解説しました。
基本的にはプログラミングは面白いものです。
そして美しさもそなわっています。

あなたのプログラミングライフが上手くいきますように。

🦝 < プログラミングは面白い

🐭 < プログラミングは美しい