プログラミングできることのメリットって何ですか?と聞かれたのでまとめてみる。
プログラミングとは現代の魔術(みたいなものだと思う)
プログラミングとは、私たちが考えたアイディアを現実にできてしまうもの。アホらしいアイディアも実現できる。
アイディアは実現できて初めて形になる。脳内だけに留めておくのは単なる妄想。
自分でコードを書いて、デプロイして、世の中に出して、誰かに使ってもらうことで
それが価値となり、自己表現ができて、自分を含め周りの人が見るセカイを変えることができる。
言い換えるなら、プログラミングは妄想を現実にする手段(大変だけど)
プログラミングができることのメリット
自分でいろいろできちゃうのが一番のメリット。もうちょい解像度を上げると…
- アプリ開発
- 仕事はもちろん、個人開発、趣味での開発で日常生活に役立つことがある。
- 自分や第三者の生活を便利にできる。
- 自動化
- 業務フローなど、繰り返し行う作業やタスクを自動化できる。
- 毎回同じことを繰り返すなら、機械にやらせておいて、他のことに集中する環境をつくれる。
- csvに書き出したり、Google Spread Sheetに出力したり…etc.
- Chat Botを作って自動応答もできる。
- データ分析
- データを活用して、ビジネスロジックの意思決定ができるようになる。
- ゲーム開発
- 自分の考えたゲームを開発し、Webアプリ・スマホアプリなどでローンチできる。
- IoTデバイスの活用
- 音声認識で部屋の電気をつけたり、ドアの開閉を自動化したり、いろいろできる。
ざっと5パターン挙げてみたけど、何もできない状況から自分のできることが広がる。
プログラミングを習得するだけで。すごすぎ。
人としてのスキルも高まる
以下のスキルも身につけられると考えている。
- Creativity
- 妄想を現実にできる
- 世の中に出してみて、「いや、やっぱりやめよう」とすることもできるのもいい
- Output
- 動くものができるので自分の問題を解決できたり、他人の問題も解決できるときがある
- 最初から最後までやり抜くことで開発者としてスキルアップできる
- 当然自信も醸成される
- たくさんつくってたくさんデプロイするのはエンジニアの本質
- どんなに◯ソアプリでもいい
- エンジニアにとって「知っている」と「やったことがある」この差は天と地くらいある
- Communicate
- プログラミングという技術をベースにどんな場所でも話ができる
- プログラミングが共通言語になる
- 専門性が高い
- Logical
- 問題を特定し、課題を要素ごとに細かく分けて、筋道を立てて順番に解決していく思考回路ができる
- 日常的にLogical Thinking・Critical Thinkingができる
- Action
- 試行錯誤回数が圧倒的に増える
試行錯誤回数についてはプログラミングをする上で大切なマインドセットでも触れておく。
プログラミングをする上で大切なマインドセット
2つだけ。この2つを常に意識する。
- 諦めないこと
- 会話・対話をすること
諦めないこと
結論:基本うまくいかないことがおおい
最初からうまくいくことはほぼないのでエラーが出ることに慣れること。
- コードを書き始めるとき、プログラミング1年目は1回でうまくいくことはほぼない
- 僕はいまだにうまくいかないことが圧倒的に多い
- とりあえず手を動かしてみる。わからなくても、うまくいかなくても、自分なりにやってみることが大切。正解は複数存在するので順番に試してみよう
- 今はAIが発達しているのでメンターとして活用する
- プロンプトエンジニアリングは知っておくと便利
- Chat GPT駆動開発
- 今はAIが発達しているのでメンターとして活用する
- 毎日コードをかけば少なくとも1%は進歩している。365日行うと37.3%進歩することになる
- 経験値が増えるので「試行の精度」「試行の順番」がうまくなるので早く解決できる
会話・対話をすること
プログラミングにおいて大切なのは会話。日本語プログラミング。
日本語でどういうことが書かれているか説明できるようにしていくこと。
これを訓練すると、ソースコードの理解力が上がる。
学校でも英語を学ぶときは日本語訳があったはず。
それと同じで、プログラミング言語も最初は日本語訳をつくること。
先輩エンジニアへの相談にも役立つ。
- 日本語訳の精度を上げる必要はないので以下を説明できるようにする
- 何がどうなって、どういう動きをするのか
- Input/Outputはどうなるのか
- 変数・関数の命名は超大切
これができるようになったら、次はプログラミング言語をプログラミング言語のまま理解する。
これは英語を英語のまま理解するのと同じ。
プログラミングは対話をする。
- 自分との対話
- コンピューターとの対話
- 第三者との対話
言語は伝えたいイメージがあって、その手段として意思疎通をするための手段にすぎない。
これを応用して、実装したいイメージとコードの書き方が一致していくように訓練すること。
最近英語の勉強を始めて感じるのが、プログラミングの勉強は英語の勉強と似ているところがあること。
つまり、たくさん手を動かして経験値を積みまくろう。
体育会系であればイメージがつきやすい言葉でいうと、気合と根性で何とかなる。
「こういう実装がしたい。これって今までやってきたこの書き方でいけるかも?」
ここまできたら立派なエンジニア。コンピューターとスムーズに会話ができるようになっていく。
あとがき
「コードは量。」
専門学校時代の先生がよく言っていた。
この内容もその先生が書かれていたことに感化されて、僕なりの言葉で言語化した。
Memo on programming by Tomo.