MistiRoom

旅することと、語ること。自由であること。

IT系エンジニアが「プログラミング教育でエンジニアの仕事がなくなるなら大歓迎」と思う理由

最近知り合いの経営者が、僕に対して
「今後プログラミング教育必須になるからエンジニアの価値がなくなる」
的な煽り方をしてきたのだが、そのとき
「そんなもんやれるもんならやってみろってんだ」
と僕は返していた。

そもそも議論が5年くらい古い気がするが、要は飲み屋の席での煽り合いである。
それはさておき……

僕のその反応は決して強がりではなく、本心である。

正直「(そんな存在がこの世にあるとして、という前置き付きで) ただプログラムしか書けない人間」が、確かに10年、20年後仕事がなくなる可能性は十分にある。

だが僕はむしろ「プログラマではなく、IT系エンジニアとして」、そんな状況が20年後「やってきてくれるとしたら」、大歓迎だ。
本心からそう思っている。
その話をしよう。

断っておくがタイトルは「IT系エンジニアが」ではなく、厳密に言えば「IT系エンジニアである僕が」が正しい。
これはIT系エンジニアの総意ではなく、僕個人の主観に過ぎない。
一方で、少なくないIT系エンジニアが僕と同じような思いがあると確信を持っている。

 

筆者のスキル

普段ブログで怪文書ばかり書いているから、「こいつエンジニアとしてどんなもんなんだ?」と思われる方もいらっしゃるかもしれない。

その実態は、なんのことはない。
経験5年弱、うちフリーランス経験1年弱の駆け出しエンジニアです。

「実はエンジニアですら無いんじゃないか?」と思われるのも嫌なので、スキルを列挙したい。興味がなければざっと流してほしい。

  • Java1.3 - 1.5、JavaScriptでの製造業保守・開発(リーダー、顧客問い合わせ等のフロント対応等色々。開発フローはここで一通り経験)
  • 製造業部品表データ集計・加工・出力 (SQL, VBA, Java)
  • AWS EC2運用 VPC移行のサポートや環境バックアップ等の運用
  • PHP(Laravel) でのDMP運用に伴う軽微な開発
  • 営業支援 (人生で最も混沌としていた時期)
  • Pythonでのデータ分析支援 (DMPとの接続用ソースコード共有、Redshift構築等)
  • 自然言語処理(自分で担当)と機械学習(これは専門家にやってもらった)でのコンサルティング(分析環境構築-分析-プレゼン資料作成-プレゼンまで)
  • Pythonでのスクレイピング系システム開発
  • 自然言語処理を伴うAI開発(fastTextと上記のJanomeを利用) および環境構築
  • 各種機械学習系POC
  • PHP(Laravel) 、Angularでの詳細設計サポート、開発、テスト
  • Pythonによるライブラリ開発(pip installするやつ)
  • PHP(Laravel)とvue.js でのBtoC webアプリ開発、ここでプルリクとコードレビューとチケットに駆動されるスクラム開発、CI、docker・docker-composeの活用、それからモダンなフロントエンド開発を経験
  • Serverless Framework (AWS Lambda-DynamoDB)でのAPI開発(言語はPython)、Cognitoによる認証・認可基盤構築、Athenaでのデータ分析検証、Laravel(またか!) での開発、それから上記のwebでよく使われる開発フローの導入

あたりです。

そんなエンジニアが仕事を奪われたい理由

僕は「プログラマ」ではない。
今「仕様書通りにプログラムを書くことしかできないプログラマは云々〜」みたいな議論をする気はないけれど、僕はいかなる意味でもプログラマではない。

プログラムを書くことはあまりにも仕事の一部に過ぎない上に、プログラムを書くことがもっと得意な人間なんて腐るほどいる。

例えば絵を描く人間が「自分は塗り屋だ」なんて言うだろうか?
そりゃ滅茶苦茶塗りが得意でもう塗りこそが自分の絵の99%だ!ってくらいの人なら言うかもしれないけれど、普通はそうは言わないだろう。

それと同じで「プログラムを書くこと」はあまりにも僕の仕事の一部に過ぎないから、僕は「プログラマ」と一度も名乗ったことがない。
※細かい話をすると、「この共通処理は親クラスに委譲しちゃいましょう」とか言ってぱぱっとリファクタリングするっていう一連の作業、確かに100%プログラムに閉じた仕事だけどこれは「『プログラマの』仕事」なのだろうか?それは設計フェーズの話ではないのか?第一、プログラム自体が一種の設計書であるわけで……


そういった前提はあるから、「プログラミング教育なんかITの仕事の一部の教育に過ぎないよ、だからそれで仕事奪えるもんならどうぞどうぞ」っていうのが一つ。

話はまだ続く。

突然だがこのドキュメントを読んでほしい

AWSでの構築でやってはいけないパターンをまとめた資料だ。
比較的平易に書かれてある。

www.slideshare.net




……







いかがでしたか?
AWSのことがよくわかりましたね!!!!





となったら、いいのになぁ……

この資料、「平易」なのは間違いない。
けれど実際に仕事でこの領域を経験していても「100%理解できているし実践している」「100%理解できる」人はなかなかいないんじゃないか?

例えば

サーバレス特有のこと ⎻ イベント/リクエストドリブン ⎻ モジュラー ⎻ ステートレス

イベント/リクエストドリブンとステートレスは分かる。
モジュラーってなんだ?
基本的にクラス単位でもなくモジュール単位で処理が管理されてるってこと?
それならOK、理解できてる。

……みたいに。
ひとつひとつ、「解きほぐして」、「実践のために構築する」必要がある。

そう。もうお分かりだろう。
これ、国語の問題だよね?


で、あえて言いましょう。
プログラミング教育「ごとき」で、この資料をみんなが「スッ……」と理解できるようになる未来が、本当にくると思う?
国語教育数百年の歴史……まあ1900年代以降に限定して言うなら、100年強の歴史の果てに生まれたものを、向こう数年の「プログラミング教育」が凌駕する、と。

もしそんな未来が来たら……

GDPは今の10億倍になり、ベーシックインカムは実現し、地上に楽園がもたらされ、僕は労働などと言う馬鹿げた制約から解き放たれ、毎日自由にバイクに乗って好きなように生きてることだろう。

素敵だ。
とても素敵だ。
最高じゃないか!!!

一刻一秒でも早く実現してくれ、さあ、早く!

……。

冷静になったので、逆方向でアプローチしよう。

今後、プログラミング教育の果てにIT系の技術そのものがもっとパブリックに、「簡単な」ものになることはあるか?

例えばデータベース構築は小学生でもできる技術になり、プログラムは書かなくても「なんかええ感じに入力後ヌルっと動くようにして〜」と呪文を唱えたら、自動的にアプリができる、とか。

それはあると思う。
だが、お気付きだろうか。

その技術の裏側にも、技術が存在する。
誰でも扱えるiPhoneのアプリが、誰もが扱えるわけではないSwiftで記載されているように。

そして基本的に「便利さを増せば増すほど裏側は複雑になっていく」という公式……というか、実感がある。

例えば今のiPhoneで使われている技術の複雑さは、数十年前のコンピューターの技術と比較にならないだろう。
「それでもアプリを作る方法は調べたら出てくるじゃないか」と言われるかもしれない。が、そのアプリを作るプログラム言語もまた、いわゆる「低水準言語」……つまり、より原始的なコンピュータに近い言語で書かれていて、それは複雑なままなのだ。

もっとも、「低水準言語」に触れる必要がある人は少ないから「本当に複雑な部分はもう十分に隠されている、だからシンプルな部分だけが表れるようになる、だからIT従事者は複雑な仕事をする必要がなくなる」とは言えるかもしれない。

だが……
そんなシンプルな世の中を待望する人を横目に、役所は印鑑を忘れた人間に近所のコンビニで買ってこさせるわけで。

この前運輸局に引っ越しに伴うナンバー変更申請に行ったら、住民票がどうしても必要だという理由で受理されなかった。
仕方なく近くの役所に取りに行ったけど、そもそも何故近くの役所で紙にかけばもらえるものが運輸局で貰えないのか。
理解に苦しむ。

あの住民票の紙が極めて特殊な紙で、念じればあそこからナンバーが生えてくるのだろうか。
それなら納得だ、そんなおそろしい紙をおいそれと配るわけにはいかない。

現実はもちろんそんなことはない。
結論を言えば、僕が住民票を取りに行った1時間は、ただただひたすらに無意味な時間で、なくなってもいい時間のはずなのだ。
本人確認の方法なんて腐るほどあるだろう。

何が言いたいか。
十分なシンプル性がITに実現される以前に、現実には「ITで、あるいはIT以前の問題で解決できるのに解決されていない」問題が多すぎる。

その上でエンジニアなら皆実感として、「便利なツールほど本質を理解しようとすると複雑」って思ったことがあると思う。
神が作った神のツール、gitなんかその典型だ。

つまり、エンジニアは……
少なくともこの世に残る課題を片っ端からITの力で消すことをコア・バリューとするエンジニアは……
「複雑だとかどうとか、今後この仕事が無意味になるとか、考えてる暇があるならシステムを作る」のである。

その上で今後「十分なシンプル性がITに実現される」なら、多分大半のエンジニアは「俺の仕事がなくなる!」と怒るのではなく、……大喜びするだろう。

何故って。
エンジニアは課題をシンプルな方法で鮮やかに解決できるなら、それが最大の喜びだからだ。
それを歓迎しない理由がどこにある?

それから、さらに言えば。

そんな世界で、これまで「複雑さ」とずっと戦い続けてきた人間が、生きていけなくなる理由がどこにある?


だから僕はこう言う。
さっさと、ITの仕事なんて、駆逐してくれ。
その日を僕は心から望む。

その上で。
僕は同時に、こう言いながら仕事を続けよう。
そしてこの記事を一旦終わりにしよう。









www.youtube.com








ITにできることはまだあるかい

 

 

ではまた。