プログラミングを学ぶメリット3選

  • 2022年9月1日
  • 2023年6月16日
  • Notes

これまで20年近くシステム開発関連の仕事に関わってきていますが、仕事にするかしないかに関わらず、プログラミングを学ぶメリットというのは大きく3つあると思っており、これらを身につけることによって、企画関連の仕事など、ゼロからアイデアを出していく仕事でクリエイティブな能力を発揮することにつながったと実感しています。
※システム企画や、SNS運用企画、イベント企画など

では、プログラミングを通して身に着けられるクリエイティブな能力とは具体的にどのような内容か。
ここから見ていきましょう。

成功追及型と原因追及型、2つの課題解決手法が身につく

新たに何かをつくり出したいという課題や、この機能を追加もしくは修正したいという課題をどう解決に導くかを考えるにあたっての方法として、成功追及型原因追及型の2つがあると考えています。
“新たな機能”という名のゴールに向かってどんなプログラムをつくっていくかを考えるのが成功追及型、いま発生しているバグ(不具合)の原因が何で、それを解決するために何をしたらよいかと考えるのが原因追及型です。

では、新規開発、既存アップデート、バグ修正対応の3つの仕事で成功追及型と原因追及型の考え方がどれだけ見につくかというと、(肌感覚の話にはなりますが、)このような割合かと見ています。

新規開発成功追及型80%-原因追及型20%
既存アップデート成功追及型50%-原因追及型50%
修正対応成功追及型20%-原因追及型80%

新規開発

新規開発の場合は、まっさらなところからスタートしますので、自由度が高い一方で、ゴールを見据えておかないと何がしたいのか分からないものになってしまいます。
よって、こんな画面をつくる、こんなモジュール(プログラム)をつくるといったゴールを見据えておくことが大切で、もっと言えば、”こういう機能が欲しいというユーザーのために”というペルソナを見据えておくと、より使いやすいものがつくれるようになります。
そうすることで、つくりはじめてからの方針転換(仕様変更)が少なく済みますし、より質のいいプログラム(システム)がつくれるようになります。
成功追及を軸にして形をつくり上げたあとに、原因追及で製品をブラッシュアップして完成に向かうというイメージを持っていると、やりやすいかもしれませんね。

この考え方は、他の仕事にも当てはまるところがあるなと思っていまして、例えば新規のお客様に自社商品を紹介するときに、相手がどのような立場の人で、どんな悩みを持っているのかというのを把握しておくと、どんな切り口で紹介しくかという組み立てがしやすくなるかと思います。
この”話の組み立てをどうするか”ということと”どんなプログラムをつくるか”というのは、近い思考プロセスをたどるものと考えており、プログラミングを通して何かをつくることにより、思考プロセスの中身が見えるようになることから、体系化しやすくなるのと感じています。

既存アップデート

機能追加もしくは機能改善を想定している既存アップデートの場合は、追加や改善をするだけであれば新規開発と変わらないのではないかと思いがちですが、”この機能を追加もしくは改善することで、他のプログラムにどのような影響を与えるか”を考えることが重要になります。
しっかり調べずに対象となるプログラムだけを見て対応すると、実は他のところに影響が出るところを修正していて、動かしてみたらエラーになるというケースもあります。

よって、アップデートするときは、ここに手を入れることで、他に影響が起こらないか?
を考えておく必要があります。

修正対応

システムに不具合が発生したときに原因を突き止めて改修するというときには、どこでエラーが発生しているのか、そのエラーの原因は何か、というのを描いたあとに、どうなればいいのか?
を考える思考プロセスとなります。

原因追及を徹底してゴールがどうなればいいのかを考えるという順番を抑えておくと、よりやりやすくなるのではないかと思っています。

答えを導くまでの戦略を立てられるようになる

ここまでに見てきた思考プロセスを身につけておくと、自分の本業にも転用できるようになります。
例えば、営業で新規顧客を獲得するために何をするかを考えたときに、ゴールを見据えると、どのような切り口から入っていくかの解像度が鮮明になりますし、その分、いま何をするかが明確になります。
既存顧客に新たな商品を紹介すると、いらなくなるものもあるのではないかと考えられるようにもなるでしょうし、トラブルが発生したときにも、解決するために何が必要かをリストアップするのも速くなるでしょう。
つまり、いろんな視点から考えられるようになるというのが大きなところとなり、知らない間に自分の実力として転用できるようになっているというのがあるかと思っています。

私自身の経験でいうと、ゼロから某社のSNS運用をやるようになったときに転用できたなと思うところがあり、
SNSの立ち上げ(新規開発)
ターゲットに刺さる投稿をする(既存アップデート)
言葉の使い方を改善していく(修正対応)

という形で活かせている実感から、自信を持って他の仕事にも転用できると断言しております。

ヒヤリング能力が上がる

いくつものプログラムを組み合わせることで、ひとつのシステムが完成するわけですが、自分が好きなシステムなりアプリをつくる場合を除いては、対エンドユーザーとのやり取りから「どのようなシステム(Webサイトも含む)がほしいのか」というのを聞きながら完成イメージをつくりあげていきます。
ここで重要になるのが、”解釈の解像度を上げる”という点です。

例えば、相手から”かっこいいWebサイトをつくりたいんだよ”という話が上がったとします。
では、「かっこいいWebサイト」ってどんなサイトでしょうか。
それは人それぞれ異なります。

Webサイトを通じて何をしたいのかということもそうですが、何をしたいのかが明確になったとしても、A社のようなサイトがかっこいいという人もいれば、B社のようなサイトがかっこいいという人がいるわけです。
仕事に慣れてきたエンジニアにありがちなことなのですが、ここを自分の解釈で理解してしまう方が多くいらっしゃいます。
それに慣れてしまうと、完成に近づいたときに「こんなはずじゃなかった…」という意思の違いが発生してしまうことにも繋がり、納品まで厳しい思いをするというのは開発系のIT業界あるあるだなと思っています。

最新情報をチェックしよう!