雑記

プログラミングは簡単か?

投稿日:2016年11月7日 更新日:

job_programmer

時々、「プログラミングなんて簡単だ」と言う人がいますが、これは本当でしょうか?

まず前提として、「プログラミング」というのは「プログラムを書くこと」なのですが、これは「ソフトウェアアプリケーションを開発する」とほぼ同じ意味であると言ってよいでしょう。

そして本題ですが、自分で使うだけの小規模アプリケーションを作るのであれば、(それでも少し無理があるようにも思いますが)「簡単」と言ってしまってよいかもしれません。多少プログラムに問題があっても、まぁいいかと許せる場合です。 しかし、仕事として開発するアプリケーションのように、それなりの規模や複雑さがあって、あらゆる状況で問題を起こさないように作らなければいけないとなると途端に難易度が上がります。使用するプログラミング言語やプラットフォームの知識・要求された仕様をメンテナンス性の高い構造のプログラムに落とし込む設計の力・使用するプロトコルやツールの知識・適切なエラー処理・テスト… ここには書ききれませんが、かなりの知識と経験が必要になります。プログラミングだけでも大変なのに、それ以外にもそれ以上の知識が必要になるのです。新しい技術やツールもどんどん出てきます。仕事でやっていても何年も掛かるでしょう。「簡単」ではないですね。

また、「プログラミングには高度な数学や物理の知識は必要ない」という意味で「だから簡単だ」と言っている可能性もあります。これはプログラミングで何を扱うかにもよるのですが、難しいアルゴリズムはライブラリ内に隠されていることが多く、アプリケーションを開発する側の人間は難しい数学的理論が理解できていなくても問題ないことが多いのは確かです。しかし上で書いたように、真っ当なアプリケーションを開発するには膨大な知識が必要ですし、その中には理解するのが難しい概念もたくさんあります。ですので、「数学や物理の知識がなくてもよいかもしれないが、それとは違う難しい概念を理解できないといけない」ということになり、やはり「簡単」とは言いにくいです。

ということで、「プログラミングなんて簡単だ」という意見は、狭い意味でプログラミングを捉えれば間違っていないのかもしれませんが、ちょっと無理があるように感じています。 確かに、Scratchなどのビジュアルプログラミング言語であれば、覚えることがぐっと減りますので、比較的「簡単」と言っていいでしょう(但しこの場合は、実用性のあるプログラムを書くというよりは、作品作りという意味合いが強くなります)。しかし、ちゃんとしたプログラムを書くというのは大変なんですよね。 「簡単だ」と言っている人は、多くの人の「プログラミングへの心理的抵抗」を取り払うためにわざと言っているのかもしれません。

それから私は、なるべく多くの人が ICTリテラシーとしてプログラミングの知識を持っているとよいと感じていますが、その場合の知識は必要最低限でよいと思っています。あまり複雑でない処理をほどほどの完成度のプログラムを書いて自動化できれば十分です(処理結果が正しいか手動でもチェックできて、万が一問題が起きても影響が小さい場合です)。便利ですし楽しいですよ。

関連する記事のリンクを載せておきます。

📂-雑記

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

デスクトップPC は使いやすい

以前、ノートPCだけで仕事していた時期がありましたが、現在はデスクトップPCをメインに使っています。 デスクトップPCは、一般的に CPUも高性能ですし、モニタも広く、キーボード・マウスに好きなものが …

no image

パスワード管理ツールはOSに標準搭載して欲しい

インターネットで何かしらのサービスを利用すると、アカウント登録の際にパスワードを作ることになります。セキュリティの観点から、パスワードは複数のサービスで同じ文字列にしてはいけませんので、必然的に増えて …

Windows

MSYS2のダウンロードに時間が掛かる

MSYS2 installer にある msys2-x86_64-20160205.exe をダウンロードしようとすると、やたら遅いですね。しつこく何回か試してようやくダウンロードできました。 ダウン …

no image

Slimjet(ブラウザ)で ERR_CERTIFICATE_TRANSPARENCY_REQUIRED が発生する問題が修正されました。

最近、Slimjet(ブラウザ)で Amazonなどの特定のサイトを開いた時に、 ERR_CERTIFICATE_TRANSPARENCY_REQUIRED というエラーが発生していたのですが、201 …

no image

覚えて選択して適用する

先日、あるボードゲームの本を読んでいたのですが、そのゲームが上手くなるためには、以下が大切であるように感じました。 予めたくさんの手筋・技(知識)を頭に入れておく。 目の前の局面に対して、その中から使 …