非エンジニアにもプログラミング能力は必要?
今ではすっかりポピュラーな職業になったITエンジニア。そこで必要とされるプログラミングのスキルは、エンジニア以外の方でも学んでおくことで業務の遂行能力を大きく上げられます。
「スタートアップの人間だが開発しているプロダクトの話についていけない」
「IT企業に勤めてはいるが、エンジニアではないのでプログラミングを知る必要がない」
そう思っている方がプログラミングを学ぶべき3つの理由を解説していきます。
目次を閉じる
プログラミングの「考え方」が身につく
プログラミングを理解することで、多くの作業を「システム化」する考え方が身につきます。
そういった考え方が身につくことで、主に単純作業の繰り返しや頭を使わない作業などは1/10程度の時間で終わらせられるようになることも少なくありません。
表計算ソフトによる自動化
ExcelやNumbers、Googleのスプレッドシートなど、多くの表計算ソフトで関数を扱えることはご存じな方も多いと思います。
この関数はプログラミングと随所が似ており、書き方は異なるもののif文を用いた条件分岐など、プログラミングを理解していればすぐに使えるものが多いです。
こういった表計算ソフトを用いる業務において、関数を使いこなせないことは致命的。
関数を使いこなせる人とそうでない人とでは、データを任意の形に作り変えたり並べ替えたりする場合、もしくは特定のデータを入力する場合にもものによっては10倍以上の時間差が生じてしまいます。
JavaScriptでGoogleのサービスがより便利に
またJavaScriptというプログラミング言語を使えればGoogle Apps Scriptというスクリプト環境でプログラムを実行でき、Googleのスプレッドシートを始めとした、Googleが提供するさまざまなサービスをより便利に、効率よく利用できるようになります。
外部のサービスと連携することで、カレンダーの予定を毎日同じ時間にチャットツールに送信したり、分析ツールのデータをすべてスプレッドシートに記録しておいたりすることも可能です。
単語や文章の成形もお手の物
私は編集者なので特に多用するテクニックなのですが、ライティングや編集の業務を行っていると必ず同一表現をすべて修正しなければならなくなる場面があります。
この表記はまずかった、すべて一括して別の言葉に置き換えたい。そういった時に、エンジニアであればエディタでの一括置換という選択肢がまず浮かぶと思います。
これはプログラミングを勉強していなくてもできることで、かつ考えればわかる方法ではあると思いますが、プログラミングを勉強していないと「そもそもできることを知らない」ことが多いです。
実はこの「できることを知っているかどうか」というのが、プログラミングを学んでいる方とそうでない方の生産性を大きく分ける要因になっています。
プログラミングで「できる」ことを知れる
もし業務としてプログラミングを行えるレベルに達していなくても、プログラミングの基本の部分がわかっていれば「どれくらいの工数」で「どれくらいのこと」ができるのかがわかるようになります。
非エンジニアの方にとくに重要なのがここで、「使える」ことでなく「知れる」ことがプログラミングを学ぶ大きな理由の1つになります。
今はできないことがほとんどない時代
昨今ではシステム上で「こんなことできるかな?」と思ったことは、私の経験上ほぼできてしまいます。
大事なのはその「できるかな」というスタンスであり、その選択肢が自分の中に用意されること。
多くの方はそういった選択肢の用意ができず、目の前にある業務を疑わず、ある仕事をあるがままにこなすのが当然というスタンスです。
ですがその目の前にある仕事は、あるコードを一行書けばすぐに終わるものかもしれません。そういった「まず始めに簡単にする方法を模索する」というスタンスがエンジニアにはあると思っています。
基本的に「ルーティン業務」と言われるものはほとんどが自動化でき、かつ自動化にそこまで工数がかからない場合も多いです。
それらは仕事をしている気分にしてくれ私達を全能感で満たしてくれるのですが、一行のコードを書いて終わる作業であれば、どれだけ簡単な一行であってもそれを書いた人が評価されるべきなのです。
無理な指示を無くせる
プログラミングを必要とする指示を出す場合、事前に割く工数や必要なリソースがわかっていれば、無茶な指示をしないですみます。
無茶苦茶な指示はたとえ悪気がなかったとしても、指示者とエンジニアのコミュニケーションを悪化させる原因になり得ます。
そういったことから生じるお互いの不信感をなくすためにも、特にマネジメントをする立場の方はプログラミングを学んでおいたほうがいいでしょう。
エンジニアとのコミュニケーションが円滑になる
マネジメントに関わっている人やエンジニアと直接関わる人は、エンジニアとコミュニケーションをとりながら仕事を進める必要があります。
その業務上のコミュニケーションにおいても、プログラミングを理解しているか否かでその業務の円滑さに大きな差が生じます。
詳細な指示ができる
エンジニアに仕事を依頼する場合、漠然とした内容を伝えると突き返されることが多いです。
それはエンジニアにとって当然のことで、どういった理由でどういった結果がほしいのか、その内容によって行う作業が異なってくるからです。
理由や結果によって0からコードを書かなければならない場合もありますし、そもそもプログラミングを必要としない解決策がある場合もあります。
曖昧な指示を出してしまうとほしかった成果物と全く違うものができてしまうこともあり、そういった認識の齟齬を埋めるためにも、非エンジニアであってもプログラミングに対するある程度の理解は必須だと言えるでしょう。
レビュー文化を知れる
これはプログラミングの実務に関わっていないと難しい考え方ではあるのですが、エンジニアのレビュー文化を知ることはエンジニアとのコミュニケーションを取るうえで非常に重要になってきます。
エンジニアの「レビュー」とは、エンジニアの成果物に対して行われる他人からのフィードバックのこと。
それはコードに対して行われることもありますし、設計やテストの結果に対して行われることもあります。
私はエンジニアではないのですが、第三者視点で見ているとレビューの光景は「恐い」ことがほとんど。ここまで言うのか、というほどダメ出しをしている場合が多いです。
が、それは単純に文化の違いにすぎません。エンジニアには「コードは飽くまでコード」という考えがあり、レビューをしている側が多くのダメ出しをしていてもそこに悪意があることは少なく、プロダクトがよくなってほしい、その人に成長してほしいという思いから指摘をしています。
そしてエンジニア職のこういった文化を、非エンジニア職の方が知るのはコミュニケーションを取るうえで非常に重要なこと。
お互いがプロダクトをいいものにしようと行うコミュニケーションにおいて、不必要な軋轢を生まずにすむからです。
もし多くのダメ出しを含んだフィードバックをもらった際も、その人が自分のことを思って言ってくれていることを知っておきましょう。
重要なのは「使える」ではなく「知る」こと
業務レベルでプログラミングを使いこなせるのがベストではありますが、それよりも重要なのは「プログラミングでできることを知る」こと。
基本的な知識をいれておくだけでも、エンジニアとのコミュニケーションが円滑化し、自身の作業も大きく効率化できます。
使うことがないからとプログラミングを敬遠している方は、ぜひプログラミングを学んでみてください。きっと活きる機会があるはずです。