エンジニア必読!プログラミング学習に役立つ良書まとめ

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

books-300x200

普段プログラムを書いているけど・・・。自分のプログラミングスキルを高めたい、また、新たな分野の視点を取り入れたいと思われる方、いらっしゃるのではないでしょうか。普段の仕事に集中しているだけでは気が付かないことも多いはずです。

本を読むには、本の値段・本を読む時間というコストを払うことになりますが、ここではコスト以上の価値のあるおすすめのプログラミング学習の良書を紹介します。

  もくじ

① プログラムはなぜ動くのか -知っておきたいプログラミングの基礎知識-

② リーダブルコード -より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)-

③ CODE COMPLETE 第2版 上 完全なプログラミングを目指して

④ CODE COMPLETE 第2版 下 完全なプログラミングを目指して

⑤ ゲームプログラマのためのコーディング技術

⑥ Java言語で学ぶデザインパターン入門

⑦ リファクタリング プログラムの体質改善テクニック

⑧ リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

⑨ 世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

⑩ コンピューター&テクノロジー解体新書 ビジュアル版

⑪ 新C++言語入門 シニア編〈上〉基本機能 (C++言語実用マスターシリーズ)

⑫ 新C++言語入門 シニア編〈下〉クラス機能 (C++言語実用マスターシリーズ)

⑬ ふつうのLinuxプログラミング -Linuxの仕組みから学べるgccプログラミングの王道-

⑭ 独習UML

⑮ Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

⑯ オンラインゲームを支える技術  --壮大なプレイ空間の舞台裏 (WEB+DB PRESS plus)

⑰ Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理


プログラムはなぜ動くのか -知っておきたいプログラミングの基礎知識-

プログラムって一体何だっけ?あなたは答えられるでしょうか。実は現場でプログラミングを書いている方でもわかっていない基礎が結構あるのではないでしょうか。この本ではプログラミングをしたことのない人でも、このプログラミングの基礎を一から学べます。一度自分の知識を確認してみましょう。


リーダブルコード  -より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)-

とても有名なった本なので、書店で見かけた方も少なくないのではないでしょうか。少しでもプログラムを読みやすくためのアプローチを紹介しています。そのための変数、関数、クラスなどのシンボル名の付け方について重点的に述べています。多人数でシステム開発をする上で、プログラムの可読性は保守という観点でとても大切なのです。


CODE COMPLETE 第2版 上 完全なプログラミングを目指して


いまさら紹介するまでもないかもしれませんが、ソフトウエア工学の第一人者が書いたソフトウエア開発の方法論を幅広く網羅した入門書であり、コードの良し悪しを明快に解説しています。
上巻は設計やプログラミングについて書かれています。とても濃い内容で、それだけにページ数もかなりのものですが、絶対に読んで損はありません。
ソフト開発プロセスを建築設計にたとえたり、難解になりがちな内容を分かりやすくまとめてあります。


CODE COMPLETE 第2版 下 完全なプログラミングを目指して


こちらの下巻はテストやデバッグについて書かれています。
経験豊富なプログラマから経験の浅いプログラマ、独学でプログラミングを学んでいる方やこれから学ぼうとしている方まで、多くの人に読んでいただきたいです。
賢者は歴史から学び愚者は経験から学ぶと言いますように、1流になるためにこの本で説明されている研究成果や過去の経験を押さえておきましょう。
高品質なソフトウェアの作成や作業の効率化にきっと役立つでしょう。


 ゲームプログラマのためのコーディング技術


上記の「リーダブルコード」はどちらかというと命名、書き方に特化したものであるのに対し、こちらはもう少し設計に踏み込んだ内容になっています。ゲームプログラマのための、とありますが、プログラミングに必要な基本的な知識、わかりやすさや保守性、クラス設計など、どのプログラマーにも必要となるコーディング技術や考え方を紹介しています。お仕事などですでにプログラムを書かれている方が、自分のコーディングを見直す際におすすめの一冊です。


Java言語で学ぶデザインパターン入門


こちらもプログラマーの間では有名な書籍です。オブジェクト指向を一通り学んだ後に身に着けておくべきデザインパターンをJavaのサンプルコード付きで紹介しています。オブジェクト指向に関係する言語を書かれているエンジニアの皆さんにとって、デザインパターンは必須です。まだ覚えていない方はこの機会にマスターしておきましょう。


リファクタリング プログラムの体質改善テクニック


プログラミングは一度コードを書き終えたら終わり、ではありません。何度も「リファクタリング」をして綺麗なコードに進化させていくものです。その「リファクタリング」の考え方や実例を紹介しています。リファクタリングを経ることでプログラミングのスキルは向上していきます。有名な名著の日本語版です。


リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法


開発の実践において、プログラムの改善にリファクタリングは欠かせません。
同様に、プロジェクトを本当の意味で改善するためには、開発にかかわる人間のウェットウェア(脳)をリファクタリングすることが重要だといったアプローチの本です。
この本では、認知科学、神経科学、学習理論、行動理論などを駆使し、人間の脳がどのように機能するかを明らかにしています。
how to本だと馬鹿にせずに、多くの人に読んでもらいたい1冊です。


世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~


少し視野を広げて。MicrosoftやApple、Googleなど世界の名だたるIT系大企業は、その入社試験において高度なプログラミング試験を用意しています。これらの入社試験ではどのような問題が出題されるのか。そのような頭の使い方が求められるのか。例題を解きながら考えていくための本です。普段の仕事からは少し離れ視野を広げるのによい本です。


 コンピューター&テクノロジー解体新書 ビジュアル版


現代の身の回りにあるいろいろなデバイス、ハードウェアのメカニズムとソフトウェアの関係を図を交えながら紹介しています。そう、プログラミングの本ではないのです。ではなぜ?と思われる方もいらっしゃるかもしれません。しかし、ソフトウェアというものはハードウェアと切っても切り離せない関係にあります。ハードウェアにおいてどのようにソフトウェアが動いており、どのように貢献しているのかを知っておくことで、視野の広い一歩上のエンジニアになれるのではないでしょうか。


新C++言語入門 シニア編〈上〉基本機能 (C++言語実用マスターシリーズ)


少し古い本ですが、この本は上下2冊で構成されており、C++言語について詳細な記載があり、体系的に理解できるようになっています。上巻はC++特有の内容が詳しく書かれています。
単に言語・文法の説明だけではなく、なぜそうしなければならないのかも説明してあります。
調べたい関数があれば、索引から簡単に調べられるので辞書のように使うこともでき、とても便利です。
「C++言語入門入門」とありますが、基本的なことから応用まで広くカバーできてる良書です。


新C++言語入門 シニア編〈下〉クラス機能 (C++言語実用マスターシリーズ)


こちらの下巻はクラスやテンプレート機能について詳しく書かれています。
コーディングのサンプルが豊富にあり、仕事場に置いておきたい1冊です。


ふつうのLinuxプログラミング -Linuxの仕組みから学べるgccプログラミングの王道-


お仕事ではLinux以外のOSで開発されている方も少なくないと思いますが、それでもLinuxの知識を知っておくことはエンジニアにとって有益です。カーネルなどLinuxの仕組みから始まり、一通りLinuxプログラミングを網羅しているので、Linuxの全体像を知りたい方にはお勧めです。


独習UML


プログラマーの皆さんであれば、現場でUMLを書くことも少なくないでしょう。しかしUMLを体系的に学んだことのないという方もいらっしゃるかと思います。この本ではオブジェクト指向の基本から始まりUMLの各図(シーケンス図、クラス図、ユースケース図等々)の書き方、システム設計の基本についてレクチャーしています。


Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)


Web系開発に携わる方にとっては必須となる知識を学ぶことができ、とても内容の濃い本です。Web業界に入りたての若手のエンジニアの皆さまにお勧めです。


オンラインゲームを支える技術  --壮大なプレイ空間の舞台裏 (WEB+DB PRESS plus)


タイトルのとおり、オンラインゲームをテーマとした本です。
オンラインゲームプログラミングはネットワークの高度な知識が必要としており、技術的な見地からプログラミングの最高峰の一つとされています。
オンラインゲームの開発/運用技術を徹底解説し、基礎知識、アーキテクチャから課金の仕組み、さらにはC/S MMOおよびP2P MO実践開発、サーバ/インフラ、開発体制などの事項をわかりやすく説明しています。


Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理


ライブラリが充実しており、高機能で人気のPythonによるデータ分析の本です。
以前はマイナー言語でしたが、今ではプログラマからアナリストまで多くの人に利用されています。
データの処理・操作・クリーニングなどの基本的なことから、データの集約や取り扱いといった実務上の重要項目まで押さえてあります。
Python・Pandasを使う方、「R言語はちょっと…。」という方におすすめです。情報がひと通り載っていますので手元に置いておくと重宝します。

もちろん、これらの本で学べる知識はとても有益ですが、実践して初めて身につくものも多いと思います。エンジニアである以上、やはり読むだけではなく実践して自分のスキルを磨いていきたいですね。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメント

Comments are closed.