今、プログラミングが必要な理由とは?
プログラミングとは何か?
実に形而上学的な難題です。
プログラミングなんてどこをどうしたら難しいのか分かりませんし
プログラミングなんてどこをどうしたら良いのか分かりません。
競技プログラミングと言う分野があって、そこにいらっしゃる狂プロの方々は、大抵プログラミングをしていません。
(彼ら/彼女らがしてるのはパズルや高度な数学です。
逆に、Webと言う分野があって、そこにいらっしゃるプログラマも大抵プログラミングをしていません。
(彼ら/彼女らがしているのは文書作りやデザインや環境設定です。
昨今話題のプログラミング言語としては
Pythonとか、あと色々あると思います。
私たちが学ぶプログラミングで一番最初の手習いは
print("Hello, World.")
です。(最近のプログラムは非常に簡単に動くからとても良いと思います。
もうあとはお作法。
$ python hello.py
Hello, World.
ビルドやリンクやコンパイルなんかの呪文を唱えたり
Cでメモリリークしてプログラムが吹っ飛ぶとか、無限ループバグで基盤が燃えるとかそう言うのがプログラミングだった時代とは、かなり違ってきているようです。
Computer Science(計算機科学)
エンジニアもすなむプログラミングを一般ピーポーもしてみむとするなり。
私個人としてはプログラミング能力は大したことありませんし、OSやコンパイラをバリバリと書いたり、独自基盤やCPUを自作されている方にしてみれば塵芥と変わらない私です。
基盤自作→CPU自作→0x530x4f0x490x42作って、いやもうなんなら0100 0101 0000 0101 1010 1100 1101 0111 ....とかレベルで作れる方もいるかも知れません。
最近ではRustという言語でファミコンのシミュレータを製作されている方もいらっしゃるぐらいだから何もそこまではしなくても良いのかも知れません。
多少CSに心得があるぐらいで、じゃあCSで学位を持っているかと言われると持っていないので
ああん?じゃあオメェに語る資格はねぇなー!と言われちゃいそうです。
って言うぐらいに、プログラミングと言うのは高度な技術体系(数学と物理)の上に成り立っています。
そう言うことを、曲がりなりにも表面的に知っている私からすれば
昨今のプログラミングブームにあやかってプログラミングを始める(た)人は、天才ばかりか!?と興味津々半分、戦々恐々半分でもあります。
住み易い環境になってきたプログラミング界隈
先ほど上げたPythonのプログラムが最近のプログラミングと呼ばれているものです。
なんだかよく分からないけど動くからOK。
ふむ、にわかには信じられませんがそう言うことみたいです。
変数とか関数とか、メモリとか、ビルドとかリンクとかコンパイルとか
二進数すら知らなくても動くのが最近のプログラム。
Kuinというプログラミング言語があります。
6歳が一人で作ったことで話題を呼んでいますが、こう言う天才の方が裏側を凄まじい形で整備してくださったおかげで
英語を学ぶように、プログラミング言語を学べば事は済むようになってきました。
プログラミングは手段である。
インターネットの出現からSNSの発展を経て
お金を稼ぐ手段として、プログラミングは一定の地位を築きました。
ITツヨツヨの方々からIT初心者までもが一定の資産を生み出すことができるプログラミングというのは凄まじいエネルギーを秘めている事は疑いようのない事実です。
では、プログラミングを学べばどんな資産でも生み出せるのでしょうか?
答えは否でしょう。
手段を目的とした段階で、資産化は破綻しています。
プログラミングは手段であって、目的ではないはずです。
形成したい資産に対してのアプローチがプログラミングであって
プログラミングが必ずしも資産を形成してくれるわけではありません。
ここら辺がちょっとした齟齬があるのかなという印象を最近受けます。
プログラミングを学べば仕事がもらえて大金持ちになれて左うちわバンバンザイ!みたいな触れ込みを見るたびに、なら俺を大金持ちにしてくれよ!と心の中で訴えています。(もちろん、冗談です。)
今、プログラミングを学ぶ意味とは?
プログラミングを学ぶことが悪いことであるとは微塵も思っていませんし
良いことも悪いことも全てプログラミングを通して味わってきた身としては
多く人と共感できる日が来ている事を嬉しくも思っています。
でも、じゃあプログラミングってどうやればいいんですか?とか、プログラミングって儲かるんですか?とか聞かれると、かなりげんなりします。
なんなら同じ土俵に立っているはずのエンジニアの方々からそういう声が聞こえてくるとなんとも居たたまれない気持ちになります。
仮想化技術、分散技術、暗号化技術、etc。
様々な分野で様々な技術が生まれては消え、消えたと思ったら再評価され、再評価されたと思ったらまた沈んでを繰り返しています。
こう言う技術を知る上で、プログラミングが分かっている事は非常に強い武器にもなるので
そう言う意味では、プログラミングはベース技術だとも思います。
技術を知り、それらを組み合わせて、今はマーケットに存在しない(もしくは成熟してないマーケットに)新しいサービスを生み出すのもプログラミングから派生した資産形成の姿だと思っています。
ニコニコ動画とか、動画にコメントを流す技術は新しかったですが、ストリーミング技術に見るデータ転送や通信理論はかなり古典的な手法が使われている事を考えると歴史を学ぶことの必要性を感じずにはいられません。
技術の未来にフォーカスする
すでに日本では5Gを超えた6G通信が開発されています。
凄まじい技術革新ですが、あまりニュースにもならず大変残念です。
例えば、この技術を日本で育んで、政府、大学、企業で連携して特許を取り世界で使われるようになったとすると
最低でも
現在の年間の携帯利用料金が格安SIMで月額2,753円 * 12ヶ月 * 人類の半数(38.5億人) * 最安特許使用料(3%) = 約3.8兆円
最大で
現在の年間携帯利用料金が大手キャリアで月額8,451円 * 12ヶ月 * 人類の半数(38.5億人) * 最高特許使用料(5%) = 約19.5兆円
概算ではありますが年間で3.8兆円~19.5兆円もの新しい財源ができることになります。
政府が公表している今年度予算が101兆なので、国の予算の約3.8%〜19.3%を賄えることになります。
これは最大値であれば消費税を0%にして、お釣りが返ってくるほどの驚異的な数字になります。
なぜ、この技術力が無視されているのか不思議で仕方がありません。
無作為にプログラミングを推進する前に、未来に託せる技術を育み、それを広告塔にしてプログラミングの必要性を説いた方がよほど説得力があるはずです。
技術力があってもそれを理解できる技術認知力がないのは大変な損失であり
由々しき事態だと言わざるを得ません。
今、プログラミングが必要な理由とは?
難しいことは頭のいい人に考えてもらうとしても、前提の理解力は引き上げておく必要があると思います。
それこそ、この技術がどれぐらいで運用できる可能性があるのか
そのためにどれぐらいの予算を投じるべきか。と言うのは、技術を知っていてその資産価値を理解していなければできません。
孫子曰く
「彼を知り己を知れば百戦殆うからず」
プログラミングを学ぶことは、これからの社会を戦う上でなくてはならない最低限のスキルであると共に
そこから生まれてくる価値をどうすれば最大化できるかを知る術でもあると思います。
しかし、プログラミングだけでは全てを推し量ることはできません。
計算科学と言う学問がある以上は、それに準ずる知識と知恵が必要にもなってきます。
人月計算ができても新しい通信技術は生まれませんし、未来に富める基盤を作ることもできません。
多くのプログラミングを学ぶ人、学んでいる人、そしてこれから学ぶ人たちがプログラミングを架け橋として様々な分野のこれからの技術の担い手になってくれることを願っています。
そうすることで、たくさんの時間を掛けなくても資産を生み出すことができますし
生まれた余暇で好きなことをしたり、新しいことを学んだりする機会を得られるようになります。
古典的な理論体系として生まれた技術を
現代の科学力によって顕在化させ
プログラミングによって頭脳を作り出し
勝手に働いてもらって生み出した資産により
人間らしく生活する。
そう言う循環が来たらいいなーと思っています。(し、そのために色々と研究開発もしています。
結論。
プログラミングはなんだかよく分からないけど動くと楽しい!
そして、不労所得だけで生活できるようになったら
ずっと作りたいと思っているダークファンタジー系RPGを作りたい。
(作れば良いのに。
あと、画像認識と強化学習の組み合わせで視界を再現してみたいなー(もうあるかもだけど。
死角とかを敢えて作って、人間の本来見えない死角が見えるようになるみたいな。面白そう。
カメラ2台だけ使って、人間の視界のようにできれば。。。とは言え
画像認識は中々まだ問題があることが解っているから、そこからの単純な解析だけだと強化学習側が釣られて問題がry