ITエンジニア向けおすすめ書籍

シェアする

みなさん、技術書読んでいますか?
最近はGoogle検索でだいたいのことはわかるようになってきましたが、やはりストックの知識(体系的な知識)は書籍のほうが便利だと思います。

そこでこの記事では、私が読んだことのある本の中でプログラマ、ITエンジニアにオススメの書籍を紹介してみたいと思います。新人さんや初心者から中級者向けの本をメインに取り上げて行きます。

面白そうな本があれば、実際の書店でてにとってパラパラと内容を確認してみてくださいませ。お近くに書店がない場合は、出版社やAmazonの書籍紹介欄の目次だけでも眺めてみてくださいませ。なんとなく本の内容がわかるかなと思います。

(随時追加していきます)

スポンサーリンク

C言語

C言語 ポインタ完全制覇

中級者向けの本です。この本を読めば下記のような複雑なポインタの宣言もさらっと読めるようになります。

int atexit(void (*func)(void));

また、文章がブログのような柔らかい語り口調なので読みやすいです。
たとえば p[i]*(p + i) のシンタックスシュガーであるという説明のところでは下記のようにポイントが示されています。

p[i] は i[p] とも書くことができる
上記のポイントに関するもっと大事なポイント

でも書くな

ポインタの話だけでなく、スタックやヒープなどの解説もあり、C言語全体の理解にとても役立ちます。さらに、普通の書籍ではあまり触れられることのない、現場で使われるC言語の定石も書かれていて、現場の空気を垣間見ることができます。

「ヘッダファイルには多重インクルードガードを」は当然として「ヘッダファイルはパブリックなものとプライベートなものにわけろ」などある程度の規模の開発では必須の
ことを教えてくれます。
また、「アサーション assert を有効につかえ」のような基本的なことや「0と\0とNULLのちがい」といった超マニアックな話題もあります。特にNULL周りの話は、わかっているつもりでもわかっていない事を思い知らされます。

また、下記のように書いたコードがどのようにふるまうかなんてこともわかります。マニアックですね。

(**********printf)("hello, world\n"); // どうせ * は何もしない

ポインタがなんとなくしかわかっていない人、C言語中級を目指す人にはお勧めの本です。現場の息遣いが感じられる良著です!

著者情報はこちら
@kmaebashi
K.Maebashi’s home page

C言語改訂版 2 はじめて学ぶCの仕組み

C言語には列挙型 enum があります。整数マクロの代わりに使われている場合が多いですが、enum の真価はそこではありません。
enum の理想(と哀しい現実)をここまでわかりやすく説明した本はほかに見たことがありません。
enum をただの連番を作ってくれる型だとおもっているかたにぜひぜひ読んでほしい本です。目からうろこ間違いなしです。

ハッカーのたのしみ

書籍名だけみると、ネットワークの脆弱性の本かと思ってしまいますが、実際の内容は異なります。
たとえばもっとも簡単な例だと、1Word中の1のBitを数えるような、ビット演算レベルのアルゴリズムを紹介している本です。

こういうと「コンパイラが最適化してくれる」という意見もあるかもしれませんが、アルゴリズムレベルで異なるものは最近のコンパイラと家でもなかなか勝てません。たとえば最初に例をあげた「1Word中の1のBitを数える」というコードですが、本書では下記のようなコードを挙げています。配列も使わないし繰り返しどころか条件分岐すらない、ビット演算と加減算のみの高速なコードです。
なぜこれでビットの数え上げができるのか、本書では数学的な丁寧な解説があります。理論好きなかたにはたまらない一冊でしょう。

int pop(unsigned int x)
{
    x =  x - ((x >> 1) & 0x55555555U);
    x = (x & 0x33333333U) + ((x >> 2) & 0x33333333U);
    x = (x + (x >>  4)) & 0x0F0F0F0FU;
    x =  x + (x >>  8);
    x =  x + (x >> 16);
    return x & 0x0000003FU;
}

このような簡単な例からはじまり、ビット並び替え、整数の乗算除算、平方根や行列反転、ヒルベルト曲線など高度な話もでてきます。下記の記事もこの書籍を参考にしています。

C言語で2の累乗(2^n)への切り上げ&切り捨て
2の累乗(2^n)の値への切り上げ&切り捨てについて、効率的なC言語のコードの書き方をご紹介します。組込みファームウェアでは、2の累乗への丸めをする必要がままあります。またコードサイズを小さくすることが求められます。そこでビット演算を使った方法をご紹介します。

組込みシステムがリッチになってきたとはいえ、ブートローダのようにまだまだ1Byte単位で戦わざるを得ない場面もあります。
カーネルを触る人なら、ディスパッチャを1命令でも少なくしたいという要求もあると思います。

そのような限界へ挑戦するプログラマにうってつけの名著です。

C言語デバッグ完全解説

書籍名の通り、C言語に特化したデバッグの解説本です。バグを難易度で「初級」「中級」「上級」に分けて、それぞれのレベルでのよくあるバグを例示しています。そしてそのバグの原因と修正方法を解説しています。デバッグとバグの起きにくいコーディングについて書かれた良書です。デバッグで困っている、コードレビューでよく指摘される、そのような方にオススメの本です。

初級について例を挙げると、下記のようなあるあるバグが例示されています。

#define FREE(p) free(p); \
                (p) = NULL

if (flag)
    FREE(p);

freeした後にNULLを入れて安全にする、ということがしたかったコードですね。ですがこれは下記のようにプリプロセッサで展開されます。いわゆるぶら下がり文のバグを思っ切り踏んでいます。

if (flag)
    free(p);
(p) = NULL;

解決方法はベテランの方はすぐに思いつくと思いますが、下記の例が挙げられていました。マクロ関数は do-while(0)で囲め、という古の戒め通りですね。

#define FREE(p) do {           \
                    free(p);   \
                    (p) = NULL \
                } while(0)

if (flag)
    FREE(p);

他にも中級、上級になると、バッファーオーバーランや乱数の精度、割り込み(シグナル処理)でのバグを解説しています。複雑なのでここでは例示できませんが、書籍を手に取ってみて確認してみてください。

後半はデバッグの方法(パラメータの振り方など)やバグの出にくいコーディングの方法を解説しています。気をてらったような記述はなく、現場でも口を酸っぱくして言われるだろう至極真っ当なことが書かれています。

ひとまずC言語の文法は覚えてコードはかけるけどデバッグに時間が取られている。コードレビューでバグの可能性をよく指摘される。そういう初級者から中級者の方にオススメの一冊です!

ドキュメント作成

エンジニアのためのWord再入門講座

「くたばれ!Excel方眼紙!」という章があったりして過激な感じをうけますが、内容はとても真摯な本です。
MS Wordの「スタイル」という機能をつかって、見栄えよくかつメンテナンス容易にできるようにしてくれる本です。

筆者の「ドキュメントの内容は当たり前品質」という考え、つまりプロなら内容はちゃんとしていて当たり前という考えが随所にでています。
内容がちゃんとしているのは当たり前という考えのもと「1に見栄え、2にメンテナンス性」という最初の段階と断言しています。
こうかくとなんか見栄え重視の薄っぺらい本かと思うかもしれませんが、さにあらず。まるでソースコードを書くように「設計」や「DRY原則」を重視しています。
むしろ、見栄えに時間をとられたくない硬派なITエンジニアのための本といえます。そのためのMS Word のほんとうの実力を引き出してくれる本です。
出版年が2008年なので、MS WordのUIが変わってしまっていますが、解説されている設定自体はほぼそのままつかえます。

簿記、財務

会社は利潤追求を旨とする組織である以上、会社員はお金や資産について最低限は知っておかなければなりません。そのお金について学ぶ方法の一つとして「簿記」を勉強することが挙げられます。特に日商簿記検定は公的資格とみなされ、本屋に行けば大量の参考書がありますし、さらに履歴書にもかけてお得です。また、IT系の資格試験に比べ受験料も大変リーズナブルでお財布に優しい。

簿記を少しだけでもかじっておくと、世の中のお金の話が全く異なって見えてきます。あまり技術を知らない他業種の方がIT製品やサービスに触れるのと、私たちエンジニアがそれらに触れるのとでは見えるものが違うのと同様に、簿記を知らない人が見る社会のお金に関することと簿記を知っている人が見る社会のお金に関することは見え方が全く異なります。わかりやすい例で言えば「借金(負債)」ですね。簿記を知らない人は「負債(借金)→ 悪いこと!」と短絡してしまいますが、ちょっとでも簿記をかじっていれば「負債(借金)→現金が増える→それを投資して機材買ったりしてより利益を出せる(かも)」と考えることができるわけです。お小遣い帳の発想から抜けられるんですね。

ゲーテだか昔の偉い人が「複式簿記は人類の偉大な発明の一つ」という胸の発言をしたといわれていますが、確かにその通りかもしれません。お小遣い帳から複式簿記への進歩は、運動方程式や微積分の発見に匹敵する、というと大げさかもしれませんが、オブジェクト指向のパラダイムシフトより大きな変化だったのかもしれません。

また、よく転職市場では「ポータブルなスキルを持て」と言われます。つまり社外でも通用するスキルを持っていると転職で有利だよ、ということです。例えば特定のプログラミング言語は他社に行くと使えないかもしれません。まあプログラミング言語は比較的どこの現場でも使えますが、特定の開発ツールだと使えない危険性はもっと高まります。エンジニアの技術は可搬性がない場合があるんですね。比較して簿記などのお金のスキルはどの会社でも必須です。業界も関係ありません。貸借対照表 B/Sや損益計算書 P/Lのない会社はないでしょう。どこでも使える簿記。多分50年後も使える簿記。すごい。

ということで、エンジニアなわれわれも簿記の初歩くらいは知っておかないといけないので、そのための良書をご紹介します。

とある会社の経理さんが教える楽しくわかる!簿記入門

パンダさんたちが、軽妙なボケツッコミをしながら簿記の基本を教えてくれる本です。漫画と文章の2種類の解説で、簿記の本とは思えないくらいスラスラと読めちゃいます。ときどき唐突にマッチョになって簿記の重要性を説くパンダさんとかいい味出しています。

もちろん日商簿記3級に役立ちますが、試験対策というよりも、簿記の本質基本を現場の人が丁寧に教えてくれる本だと思います。著者のかたのサイトから、少しだけ試し読みができますので、ちょっとのぞいて見てはいかがでしょうか。

マンガがあるので内容が薄いのでは、と思っちゃう方もいらっしゃるかもしれませんが、そんなことはないです。むしろ簿記資格試験の入門者向けより深いと思います。この本も現場の息遣いが感じられるほんです!

著者情報はこちら
@soltaril
とある会社の経理さん

とある会社の経理さんが教える楽しくわかる!原価計算入門

これは楽しくわかる! 簿記入門の姉妹本です。原価計算は日商簿記2級の範囲(工業簿記)ですので、これから簿記を始める人向けでなく簿記3級を取得したくらいんレベルの人向けの本です。

これまたパンダさんたちが、軽妙なボケツッコミをしつつ難しいはずの工業簿記の原価計算を教えてくれます。今回も漫画と文章の2種類の解説で、簿記の本とは思えないくらいスラスラと読めちゃいます。パンダさんに加え、友人からカネをちょろまかしようとするサルさんとかいい味出しています。

もちろん日商簿記2級に役立ちますが、試験対策というよりも、これも簿記の本質基本を現場の人が丁寧に教えてくれる本だと思います。著者のかたのサイトから、少しだけ試し読みができますので、ちょっとのぞいて見てはいかがでしょうか。

マンガで原価簿記なんて説明できるのか?といぶかしがる方もいらっしゃるかもしれませんが、大丈夫です。やはり現場の人の書いた本は本質を抑えています。いきなり簿記2級の工業簿記をやるのではなく、先のこの本を読んでからの方がスムーズに進められると思います!

著者情報はこちら
@soltaril
とある会社の経理さん

パブロフ流でみんな合格 日商簿記3級 テキスト&問題集

簿記検定界の愛されキャラ、パブロフくんの簿記3級編です。4コマ漫画と文書での説明とでわかりやすく解説してくれます。このパブロフくんが意外とシュールで、持っている株(売買目的有価証券)が上がるようお祈りしたり、株価が下がれば株券を破っちゃったり、従業員に給与を払うのを嫌がったり、可愛さ大爆発です。パブロフくんとなら頑張れる気がします!

下記では、この記事を書いている時点での最新版へのリンクを貼っていますが、数年に一度改訂版が出されるのでねんために改訂されてないか確認してくださいね。

著者情報はこちら
@atsuko_pop
@pubboki
パブロフくんが日商簿記2級、3級を目指すブログ

パブロフ流でみんな合格 日商簿記2級 商業簿記 テキスト&問題集

一斉を風靡した、簿記検定界のマスコットのパブロフくんの簿記2級 商業簿記編です。4コマ漫画と文書での説明とを織り交ぜて解説して行くスタイルで、難しい内容もわかりやすく解説されています。
今回も、やはりパブロフくんが可愛いです。会社をどーんと設立しちゃって社長様になっていらっしゃいます。偉くなりやがって….
なんかシュールでかいがいしいパブロフくんと頑張りながら簿記2級を学んでいけます。

ちなみに簿記2級の商業簿記は、平成29年度に試験範囲が大幅に変わっています。数年前に受けて再度挑戦しようという人は、変更内容が「簿記検定ナビ」というサイトがこのページにまとめてくれていますので、ご確認ください。結構変わっております。。。

上記の通り、簿記検定は時々試験範囲が変更されます。それに合わせて参考書も改訂されます。この記事を書いている時点での最新版へのリンクを貼っていますが、ねんために現時点での最新版かどうか確認してくださいね。

著者情報はこちら
@atsuko_pop
@pubboki
パブロフくんが日商簿記2級、3級を目指すブログ

パブロフ流でみんな合格 日商簿記2級 工業簿記 テキスト&問題集

簿記2級 工業簿記編です。これも4コマ漫画と文書での説明とを織り交ぜて解説して行くスタイルです。ちょっとしたグラフなんかも出てきますがパブロフくんとお兄さんが親切に説明してくれます。

今回も、やはりパブロフくんが可愛いです。工場で作っている製品であるドッグフードをつまみ食いしたり、工場で走って転んで材料をひっくり返したりしています。悪いやっちゃ笑

工業簿記は、商業簿記に比べて試験範囲の変更は少ないのですが、やはり時々変更されるので、参考書の方も買うときは最新版かどうかチェックしてくださいね。

著者情報はこちら
@soltaril
とある会社の経理さん