私は、今までたくさんの言語を扱ってきました。
趣味や実務さまざまですが、その中でも「学んでいてよかったな」というプログラミング言語があります。
それはC言語です。
なぜC言語か?
それは以下の理由があります。
- コンパイラ言語
- シンプル
- アルゴリズム力の向上
コンパイラ言語
C言語は、コンパイラ言語です。
スクリプト言語のように、実行時に読みこむのではなく「exe」ファイルを作成します。
PHPやRubyといった言語では、フレームワークを使う場合「Webサーバ」などの用意が必要で、最初に覚える量が半端ではありません。
その点、コンパイラ言語はソースコードを記述し、実行とするだけなのでプログラミングをするという点では、至ってかんたんです。
また、手続き型言語のため、入り口と出口が明確であり、全体のフローが理解しやすいと思います。
「exe」を作成することにより、普段使えるツールを開発し、配布するのも簡単です。
シンプル
C言語は、古い言語というのもあり、標準機能が少ないです。
文字列型(String)もありません。
#include
を利用することによって、使える機能を増やすことができるのですが、stdio.h
は、かんたんな I/O 程度しかありません。
そのため、機能が少なくシンプルなコードになります。
個人的にポインタは、非常に勉強になりました。
アルゴリズム力の向上
シンプルがゆえに、コーディングは気をつけないと、綺麗なアルゴリズムになりません。
PHPやRuby、Javaでは便利な関数(メソッド)がありますが、C言語にはほとんどありません。
そのため、非常にアルゴリズム力が鍛えられました。
結論:やっていて損はない
私は最初にC言語を学んでから「Win32 API」「DirectX」を扱い、色々とアプリを創ってきました。
現在は、Webをメインとしたエンジニアですが、この経験が非常にためになったと感じています。
実務でも、C言語の経験者と未経験者では、経験者の方がソースレビューでいい結果を比較的出していました。
C言語を学ぶだけなら、2週間程度あれば1冊の参考書が終わると思うので、先にやることをオススメします。
最後に、私が学んだ参考書を紹介しておきます。
猫でもわかるC言語プログラミング 第3版 猫でもわかるシリーズ
当時は3版ではなかったと思いますが、この本は非常に勉強になりました。