どうも、とある社長です。
プログラミングやってIT系の会社を作るんだと思ったはいいものの、分からないことだらけでファルシのルシ状態です。
今更ながら自分のリスクに対するセンサーみたいなものは壊れてしまっているのではと思い始めました…。
しかしこの状態だからこそ出てくる疑問は、何か将来役に立ったり、同じように初心者の状態からITのスキルを身につけようとされている方の役に立ったりするかもしれませんので、プログラミングカテゴリーの第一回目の記事は、「プログラミングやITのここがわからん」というテーマでお送りいたします。
特に何か答えを記載するわけではないので、単に疑問を垂れ流すだけの記事になってますので予めご了承ください。
今回の疑問点については、いつの日か解答編のようなかたちで自分なりの理解を纏めようと考えています。
そもそもの話
①こんなもの一体どうやって思いついたのか
インターネットは軍事利用のために誕生したという認識です。しかしそもそもこんなものを何十年も前に誰がどういう発想で思いついたのでしょうか。
SFのようにコンセプトが先にあったのか、それとも当時あったハード的な側面を組み合わせて考えたのか。
仮にアイデアだけは元々あったとして、実際に実現させるまでにどういう経緯があったかという具体的な部分を知りたいです。
②一番最初はどう動かしたのか
1つ目の疑問と関連性がありますが、コンピューターやネットワークが誕生した際には、どのような機器で構成されていて、どのようなことまでできたのか興味が湧いてきます。
「おい、これマジで動いたぞ、すげぇ!!」みたいなやり取りはあったのでしょうか。
③データのインプットや保管はどうやっているのか
インターネット上には膨大なデータが蓄積されていると言われていますが、誰がどのようにインプットして、どう保管しているのでしょうか。
特に初期の段階では、特定の誰かがウィキペディアのように地道に情報をインプットしていったのでしょうか。
またデータの保管についても、仮に半導体に記録しているとして、バックアップのない特定の半導体が壊れた場合、そこのみに保管していたデータは永久に失われてしまうのでしょうか。
そもそもそのデータの所有権等は誰にあるのでしょうか。
GoogleやChatGPTなどはどこからどのようにデータを引っ張ってきているのでしょうか。
もしかして増え続けるデータを保管するために毎年データセンターの投資とかしてるんですかね。
④インターネットはどういう仕組か
こちらの記事で「モリスワーム」と呼ばれる歴史上最も大きな影響を及ぼしたマルウェアについて説明がされています。
この「モリスワーム」は当時60,000台あったインターネットに接続されたコンピューターのうち6,000台に感染して大きな影響を及ぼしたようですが、仮にこの60,000台のコンピューターが全てダメになっていたとしたら、またインターネットを一から作る必要があったのでしょうか。
総務省の記事を見てもやっぱりいまいちよくわかりません。インターネットは繋がっている状態を指すだけであり、結局のところデータはそれぞれが保管している、ということなのでしょうか。
プログラミングっぽい話
ここまでのところで、インターネットが壊れた!みたいな話をしてきましたが、ここからはもう少し範囲を絞り、プログラミング(のような)話題に入りたいと思います。
⑤この黒い画面はなんだ
まずはこちらの画像。
プログラミングと言えばこの黒い画像をイメージしますが、これはなんなんでしょう。
コマンドプロンプトとか言われるものと同じものでしょうか(コマンドプロンプトがそもそも何か分からないですが)。
そもそもなんでこれいっつも画面黒いんだ。
⑥何で文字を書くだけでパソコンが動くんだ
これも直感的にわからないのですが、何で例の黒い画面で謎言語を入力するとパソコンやシステムが動くのか。
どう考えても画像とか表示されるの変ですよね。
⑦というか0101000じゃなくない?
コンピューター言語は0101的なものって習った気がしますが、プログラミング言語ってそうなってない気が。
⑧コードはどこまで完璧であるべきか
日本語の短い文章でも誤字脱字のオンパレードの人は結構いますが、プログラミングのコードってどこまで完璧である必要があるのでしょうか。
誤字脱字的なものが一つでもあると動かないのか、それとも日本語と同じように誤字脱字が多少あっても動くのか、このあたりもよくわかりません。
ただ機械は人間のように補完して読むということもなさそうなので、コードに誤字脱字があったら動かなくて、だからプログラマーは大変、ということのような気がします。
日本語よりも遥かに馴染みのない言語なので、感覚的には誤字脱字的なものは沢山発生してしまいそうですが。
⑨プログラミング言語ってなんで沢山あるの?
プログラミング言語は色々な種類がありますが、何であんなに種類があるのでしょうか。
税法みたいに増やせば増やすほど知識が曖昧な人が増えて、逆に非効率になってしまいそうな気もしますが、何かに必要なんでしょうか。
⑩プログラミング言語はどう作るのか
こちらの記事にRubyという言語を生み出したまつもとゆきひろ氏の「言語の設計が一番おもしろい」というコメントが紹介されています。
もちろん、言語は誰かが作らないと作られないものかと思いますが、何でそんなことができるのかと信じられません。
ChatGPTとかに、初心者向けの簡単な言語作ってよ!とかできないんですかね。
⑪どのプログラミング言語を使えばいいのか
プログラミング言語はどれを使うべきか、というのも当然出てくる疑問ですね。
この疑問は別途記事を作成したいと思います。
⑫もしかしてMacでやる必要あり?
これはプログラマーの友人などに聞いたのである程度解決した部分もあるのですが、元々の疑問点としては、世に出ているプログラマーっぽい人たちがリンゴのマークがついているパソコンばかり使っている印象があり、それは何故?というものでした。
自分はWindowsパソコンをずっと使ってきたのですが、もしかしてMac買わないとプログラミングできないの?という疑問が生じました。
結論としては環境構築できるので理論上はどっちでも良いようですが、現実的には使用者が多いMacでやるのが吉、ということのようです。
その他の疑問
⑬なんでいまだに変なシステムができるのか
ITが世の中に広く浸透してもう何十年も経ちますが、どうしていまだに問題が多発するシステムやアプリが生まれてしまうのか。
これは結局ITの要素以外に原因があるケースが大半だと思いますが、いわゆる有名IT企業でも問題があったり全く使えないシステムをいまだに作っています。
都合のいい解釈をすると、やりようによっては大企業にも勝つチャンスがあると言えそうです。
⑭GAFAの社員は普段何をやってるのか
GAFAというと少し広すぎるので、例えばFacebookについて。
Facebookはサービスの細かなアップデートはあると思いますが、根本の仕組みはここ何年もあまり変わってないのではと推測します。
そうすると、一通りシステムを構築するまでの労力と、その後のアップデートや保守メンテナンスの労力はもの凄い違いがあると思いますし、そのくらいのスキルや経験があるエンジニアが沢山いるのであれば、余った労力でFacebookと同等以上の新システムをバシバシ作っていけば良いのではと感じます。
恐らく自分が知らないだけでFacebookのエンジニアは各企業に散らばって、その先で色々な新システムを既に沢山作っていたり、システム自体はそんなに難しいものではなく最初にマスをとるのが決定的に大事なんだとか色々理由はあると思いますが。
でも普段から思うのが、この機能つけた方がいいのにと思うことは結構あるのに、それが全然できてこないのは何で?ということです。ネットにもこの考え良いな、と思う意見なんかもゴロゴロ転がってるのに、一向に改善されなかったりするのが疑問です。
身近なところで言えば、Twitterは表示の不安定さを直してほしいです。
⑮DXって本当にITの問題なのか
これは日本のプログラマーの給与がなぜ低いのかとか、何で未だにIT化が遅れている企業が沢山あるのか、というところとも関係する気がするのですが、DXは本当にITの問題なのだろうかという疑問です。
DXとかカッコいい用語を掲げずとも、その辺の平社員がこれこういう風にやればもっと効率的に進むのにな、と思うことを素直にやればそれで済むことも結構ある気がしています。
むしろそれができない人たちがDXという言葉を掲げて、よく分かってない人たちに、後はよろしくねとプロジェクトを丸投げするという状況は失敗する未来しか見えません。
言い方を変えると、世の中にはスペシャルな人材も技術もアイデアも沢山あるはずなのに、何でこんなに活用できてないのか、と感じます。
まだITのことすら何も分かっていませんが、ITのことだけ分かれば良いということではない気がします。
まとめ
こんな僕にIT系の会社なんて運営できるんでしょうか。