PrismaCode

Notes on programming.

プログラミングはなぜおもしろいのか

15 December, 2020

  • 作成日:2020/12/15
  • 更新日:2020/12/15

この記事はジーズアカデミー Advent Calendar 2020の 15 日目記事です.

はじめに

プログラミングは楽しい.とても楽しい.

では,それは何故か.楽しい理由と楽しくする要因を,自分の経験を元に考察してみた.

楽しい理由

楽しい理由として挙げられるのは,

  • 自分のアイデアが形になるから楽しい.
  • コードを書いてうまくいかない部分を自分の力で解決するから楽しい.
  • 自分がこれまでできなかったことができるようになるから楽しい.

あたりだろうか.それぞれをもう少し深堀してみる.

1. 自分のアイデアが形になるから楽しい.

これまで実現したいアイデアを持っていても「自分にはできない」「すでにサービスがある」などと感じたことはないだろうか.

筆者(メーカー出身)もその一人で,なにかものを作るには「機械」「工場」が必要であると考えていた.しかし,web アプリケーションはそうではない.PC 一台あれば自分一人で何かを生み出すことができる.なんとも夢が広がる世界ではないか.

プログラミングができるようになると,「こういうのがあったらいい」と感じたときに「じゃあ作るか」という思考に進むことができる.「ないから諦める」「誰かに任せる」といった思考から「なければ自分で生み出す」という思考への転換だ.

プログラミングにおいて,プロダクトの実装は最も経験値が得られる.そうすると,これまで実現が難しかったアイデアにも挑戦することができる.「アイデアを形にする」ということは「ないものを生み出す」「実現できる幅を広げる」という一石二鳥である.

どれだけ「こだわったプロダクトを量産するか」が創造する力を生む.プログラミングは手段であり,アイデアを創造するためのツールの一つだ.大事なのは自分の「アイデアを形にすること」.

そして,新しい技術を知ったり,知っている技術をさらに深めるたりすることは,より多くのアイデアを形にできることにつながる.技術を知ったときは常に考えてほしい.この技術は,既存サービスのどんなところで使われているのか.この技術を使って,どんなことが実現できるのか.自分のアイデアの,どこに使えそうなのか.

何か思いついたら,早速自分の手で試してみよう.その結果が,また新たなアイデアにつながるかもしれない.

2. コードを書いてうまくいかない部分を自分の力で解決するから楽しい.

プログラミングは(特にはじめのうちは)うまくいかないことが多いだろう.これまでやったことなのないことに挑戦するのだから当然である.

しかし,何度も試して思い通りに動いたときの感覚は素晴らしいものではないだろうか.私は,この素晴らしい感覚を積み重ねることがプログラミングを習慣化する一番の要因ではないかと考えている.

大事なのは仮説検証のプロセスだ.自分で「こう書いたらこう動くだろう」という予想を立て,実際に動かして検証する.ダメなら何がダメなのかを考え,次の可能性を試す.ダメなら更に次の可能性を試す.様々な可能性を列挙し,ダメなものを消していく.そして最後に残ったものが正解だ.

すぐに誰かから正解を聞いてしまってはこの感覚を得ることはできない.「自分の力で」「動くところまで成し遂げた」からこその感覚である.「自分の力で解決する」この感覚を大切にしてほしいし,「自走力」の中心でもある.

講師を務める中で意識していることは「答えを教えない」ことだ.教えるのは「考え方」や「調べ方」が中心であり,そのヒントを元に自分自身で解決してもらう.ぜひ解決する「気持ちよさ」を味わってほしい.

そして,自分の力で解決できれば自分自身の自信にもつながる.「うまく行かなくてもなんとかできる」という感覚があれば,初めての言語や技術にもチャレンジできるだろう.

書けば書くほど「自己解決力」が高まり「チャレンジできる」ようになるのがプログラミングだ.

3. 自分がこれまでできなかったことができるようになるから楽しい.

ジーズアカデミーは「何かを変える場所」であり「自分が変わる場所」である.

  • 課題を作る中で「アイデアを形にできる」自分に変わる.
  • 卒制を作る中で「自分の力でプロダクトを実現できる」自分に変わる.
  • GGA や卒業後に「誰かの世界や自分の人生」を変える.

「ジーズアカデミーに来る前」と「今」で何がどのように変わったのか.「昨日の自分」と「今日の自分」で何がどのように変わったのか.常に自問自答してほしい.

変わってきた人間の言葉の裏には実績があり,説得力があり,重みがある.本気で悩み,考え,挑戦した時間は誰にも否定できない自分だけの宝物である.

遊ぶ時間や寝る時間を削ってコードを書いたこともあるだろう.筆者も実際に仕事以外で週に 70 時間ほどコードを書いたことがある.毎日睡眠時間は 3 時間ほどで体力的には本当にキツかったし,もうやりたくないというのが正直な感想だ.しかし,思い返してみればしんどいことなんて,本当は何もなかった.費やした 70 時間は,どれだけお金や人脈を積んでも手に入らないかけがえのないものであったし,決して失われることのないものだった.

「6 ヶ月間常にレベルアップし続ける」そう考えるだけでわくわくしないだろうか.6 ヶ月終わったその先に,自分はどれだけ変わるのだろうか.自分はどれだけのことを成し遂げられるのか.

毎日想像してほしい.「全盛期は常に今」だ.

あとがき

本当は技術系の記事も書いたものの,誰得な記事になったのでこちらを投稿した.

誰得記事 -> JavaScript でビンゴゲームをつくったら配列だった話

今回はたまたま思いついた 3 点について考察してみたが,いかがだっただろうか.

共通するのは「自分が主体」ということである.誰かから言われてやることではない.「自分の意思で」「自分の力で」取り組むからこそ意味がある.

「自分は何を成したいのか」「自分はどうなりたいのか」を考えつつプログラミングを楽しんでもらえれば幸いである.

以上だ( `・ω・)b

#lifehack