2021年6月18日こんにちは、MSKです。僕は今、組み込み系のソフトウェアエンジニアとして勤務しています。使っている言語はC言語です。今回はC言語を学習するのにおすすめの本を紹介します。今は学習難易度も低く、使いやすいモダンな言語がたくさんあり、C言語を学ぶ意味はなさそうに思えます。Language」でも6位に入っており、まだまだ人気の言語となっています。C言語を学ぶ意味は以下にあると思っています。対応機器が広いPCなどの機器のハードウェアに近い部分の理解が深まる他の言語取得に役立つ対応機器が広いC言語はWindowsのアプリやサーバーサイドアプリケーション、組み込み系などマイコン上で動くアプリケーションにも使用されています。電子機器などの組み込み系のエンジニアになりたい場合は必須の言語になると思います。(現実僕もC言語で開発を行っていて、C言語で開発し量産された商品も多数世の中に出ています。いうか、いくつかのマイコンを使用しましたがC言語以外で組み込み系を量産まで持っていった経験はないです。)PCなどの機器のハードウェアに近い部分の理解が深まるやはりポインタの存在が大きいと思っています。ポインタはメモリへのアクセス手段になりますが、このためハードウェアを意識しながらプログラミングを行うことが多くなります。他のモダンな言語ではハードウェアを意識させないように隠蔽されていて便利な反面、意識しなくていいということから理解が薄くなるデメリットがあります。他の言語習得に役立つC言語はプログラミングの基本的な部分が含まれたシンプルな言語ですし、またC言語から作られた言語も多数あるため、C言語の知識をベースに他の言語を学習した場合、他の言語の習得難易度が減ります。僕も初めはC言語を学習しましたが、その後C++、C#、Python、Objective-C、Java、PHP、Swift、Kotlinと使える言語を増やしていきました。(業務で使用するため学習したのですが数日で使える程度にはなりました。理解できていない部分は検索していますが、それで理解できるのでC言語というベースがあるのはありがたいと思っています。)今はGo言語とRustを学習していますが、こちらもC言語のベースがあるのでかなり早いペースで学習が進んでいます。おすすめの本3選C言語を学習するためにおすすめの本を3つ紹介したいと思います。以下の3つになります。C言語が好きになる新しい9つの扉」がおすすめです。付録として開発環境の構築が丁寧に書かれています。プログラミングを学習を始める人が一番最初に躓くのは開発環境を構築するところです。次にこの本はタイトルの通りたくさんの絵を使って解説してくれます。プログラミング初心者には書いているソースのイメージが掴みにくいと思いますので、その部分を絵で解説してくれるので分かりやすい内容になっていると思います。深い内容までは解説がないので、この本だけでC言語が使いこなせるようにならないと思います。初心者が最初の1歩を踏み出すためには最適な本という位置付けだと思います。第5版タイトルの通りやさしくC言語を解説してくれます。Cの絵本で入門できた人が次に読むとよいのではないかと思います。C言語の一通りの機能をイラストや丁寧な文章を使って解説してくれています。プログラミング初学者にも分かりやすい内容だと思います。著者の高橋さんは他の言語でも同じ「やさしい」シリーズを出されていますが、どの本も非常に分かりやすい内容になっています。初心者の方も安心して学習できる本だと思います。僕は同シリーズのjava編で初めてこのシリーズを知りました。当時Androidアプリ開発を業務でやらなければならず、javaの学習のために購入しました。内容がすごく分かりやすくすらすらと入ってきたので、すぐに取得でき業務でのアプリ開発も順調に終わりました。2019年に本屋さんに立ち寄った際にC言語についても解説されたこの「スッキリわかるC言語入門」を見つけて購入したのですが、javaの時と同様にかなり分かりやすい内容になっています。内容は登場人物たちの会話により進んでいく形になっています。説明も非常に丁寧でC言語の機能について一通り解説を行ってくれます。カバー範囲も広く他の本では扱っていない内容(個人的にはmakeやシェルスクリプトについて書かれていいることには驚きました)やポインタなどがなぜ必要かを解説してくれている所は良いポイントだと思っています。上の2冊と比べて少し難易度は高いと思います。開発環境の構築が仮想マシン(VirtualBox)とgccを使っていて、難易度は高いと感じています。現時点で、C言語を将来使っていこうと考えている人に対しては、「スッキリわかるC言語入門」が個人的には一番おすすめです。最近のおすすめの本を3つ紹介したのですが、僕が学生時代にお世話になり、今エンジニアでいれるのはこの本のおかげだと思っているので最後に紹介したいと思います。僕が購入したのは第2版でしたが、2013年に第3版が出版されています。2013年が最後なので、環境構築などはもう古い内容になっています。C言語の解説はイラストと分かりやすい説明で行われています。今でも毎日使っているbitやbyte、エンディアンなどはこの本から学びました。プログラムを書いて実際に動かして学べるようになっていて、プログラミング初心者の僕でも理解しながら楽しみながら進めていけたのを覚えています。ファイル操作の部分だけは解説が足りていなくて、かなり苦戦したのを覚えています。いろいろなC言語の本を読みましたが、最初に読んだC言語の本がこの本で良かったと本当に思います。僕が読んだのは初版だったのですが、今は改訂版が出ているみたいです。ゲームを作りたくてC言語を学んだのですが、作っている時にぶつかったのはやっぱりポインタでした。今では組み込み系エンジニアとしてポインタはがんがん使っていますが(というかポインタがないと不便)、当時はポインタの扱いには挫折しかけていました。そんな時に出会ったのがこの本です。ポインタに絞って1冊の本で詳しく解説されているので、読み終えるころにはポインタなんて怖くないと言えるようになっていました(笑)。ポインタに絞ってというと難しいそうとか思われると思いますが、読みやすく説明も丁寧なのでするすると読めると思います。今でもたまに開いて、ポインタについて学ばせてもらっているので、個人的にかなりお世話になっている1冊です。リンクまとめC言語を学習する際におすすめできる本を3冊(+2冊)紹介してきました。「対応機器が広い・ハードウェアの知識がつく・他の言語の習得難易度が下がる」という意味でも、今からC言語を学習することには意味があると思います。僕個人としては組み込み系の面白さを知ってほしいので、C言語を学習して組み込み系エンジニアになりたいと思う人が増えてほしいと思っています。最後までご覧いただき、ありがとうございました。以上、「C言語の学習におすすめの本3選!」でした。MEMSK九州在住の組み込み系エンジニアです。2児の父親でもあります。数学やプログラミングが趣味です。最近RustとReact、結び目理論と曲面結び目理論にはまっています。not...Reactで問い合わせ画面を作って、メールを送信できるようにした!組み込み系エンジニアMSKソフトウェア関連の技術が好きな30代男性です。最近は、Webアプリ開発にチャレンジ中。