プログラミングは楽しい。たまに、1つのエラーが解消できず、平気で数時間経っていることを踏まえても楽しい。
ただ、たまに手段が目的化してしまっていると感じる時がある。
まず、初めに「プログラミングは手段である」と結論付ける。
プログラミングが生まれた背景には、タートルネックの男とその友人のこんな会話があったと思う。
J:「手作業で何時間もかけてるって、ばかばかしくない?」
W:「うん、ばかばかしいよね。もっと楽にできる方法ないかな・・・」
社会人はまだ3年目だが、社会の「もっと効率化できるだろ、IT(プログラミング)で」と突っ込みたくなるシーンはいろいろ見てきた。
- 週次で、実績を作成する
- お客様先での活動内容を手入力する
- 意味のない朝礼
3番目のは、ITどうこうではなく、「そもそも要らなくね」問題なので、別件として処理するとして。
プログラミングができることで、より良くなることは多い。
だが、まだプログラミングの「プ」をゆっくりと歩いている初学者の段階では、
「手動でやったほうが早くね?」と感じるシーンが多い。いや、多すぎる。
今は勉強だから、実装することが目的だと割り切ろうとするものの、たまに「なんのためにこの方法に固執しているんだろう」と冷静になる。
やり方ばかりにこだわって、いわゆる「デキない」人の典型をまさに体現しているのではないか!?ましてや今は、「お前はデキない」と教えてくれる相手もいない。
「ますますこんなことをしていて良いのだろうか」ループは深層化していく。(←深層化なんて言葉あるの?)
と普段たまっていた言語化にはある程度成功したとこで、自分なりにまとめると、
- 目的は、利益を生むこと
- 利益を生むから、価値がある
- 価値は測れるものでなくてはいけない
- 利益には、お金を増やす、時間を減らす、などがある
- 手段は目的によって決まる
- 目的を最も「早く」「正確に」達成させるのが、最適な手段
- 目的→利益・価値→手段の順に具体的になり、この順番で詰めていくのがロジック
こんな感じで、漠然と普段考えているロジックを整理してみたが、
さて「プログラミング」と言うと、手段パートで初めて出てくることがわかる。(目的から始まる順番で言うと、3番目。)
プログラミングが最適な手段であるかどうかは、目的→利益・価値を明確にして初めてわかる。
しかし、前の3つを実現する手段は、無数にある。
無数にある選択肢から、たった1つの最適解を導き出すのは難しい。というか、導き出せなくて良い。
最適解、つまり最も「早く」「正確」な方法に近ければそれで良い。
手段は無数にあるということは、最適解を探すのにも、無限の時間がかかる。恐らく、「最も良い手段ランキング」TOP1~TOP10に大した差はない。
TOP1を特定している時間があれば、現実的に良い手段を、最も良い手段として良い。
ここで問題。
さっき「手段は無数にある」と言ったが、実際1人の人間の頭からひねり出せる手段には限りがある。特に、僕のような視野の狭い(単に脳が小さいのかもしれない)人間にとって、考えうる手段は数個しかない。
「思考は習慣化する」とどこかで聞いたことがありそうな言葉を使うなら、「どうやるか」はたいていその人が「これまでどうやってきたか」に強い影響を受ける。それまでうまくいってきたなら、猶更。
人によって、「どうやってきたか」は異なるが、人間が考えることは大抵似通う。
「デキる」人と「デキない」人をわけるのは、「どうやってきたか」が2つに大別できると言い換えられるかもしれない。
ぼくは、「デキない」人であるという自覚があるので、だからこうして書いているのだが、「デキない」人に抜けている「どうやってやるか」には、以下のようなものが挙げられると思う。
- 誰かの手を借りる
- ステップを踏む
これは「デキない」ぼくが自身を振り返って抽出した要素なので、「デキない」万人に当てはまるわけではないが、上に挙げた要素が欠けているのは、その反対の思考から脱却できないこんな思考があるからだと推定。
- 自力でできることが価値である
- 一発で完成形にたどり着きたい(たどり着けるはず)
そんな「デキない」人たちに改めて伝えたい。(特に自分に)
- 目的は、利益を生むこと
- 利益を生むから、価値がある
- 価値は測れるものでなくてはいけない
- 利益には、お金を増やす、時間を減らす、などがある
- 手段は目的によって決まる
- 目的を最も「早く」「正確に」達成させるのが、最適な手段
- 目的→利益・価値→手段の順に具体的になり、この順番で詰めていくのがロジック
こんな感じで、思いつく限り書き殴ってみた。これを公開するかどうかは迷いどころ。
というか、これを書いていること自体に価値があるのだろうかと考えてしまい始めてきた。やば、とりあえず書き始めたから、繰り返し言ってた「目的・利益・価値・手段」そのどれも明確にしていない。。。
ま、いっか。これが誰かの目に触れるということを考えて、後付け。
- 目的:なぜプログラミングをするのかの答えを知る
- 利益:これから悩む時間が減る
- 価値:浮いた時間でまたほかの価値を生み出せる
- 手段:入力スピードの速いPCと入力に適したはてなブログを使う
なんとも苦しい後付け。
ま、やったものは仕方ないので、公開します。
そして、自分が「手段ファースト」に走ったとき、どうしてプログラミングをしているんだろうと迷った時に見返せるようにする。
もちろん、内容もアップデートしていく。
とりあえず言語化した覚書程度に過ぎなず、論理的に破綻している箇所も多々あると思われるので。汗
千里の道も一歩から。きっと人生は、自分と誰かの利益を生むためにある。