はじめに
こんにちは、f4samuraiサーバサイドエンジニアの酒井です。今回は社内の第6回技術記事コンテストに投稿された記事の内容を紹介します。
技術記事コンテストには毎回テーマがあります。第6回は「おすすめしたい技術書(文書)」というテーマで実施しました。
新しい知識を吸収したい時や業務で活かしたい技術を習得する場合は、技術書や文書を読む機会が多いかと思います。
今回は、コンテストの中で登場した数ある書籍の中から、いくつかピックアップしてご紹介します。
技術記事コンテストの目的
f4samuraiのエンジニア部門では、技術記事コンテストを定期的に開催しています。
個人のインプット促進はもちろんのこと、チームの垣根を越えたコミュニケーションや、エンジニア組織の長期的な成長を目標としています。
オフィスのカフェスペースに本棚があるのですが、人に勧められた本を読むのも良い機会に繋がると考え今回のテーマを決めました。
f4samuraiエンジニアが選ぶ、おすすめ書籍
① アンチパターン―ソフトウェア危篤患者の救出
1冊目はソフトウェア開発の本です。サーバーサイドエンジニアの方がピックアップしました。
この本の良いところ
- 失敗例がたくさん載っている
- 経験によっては、「ぐさっ」と来るものが多々ある
私もお勧めされたので読んでみたのですが、良い意味で非常に読んでいて苦しくなる本でした。思わず「あるある」と頷いてしまうような語りとなっています。
開発現場でよく発生する失敗パターンがカタログ化されており、チェックリストとしても活用することができます。
最初の1ページから読み進める必要がなく、興味があるところから読み進めることができるのも嬉しいポイントです。また、各アンチパターンの名称には「溶岩流」「暗室栽培」などユーモラスな名前が付けられています。
デッドコードやスパゲティプログラムの話はソフトウェア開発では良くある事例かと思います。ゲーム開発でも同様のことが言えますので、アンチパターンとして心に刻む必要がありますね。
2002年に発売(!)と古い本ではありますが、今でも学びがある本だと感じました。
② CGWORLD
2冊目はゲームグラフィックの雑誌です。ネイティブエンジニアの方がピックアップしました。
この本の良いところ
- 日本で数少ないゲームグラフィック専門で扱っている雑誌
- 毎月一冊発行
コンシューマゲームから、スマートフォン向けのゲームまで最新のゲームグラフィックについて
の解説記事が載っています。
毎月発売されるので、最新の技術トレンドを知ることができるのも魅力的です。
私自身はグラフィックには疎いのですが、制作技術について知ることができ、楽しみながら読むことができました。
ユーザーや視聴者として体験したゲーム・映像がどのように作られているかを知ることで、技術者としても刺激を受けることができました。
年間購読がお得のようです。
③ ノンデザイナーズ・デザインブック
3冊目は役員がピックアップした本です。
タイトルの通り、デザイナー以外の職種の方がデザインの基本について理解を深めるのにおすすめの本だそうです。
この本の良いところ
- 「近接、整列、反復、コントラスト」など意識することで、資料を見やすく作成できるようになる
- 位置関係だけではなく、色やフォントについても記載されている
非デザイナー向けということで、満遍なく基礎的なデザイン知識を身につけられます。
エンジニアとしてある程度キャリアを重ねると、社内勉強会や外部セミナーに登壇する機会も増えてくるかと思います。
私も以前、こちらの古い版を読んだことがあるのですが、発表用スライドの統一感を強く意識するようになりました。何も学ばずに無意識に資料を作っていた時とは、見やすさが各段に改善されました。
デザイナーとのコミュニケ―ションをさらに円滑にしたいとお考えの方、プレゼン資料を作る機会が多い方にぜひ読んでいただきたい1冊です。
④ プログラマー脳 〜優れたプログラマーになるための認知科学に基づくアプローチ〜
4冊目はプログラマー向けの本となります。ネイティブエンジニアがピックアップした本です。
この本の良いところ
- 書いている/読んでいるコードが疲れやすい理由がわかる
- 新規参画エンジニアとシニアエンジニアとの認識の違いが明文化されている
この本の面白いところは、「認知科学」に基づき技術習得を効率的に行うための方法が解説されているところです。
普段書いたり読んだりしているコードで「なんだかここの実装はいつもよりしんどい」、「理解するのにどっと疲れた気がする」といった事象について、なぜそのコードが疲れやすい=認知負荷が高いのかを理解することができます。
読み物としても面白いですが、コーディングをする上で他のメンバーがより理解しやすいコードを書く際の参考になります。
また、エンジニアが新規参画した際に負荷がかかりやすい項目について触れられており、既に運用されているプロジェクトに途中参画する方のつまづきポイントを知ることができるので、ベテランエンジニアの方にも参考になる内容となっております。
⑤ コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
5冊目に紹介するのは、オライリー本です。こちらもネイティブエンジニアの方がピックアップした本となります。
この本の良いところ
この本はネイティブエンジニアに限らず、全エンジニアにお勧めしたい本です。
「コンピュータがなぜ動くのか」などの基本的な原理原則を学ぶことができるので、確実なスキルアップが望める内容です。また解説だけではなく、実際に手を動かして学ぶ環境が提供されており、ハンズオンをベースに学習することが可能です。
私も以前読んだことがあるのですが、とても読み応えがあった1冊です。手を動かしながら最後まで実施するのに3ヶ月近くかかってしまいましたが、エンジニアの技術的な軸になってくれる1冊ではないでしょうか。
⑥ (おまけ)メールはなぜ届くのか
最後に私がピックアップした本を紹介させていただきます。
この本の良いところ
この本は非エンジニアの方にも非常にお勧めの本です。メールを題材として、これでもかというぐらいに、噛み砕いた説明がされています。
私は立場上クラウドアーキテクチャに触れる機会が多いのですが、インフラを学んだことがない方の最初の1冊にお勧めです。
技術書というよりも、どちらかというと手軽に読むことができるエッセイに近く、早ければ1日で読み切ることができます。この本だけで実務スキルが身につくとは言えませんが、この本をきっかけにネットワーク製品やクラウドの学習によりスムーズに入ることができると思います。
まとめ
今回は5+1冊ご紹介させていただきましたが、コンテストでは他にも沢山の記事投稿がありました。
中には、各企業様が公開されている新卒研修資料がお勧め!という内容や、Apple社の 「ヒューマンインターフェイスガイドライン」はとても勉強になる!など書籍以外を紹介する記事も数多くありました。
職種やチームの垣根を越えて技術書や資料を共有することで、他メンバーがどのような技術領域に関心があるのか、どんな知識を持った仲間がいるのか、などを知るきっかけになりました。
エンジニアの多い職場でも、周囲の人と技術書の意見交換をする機会は多くない……というケースもあるのではないかと思います。
そんな方は、ぜひ一度おすすめ書籍をシェアしてみてください。きっと想像以上の効果があると思います。
この記事をお読みいただきありがとうございました。
少しでもインプットや会話のきっかけになれば幸いです。
また別の記事でお会いしましょう!