「どこにでもいるプログラマ」にならないために、プログラミング「+α」の技術を身につける理由とは?
プログラミングを身につけることで、「業務に活かせるプログラム」を作り、業務を効率化したり、まだ世の中に無い「独自の仕組みを搭載したシステム」を作り出したりと、できることもどんどん増えていきますが、「プログラミングスキル」は、さまざまな分野で応用することができる基盤となるスキルです。
プログラミングを活かせる対象となる「+α」のスキル・ナレッジが無いと、ただの「プログラミングができる人」で終わってしまう可能性もあります。
それでは、どんな「+α」のスキル・ナレッジがあるのかや、その理由について見ていきましょう。
コンピュータの起源から考えるPCの普及とプログラミング
コンピュータが生み出された20世紀半ばには、主に「軍事産業・社会産業」の発展を目的としてプログラミングが行われていました。
といっても、現在のように誰もが使えるコンピュータではなく、「限られた人たちが限られた施設内で利用している」という状況で用途も限定されていました。
現代では、一人複数台のパソコンを利用する人もいて、「会社で1台・自宅で1台」といったスタイルで複数台のパソコンを一人で利用するケースが日常となっています。
発売された当初のパソコンは、市販ソフトウェアの数はそれほど多くなく、パソコンが使える用途も限られていました。
そのため、当時のパソコンにはプログラミング用ソフトウェアが同梱されていることもあり、「自分で使いたいソフトウェアは自分でプログラムを書いて作る」ことができるようになっているものもあり、「初心者向け」というよりは、「コンピュータに関心のある人達向け」という印象が強かったのではないでしょうか。
当時はプログラミングができる人も「コンピュータに関心のある限られた人達」であったため、現在よりもより「専門性の高い職種」として位置付けられていました。
現代のプログラミング環境
現代では「自分で使いたいソフトウェア」の多くは、「パッケージソフトウェア・フリーソフトウェア」を利用することが多く、「自分でプログラムを書いてソフトウェアを作る」ことはあまり現実的ではありません。
「既にあるものを作ってしまう」ことをソフトウェア技術者やプログラマの間では、「車輪の再発明」と揶揄されるほど、「無駄が多く避けるべきこと」とされています。
自分で使いたいものはまず探し、「無ければ作る」という流れになりますが、そういうケースは稀なのが現実ではないでしょうか。
そのため、プログラミングをする必要性が無くなっていき、結果として、現在の「IT人材不足 」の一因となってしまっている側面もあるのではないかと思います。
それでは、今後、プログラミングスキルを活用していくためには、他に「どのようなスキル・ナレッジ」が必要なのかを見ていきたいと思います。
プログラミングスキルを活かすための「+α」のスキル・ナレッジとは?
プログラミングは、現代の生活に必要な「ガス・水道」に相当する「インフラスキル」と捉えることができます。
プログラミングを活かす対象となる産業分野の「スキル・ナレッジ」があってこそ、プログラミングスキルも活かすことができるのではないでしょうか。
自分で携わっている分野の「スキル・ナレッジ」は他のプログラマが持っていないものでもあり、模倣や学習が困難なものであるほど、高価値なものであると言えます。
何かのシステムを作りたい場合には、システム開発会社に開発を委託する方法もありますが、委託先の会社は、自社の業務内容を細かく把握しているわけではなく、「自社のスキル・ナレッジ」・「経営上秘密にしている事項(トレードシークレット)」については、自社の無形資産であるため、外部に公開することは難しいものも数多くあります。
「プログラミングスキル」+「自社のスキル・ナレッジ」の組み合わせが活かせることは、「自社だけのノウハウを活用したシステム開発」につながるため、開発したシステムによって「競争優位性を高める」という効果を発揮する可能性もあります。
このように考えていくと、プログラミングは「さまざまな産業で利用できるインフラ的スキル」と考えることもできるのではないでしょうか。
プログラマとしてのインフラ的スキルの限界
プログラマが「プログラミングができる」ことは当然のことですが、「それだけでは足りない」と感じ、プログラミング以外のセカンドスキルをプログラマも増えてきています。
会計知識を身につけて、「経理に強いプログラマ」になったり、マーケティングを学んで「マーケティングに強いプログラマ」になったりと、何かに特化した「特化型プログラマ」になることが、「他のプログラマとの差異化」につながります。
現在はプログラマがIT関連分野で不足傾向にありますが、今後プログラマが増えてくると、「プログラミングスキル」は一般的なものとなっていく可能性もあります。
プログラミング以外に自分が「特化できるスキル・ナレッジ」を身に付けていくことで、「自分の強み」ができ、「特定分野の専門知識を活用できるプログラマ」に成長していくことができるのではないでしょうか。