なぜ、プログラミングスキルは簡単だと言われるようになったのか
プログラミングスクールが盛況で、学校教育にも取り入れられて、今後ますますプログラミングスキルの重要性がアピールされている昨今ですが、プログラミングスキルを獲得して仕事するのは簡単ですよという話をSNSのTL上でも時々聞くようになりました。
その理由は割といろいろあって、記事にできそうなくらいはあるなと思ったので書こうかなと思います。
理由1:プロモーションとして
ひとつは社会の要求としてITエンジニアの不足というのがあります。そのため、どうやらある程度の読み書きができるなら未経験でもエンジニアとしてスクールからの紹介で人材を送りこめる、という構造があるらしいです。
おそらく採用側としては、最初からヨチヨチであることがわかってるのでそういう人でも対応できるだけの環境づくりをすれば、後は一般的な仕事をしていた真面目さ(従順さ)やスクールとのコミュニケーション能力のほうを重視して採用できるので、一般の中途採用よりはメリット多しとなるのでしょう。
となれば、スクール側としては「誰でもエンジニアなれる!」とプロモーションしてたくさんの受講生を獲得するのが一番となります。受講の過程で人格的な部分を判断すれば、紹介もしやすくなるでしょうし、数は正義なわけです。
理由2:スキルに関する情報が劇的に増えた
インターネットが普及し、掲示板が広まり、Q&Aサイトやオープンソースが広まり、解説サイトが広まり、オンラインスクールが開設され、などなど・・・、プログラミングスキルに関するあらゆる情報が公開されるようになり、独学でも0から環境構築できるし、内容もなんとか調べなくても理解できる程度に平易な解説もされるようになりました。
昔は、インターネットもなく、専門誌にアマチュアが作ったゲームのコードが載ってるだけ、という状況だったわけで、そこから写経し、自分なりに動作を解析し、アレンジし、マニュアルという謎の英文を穴が開くほど読み砕いていって、理解を深めていくしかないという時代もあったので、どっちが簡単かっていうと、言わずもがな、と言えます。
理由3:エンジニアの技術レベルが細分化された
とはいえ、コンピュータ技術の進歩による恩恵という部分も大きいです。これにより技術レベルはより複雑になり、専門分野が細分化されることになります。昔は、CPUの仕組みがわかる人がOSを作り、その技術でゲームを作っていたりしましたが、今はHTMLさえわかればアドベンチャーゲームを作ることができますし、ちゃんと動作するプログラムは書けるけどコンパイラは作れません、とかもわりと普通になっています。
理由4:技術的に問題が出にくくなった
性能面が向上した部分においても、プログラミングスキルは易化することの恩恵を受けています。昔は、配線図とプログラムコードはおなじでしたが、今のプログラムコードは「命令書」と比喩されるとおり配線図ではありません。
命令書と言われるようになっても、昔は画面表示を司るメモリ領域に数字を書き込んで絵を出していたのが、今は「画像を読み込んで」「表示する」等と書けば表示してくれる程度には簡単に記述できるようになりましたし、メモリがすくないことによる不具合や、CPUの処理が遅いことによる問題も性能アップにより年々起きにくくなっています。そのあたりはマイクラの実況動画とか見るとわかるかなと思います。
開発体制という部分においても、技術的解決が進んでいます。コードやライブラリの共有、コーディング前のディスカッション、テスト手法や解決スケジュールの管理など、より問題を複雑化させないための工夫が共有されていきました。
バッドノウハウが減り、より直感的でメタなコーディングが可能になったことで落とし穴が減り、ちゃんと書かないと絶対動かない時代から、とりあえず書いてみればなにかしら動く、という時代になっています。
今後の展望
こうなってくると、今すぐにと言うわけではないでしょうが、今後プログラマーという職業、プログラミングスキルはほかの仕事のエントリー的なレベルまで下がってくるように思います。究極みんな出来るようになると誰も発注しなくなるし、ソフトウェアが浸透することで、論理的思考ができないと発注自体ができなくなるからです。
「AIが仕事を奪う」とも言われてますし、社会全体として今後仕事以外で何かしら収入を得るか、自給自足するための手法を考えてほしいなぁと思ったりします。まぁ、他人が考えるとみんな独り占めするので無理な話だろうなと思いますが。