05/17
プログラミング関連書籍(2023年5月情報更新)
コロナ社が発行しているプログラミング関連書籍をまとめてご紹介!
各プログラミング言語の簡単な説明と,そのプログラミングの学習用書籍や応用して使える関連書籍を紹介します。
◆ C
C言語は1972年に開発された歴史あるプログラミング言語です。現在でも世界中の多くのシステムで使用されています。高速かつコンパクトなプログラムを実装できることから,機械や電子機器を制御するためのシステムで使用されたり,その高い汎用性から様々なコンピュータ上で動かされるソフトウェア等でも活用されたりと,依然将来性の高い言語です。
プログラミング初学者にとってC言語の習得難易度は非常に高いものですが,C言語の影響を受けて開発されたプログラミング言語は多く,C言語を習得すれば他の言語の習得も比較的容易になることは確かです。エンジニアとしてのスキル基盤をしっかりと固め,幅広いジャンルの開発を行いたい方はC言語を選ぶことをおすすめします。
【C言語を学べる書籍】
【C言語を扱った書籍】
◆ Java
Javaは世界中で活用される人気の言語で,簡潔さと機能の豊富さからバランスがとれた言語です。WebシステムやAndroidアプリ,一般企業で使用されるような業務システムから機械を制御するシステムまで,非常に幅広いシステム開発に採用されています。
プログラムのソースコードは,実行の際にコンパイラによって機械が理解できる形に変換させる必要がありますが,C言語などのプログラミング言語は一般的にプラットフォームやOSごとにコンパイラが用意されており,特定の環境で動かすことしかできません。
しかし,Javaのコンパイラでは,実行するプラットフォームに対応した形式(ネイティブコード)に変換するのではなく,その手前の中間言語(バイトコード)まで変換し,Java仮想マシンといわれるソフトウェア上で実行されるため,特定のプラットフォームに依存しないシステム開発が可能です。
そのほかの特徴として「オブジェクト指向」「豊富なネットワーク関連機能」「充実した標準クラスライブラリ」「プロセスを並行動作させるマルチスレッド」「使われなくなったメモリ領域を自動的に整理するガーベージコレクション機能」などがあります。
習得難易度としては高い方ですが,開発できる範囲の広さやその汎用性から,開発者の需要が高い言語の一つです。
【Javaが学べる書籍】
【Javaを扱った書籍】
◆ Python
Pythonは読みやすい簡潔なソースコードを書くことができ,初心者にも人気のある言語です。C言語やその他言語でプログラミング習得を断念した方にとっても,Pythonであれば十分再挑戦できることと思われます。また,Python利用者の急増に伴って,学習するための書籍やサイトも揃っているので学習しやすい環境が整っています。
FacebookやGoogleでも採用されており,Webシステムの開発で使用されるケースが多く,さらに人工知能に関する環境が整っているため,機械学習やディープラーニングなど人工知能関連の開発に利用されることが多くなっています。後々,人工知能関連のプログラミングをやってみたいと考える初学者には特におすすめです。
Pythonでは人工知能関連のライブラリ(ある目的のために機能をまとめたパッケージ)が多く用意されています。機械学習のライブラリの例として,数値計算を行うための定番ライブラリで機械学習だけでなく画像処理や音声処理にも活用できる「NumPy」,数表および時系列データ操作やデータ構造の変更などのテーブルデータを扱えるようにする「Pandas」,データをグラフや画像データとして表示するグラフ描画のための「Matplotlib」などがあります。
また,ディープラーニングのライブラリの例として,ニューラルネットワークの最新ライブラリで大規模な数値計算のほか画像認識や自然言語処理など様々な数値演算が可能な「TensorFlow」,TensorFlowなどの他のディーブラーニングライブラリ上で動くよう作られ,ディープラーニングのベースとなる数学的理論の部分をゼロから開発せずとも簡単にニューラルネットワークを実装できる「Keras」,国産のライブラリでシンプルなネットワークから複雑なニューラルネットワークまで幅広く対応できる「Chainer」,Facebookの人工知能研究グループが初期に開発したライブラリでChainerやNumPyと似た構文で操作できて使いやすい「Pytorch」などがあります。
【Pythonが学べる書籍】
【Pythonへの足がかりとなる書籍】
【Pythonを扱った書籍】
◆ Julia
売れ行き好調!! 好評価レビュー続々!!
Juliaは,アメリカのマサチューセッツ工科大学(MIT)で開発された新しいプログラミング言語で,その最大の特徴は,簡潔な文法と高速な実行速度が両立している点にあります。この点を上記著者は「Pythonのように書けて,Cのように動く」と形容しています。
Juliaはまだ体系的に解説された日本語の資料が乏しいのが実情です。そのなかで発行されたのが本書籍であり,Julia初学者に向けた最適な解説書となっています。
Pythonを使っていて,数値計算や機械学習などの科学技術計算の実行速度の面で満足しておらず,より高速に行いたいと考える技術者・研究者にはピッタリの内容です。
また,はじめてプログラミングとしてPythonやMATLABで科学技術計算に取り組もうと考えている方にとっても持っていて損は無い一冊です。
【Juliaが学べる書籍】
【Juliaを扱った書籍】
◆ R
Rは統計やデータ解析で利用されるプログラミング言語およびその開発環境です。Pythonとならび,機械学習やデータマイニングの現場でも活用されています。統計解析に特化したプログラミング言語であるため,JavaやPythonのような汎用性はありませんが,統計解析に関しては大変簡単なプログラムで行なえます。
RではPythonでのライブラリにあたる「パッケージ」が存在し,機械学習に関連するパッケージも多く準備されています。
【Rを扱った書籍】
【RのパッケージJASP】
◆ MATLAB
MATLABはMathWorks社が開発している数値解析ソフトウェアおよびその中で使うプログラミング言語です。企業や大学等へ導入されていることが多い有償ソフトです。もちろん,個人でも導入可能です。高度な数値解析やアルゴリズム開発,数値計算など様々な目的で使用されています。近年はIoTやディープラーニングの開発・研究現場でも多く使用されています。
MATLABの特徴の一つとして,専門分野の詳しいことがわからなくてもなんとなく使ってみることができるという点があります。例えば行列演算やフーリエ変換の中身を理解せずとも利用できてしまいます。この点は若干の危うさをはらんではいるものの,思いついたことをとにかく実践してみるという点で大きなメリットがあるともいえます。
MATLABでは「Simulink」というツールがあわせて利用できます。Simulinkはブロック線図で構成するシミュレータで,制御理論やディジタル信号処理の分野で多く使われています。具体的には,モビリティやロボットなどの制御アルゴリズム開発,ICの処理アルゴリズムの開発,通信システムの方式検討,画像補正・物体認識アルゴリズム開発などに利用されています。
また,有償のMATLABではありますが,同様の無償ソフトとしてOctaveやScilab,FreeMatなどもよく知られています。
【MATLABが学べる書籍】
【MATLABを扱った書籍】
【Octaveを扱った書籍】
【Scilabを扱った書籍】
◆ Processing
プログラミングによる視覚的な表現(イメージの生成,アニメーション,インタラクション)を目的として開発されたプログラミング言語です。Javaをベースに,グラフィック機能に特化した言語となっています。必要最小限の記述で,グラフィックの描写はもちろん,ある程度の機能を持ったプログラムを作成できます。また,入力したプログラムをすぐに実行でき,結果をビジュアルに確認することができることも特徴です。
学生やアーティスト,デザイナーなど,プログラミングが不慣れな方でも扱いやすく(学習しやすく),プログラミング言語の入門用としてもおすすめです。
【Processingが学べる書籍】
◆ JavaScript
JavaScriptは1990年代中頃に登場したスクリプト型言語です。Webページに組み込まれることにより,ブラウザ上で動きのある(インタラクティブ)な表現や操作が可能となります。すべてのブラウザと相性がよく,Webページを構成するすべてのオブジェクトを操作することができます。地球上のほぼ全てのWebサイトで使われており,私達がブラウザ上で行っていることは知らずしらずのうちにJavaScriptで処理されています。
JavaScriptは初心者向けのプログラミング言語といわれています。ブラウザがあればどこでも動作し,プログラムがどのように動作しているのかが見えやすく,モチベーションにもつながります。また,あらゆるWebシステムの開発で必要となるので,JavaScriptを中心に勉強しなくとも,ある程度基本的な知識は身に着けておくことをおすすめします。他のWeb系言語(PHPなど)とあわせて習得してゆくとより世界が広がります。
【JavaScriptが学べる書籍】
【JavaScriptへの足がかりとなる書籍】
【JavaScript関連書籍】