初心者の多くが最初に勉強するならC言語がいいと勧められてきたのではないでしょうか。
このいかにもプログラミング言語といった名前のC言語ですが、そもそもC言語とはどういったものなのでしょうか?
できることと共に紹介していこうと思います。
C言語とは?
C言語はとても歴史の古い言語です。
実のところ1972年からあります。
BASICやCOBOLといった古い言語もあるのですが、そうした一部を除けばC言語は古参も古参の言語になっています。
そうなると古い分だけ難しいんじゃないの?と思われるかもしれません。
実際、融通の利かないところがあったり難しく感じる部分は少なくありません。
しかし、C言語はあらゆる言語を扱う上での考え方や概念を学習するための基礎になります。
なので、一番最初にC言語を勉強した方がいいと言う人がいるのも理解できます。
UNIXやLinux環境下で使われることが多い
そもそも1972年というのは、UNIXで記述するのが目的で開発されたからです。
UNIXやLinuxというのは、OSの一つです。
たとえばWindowsやMacOSなどと同様ですね。
UNIXはWindowsと大きく違っていて、いつものデスクトップを思い浮かべると驚くかもしれません。
たとえば、よく見る黒い背景に白い文字で英字がズラララ…と並んでいるのを想像してもらえればいいでしょう。
マウス操作ではなくコマンド入力になりますし、フォルダなども視覚化されていないため、コマンドを打ってディレクトリ構造を都度確認しなければいけません。
Windowsでの開発も当然できますが、恐らく多くのIT企業が研修でC言語+UNIX(またはLinux)を扱うと思います。
これはサーバーマシン(UNIXやLinuxで動いている場合がほとんど)での動作を前提とする場合が多いためです。
C言語をやるとなると、本格的に使えるようになるためにはこうした周辺のスキルも身につける必要があるので、結構大変だったりします。
その分、使えるようになれば企業では即戦力になれますけどね。
実際のところ初心者には難しい
僕自身、一番最初に手をつけたのはC言語でした。
まったくの未経験からC言語を学び始めたのですが、最初はまあこんなに簡単なら何でもできそうだ!と思ったくらいです笑
でもポインタで完全に詰まりました。
アドレスとかメモリとか解放とかもう訳分からなかったです。
独習していたら間違いなく挫折していたと思います。
講師がいながらもポインタの基礎の基礎を理解するだけで恐らく1週間以上かかりました。
なので、個人的には趣味でプログラミングを始めようとしている人にC言語って向いていないんじゃないかなあ…と思っています。
ただし、就活などのアピールに使いたい人は、お、C言語やってるんだと感心してもらえるかもしれません。
同期は文系なのにC言語やっててだいぶ感心されて採用されてました。
C言語ができること
C言語は色んな言語の基礎になっている言語でもあるので、まあ大抵のことはできると思っていただいて大丈夫です。
しかし、応用範囲が広い言語ではあるものの、たとえばこの分野に関してはこっちの言語の方が使いやすいとかいう場合もあります。
基本的にC言語は実行速度においては、ほとんどの環境で最速級の働きをします。
上級者になればなるほどC言語が好きになっていくと言われていますね。
ちなみにWebアプリ開発にはあまり向いていません。
Webアプリを作りたいプログラミング初心者の方は、今だったらRubyかPythonあたりをおすすめしたいです。
もちろんHTML/CSSもお忘れずに。
参考ページ
Rubyとは? Rubyを使って何ができる?
ハードウェア制御が得意
もうハードウェアとかいう単語が出てきてる時点で、今の初心者に向かない言語であることはお分かりいただけるのではないでしょうか…笑
ハードウェア制御というのは、例えばUNIXだったらUNIXを操作するためのシステムだったりの話です。
システムの目に見えるところではなく、裏方の処理の部分のプログラムを作るのがC言語は得意です。
想像するだけで難しそうな話ですね。
しかし当然、こうした分野で仕事をしている人はIT業界には大勢います。
IT業界と一口に言っても色々あるわけで、どんな言語が必要になるのかは就職前に調べておくといいかもしれません。
C言語を勉強すればとりあえず仕事はある
とはいえ、C言語さえ勉強しておけば、あらゆるプログラミング言語に応用が利きます。
C言語を使う現場自体もちろん少なくないですし、他の言語を使っていたとしても全くの初心者よりは確実に勉強しやすくなっているでしょう。
初心者が最初に勉強する言語としてはあまりおすすめしませんが、それでも難易度の高いところから潰していった方が後から楽だと思っている方には、十分挑戦する価値がある言語だと思います。
そしてしっかり理解することができれば、相当なスキルになることは保証します。
C言語を学習して人生一発逆転狙おうぜ。