普段プログラムを書いているけど・・・。自分のプログラミングスキルを高めたい、また、新たな分野の視点を取り入れたいと思われる方、いらっしゃるのではないでしょうか。普段の仕事に集中しているだけでは気が付かないことも多いはずです。そんなあなたにおすすめの書籍をご紹介いたします。
プログラムはなぜ動くのか -知っておきたいプログラミングの基礎知識-
プログラムって一体何だっけ?あなたは答えられるでしょうか。実は現場でプログラミングを書いている方でもわかっていない基礎が結構あるのではないでしょうか。この本ではプログラミングをしたことのない人でも、このプログラミングの基礎を一から学べます。一度自分の知識を確認してみましょう。
リーダブルコード -より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)-
とても有名なった本なので、書店で見かけた方も少なくないのではないでしょうか。少しでもプログラムを読みやすくためのアプローチを紹介しています。そのための変数、関数、クラスなどのシンボル名の付け方について重点的に述べています。多人数でシステム開発をする上で、プログラムの可読性は保守という観点でとても大切なのです。
独習UML
プログラマーの皆さんであれば、現場でUMLを書くことも少なくないでしょう。しかしUMLを体系的に学んだことのないという方もいらっしゃるかと思います。この本ではオブジェクト指向の基本から始まりUMLの各図(シーケンス図、クラス図、ユースケース図等々)の書き方、システム設計の基本についてレクチャーしています。
ゲームプログラマのためのコーディング技術
上記の「リーダブルコード」はどちらかというと命名、書き方に特化したものであるのに対し、こちらはもう少し設計に踏み込んだ内容になっています。ゲームプログラマのための、とありますが、プログラミングに必要な基本的な知識、わかりやすさや保守性、クラス設計など、どのプログラマーにも必要となるコーディング技術や考え方を紹介しています。お仕事などですでにプログラムを書かれている方が、自分のコーディングを見直す際におすすめの一冊です。
Java言語で学ぶデザインパターン入門
こちらもプログラマーの間では有名な書籍です。オブジェクト指向を一通り学んだ後に身に着けておくべきデザインパターンをJavaのサンプルコード付きで紹介しています。オブジェクト指向に関係する言語を書かれているエンジニアの皆さんにとって、デザインパターンは必須です。まだ覚えていない方はこの機会にマスターしておきましょう。
リファクタリング プログラムの体質改善テクニック
プログラミングは一度コードを書き終えたら終わり、ではありません。何度も「リファクタリング」をして綺麗なコードに進化させていくものです。その「リファクタリング」の考え方や実例を紹介しています。リファクタリングを経ることでプログラミングのスキルは向上していきます。有名な名著の日本語版です。
ふつうのLinuxプログラミング -Linuxの仕組みから学べるgccプログラミングの王道-
お仕事ではLinux以外のOSで開発されている方も少なくないと思いますが、それでもLinuxの知識を知っておくことはエンジニアにとって有益です。カーネルなどLinuxの仕組みから始まり、一通りLinuxプログラミングを網羅しているので、Linuxの全体像を知りたい方にはお勧めです。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
Web系開発に携わる方にとっては必須となる知識を学ぶことができ、とても内容の濃い本です。Web業界に入りたての若手のエンジニアの皆さまにお勧めです。
世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~
少し視野を広げて。MicrosoftやApple、Googleなど世界の名だたるIT系大企業は、その入社試験において高度なプログラミング試験を用意しています。これらの入社試験ではどのような問題が出題されるのか。そのような頭の使い方が求められるのか。例題を解きながら考えていくための本です。普段の仕事からは少し離れ視野を広げるのによい本です。
コンピューター&テクノロジー解体新書 ビジュアル版
現代の身の回りにあるいろいろなデバイス、ハードウェアのメカニズムとソフトウェアの関係を図を交えながら紹介しています。そう、プログラミングの本ではないのです。ではなぜ?と思われる方もいらっしゃるかもしれません。しかし、ソフトウェアというものはハードウェアと切っても切り離せない関係にあります。ハードウェアにおいてどのようにソフトウェアが動いており、どのように貢献しているのかを知っておくことで、視野の広い一歩上のエンジニアになれるのではないでしょうか。
もちろん、これらの本で学べる知識はとても有益ですが、実践して初めて身につくものも多いと思います。エンジニアである以上、やはり読むだけではなく実践して自分のスキルを磨いていきたいですね。