プログラミングとは何なのか
普段、仕事や遊びでソフトウェア作ってるのだけど、よく考えると、ソフトウェアの動作が論理的なだけで、ソフトウェア作るのは勘でできる。
ソフトウェアが正しく動くかどうかは論理的に決められて、電卓アプリなら計算結果が狂ってたら間違っているけど、その電卓アプリがどのように作られたか、には正しさはない。逆立ちして作っても、猿にタイプライターを渡して作っても、計算結果合ってれば良い。
過去のデータとか経験によると猿に書かせるのは効率が悪いから、先に設計してみたり、スクラムやってみたり、人間工学に基づいてハッピーハッキングなキーボードで書いたり作ったりしてるだけで、そこには論理的な正しさはない。
絵の具をキャンバスに投げつけてお絵かきする人もいるので、キーボードめちゃくちゃに殴ってソフトウェア作る人がいてもいいと思う。
プログラミングは数学なのか、芸術なのか、工学なのか、みたいな話題があるけど、最新の僕の感想では、勘だと思う。
10年プログラマをやってきたけど、最近の僕の中ではプログラミング技術とは、 モデリング力とその処理系の実装スキル、だと思っている。
制御対象を分析し、抽象化・簡略化し、それを制御する処理システムを作る。まあこんな感じ。
現実世界は複雑なので、要件を分析して詳細仕様を詰めたり、 仕様を簡略化することももちろんプログラマとして必要な要素だと思う。 単にコードを書くだけのお仕事ではないはず。
https://youtu.be/ru1ZVmytMoo
言語学者は言語をなんだと捉えているか
コミュニケーションの道具