若い時に何を学んでおくのがベストか?
現代に於いて、子どもに何か習い事をさせたり、或いは将来のために学生の頃に学ぶものとして皆さんは何が良いと思いますか?
因みに私が10代の頃には、将来どの道に進むかに関わらず「英語は絶対に学んでおくべきだ」と言われていました。
更に私よりも上の世代では、それがソロバンだったり習字(書道)だったりしました。
また90年代半ば頃からは、「パソコンを学ばない人は滅びる」なんて言われてたりしましたかね。
この様に時代によって子どもや学生に学ばせる、もっと正確に言えば「身に付けるべきだと考えられたスキル」は変わってきたわけです。
ですが知っての通り、ソロバンのスキルはコンピューターの登場で不要となり、習字のスキルもワープロやネットの登場であまり生かす機会が無くなりましたね。
同じくパソコンの学習についても、当時はスマホもタブレットもない時代でしたが、今ではパソコンよりもそっちの方が主流ですよね?
つまり子どもの頃に習っていたことは、大人になると殆ど役に立たないことが実際に多かったわけです。でもそれは当然でしょう。
だって必要なスキルというのは、時代によってどんどん変わるのですから。
今の子どもたちが大人になる20年後にどんなスキルが最も必要とされているかなど、誰も知ることは出来ません。
例えば今ならば、身に付けておくと良いスキルとして思いつくのは、ChatGPTやStable Diffusionのプロンプトを上手に書けるスキルでしょうか。いわゆる「プロンプトエンジニア」的なものでしょう。
ですが良く考えてみて下さい。プロンプトエンジニアなんてものは、恐らくあっという間に不要な世界になると思います。
これらを前提として、もし私が今の子どもや学生達に勧めるとしたら、どんな勉強をしておくと良いのか、そして将来役に立つかを述べてみようと思います。これは、たとえ将来どんな道に進んだとしても、つぶしがきくスキルという奴です。
そんなものは存在しないか予測出来ないと言いましたが、実際にはそんなことはありませんよ。
どんな未来になったとしても、きっと役に立つスキルというものは存在しています。
上記の習い事や勉強は、表面的なものだから時代によって変わってしまう結果となるのです。
表面的ではない、この宇宙に住んでいる限り変わらない根源的なスキルを学んでおけば、たとえ社会がどんな方向に変化しようが、テクノロジーや文明が変わろうが、満腹パイの時代が来ようが、きっと役に立つことでしょう。
では現代に於いて私が子どもや若い人達に、将来のために学んでおくことを勧めるものを書いておきましょう。
それはズバリ、
コンピューター・プログラミング
です。意外でしたか?
もしかしたら今更感があるかも知れませんが、これが私がお勧めするスキルです。
因みにどの言語を学ぶのかはあまり重要ではありません。流行のプログラミング言語なんてものはコロコロ変わるものですから、今学んだ言語は恐らく将来は使われていないでしょう。
ですがそんな事はどうでも良いのです。大切なことは、プログラミングに共通する「思考方法」を学ぶことなのです。
言語が異なっていても、プログラミングの手法や必要とされる考え方は基本的に同じです。
もしプログラミング言語を学んである程度マスターすれば、この世界の万物をプログラム的に捉えたり考えたりすることが出来る様になるでしょう。これこそが目的であり、重要なのですよ。
ではなぜ、この世界の万物はプログラム的(アルゴリズム的)に考えられる様になっていると思いますか?
答えは単純です。
この世界がコンピュータープログラム(マスタープログラム)で作られているからです。
ならば、この世界の万物がプログラムとして考えられるのは当然ですね。だって元が本当にプログラムなのですから。
先にプログラミング言語は問わないと言いましたが、もし選べるのなら「オブジェクト指向言語」と呼ばれているものが良いでしょう。
なぜなら、オブジェクト指向言語は正にこの世界をそのまま表わすのに適しているからです。
と言うよりも、実はオブジェクト指向言語の方がこの世界の仕組みを模して開発されたのですけどね。
元々VRはこの世界を模して作られたものですが、逆に実はこの世界がVRだったという結論とこれは似ているかも知れません。
私は恐らくマスタープログラムはオブジェクト指向言語で書かれていると考えています。
私の時代だとオブジェクト指向言語と言えばC++やPascalやJava等でしたが、今では何なのかな?
今はコンピューターの性能が上がったので、PythonやPHPなどの非コンパイル型の言語が流行っているようですね。
OSやプラットホームはきっとこれからもコロコロ変わると思いますが、プログラミンで身に付けた思考方法は、きっとこの宇宙の中に住んでいる限りどの分野でも役に立つことでしょう。
以下、オマケです:
私が小学生の時に初めて触れた言語はBASICと呼ばれるものでした。当時はプログラミング言語といえば、BASICかアセンブリ言語くらいしかありませんでした。
アセンブリ言語は小学生の頃に勉強しかけましたが、当時の私には難しすぎて挫折した記憶が有ります。
私が大学に入った頃にちょうど、C言語という言語がブレークしかけていました。それまで科学技術の世界では殆どでFORTRANという言語が使われていたのですが、FORTRANはグラフィック機能を搭載するような複雑なソフトを作ることが難しかったので、C言語に置き換わる過渡期でした。
私も大学の講義ではFORTRANも習いましたが、すこぶる使いにくいので独学でC言語を本格的に勉強しました。そしてその選択は正解でした。
その他にも金融機関ではCOBOLと呼ばれる言語が長く使われていましたが、後にC言語などに置き換わったと思います。
C言語の流行は長く続きましたが、やがてオブジェクト指向を取り得入れたC++が流行し、その次にJavaが流行しましたね。
現代のC#やObjective-Cも、CやC++言語をベースにしています。
余談ですがUNIX系のOSは、今でも全てCかC++で書かれているはずです。因みにiOSもUNIX系だしAndroidもUNIX系です。
Windowsのソースコードの情報はあまり公開されていませんが、恐らく今は全てCとC++系の言語で書かれているのではないかと予想しています。(デバイスドライバなどハードに近い部分などは、今でも一部、アセンブラを使っているかも知れません)
つまり今でもC++言語で作れないソフトウェアは存在しないほど、C++は全てを網羅していて高機能なのです。
大規模なアプリケーションソフトも作れるし、ハードウェアを直接いじるようなこともできるので、ハードを含めたコンピューター全体の勉強にも向いています。
またC++はコンパイラ言語なので、動作も高速ですし、プラットホームも選びません。(UNIX系のOSには標準でコンパイラが入っているし、Windowsの場合はVisual C++が無料で使えます)
なので少し難解ですが、自信がある人は私と同じくC++言語を極めてみてはいかがでしょう?
戻る トップページ