タイトル:C言語はプログラミング初心者には難しい(結論)

ペシブログ管理人のぺしばです.本日は,主なプログラミング言語のひとつであるC言語について解説したいと思います.

C言語は,1970年代にUNIXがC言語によって作られたことは非常に有名です.

管理人は,約20年前にC言語からプログラミングを始めました. C言語からプログラミングを学び始めたことは,良かったと思っています.

しかし,最近は学びやすいプログラミング言語も多くなってきたので,果たして初心者に向いているといえるでしょうか.

目次

プログラミング言語Cは初心者には難しい(挫折する可能性あり)

結論からいうと,プログラミング初心者の方は「C言語」から取り組むと挫折する可能性があります.

ただし例外的に,コンピュータの仕組み自体を学びたい人や,組み込み業界のプログラマになりたい人などには結構おすすめします.

なぜC言語が初心者にとって難しいのか(原因は,配列,ポインタ,など多数)

C言語が難しいと思われる原因をあげてみます.

  1. コンピュータに関する知識が要求される(知識があった方が理解しやすい)
  2. わかりやすい良い書籍が出版されていない(大学教授が書いた本は,ほぼハズレです)
  3. GUIなどのグラフィカルなソフトウェアをつくることができない

はじめに①ですが,C言語の文法を習得するだけならばコンピュータに関する知識はあまり必要ないのですが,C言語の文法のひとつである「配列」,「ポインタ」というものが少しややこしい,否,

かなりややこしいのです.


本質的に理解するためには,プログラムをコンパイルした際に,配列はどうなるのか,あるいはポインタはどうなるのかということについて理解することが理想的です.

次に②は,書いた通りですが,良い書籍が少ないです.良い書籍は存在するのですが(また後で紹介します),

なにしろ昔からある言語ですので,大学教授の方などが難しい書籍を多数出版されています.この手の本は, 実際に現場で活躍されている方が書いた本が一番良いです.

そして③は,今となってはC言語が一番弱い部分だと思います.C言語の文法セットは極めてシンプルなので習得すること自体はあまり難しくない(配列,ポインタは除く)のですが,

GUIを備えたソフトウェアを作成することに向きません.

タイトル:C言語のメリットは何か?(不要なのか?)

C言語は40年近くの歴史がありかなり古い言語ですが,いろいろと良い言語が出現しているにもかかわらずなぜなくならないのでしょうか?
その主な理由は,下記のとおりメリットが存在するためです.

  1. ハードウェアにアクセスすることができる
  2. 処理速度が,他のプログラミング言語よりも速い場合が多い

上記の①が,主にC言語が絶滅しない理由です.C言語はポインタという文法を使って,ハードウェアを制御する
プログラムを書くことができます.一般的にはハードウェアにアクセスするプログラムは,「デバイスドライバ」と
呼ばれます.

皆さん,プリンタドライバって知ってますよね?あれのことです.プリンタドライバはOSの中にインストールされていて,OSの命令を受けて,プリンタを制御しています.(例えばプリンタに印刷する文字列を送信したり,停止させたり)
これがほかの高級言語にはない特徴です.(C++はC言語を拡張したものなので,ほとんど同じ機能を持つため,この言語だけは例外です.)

そのような理由で,ロボットなどの機械に組み込まれるソフトウェアはC言語でつくられていることが多いです.


②に関しては,他言語で書いたプログラムよりも一般的に速度がはやいという利点があります.
そのため,他の言語のために用意されたライブラリなどはC言語で記述され,コンパイルされていることが多いのです.

上記で述べたように,確実な基盤を築いていますので,今後需要がなくなることはないと思います.

そういう意味では,学んでも損はない言語かもしれません.

組み込み系のエンジニアとして転職(就職)する方にはC言語はおすすめです

一方で,これから製造業などで活躍しようとしている学生さんなどには,逆に言語から学習することをおすすめします.
なぜなら・・,残念ながらといいますか,製造業では依然としてC言語を多用る傾向にあるからです.


製造業ってどこなんだ!っていうと,

例えば代表的なものを挙げると,自動車,精密機械,電機,家電,重工,OA機器,ビデオ,カメラ,ロボット産業などです.

生産工程を日本に持つ会社であれば,例えば製薬企業などでも生産部門では必要になる場合もあると思います.

それでは今日はこれでおしまいです.C言語の記事を書いてほしいという方はコメントください.解説まではしないかもしれないけど,良い本を紹介するブログを書きます.

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某メーカーで数年間エンジニアとして勤務していました.研究,開発,品質管理とたらい回しの刑を満了し,現在はパッケージソフトウェア開発者として個人で活動しています.

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次