普段の仕事ではC#でWindowsデスクトップアプリケーションの開発業務を行っています。品質や保守性が高いアプリケーションを開発するために勉強中の身ではありますが、開発する際に参考になった書籍を紹介します!
どの書籍も良書で読んでおいて損はないと思います!
設計
良いコード/悪いコードで学ぶ設計入門
大規模なソフトウェアになると、堅牢で保守しやすいコードを書く必要があります。しかし、保守しやすいコードの書き方を説明している書籍は少なく、入門書などはサンプルコードレベルで参考にならない場合が多いですよね。この本では良い例と悪い例を交えて、保守しやすいコードの書き方を説明しているので非常に参考になります。
リファクタリング 既存のコードを安全に改善する
ドメイン駆動設計入門
ドメイン駆動設計というものをよく聞くけど何かよくわからない。ドメインやバリューオブジェクト、エンティティという用語さえも理解できない状況だったので購入しました。用語の説明から易しく解説してくれます。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
多くの人が読むことを薦めている本です。
C#
独習C# 第5版
C#の基本、制御構文、標準ライブラリ、上級者向けの機能を網羅的に解説しています。プログラミング言語については書籍ではなく、ネットで調べることが多いのですがC#についてもっと知りたいなと思い書籍を購入しました。C#はある程度長く触っていますが、知らなかった機能もあったので勉強になりました。
実戦で役立つ C#プログラミングのイディオム/定石&パターン
C#の基礎からLINQの使い方など、C#の基本に一通り触れられており内容も分かりやすいです。C#の初心者には一番おすすめの書籍です。
アルゴリズム
問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本
競技プログラミングのアルゴリズムの勉強用に購入。実務で直接役に立つ場面は多くはありませんが、知っておくべき内容だと思います。
問題解決力を鍛える!アルゴリズムとデータ構造
ゲーム開発
ゲームプログラマになる前に覚えておきたい技術
最初はコンソールアプリケーションから作り、最終的には3Dのアクションゲームを1から作っていく流れが書かれています。読者に数学やプログラミングのスキルがあることを想定して書かれているので少し難しいかもしれませんが、ものすごく丁寧に解説しています。
ゲーム開発系の本は入門者向けであまり参考にならないか、上級者向けすぎて理解できないかのどちらかになることが多いです。しかし、この書籍はゲーム開発するための基本的な技術が解説されており非常に参考になります。
プログラムはこうして作られる
上記の本は初めてプログラミングをする人には少し難易度が高いかもしれません。1度もプログラミングをしたことがない人にはこちらがおすすめです。テトリスを題材にプログラミング作りについて解説しています。テトリスを作るためにどのようにプログラミングしていくかの考え方が参考になると思います。
Game Programming Patterns ソフトウェア開発の問題解決メニュー
数学
数学は学生時代はよく勉強していましたが、社会人になるとほとんど忘れてしまいました。数学を学び直すために読んだ書籍です。
プログラミングのための線形代数
プログラマの数学 第2版
その他
CPUの創りかた
一般的なフリップフロップとかで、CPUとメモリを自作する流れを書いた本。CPUの仕組みを知るうえで良い教材かもです。 CPUの仕組みを知らなくてもプログラムは書けますが、ハードウェアよりの組み込み系の人は知っておいたほうがいいかもしれません。この本は表紙で敬遠する人もいるかもしれませんが、中身はすごく面白いのでぜひ読んでみてください。
キタミ式イラストIT塾 基本情報技術者
ITに携わる人は様々な知識(CPU、メモリ、n進数、データベース、ネットワーク、セキュリティ、アルゴリズム、システム開発)が必要になります。基本情報技術者試験の参考書にはITに携わる人に求められている知識が網羅されているので、資格を取る取らないに関わらず読むべきだと思います。
1冊ですべて身につくHTML & CSSとWebデザイン入門講座
HTMLやCSSなどのWEB系の言語も使えると便利なので勉強しようと思い購入しました。ドットインストールやProgateで入門レベルまでは勉強できますが、自分は肌に合わず途中で辞めることが多かったので書籍で学習しました。
HTMLやCSSの入門書はたくさんありますが幅広く手を出すより、これ1冊を読み込むだけで十分と感じました。読みながらWEBサイトを模写したり、ブログをカスタマイズするとより身に付く思います。