プログラミングから学んだこと
- January 6th, 2008
- Posted in ライフハック
- Write comment

「プログラミングは小学校の必修科目にすべき!」と個人的に思っていますが、プログラミングからは本当に多くのことを学んでいます。
先日、プログラミングって人生だよね的な話題がもりあがったので、自分がプログラミングをやっていて良かったなぁ、と思えることをまとめてみます。
- プログラミングは問題解決に役に立つ!
- 過去の自分は別人!(=人間は進化する!)
- はまったらできるところまで戻ると良い
- 問題の切り出しがうまくなる
- どんなに複雑な問題でも世界の誰かが必ず解いている
プログラミングは基本的に、「これがやりたい!」をシンプルな命令でもって緻密にくみ上げていくことで実現します。これは「どんなに複雑に思える問題も、細かく分解すればうまくいく」という考え方につながっています。使う命令はそれほど多くなくて良いのです。
プログラミングをはじめてからは、「この問題を細かく分解していって、自分ができることで再構成するにはどうしたらいいだろうか?」と考えるようになったような気がします。少なくとも「この問題複雑すぎ!」と頭を抱えて活動限界・・・ということはなくなりました。
1年前の自分のコードとか見ると「誰だよ、これ?」と思ったりしますが、裏を返せば、漫然と過ごしていてもやっぱり思考法は進化しているのだな、と実感することができます。
なんとなくすごしていると「自分って昨年からどれだけ進化したんだろ?」と思ったりしますが、プログラミングをやっていると、そうした自分の進化を如実に実感することができます。プログラミングは自分の考え方のベンチマークをとるのに最適ではないでしょうか、と思ったり。
プログラミングではまったときはとにかく動いていたところまで戻るべし、が鉄則です(僕の中では)。そうするとどこで間違ったのかがはっきりします。
これは仕事でも一緒で、どうにもうまくいかないときには、うまくいっていたところと、そうでないところを切り分けて考えるようにするとなにかとうまくいくような気がします。
プログラミングでデバッグ(間違い探し)をするときには、変数をウォッチしたり、ブレークポイントを設定したりして、どこがどう動いているか、どう動いていないかを検証します。こうした考え方は日々の生活でも、「問題を細分化して一つ一つ検証する」という行動に反映されているような気がします。
もちろん100%、というわけではないですが、ほとんどの問題は過去に誰かが解いています。そうしたベストプラクティスを積極的に活用するのがプログラミングのコツかと思います。
これは日常生活でもそうで、問題にはまったときは「他にもこういう問題を抱えてて解決した人がいるはずだ」という根拠のないw自信につながっていたりします。こういう風に考えられるだけでもちょっと気分が軽くなりますよ。
なんか妙に抽象的なエントリーになってしまいましたが、いつか書いてみたかったので・・・。恥をかくことを恐れずにこのままアップしちゃいます。お前エンジニアじゃないだろ、的なつっこみはご容赦願います(笑)。
プログラミングってほんと、楽しいですよね。おすすめです。プログラミング家庭教師っていうビジネスがあってもいいかな、と思ったり思わなかったりです。
プログラミングをたしなむ方で、「他にもこういういいことあるよ!」的なご意見がある方は是非お教えください。


はじめまして
中二ですが
プログラミングには興味があります。
とは言っても難しそうなんでまだやってませんが
まぁ近いうちにはじめようかな(楽しそうだし)
と思っています
でももうすぐ受験生だ
本日のBookmark(2008/01/06)
本日のBookmarkしたページのまとめです。今日は1件。 プログラミングから…
[lifestyle]楽しいことを楽しいと言える人に。
先日、プログラミングって人生だよね的な話題がもりあがったので、自分がプログラミングをやっていて良かったなぁ、と思えることをまとめてみます。 プログラミン…
プログラミングは楽しいですよね。
ちなみに家庭教師でプログラミングを教えている人、いますよ。
高校・大学受験勉強のための家庭教師派遣会社がプログラミングに関するものもときどきやってます。
私もプログラマーですが、同じ感想を持ちました。
数学を学んだときも同じ感覚(問題解決に役に立つ!など)を味わえました。
プログラムが解けたときのうれしさはたまらないです。
はまったら抜け出せなくなる感覚分かります。
個人的には「まず自分を疑え」ですw
下らないスペルミスとかホント下らない orz
「自分は正しいはずだ!!」って思っちゃいけないあたり、
人生を感じますww
・DIY精神
(自分用の小さいモジュールとかを作ってチェックしたり、
シュミレータとか作ったり、設定ファイルを自分用にアレンジしたり…。モノがなけりゃ作ればいいんじゃん!と思うようになった。)
・新しい世界
現実世界じゃないバイナリでできた素敵な世界との出会い。
「Hellow World!」