プログラミング初心者にC言語をオススメする理由

小学校のカリキュラムにプログラミングが導入されるとかで、にわかにプログラミング熱が高まっていますね。その是非はさて置き、初めてプログラミングをするという人は、どのような言語を選んだら良いか、迷うのではないでしょうか? ネットで検索しても山のようにオススメが出てきますし、しかも言っていることが違ったりするので、余計に混乱しそうですね。

ここでは、プログラミング歴40年のブログ主が、自身の経験と独断と偏見から、学ぶべき言語を紹介します。とはいえ、タイトルにあるように最もオススメしたいのはC言語です。最初から決め打ちかい!と思わずに読んでいただければ幸いです。

プログラミングの目的がないならC言語

この投稿を読んでおられる方に、プログラミングを学ぶ目的が特にない(これはつまり、学習以外の目的がないということ)なら、やはりC言語をオススメます。

もし、Webサイトを作りたいとか、ブログをカスタマイズしたいとか、AI(人工知能)プログラミングをしたいとか、スマホゲームを作りたいとか、そういう明確な目的があれば、この投稿はまったく役に立ちません。すいません。

しかし、明確な目的があっても、C言語をやっておいたら、あとあと良かったときっと思いますよ。その理由を続けて書きますね。

C言語はプリミティブな言語

ブログ主の経験から言いますと、プログラミングはできるだけプリミティブな言語から始めるべき、と思います。では、プリミティブとは何でしょうか? それは、「原始的である」という意味です。原始的と言いましても、単に古いということではありません。アメーバは原始的と言われますが、生物としての基本的な特徴は備えています。そういった意味合いに近いと思って下さい。

ということでオススメは、「アセンブリ言語」です。ハハハ、ここで石が飛んできそうですね。え?C言語じゃなかったの? アセンブリ言語って何? って。まぁ、C言語がプリミティブなら、アセンブリ言語はDNAレベルとでも思って下さい(違うかな?)。

ブログ主の場合、コンピュータに触り始めた頃は、手近な環境にはこのアセンブリ言語(というか機械語)しかなかったのでそれを使いましたが、今ではこのアセンブリ言語を手軽に試すことはできません。なので、プログラミング学習の初期に、このアセンブリ言語に触れたのは非常にラッキーでした。

話をC言語に戻します。C言語は、一部の厳格な方々から「高級アセンブラ」と揶揄されていたこともあり、プリミティブに近いものです。言語仕様が単純で、覚えることも少なく、学習の負荷が比較的低い言語と言えましょう。

C言語の登場は古く、現在のようにWindowsやスマホのない時代のもので、要求されることも非常にコンパクトなものだったため、全体がコンパクトです。そのため、余計なことに気を配ることなく、純粋に言語仕様やアルゴリズムを勉強できるというのは利点でしょう。

C言語は応用が利く

また、C言語はその他の後発の言語、たとえばC++(シープラプラ)、Java(ジャバ)、PHP(ピーエイチピー。出版社ではない)、C#(シーシャープ)などに大きな影響を与えていて、「ああ、このへんはCと同じなのね」と思うところが多いのも美点でしょう。つまり、学習成果のリサイクルが可能ということです。せっかく覚えたのなら、長く役立てたいものですよね。

ブログ主がアセンブリ言語をシコシコ書いていたときに、BASIC(ベーシック)なるものが登場し、皆がこれに流れました。BASICっつーくらいですから、基礎的なイメージがありますよね。しかもコンピュータのハードウェアと一体化していて、手軽にコンピュータグラフィックスを扱ったりできるのも美点でした。

そのBASIC、なんとかBASICというようにいろいろ種族を増やして、今でもVisual Basicという名前で生き残っていますが、そこの経験者は「こんなはずじゃなかった」と川の向こう(C#)を恨めしそうに眺めているそうですよ。

C言語は始めやすい

さらに、今では特別な学習環境がいらないというのも良い点です。Webブラウザがあれば、すぐに学習を始められるサイトもあるので、思い立ったら吉日、というわけです。プリミティブで言語仕様が軽いので、こういったことも可能になるわけです。これが、他の言語だとそうはいきません。少なくとも、言語そのものをWindowsなりにインストールし、ものによっては「統合開発環境」と呼ばれる巨大なソフトウェアをインストールしなければなりません。

プログラミングは体験したいけど、準備やら何やら必要なのは面倒だし、覚えることが多すぎるのもイヤだという人にはオススメでしょう。下記は、Webブラウザタイプではないですが、インストールなどの作業がいらない、手軽な学習環境の例です。

「学習用C言語開発環境」セットアップ不要で使えるC言語学習用の開発環境 – 窓の杜

C言語をやるとコンピュータに詳しくなる

重要なのですが、C言語では、コンピュータの中で何が行われているのか、ということをイメージせずにマスターすることは困難です。逆を言うと、C言語をマスターすると、コンピュータの中で何が行われているのか、見えてくるということです。

コンピュータの中で何が行われているのか? 今のコンピュータは巨大で複雑怪奇ですが、要はCPUと呼ばれる頭脳部分が、機械語と呼ばれる超原始的なプログラムに従って、メモリという記憶装置とデータをやり取りし、必要に応じて計算し、ディスクや画面といった周辺機器とデータをやり取りするというのが基本です。

新しい言語は、原始的な部分がラップされているので、あまり深く考えずに高度なことができますが、その反動でプログラムの動きというものに想いが及ばず、非効率なプログラムを作ってしまったり、うまく動かないときにお手上げになってしまうようなプログラムを作ってしまったりするのです。

プログラムを書きながら、それがどのように動くかということをイメージできれば、効率よく問題の起きにくいプログラムを書けるようになるでしょう。

ということで、独断と偏見に基づきC言語をオススメしてきました。オススメ内容を本格的に書くとこんなもんじゃ済まないのでほどほどにしておきますが、少しはC言語の良さが伝わりましたら幸いです。もし興味を持たれたら、上で紹介した開発環境をぜひ試して下さいませ。

コメント