2020年

■2020年04月15日
AとB どちらの言語(もしくはソフトウェア技術諸々)を学ぶべきですか?

現実社会でも、よく居るよね?こんなアホ質問するやつ。はっきり言ってそんなことを聞く奴はソフトウェアエンジニアの資質はゼロだ。今すぐ別の職業を探せ、バカ。 そんなこと悩んで人に聞いてる時点で学ぶ姿勢ゼロだろ。

こんなアホ質問に、あえて答えるなら、「両方使えるようにしとけ、バカ!」だ。

こういう質問の行間を読むと、どちらを学べば金になる(儲かる)のか? ということを聞きたいんだろう。そんなの分かってれば誰も苦労しねーんだよ。

10数年前、C#が「Javaの劣化コピー」とか言われ「またマイクロソフトはこんなクソ言語を広めようとしてるよ、クソだなwww」と蔑まされていた。今、JavaよりC#の方が断然ホットな言語になっている。あれほどクソ言語だといわれなき誹謗中傷、雨あられの言語だったのに・・・

ウェブの世界で、10年ぐらい前から「PHPはすでに終わっているよwww」とさんざんバカにされてきたが、現在においてもサーバーサイドのウェブシステムを組む言語としてPHPは決して一線を退いてはいない。

10数年前にマイクロソフトがVisual Basicの新規開発を止める、なんて分かっていたか?
わかんねーんだよ、だれも、未来がどうなるか?なんて。

そんなこともわかんねー奴はそもそも開発者としてのセンスがないんだよ。
今の状況を見て、どれを学んでおくべきなのか?、なんて誰も分からないんだよ。

無理くりに言えるとしたら・・・興味がある言語・技術はいつでも使えるようにしとけ、ってこと。とりあえず広く、薄く学んで、ある程度は使えるようにしとくんだよ! ホントに必要になったら、突き詰めて専門的に学んでいけばいい。

悪いことは言わない、とりあえず、興味がある言語で Hello world! がコーディングできるようにしとけや。

それでも一つに絞りたいのなら、断然 C言語 をおススメする。こんなことを書くと、これだからオッサンは・・・とかジジイだまれや! ってなると思うけど、C言語は、コンピュータになぜプログラムが必要なのかを教えてくれる言語だからだ。ハードウェアに密接にかかわるポインタやスタック、キューなどの基本的なアルゴリズムを理解すれば、この先どんな言語を学ぶときでも理解が容易になるはずだ。

WindowsのAPIのインターフェイスはいまだにC言語だ。LinuxはC言語で書かれている。コンピュータを知りたいならC言語一択だよ。
そのかわり、C言語には便利な関数は一切ない、というより何もない。mapデータ構造(連想配列)も文字列型もない。ない、ない、何もない。

C言語は車輪の再発明をするにはうってつけの言語だ。バグだらけの車輪を作って、名もないソフトウェアエンジニアの先人たちの偉大さを知るのだ。その先人たちが作り上げた今のシステムをもう一度反芻するが良い。